Android恢复出厂设置流程分析

一、应用层流程分析

设置模块中恢复出厂设置,不管是否删除SD卡,最终都会执行如下两步:

1、  往/cache/recovery/command文件中写入命令字段

2、  重启系统,进入recovery模式

具体可参考framework/base/core/java/android/os/RecoverySystem.java文件,代码片段如下:

Android恢复出厂设置流程分析_第1张图片

在rebootWipeUserData方法中,会调用bootCommand方法,并传入参数--wipe_data命令字段,重启进入recovery模式后,recovery服务会通过读取此参数来擦除data和cache分区,详细流程见下文。

 

二、恢复模式流程分析

重启后,从recovery模式的init.rc文件中可以看到启动recovery服务,具体可参考bootable/recovery/etc/init.rc文件,代码片段如下:

recovery服务的主函数在bootable/recovery/recovery.c文件中,main函数的分析如下:

ui_init()

说明:初始化ui,recovery模式的交互界面

get_args(&argc, &argv);

说明:读取/cache/recovery/command文件,并根据命令字段进行相应操作,因为恢复出厂设置的时候/cache/recovery/command的内--wipe_data,所以它会擦除data和cache分区,代码片段如下:

Android恢复出厂设置流程分析_第2张图片
分区擦除后,系统重启,然后进正常开机流程,重新使用system分区的内容完成开机初始化,代码片段如下:

Android恢复出厂设置流程分析 - 唐敏 - Hello World

至此,恢复出厂设置流程完毕。

你可能感兴趣的:(Android恢复出厂设置流程分析)