2013-05-31 82 views
6

我正在使用自定義ROM,在這裏我需要對SytemUI執行一些自定義(例如狀態欄)。所以,這裏是我做如何在仿真器和實際設備上升級SystemUI.apk

1. $ . build/envsetup.sh 
2. $ lunch 1 // normal emulator 
3. $ make -j4 

一旦我的模擬器是啓動和豆形軟糖默認4.2.2 AOSP運行的步驟,我然後做在狀態欄佈局例如一些變化我改變背景顏色,然後我進行

4. $ mmm frameworks/base/packages/SystemUI //Creates the SystemUI.odex & SystemUI.apk in the out/target/product/generic/system/app/ 

讓我怎麼上運行的模擬器/設備更新此SystemUI APK? 在其upgarde期間,哪些所有其他apks將與SystemUI apk一起使用?

注意:這種情況下,我想將SystemUI.apk OTA的更新發送給該設備的用戶的實際設備有效,例如,目前谷歌爲玩遊戲市場的應用程序(自動更新,無需重新啓動設備)。

所以請在這兩種情況下建議(模擬器和真實設備場景),如何實現這一點。

我已經與亞行使用的命令在模擬器

$ adb install -r out/target/product/generic/system/app/SystemUI.apk 嘗試,但它給人的錯誤INSTALL_FAILED_DEXOPT

幫助感激!

回答

3

對不起,我沒有我的環境設置來輕鬆測試此建議,但對於模擬器而不是adb install,請嘗試使用adb push(爲源和目標提供所需的路徑)。您可能需要確保系統分區是不是隻讀先重新安裝它做:

adb remount 
    adb push out/target/product/generic/system/app/SystemUI.apk /system/app 

在那之後,我想你可能需要使用adb shell psadb shell kill nnnn(與NNNN = PID太重啓com.android.systemui過程從ps命令)。

你可能也想看看adb sync命令,因爲它可以自動檢測哪些文件需要更新:

adb sync [ <directory> ]  - copy host->device only if changed 
           (-l means list but don't copy) 
notes: 
    <localdir> can be interpreted in several ways: 
    - If <directory> is not specified, both /system and /data 
    partitions will be updated. 
    - If it is "system" or "data", only the corresponding partition 
    is updated. 

PS:如果你推的時候得到一個「內存不足」的錯誤文件,你可能需要modify your emulator launch options to include a larger partition size

emulator -partition-size 512 

希望這有助於!

+1

嘗試從adb shell執行'stop'和'start'命令來重新啓動Android運行時,而不是處理查殺。 –

+0

+1'亞行外殼stop'其次是亞行'殼start'做似乎是文件尤其是'sync' :) – Joe

+0

感謝喬和克里斯 - 斯特拉頓的寶貴答覆後更新干淨地重新啓動更文明的方式。我試着按照這些建議。但它不啓動系統ui服務。這裏是日誌: - 06-04 04:00:54.385:I/PackageManager(277):期待更好的更新系統應用com.android.systemui;去除系統。應用程序。 06-04 04:00:58.895:W/ActivityManager(277):無法啓動服務意圖{cmp = com.android.systemui/.SystemUIService} U = 0:未找到。我改變了系統ui的狀態欄佈局文件中的bg顏色,然後做了mmm,adb停止並開始,我得到這個錯誤。對此有何想法?並且不能在沒有重啓的情況下更新 – user755499

0

我在cyanogenmod 10.2.1上試過了,它能正常工作。編譯systemui.apk並生成deodexed版本:0​​在SystemUI文件夾中創建SystemUI DISABLE_DEXPREOPT = true WITH_DEXPREOPT = false 。 在設備上,連接adb外殼,保存原始的SystemUI。APK

cp /system/app/SystemUI.apk <somewhere>

然後

mount -o remount,rw /system

允許複製到/系統新SystemUI.apk/app目錄

cp SystemUI.apk /system/app

使用MMM命令來構建最終版本,你想包括在你的自定義rom

希望這可以幫助

相關問題