在做這個(gè)功能之前我是一點(diǎn)都不了解這是啥,趕在雙節(jié)之后的第一天,有點(diǎn)趕鴨子上架的趕腳。在做這個(gè)功能之前先了解一下這是個(gè)啥?
標(biāo)準(zhǔn)OTA升級(jí)流程:
1、Android設(shè)備與OTA服務(wù)器進(jìn)行交互,如果有更新會(huì)推送給客戶,包含OTA更新包的下載地址和一些版本信息
2、Update程序會(huì)將更新包下載到cache分區(qū)下,并提醒用戶安裝更新。
3、設(shè)備會(huì)重啟進(jìn)入recovery模式,同時(shí)啟動(dòng)recovery分區(qū)下運(yùn)行環(huán)境,不再啟動(dòng)boot分區(qū)下的運(yùn)行環(huán)境。
4、recovery運(yùn)行環(huán)境初始化時(shí)會(huì)啟動(dòng)recovery二進(jìn)制程序并根據(jù)/cache/recovery/command中的命令對(duì)更新包進(jìn)行下一步操作。
5、Recovery運(yùn)行環(huán)境對(duì)更新包中/res/key的簽名進(jìn)行校驗(yàn),如果校驗(yàn)失敗會(huì)中斷升級(jí)。
6、Recovery二進(jìn)制程序會(huì)對(duì)更新包中的數(shù)據(jù)進(jìn)行解壓同時(shí)根據(jù)解壓出的數(shù)據(jù)對(duì)boot、system、和vender分區(qū)進(jìn)行相應(yīng)的更新。對(duì)system分區(qū)的更新也同時(shí)包含了新的recovery分區(qū)的更新。
7、重啟設(shè)備
a.載入新的boot分區(qū),并執(zhí)行升級(jí)后的system分區(qū)中的二進(jìn)制文件。
b.系統(tǒng)啟動(dòng)時(shí)會(huì)同時(shí)校驗(yàn)recovery分區(qū),如果recovery與升級(jí)時(shí)保存在system分區(qū)下的信息不一致會(huì)對(duì)recovery進(jìn)行更新。
8、系統(tǒng)更新完成。
OTA(Over-the-Air Technology)空中下載技術(shù),聽著是個(gè)高大上的名字。
有待完善!。。。后續(xù)進(jìn)行中