1. 程式人生 > >Android系統Recovery工作原理之使用update.zip升級過程分析

Android系統Recovery工作原理之使用update.zip升級過程分析

                       ① 在main函式的開頭,首先將使用者設定的option選項存入OPTIONS變數中,它是一個python中的類。緊接著判斷有沒有額外的指令碼,如果有就讀入到OPTIONS變數中。
                       ② 解壓縮輸入的zip包,即我們在上文生成的原始zip包。然後判斷是否用到device-specific extensions(裝置擴充套件)如果用到,隨即讀入到OPTIONS變數中。
                       ③ 判斷是否簽名,然後判斷是否有新內容的增量源,有的話就解壓該增量源包放入一個臨時變數中(source_zip)。自此,所有的準備工作已完畢,隨即會呼叫該 指令碼中最主要的函式WriteFullOTAPackage(input_zip,output_zip)

                       ④ WriteFullOTAPackage函式的處理過程是先獲得指令碼的生成器。預設格式是edify。然後獲得metadata元資料,此資料來至於Android的一些環境變數。然後獲得裝置配置引數比如api函式的版本。然後判斷是否忽略時間戳。
                       ⑤ WriteFullOTAPackage函式做完準備工作後就開始生成升級用的指令碼檔案(updater-script)了。生成指令碼檔案後將上一步獲得的metadata元資料寫入到輸出包out_zip。
                       ⑥至此一個完整的update.zip升級包就生成了。生成位置在:out/target/product/tcc8800/full_tcc8800_evm-ota-eng.mumu.20120315.155326.zip。將升級包拷貝到SD卡中就可以用來升級了。

四、 Android OTA增量包update.zip的生成