卸载应用的命令
adb shell pm uninstall [-k] [--user USER_ID] 包名
-k : 卸载应用但保留数据和缓存
--user 指定用户 id : Android 系统支持多个用户,默认系统用户只有一个,id=0。
卸载系统应用(例:系统自带的计算器)
- 不指定用户ID
当我们不设置用户ID的时候,卸载系统应用是不成功的。
adb shell pm uninstall com.android.calculator2
返回:
Failure [DELETE_FAILED_INTERNAL_ERROR]
- 指定用户ID
当我们设置了用户ID为系统用户即id=0
时,可以成功的卸载系统应用。
adb shell pm uninstall --user 0 com.android.calculator2
返回:
Success
所以,当我们想卸载系统应用时,我们只需要指定其id=0
即可。
那对于那些不知道其包名的应用怎么办?
通过下面的方法获取包名即可。
查看APP的包名
打开APP,然后再输入如下命令:
- Linux系统
adb shell dumpsys window | grep mCurrentFocus
- Windows系统
adb shell dumpsys window | findstr mCurrentFocus
结果:
mCurrentFocus=Window{d7e79b8 u0 com.android.calculator2/com.android.calculator
2.Calculator}
通过这个命令我们就可以获取当前应用的包名和Activity名了。
恢复出厂设置
当我们不小心把系统核心应用给卸载了怎么办?那就只能恢复出厂设置来解决了。如果有幸,你的设备Launcher应用可以正常使用,那就打开系统设置,然后去恢复出厂设置即可。如果无法操作系统设置怎么办?那就使用adb命令的方法来实现。以前有一种发广播的方式adb shell am broadcast -a android.intent.action.MASTER_CLEAR
,但现在好像实现不了。来看看用adb的方式:
adb root
adb shell "echo \"--wipe_data\" > /cache/recovery/command"
adb reboot recovery
总结
我们想要卸载应用(包括系统应用)只需要分两步:
第一步:获取应用的包名(当前打开的应用)
Windows 系统:
adb shell dumpsys window | findstr mCurrentFocus
或者 Linux 系统:
adb shell dumpsys window | grep mCurrentFocus
第二步:使用卸载命令
adb shell pm uninstall --user 0 包名