簡體   English   中英

如何通過adb卸載Android系統應用程序的更新?

[英]How to uninstall updates of an android system app through adb?

所以這是我的系統應用程序,我在它上面加載了另一個 apk。 是否可以通過 adb 卸載旁加載的 apk 並運行系統應用程序?

我嘗試了兩種失敗的方法。 我正在使用 4.4

一種。 從 /data/app 文件夾中刪除了旁加載的應用程序並重新啟動。 系統應用程序一直處於昏迷狀態。

adb卸載(成功)並重新啟動。 同樣的結果。

這種稍微復雜的方法做到了。

  1. 將系統 apk 從 /system/priv-app/ 移動到 /sdcard/

  2. 亞行卸載

  3. 重啟

  4. 將系統應用程序從 /sdcard/ 移回 /system/priv-app/

  5. 重啟

我的問題是,有沒有一種直接的方法可以通過 adb 做到這一點?

由於您在頂部安裝了相同的軟件包(應用程序),因此 adb 軟件包管理器可能刪除了舊的系統應用程序(相同的軟件包名稱)。

您可以使用adb shell pm list packages查看當前應用程序/ adb shell pm list packages

如果您有舊的 .apk ,您可以再次使用adb install -r <apk>重新adb install -r <apk> http://developer.android.com/tools/help/adb.html

如果您看到版本降級失敗,請嘗試使用-d像這樣adb install -r -d <apk>

adb uninstall <package-name>應該卸載系統應用程序的更新。 我可以確認它適用於 Android 12。

解釋

在 Android 設備上,系統應用程序安裝在只讀分區:通常是system ,但也可能是product分區。

當這些應用程序接收通過Play商店中或其他simialr手段(而不是系統更新!)的更新,這些更新安裝到userdata分區(讀寫)的分區。

adb unintall簡單地刪除這些更新從這些更新userdata的分區(顯然無法刪除從只讀分區的任何東西)。

另外,如果你“恢復出廠設置”您的設備,它會擦userdata的分區,所以您的系統應用的“股票”的版本。

關於readonly分區的注意事項

systemproduct和其他一些分區在 Android 的user版本上是readonly的。

user構建是您從商店購買設備時獲得的。

但是,您可以自己構建userdebugeng變體,將其閃存到您的設備上,然后adb remountreadwrite adb remount這些readonly分區。 您可以在此處閱讀有關構建 Android 的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM