Android-AB系统OTA升级介绍
什么是OTA升級(jí)?
OTA是Over-the-Air的簡(jiǎn)稱,OTA升級(jí)可以理解為用戶正常使用過(guò)程中進(jìn)行升級(jí),OTA 升級(jí)旨在升級(jí)基礎(chǔ)操作系統(tǒng)、系統(tǒng)分區(qū)上安裝的只讀應(yīng)用和/或時(shí)區(qū)規(guī)則。
什么是Android AB系統(tǒng)更新
A/B 系統(tǒng)升級(jí),也叫做無(wú)縫更新,A/B系統(tǒng)升級(jí),顧名思義是有兩個(gè)系統(tǒng),在磁盤上開(kāi)辟兩個(gè)存儲(chǔ)空間A/B存儲(chǔ)空間,在升級(jí)過(guò)程中保證有一個(gè)可以正常運(yùn)行的系統(tǒng),采用這種方式可以大大提升更新的成功性,使用這種更新后,在ota 更新過(guò)程中,即使用戶手機(jī)掉電,也能保證系統(tǒng)再次上電后可以正常運(yùn)行。
A/B系統(tǒng)更新的好處
OTA 更新(往存儲(chǔ)空間寫(xiě)入升級(jí)包時(shí))可以在系統(tǒng)運(yùn)行期間進(jìn)行,而不會(huì)打斷用戶。
如果 OTA 失敗,設(shè)備會(huì)啟動(dòng)到 OTA 之前的磁盤分區(qū),并且仍然可以使用。
更新包可以流式傳輸?shù)?A/B 設(shè)備,因此在安裝之前不需要先下載更新包。
緩存分區(qū)不再用于存儲(chǔ) OTA 更新包,因此無(wú)需調(diào)整緩存分區(qū)的大小。
A/B OTA系統(tǒng)和普通系統(tǒng)分區(qū)
普通系統(tǒng)只需要一個(gè)boot存儲(chǔ)空間和一個(gè)system存儲(chǔ)空間,但是A/BOTA系統(tǒng)需要開(kāi)辟兩個(gè)boot存儲(chǔ)空間和兩個(gè)system存儲(chǔ)空間。這是為了保證升級(jí)分區(qū)不對(duì)運(yùn)行分區(qū)產(chǎn)生影響,保證系統(tǒng)OTA不宕機(jī)的一個(gè)保障。
OTA升級(jí)流程
差分包升級(jí)和全包升級(jí)
全包升級(jí)是升級(jí)boot.img和system.img兩個(gè)分區(qū)的所有內(nèi)容,差分包升級(jí)的話,只升級(jí)增量部分,就是在基礎(chǔ)版本上做差分升級(jí)。
因?yàn)橹挥行薷牟糠值陌姹尽K圆罘职麿TA升級(jí)文件會(huì)比全包OTA升級(jí)文件小很多,這樣可以節(jié)省云端存儲(chǔ)空間和下載流量。
但是因?yàn)椴罘职S護(hù)版本的需要特別小心,如果0.0.1版本想升級(jí)到0.0.3版本,中間有一個(gè)0.0.2版本沒(méi)有升級(jí),直接升級(jí)到0.0.3版本,在差分升級(jí)的情況下是會(huì)出錯(cuò)的,所以在每次出版本時(shí)需要專人維護(hù)。
基于以上原因,我們?cè)瓉?lái)公司在選擇上,選擇了全包升級(jí)方式,一個(gè)升級(jí)包在500M左右,實(shí)際速度還滿足要求。
升級(jí)包的制作
這部分google有自己的機(jī)制,在此基礎(chǔ)上,rockchip和mtk也有自己相對(duì)應(yīng)的文檔,我們需要基于廠商的文檔來(lái)制作升級(jí)包。
如何判斷開(kāi)機(jī)運(yùn)行的分區(qū)地址
正常開(kāi)機(jī)的時(shí)候,會(huì)出現(xiàn)每個(gè)分區(qū)的執(zhí)行地址,可以在串口日志先觀察開(kāi)機(jī)時(shí)候運(yùn)行的地址。##Booting Android Image at 0x0207f800 ...
參考資料
google-ota介紹
https://source.android.google.cn/devices/tech/ota/dynamic_partitions/implement#partitioning-changes"%3Ehttps://source.android.google.cn/devices/tech/ota/dynamic_partitions/implement#partitioning-changes
android-ota-系統(tǒng)啟動(dòng)
https://blog.csdn.net/guyongqiangx/article/details/72604355"%3Ehttps://blog.csdn.net/guyongqiangx/article/details/72604355
掃碼或長(zhǎng)按關(guān)注
回復(fù)「?籃球的大肚子」進(jìn)入技術(shù)群聊
總結(jié)
以上是生活随笔為你收集整理的Android-AB系统OTA升级介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java反编译工具Luyten
- 下一篇: MAC 及 Python 快捷键