About Android OTA system update

       OTA升級是Android系統提供的標準軟件升級方式。它功能強大,可以無損失升級系統,主要通過網絡[例如WIFI、3G]自動下載OTA升級包、自動升級,但是也支持通過下載OTA升級包到SD卡升級。

一、服務器

OTA升級搭建OTA服務器是比較基本的,我們需要把更新軟件放到服務器供用戶下載更新,但是做一個完整的OTA服務器卻非常複雜,因爲這要涉及到下載遵循的標準,軟件的管理,下載的計費,安全認證等問題。

二、差異包

   差異包的生成也是OTA升級的一個重要步驟,編譯過系統之後,執行下面的命令:

 $make otapackage

即可獲得:out/target/product/{product_name}/ {product_name}-ota-eng.{uid}.zip

將該文件改名爲update.zip放到T卡根目錄, 即可開始recovery模式下的 OTA 升級。創建需要的OTA update image(包括全部更新及部分更新)的工具Releasetools ,具體路徑build/tools/releasetools/用以與build system配合,生成對應的full/incremental的update.zip包,對應的編譯腳本在build/core/main.mk及Makefile, 搜索target-files-package關鍵字build/tools/releasetools
├── check_target_files_signatures -- 用來檢查cert和update包之間的關係
├── common.py -- 各種工具類,參數處理/META文件處理/image生成/signcertification/patch file 操作等等
├── edify_generator.py -- 用來生成edify腳本, 關於edify,參照bootable/recovery/edify/下的readme及tjworld,主要是給manufacturer提供一個簡單的shell語言  來進行必要的recovery操作. 後面會單獨寫篇文章單獨描述一下edify的使用方法
├── img_from_target_files -- 由生成target zip file的製作被fastboot update命令所使用的xxx.img文件
├── ota_from_target_files -- 生成經過各種簽名的TFP更新包
└── sign_target_files_apks -- 用來對apk或者生成測zip更新包進行簽名。

此工具都不提供boot.img和update image之間的交互操作, 所以在製作update image時,要手動確保你製作的update image能夠被安裝在預先已經有boot image的device上。

re-sign apks是爲了apk的security, 用各個oem廠商的簽名替代Test的簽名.簽名是使用openssl生成的帶public exponent3 的 2048-bit RSA keys.

Related filesystem partition談到Update,不得不提到android的分區情況(參見各個OEM的配置)。
    boot, 包含以下文件:metadata, kernel image,ramdisk, optional 2nd-stage bootloader image, 由mkbooting(system/core/mkbooting)生成system, 系統程序及apk等等。
    data, 用戶數據, 會被factory reset clear
    recovery, 爲了恢復misc, 包含Bootloader Control Block (BCB), recovery console通過它與bootloader交互cache, 用來支持update的temp分區,及被特定apk作爲temp來使。

還有一個重要的文件recovery.fstab, 用來爲recovery console及releasetools提供能夠加載的文件系統及對應的mount node。
三、升級過程

下載後一定要放在SD根目錄,即/sdcard/update.zip。

update.xml文件放在服務器上,當客戶端請求的參數正確時,返回相應的信息。

update.xml的內容,根據需要可以添加;Md5需要校驗下載後包的完整性。updatepath爲實際的下載地址

至少需要如下字段:

<ver>android3.2</ver>

<md5>xxx</md5>

<updatepath>http://xxxx/update.zip</updatepath>

 

發佈了25 篇原創文章 · 獲贊 2 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章