更新AOSP内置系统应用程序

时间:2017-10-01 16:40:59

标签: android build android-source

假设我们已经下载,构建并刷新了AOSP源代码。现在更改系统应用程序(例如,在packages / apps / Nfc包中更改为常量)。

下一步是构建它,有两种方法可以做到:

cd packages/apps/Nfc; mm

mmm Nfc

这将创建/ target / product // system / app / NfcNci / NfcNci.apk文件

更新系统应用的正确方法是什么?

我尝试使用 adb install NfcNci.apk ,但没有成功:

~/android/aosp-7.1.2-3.10-v2/out/target/product/kugo/system/app/NfcNci$ adb install NfcNci.apk
Failed to install NfcNci.apk: Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install com.android.nfcnci without first uninstalling.]
~/android/aosp-7.1.2-3.10-v2/out/target/product/kugo/system/app/NfcNci$ adb install -r NfcNci.apk
Failed to install NfcNci.apk: Failure [INSTALL_FAILED_INVALID_APK: Package couldn't be installed in /data/app/com.android.nfcnci-1: Package /data/app/com.android.nfcnci-1/base.apk code is missing]

3 个答案:

答案 0 :(得分:2)

找到一种轻松“重新安装”的方法。应用程序本身(让我们以设置应用程序为例):

mmm packages/apps/Settings  # Build the module
adb root ; adb remount  # Restart adbd as root and mount /system as writable
adb push out/target/product/<device_name>/system/priv-app/Settings /system/priv-app  # Push the built files to the device

然后强制关闭并重新启动应用程序(通过从最近中轻扫)。无需重启设备即可进行更改

注:根据应用的不同,路径可能位于system/app而不是/system/priv-app

答案 1 :(得分:0)

检查 build / envsetup.sh 文件 - 还有命令mmpmmmp来构建并将模块推送到连接的设备。此外,adb sync可用于同步整个图像,因此,如果您更新了模块,则更改的文件将被推送到设备。

此外,您可以通过常规`adb push&#39;来更改文件。并重新启动设备。

我不知道是否可以通过adb install更新系统应用程序,可能是的,但我认为您需要在清单文件中增加内部版本号。

我认为您无法使用adb install -r卸载系统应用,因为只能从system将应用从data分区中删除。在这种情况下,我不知道你为什么会得到INSTALL_FAILED_INVALID_APK,可能是因为app manager确实无法卸载基本系统apk。

答案 2 :(得分:0)

另一种方法是:

  1. 使用adb push
  2. 将新apk复制到设备的SD卡
  3. mount / system read write:mount -o rw,remount,rw /system
  4. 将/ sdcard中的新.apk复制到/ system / app
  5. 中的旧.apk上
  6. 删除旧.apk
  7. 的.odex文件
  8. 重启设备
  9. 对于开发,您可以使用简单的脚本执行此步骤。