免root ADB命令卸載系統預裝應用

首先要知道系統預裝的應用分3種:

1、 不可卸載
這部分沒有 root 權限,是不能卸載的。比如 Phone、Message、Calendar 等。

2、可卸載,可恢復
這部分沒有 root 權限,用戶也可以卸載,但恢復出廠後又會回來。比如 EMUI 預置的很多第三方的 APP。

3、可卸載,不恢復
這部分預置在 data 分區,data 分區是用戶存儲數據的分區,恢復出廠清空數據時也會清理掉這部分 APP。這種情況一般作特殊用途,比如出廠前測試硬件好壞的部分工具 APP,測完恢復出廠,用戶也就感覺不到了。

通常說的卸載預置應用是指第1種的,但上面也說了,沒有root權限是不能卸載的,豈不是標題黨了?

實際上本文要介紹的方法處理起來與上面第2種情況類似,雖說可以免root卸載預置應用,但也不是徹底刪除APK,讓它不可恢復(root後的刪除一般是徹底刪除)。

好了,廢話不多說,步驟如下:

1、激活開發者模式,打開 USB debug。

2、連接電腦,打開 cmd 窗口。

3、adb shell 進入 shell 模式。

4、獲取要卸載的應用的包名,方法如下:

方法1:
藉助第三方應用市場,比如全國最大的同性交友網站——酷安,在它上面打開某個應用的詳情界面時,瀏覽器地址欄就會顯示出這個應用的包名,比如華爲音樂播放器的地址是:https://www.coolapk.com/apk/com.android.mediacenter,包名就是最後一串:com.android.mediacenter

方法2:
列出所有包名,一個個看那個最像。

C:\Users\ShawnXia>adb shell
em_t8811a_emmc:/ $ pm list packages
package:com.android.fmradio
package:com.mediatek.camera
package:com.android.providers.calendar
……

這種方法比較考研耐心和運氣(有可能你以爲的不是你以爲的),如果知道關鍵字可以這樣搜一下:

em_t8811a_emmc:/ $ pm list packages | grep "camera"
package:com.mediatek.camera
em_t8811a_emmc:/ $

方法3(推薦方法):
先將 APP 打開,然後使用 ADB 命令查看當前界面的信息:

em_t8811a_emmc:/ $ dumpsys window | grep mCurrentFocus
  mCurrentFocus=Window{33613e4 u0 com.baidu.haokan/com.baidu.haokan.app.activity.HomeActivity}
em_t8811a_emmc:/ $

這裏 window{} 中就是這個界面的包名類名,包名就是:com.baidu.haokan

5、拿到包名之後,接下來就是卸載應用了,命令如下:

pm uninstall -k --user 0 packageName

這個命令的意思就是將用戶 0 的 packageName 應用卸載掉。以上一步的com.baidu.haokan爲例:

em_t8811a_emmc:/ $ pm uninstall -k --user 0 com.baidu.haokan
Success
em_t8811a_emmc:/ $
-k 表示保存數據,如不需要,可去掉 -k。
--user 指定用戶 id,Android 系統支持多個用戶,默認用戶只有一個,id=0。

至此,系統預置的應用就被卸載了。部分情況下,有可能在設置 > 應用列表中看到“未針對此用戶安裝”的字樣,這個沒有影響,重啓一下就沒有了。

作者:ShawnXiaFei
鏈接:https://www.jianshu.com/p/e9434e7f86ea
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

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