越來越多廠商在Android裝置上安裝預設的系統應用程式,裝置廠商可以透過這些內建的APP蒐集使用者數據或進一步的控制銷售設備,而部分APP開發商更是與裝置廠商合作以每隻手機安裝預設APP所銷售的數量作為報酬造成手機上新增不少多餘的垃圾APP。
我們可以發現這些APP往往都相當臃腫甚至部分還會在系統背景運行占用資源導致影響用戶體驗,一些用戶可能已經知道透過系統的『凍結』功能可以防止他們在背景運行,然而或許你不知道只要透過ADB指令在免ROOT狀態向其實可以更進一步的刪除它們,如果你有興趣可以繼續觀看以下文章。
部分系統APP可能會與裝置上的其他應用產生關聯,刪除可能導致其他應用無法運行請注意。
本篇教學基本上適用於所有Android裝置,操作需要一點手動能力但非常簡單
使用須知
- 不要刪除與系統關聯的APP,我不對你的操作負責
- 可以用手機內建的還原重置狀態,怎麼返回單一操作我懶得查,自己Google(應該是可以找到?)
- 此方法不破保固可以放心使用
ADB驅動
Google 提供通用驅動
Windows : https://dl.google.com/android/repository/platform-tools-latest-windows.zip
Mac : https://dl.google.com/android/repository/platform-tools-latest-darwin.zip
Linux : https://dl.google.com/android/repository/platform-tools-latest-linux.zip
開啟USB偵錯
進入手機的 設定 → 系統
在『開發人員選項』 把 『USB偵錯』開啟
Windows操作示範
將手機透過『MTP』『傳輸檔案』方式USB連接電腦
將下載好的ADB驅動解壓縮到電腦上的任一位置
開啟進入資料夾,在路徑上輸入『cmd』後按下 Enter鍵
接著若是你第一次使用USB偵錯,輸入以下指令
adb devices
接著手機上會顯示是否允許連線,同意它
接下來輸入
adb shell
成功連接後就會看到你的裝置名稱,像我的是sailfish :/$,如下圖
接下來就可以透過指令刪除系統應用了,輸入以下指令,不知道<package_name> 請看下方教學
pm uninstall -k --user 0 <package_name>
<package_name> 替換為程序包名稱,以『Google Play 影片』為例指令如下
pm uninstall -k --user 0 com.google.android.videos
-k 代表保存資料,如果不需要可以刪除,–user 0 代表用戶一般我們習慣只用一個若你有多個就自己改吧
看到Success表示已經成功刪除,這時你再到應用程式列表查看已經找不到該應用程式
如何得知<package_name> ?
你可以使用 App Inspector 來快速得知某一個應用的名稱
效果說明
透過上方指令可以將系統應用從當前用戶卸載,但原始檔案/數據仍然會保留在系統中(需ROOT權限才能刪除)
所有操作皆能透過所有安卓手機內建『重設還原』也就是重置使用者的方式來恢復,日後也可以持續透過OTA方式更新系統也不影響保固
有人疑問這和『禁用』APP有甚麼差異 ? 其實禁用APP後還是會產生關聯(系統詬病),所以可能還是會跳出『應用程式停止回應』的問題,透過此方法可以完全避免(當然是有實際測試過的)
Bluestacks想刪除原本的Launcher 卻找不到包名
隱藏了?
請教有遇過這種案例嗎
Bluestacks 以前稍微研究過,基本上不太可能分離launcher不然直接崩潰無法用
bstweaker 可做些設定可以參考看看
https://bstweaker.ru/
感謝回應
主要使用Launcher<3 替換 也是使用的良好
但內建的一些不必要Bluestacks相關APP 包名都找不到
用其他模擬器都沒遇過這種案例
adb server version (31) doesn’t match this client (40); killing…
出現訊息版本不同,能幫幫我嗎
輸入adb devices後 手機沒出現 是否允許連線
基本上應該是驅動問題,可參考 https://www.youtube.com/watch?v=IYWEwQnobkQ