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
本文深入解析Android设备Recovery模式下的服务流程,涵盖恢复出厂设置、OTA升级及加密文件系统操作。重点分析OTA升级过程,从启动流程到初始化配置,直至recovery服务与adbd调试服务的启动。

913

被折叠的 条评论
为什么被折叠?



