adb tools(免root使用ADB命令卸載系統(tǒng)預(yù)裝APP)是一款可以免root卸載預(yù)置應(yīng)用,僅刪除當(dāng)前用戶下的APP,不是徹底刪除APP,恢復(fù)出廠設(shè)置后,刪除的APP即可恢復(fù)。
工具說(shuō)明
刪除APP后,手機(jī)不會(huì)再顯示該APP,也就沒(méi)有了應(yīng)用自啟,廣告等問(wèn)題。
免root ADB命令卸載系統(tǒng)預(yù)裝應(yīng)用
首先要知道系統(tǒng)預(yù)裝的應(yīng)用分3種:
不可卸載
這部分沒(méi)有 root 權(quán)限,是不能卸載的。比如 Phone、Message、Calendar 等。
可卸載,可恢復(fù)
這部分沒(méi)有 root 權(quán)限,用戶也可以卸載,但恢復(fù)出廠后又會(huì)回來(lái)。比如 EMUI 預(yù)置的很多第三方的 APP。
可卸載,不恢復(fù)
這部分預(yù)置在 data 分區(qū),data 分區(qū)是用戶存儲(chǔ)數(shù)據(jù)的分區(qū),恢復(fù)出廠清空數(shù)據(jù)時(shí)也會(huì)清理掉這部分 APP。這種情況一般作特殊用途,比如出廠前測(cè)試硬件好壞的部分工具 APP,測(cè)完恢復(fù)出廠,用戶也就感覺(jué)不到了。
通常說(shuō)的卸載預(yù)置應(yīng)用是指第1種的,但上面也說(shuō)了,沒(méi)有root權(quán)限是不能卸載的,豈不是標(biāo)題黨了?
實(shí)際上本文要介紹的方法處理起來(lái)與上面第2種情況類似,雖說(shuō)可以免root卸載預(yù)置應(yīng)用,但也不是徹底刪除APK,讓它不可恢復(fù)(root后的刪除一般是徹底刪除)。
好了,廢話不多說(shuō),步驟如下:
1、激活開(kāi)發(fā)者模式,打開(kāi) USB debug。
2、連接電腦,打開(kāi) cmd 窗口。
3、adb shell 進(jìn)入 shell 模式。
4、獲取要卸載的應(yīng)用的包名,方法如下:
方法1:
借助第三方應(yīng)用市場(chǎng),比如全國(guó)最大的同性交友網(wǎng)站——酷安,在它上面打開(kāi)某個(gè)應(yīng)用的詳情界面時(shí),瀏覽器地址欄就會(huì)顯示出這個(gè)應(yīng)用的包名,比如華為音樂(lè)播放器的地址是:https://www.coolapk.com/apk/com.android.mediacenter
包名就是最后一串:com.android.mediacenter
方法2:
列出所有包名,一個(gè)個(gè)看那個(gè)最像。
這種方法比較考研耐心和運(yùn)氣(有可能你以為的不是你以為的),如果知道關(guān)鍵字可以這樣搜一下:
方法3(推薦方法):
先將 APP 打開(kāi),然后使用 ADB 命令查看當(dāng)前界面的信息:
這里 window{} 中就是這個(gè)界面的包名類名,包名就是:com.baidu.haokan
5、拿到包名之后,接下來(lái)就是卸載應(yīng)用了,命令如下:
這個(gè)命令的意思就是將用戶 0 的 packageName 應(yīng)用卸載掉。以上一步的com.baidu.haokan為例:
-k 表示保存數(shù)據(jù),如不需要,可去掉 -k。
--user 指定用戶 id,Android 系統(tǒng)支持多個(gè)用戶,默認(rèn)用戶只有一個(gè),id=0。
至此,系統(tǒng)預(yù)置的應(yīng)用就被卸載了。部分情況下,有可能在設(shè)置 > 應(yīng)用列表中看到“未針對(duì)此用戶安裝”的字樣,這個(gè)沒(méi)有影響,重啟一下就沒(méi)有了。
當(dāng)時(shí)沒(méi)有考慮這么多,剛查了一下還有很多具體的指令操作:
不使用參數(shù):adb shell pm list packages,查看當(dāng)前連接設(shè)備或者虛擬機(jī)的所有包
使用-f參數(shù):adb shell pm list packages -f, 輸出包和包相關(guān)聯(lián)的文件
使用-d參數(shù):adb shell pm list packages -d, 只輸出禁用的包。由于本機(jī)禁用沒(méi)有,輸出為空。
使用-e參數(shù):adb shell pm list packages -e, 只輸出啟用的包。
使用-s參數(shù):adb shell pm list packages -s, 只輸出系統(tǒng)的包。
使用-3參數(shù):adb shell pm list packages -3, 只輸出第三方的包。
使用-i參數(shù):adb shell pm list packages -i, 只輸出包和安裝信息(安裝來(lái)源)。
使用-u參數(shù):adb shell pm list packages -u, 只輸出包和未安裝包信息(安裝來(lái)源)。
使用--user參數(shù):adb shell pm list packages --user <USER_ID>, 根據(jù)用戶id查詢用戶的空間的所有包,USER_ID代表當(dāng)前連接設(shè)備的順序,從零開(kāi)始:
使用-e參數(shù)且設(shè)置過(guò)濾條件:adb shell pm list packages -e "ximalaya", 只輸出啟用的包。
可以根據(jù)需要選擇不同的指令。
可以嘗試一下下面的操作:
1、獲取模擬器/設(shè)備列表
adb devices
2、指定device來(lái)執(zhí)行adb shell
adb -s devicename shell
例如:
adb -s emulator-5554 shell
在多device的時(shí)候,執(zhí)行adb命令一般都需要用參數(shù)-s指定device。例如卸載emulator-5554上的包c(diǎn)om.soft.camera
adb -s emulator-5554 uninstall com.soft.camera
adb [-d|-e|-s <serialNumber>] <command>
如果是開(kāi)了一臺(tái)真機(jī),一臺(tái)模擬器;
以下命令直接連接模擬器
adb -e shell
以下命令直接連接真機(jī):
adb -d shell