我们在自定义Android设备的/ system / priv-app文件夹中包含了一个apk。这个apk处理所有设备核心功能,甚至可以从我们的仪表板下拉升级(自身的更新版本)。让我们称之为core.apk。我们希望通过下载更新(newcore.apk),启动另一个apk(/system/priv-app/update.apk)并自行关闭来支持更新core.apk。然后,update.apk可以用/system/priv-app/newcore.apk替换/system/priv-app/core.apk。更换后,系统重启应支持执行/system/priv-app/newcore.apk(理想情况下)。
我们正在运行Kitkat(API 19)。我已经阅读了有关改进的PackageManager对API 21中apk更新的支持,但这对我们没有帮助。
我认为根本问题是我们必须依赖Android API来支持更新/ system下的任何内容,因为此分区是只读的。那么,这种支持是否存在?在这个论坛中有很多关于支持标准应用程序更新的系统应用程序(在/ data / app中),但我很难找到一个有助于在/ system / priv-app中进行apks编程更新的解决方案(没有用户交互)疗程)。
更多信息,我们是使用Android Studio的自签名apks,但如果需要,我们可以使用我们的AOSP构建的系统签名进行签名(更多工作但可行)。
更多信息,我们熟悉使用su访问功能,包括重新安装/系统(获取r / w访问权限),但我更愿意避免这条路径,因为让我们的AOSP构建支持su并非易事,我们从安全角度来看,不要认为拥有su访问权是最好的选择。
欢迎任何帮助或建议。