2015年8月30日 星期日

Android - Make signed ota update file

經過修改Release key的步驟及漫長的build流程,我們可以開始製作OTA更新檔。

A. 製作signed-target_files.zip

make_ota_target_file 或 make_ota_package
在out/target/product/fiber-3g/obj/PACKAGING/target_files_intermediates目錄底下生成fiber_3g-target_files-xxx.zip
使用sign_target_files_apks製作signed-target_files.zip
編譯過程會遇到下面的錯誤,原因是由於有些apk程序已經簽過名了或者找不到對應的key,我們僅需將列出來的apk檔加入排除項目即可。
clip_image002
./build/tools/releasetools/sign_target_files_apks \
-d ./build/target/product/security \
-k ./build/target/product/security=./build/target/product/security \
-o \
out/target/product/fiber-3g/obj/PACKAGING/target_files_intermediates/*-target_files-*.zip \
signed-target_files.zip

在android4.4目錄底下生成signed-target_files.zip

B. 製作signed-img.zip

使用img_from_target_files製作signed-img.zip
./build/tools/releasetools/img_from_target_files \
signed-target_files.zip \
signed-img.zip

在android4.4目錄底下生成signed-img.zip

C. 製作完整升級包signed-ota_update.zip

使用ota_from_target_files製作signed-ota_update.zip
./build/tools/releasetools/ota_from_target_files \
-k ./build/target/product/security/releasekey \
signed-target_files.zip \
signed-ota_update.zip

在android4.4目錄底下生成signed-ota_update.zip

D. 製作差異升級包signed-ota-inc.zip

差異升級包,簡稱差分包,它僅使用於兩個版本之間,升級必要的內容而非全部內容,體積小是它最大的優點。要生成差分包,必須提供前一版本的target-file檔,也將是比較文件。
在對應out目錄下out/target/product/xxx/obj/PACKAGING/target_files_intermediates/,生成命名為xxx-target_files-xxx.zip的target-file檔,將其保存起來。
將比較版本的target-file檔拷貝到Android的根目錄下,注意,必須保證Android根目錄下只有一個zip格式的檔。
make_ota_package_inc

在android4.4/out/target/product/xxx目錄底下生成xxx_xxx-ota-xxx-inc.zip
注意:該差分包僅對指定的前一版本固件有效
unsigned-target_files.zip 僅能生成unsigned-ota-inc.zip
signed-target_files.zip僅能生成signed-ota-inc.zip
這邊得留意提供的target_files.zip有無簽章過,否則更新時會驗證失敗。
 

刷機更新系統

A. 透過fastboot tool

輸入指令進入bootloader mode
adb reboot bootloader

輸入指令檢查devices是否已連接
fastboot devices

輸入指令開始更新
fastboot update signed-img.zip

clip_image002[5]
目前Windows上fastboot devices安裝完驅動抓不到機器,不知是什麼原因。

B. 透過Recovery Mode

1. 完整包升級
將signed-ota_update.zip複製到internal storage
adb reboot recovery

選擇apply update from internal storage
再選擇signed-ota_update.zip更新
clip_image004
2. 差分包升級
將fiber_3g-ota-xxx-inc.zip複製到internal storage
adb reboot recovery

選擇apply update from internal storage
再選擇fiber_3g-ota-xxx-inc.zip更新

沒有留言:

張貼留言