假设我们已经下载,构建并刷新了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]
答案 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 文件 - 还有命令mmp
和mmmp
来构建并将模块推送到连接的设备。此外,adb sync
可用于同步整个图像,因此,如果您更新了模块,则更改的文件将被推送到设备。
此外,您可以通过常规`adb push&#39;来更改文件。并重新启动设备。
我不知道是否可以通过adb install
更新系统应用程序,可能是的,但我认为您需要在清单文件中增加内部版本号。
我认为您无法使用adb install -r
卸载系统应用,因为只能从system
将应用从data
分区中删除。在这种情况下,我不知道你为什么会得到INSTALL_FAILED_INVALID_APK,可能是因为app manager确实无法卸载基本系统apk。
答案 2 :(得分:0)
另一种方法是:
adb push
mount -o rw,remount,rw /system
对于开发,您可以使用简单的脚本执行此步骤。