Android手机FOTA升级的大概流程介绍
生活随笔
收集整理的這篇文章主要介紹了
Android手机FOTA升级的大概流程介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文內容轉載自FOTA升級流程以及FOTA相關知識總結兩篇文章,有需要可去原文查看。
Android設備的系統升級有兩種方式:
(1)下載更新包到手機后,手動安裝,即所謂“卡刷包”的形式更新;
(2) 通過 Over-the-air(OTA)的方式更新系統,簡稱為FOTA(Firmware Over The Air)。FOTA升級有兩種方式,一種是Full update,即將整個IMG置于升級包中,然后將升級包直接拷貝到系統;一種是Increamental update,即通過增量式的差分包,只是將系統更新的部分打包,然后以打補丁的形式應用到系統。
Android系統分區
在介紹FOTA升級流程之前,先來看看Android系統的分區。一般,Android系統有如下幾個分區(不同廠商、設備可能有差異):
- /boot:用于系統啟動的分區,包括Linux系統內核和最小的系統文件。它負責安裝系統和其他分區,并加載system分區的代碼。沒有該分區,手機是無法正常啟動的;
- /system:該分區包含了出了 kernel/ramdisk之外的系統應用程序和庫文件。正常操作情況下,該分區是只讀狀態,?其內容僅在OTA更新期間更改;
- /recovery:用于系統升級打補丁,包含了一個完整的Linux操作系統和一個特殊的recovery包。FOTA升級時,下載完更新包后,進入recovery模式,recovery程序會讀更新包,然后將各個patch應用到各個分區;
- /misc:升級時,recovery用于存儲相關信息的小分區
- /data:主要包含了用戶的數據,如聯系人、短信、設置以及安裝的應用。清除該分區等同于將手機重置,OTA不會影響該分區;
- /cache:應用使用的臨時儲存區域,訪問該區域需要特殊權限,同時要用于儲存下載的FOTA包。其他程序使用這個空間,期望文件可以隨時消失。某些OTA軟件包安裝可能會導致此分區被完全擦除。
FOTA升級流程
- 手機會定期檢測是否有更新(也可手動檢測),并通知用戶有新版本可用。
- 將安裝包下載到cache分區,若cache分區不夠,下載到data分區(這時候要注意是否有寫入和刪除權限),并根據system/etc/security/otacerts.zip的證書驗證其加密簽名。系統提示用戶安裝更新。
- 系統重啟到recovery模式,運行的是recovery分區中的系統內核。而不是boot中的系統。
- init進程通過執行init.rc 腳本:service recovery /sbin/recovery 啟動recovery程序
- recovery首先校驗下載的安裝包是否與res/keys(ramdisk)中的公匙相匹配。
- recovery根據腳本解析安裝包,然后將修改分別更新到對應的分區中,在system 分區中包含了用于更新recovery分區的內容。
- 系統正常啟動:啟動更新后的boot,system分區。啟動時檢測是否對recovery分區有更新,若有差異,則更新到recovery分區(這里也是為什么修改了recovery的代碼后,需要更新完,且在下個更新中才能得到驗證)
- 設備通知服務器更新完成。
OTA包的制作可去FOTA相關知識總結查看。
總結
以上是生活随笔為你收集整理的Android手机FOTA升级的大概流程介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 走出新手村,软件测试银行项目怎么测试 +
- 下一篇: cmake 从入门到入土