[英]Update AOSP built-in system app
假設我們已經下載,構建並刷新了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]
找到了一種輕松“重新安裝”應用程序本身的方法(讓我們以設置應用程序為例):
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
另一種方式是:
adb push
將新apk復制到設備的SD卡 mount -o rw,remount,rw /system
對於開發,您可以使用簡單的腳本執行此步驟。
檢查編譯/ envsetup.sh文件-有還命令mmp
和mmmp
建立和推動一個模塊連接的設備。 此外, adb sync
可用於同步整個圖像,因此如果您更新了模塊,則更改的文件將被推送到設備。
您也可以通過常規的'adb push'和重啟設備來放置更改的文件。
我不知道是否可以通過adb install
更新系統應用程序,可能是的,但我認為您需要在清單文件中增加內部版本號。
我不認為您可以使用adb install -r
卸載系統應用程序,因為無法從system
分區中刪除應用程序,只能從data
刪除。 我不知道你為什么在這種情況下得到INSTALL_FAILED_INVALID_APK,可能是因為app manager無法卸載基本系統apk。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.