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