如何通过adb卸载Android系统应用程序的更新?

时间:2014-09-22 19:18:46

标签: android apk adb

所以这是我的系统应用程序,我已经在它上面加载了另一个apk。是否可以通过adb卸载侧载的apk并运行系统应用程序?

我尝试了两种失败的方法。我正在使用4.4

一个。从/ data / app文件夹中删除了侧载的应用程序并重新启动。系统应用程序处于昏迷状态。

湾adb卸载(成功)并重新启动。同样的结果。

这种有点复杂的方法就是这样做的。

  1. 将系统apk从/ system / priv-app /移至/ sdcard /

  2. Adb uninstall

  3. 重新启动

  4. 将系统应用从/ sdcard /移回/ system / priv-app /

  5. 重新启动

  6. 我的问题是,通过adb进行此操作有直接的方法吗?

2 个答案:

答案 0 :(得分:5)

由于您在顶部安装了相同的软件包(app),因此adb软件包管理器可能删除了旧的系统应用程序(相同的软件包名称)。

您可以使用adb shell pm list packages

查看当前应用/宣传的列表

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

如果您看到failed version downgrade,请尝试使用-dadb install -r -d <apk>

答案 1 :(得分:0)

adb uninstall <package-name> 应卸载系统应用程序的更新。 我可以确认它适用于 Android 12。

说明

在 Android 设备上,系统应用程序安装到只读分区:通常是 system,但也可能是 product 分区。

当这些应用程序通过 PlayStore 或其他类似方式(不是系统更新!)接收更新时,这些更新会安装到 userdata 分区(读写)分区。

adb unintall 只是从 userdata 分区中删除这些更新(显然它无法从只读分区中删除任何内容)。

或者,如果您将设备“恢复出厂设置”,它会擦除​​ userdata 分区,因此您将使用系统应用程序的“库存”版本。

关于 readonly 分区的注意事项

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

user builds 是您从商店购买设备时获得的。

但是,您可以自己构建 userdebugeng 变体,将其闪存到您的设备上,然后在 adb remountreadonly readwrite 分区。 您可以阅读有关构建 Android here 的更多信息。