Android 無需 root 卸載系統應用

卸載應用的命令

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 包名

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章