簡體   English   中英

更新AOSP內置系統應用程序

[英]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

另一種方式是:

  1. 使用adb push將新apk復制到設備的SD卡
  2. mount / system read write: mount -o rw,remount,rw /system
  3. 將/ sdcard中的新.apk復制到/ system / app中的舊.apk上
  4. 刪除舊.apk的.odex文件
  5. 重啟設備

對於開發,您可以使用簡單的腳本執行此步驟。

檢查編譯/ envsetup.sh文件-有還命令mmpmmmp建立和推動一個模塊連接的設備。 此外, 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM