由於特殊需求,需要針對user版本機器做OTA小包更新,單獨更新某個庫文件。
1. 按照普通流程生成一個OTA差分包,基於生成后的差分包我們做定制修改;
2. 主要修改update.zip 包目錄/META-INF/com/google/android/updateer-script 文件,這個也是整個升級的腳本; 去掉所有的校驗和不需要的語句,核心語句是package_extract_dir("system", "/system"); 將zip包的system文件夾覆蓋到系統文件系統中;
3. 更新system文件夾下面文件,按照系統目錄預制文件即可;
4. 對update.zip重新簽名,參考網上 用java -jar sinak ...... 語句無法正確簽名,所以修改了 ota_from_target_files ,讓正常OTA制作中對特定文件簽名,跟蹤代碼找到 SignOutput(temp_zip_file.name, args[1]) 語句,修改成 SignOutput("/tmp/test", args[1]), 將我們修改后的update.zip 放到 /tmp/test ,然后再執行一次正常OTA差分包制作流程(其實就是對我們修改后的update簽名)
5. 至此,生成的本地zip包就是我們定制的update了, 驗證OTA更新一切正常。
這個流程主要是針對一些特殊需求場景適用,一般還是正常做OTA差分包更新就可以了。
