更新AOSP内置系统应用程序

Bam*_*amx 3 android build android-source

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

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

cd packages/apps/Nfc; mm
Run Code Online (Sandbox Code Playgroud)

或者

mmm Nfc
Run Code Online (Sandbox Code Playgroud)

这将创建 out/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]
Run Code Online (Sandbox Code Playgroud)

Bam*_*amx 5

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

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
Run Code Online (Sandbox Code Playgroud)

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

注意:根据应用程序的不同,路径可能会打开system/app而不是/system/priv-app