卸載應用的命令
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 包名