Android OTA升級原理 - Recovery流程分析(整理二)

Android Recovery服務流程分析

Recovery服務內容

recovery服務內容主要分三類:

  • Factory reset恢復出廠設置
  • OTA install 即update.zip包升級
  • ENCRYPTED FILE SYSTEMENABLE/DISABLE,使能/關閉加密文件系統
    本節主要分析OTA升級流程。

Recovery啓動過程

前面已經講到在正常模式下通過reboot recovery讓設備重啓。實際上是對BCB區域寫入recovery模式標誌,用來告訴bootloader接下來加載那一部分image:boot.img還是recovery.img。這時會選擇加載recovery.img它和正常img類似,也包含了內核和根文件系統。
bootloader如何加載recovery流程參考鏈接

然後啓動文件系統,在進入文件系統後會執行/init,init的配置文件就是/init.rc。這個配置文件來自bootable/recovery/etc/init.rc。查看這個文件我們可以看到它做的事情:

   ①設置環境變量。
   
   ②建立etc連接。

   ③新建目錄,備用。

   ④掛載/tmp爲內存文件系統tmpfs

   ⑤啓動recovery(/sbin/recovery)服務。

   ⑥啓動adbd服務(用於調試)。

這裏最重要的就是啓動recovery服務了。源碼位置在:

AOSP/bootable/recovery/recovery.cpp
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章