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