【问题标题】:Update system app in android在android中更新系统应用程序
【发布时间】:2022-04-13 23:12:30
【问题描述】:

我开发了一个 android 应用程序并将其作为预构建的 APK 放入 AOSP。 因此该应用程序将作为系统应用程序安装在 /system/app 中。

应用自带更新功能,下载安装较新版本的APK。

但它不起作用,因为无法更新系统应用程序。 有没有办法更新自制系统app?

【问题讨论】:

  • 我已经运行了我的固件。我正在为学生开发学习设备,所以我制作了安卓设备并为这些设备定制了安卓操作系统。
  • 使用系统签名证书(与操作系统签名相同)对您的apk进行签名,然后尝试更新(过度安装)应用程序
  • 您可以在服务端维护应用程序版本,并在使用您的服务时检查用户的应用程序版本和您更新的应用程序版本,如果是旧应用程序,则返回一个升级网址。相应地在应用中处理这种情况并让用户更新应用。
  • @AnandTiwari,你能告诉我如何获得系统签名证书吗?
  • @ZhaoLin,我不确定操作系统是不是你自己的,操作系统的签名证书,是指用于构建操作系统的证书,或者你可以联系你的供应商支持。

标签: android android-source


【解决方案1】:

系统应用可以通过两种方式更新:

  1. 由ota更新更新,这会直接改变应用程序,并且应用程序仍然存在于/system上。

  2. 使用 package install api 更新,这需要新版本的 apk 与 /system 上的签名相同,新版本将安装在 /data 上。这意味着,如果设备被重置,新版本将会丢失。

Ota更新是系统应用更新的正常方式。

【讨论】:

  • 你好,package install api是什么??
  • 我认为他的意思是 pm install -r 对吗?这在 Android 10 上仍然有效吗?
【解决方案2】:

是的,您可以将原始系统应用的更新版本安装到 /data 分区,前提是: 1.两个app版本使用相同的key签名; 2.更新后的应用versionCode大于等于原应用。

进行此更新的一种方法是使用以下 adb 命令:adb install -r <your updated apk file>。然后您可以测试您的更新版本,而无需重新构建您的 AOSP 代码。

请注意,您在 /data 分区中的更新版本将通过恢复出厂数据删除。在这种情况下,您原来的系统应用会再次生效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    • 2022-10-07
    • 1970-01-01
    相关资源
    最近更新 更多