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

Android Recovery服务流程分析

  • Recovery服务内容
  • 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

你可能感兴趣的:(Android OTA升级原理 - Recovery流程分析(整理二))