Android恢复出厂设置流程分析
16lz
2021-01-26
一、应用层流程分析
设置模块中恢复出厂设置,不管是否删除SD卡,最终都会执行如下两步:
1、 往/cache/recovery/command文件中写入命令字段
2、 重启系统,进入recovery模式
具体可参考framework/base/core/java/android/os/RecoverySystem.java文件,代码片段如下:
在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分区,代码片段如下:
分区擦除后,系统重启,然后进正常开机流程,重新使用system分区的内容完成开机初始化,代码片段如下:至此,恢复出厂设置流程完毕。
更多相关文章
- Android(安卓)读取Bitmap的几种方式
- ViewModels 和 LiveData:模式 +反模式
- Android(安卓)Phonebook编写联系人UI加载及联系人保存流程(四)
- Android(第一季重制版)
- Dcloud安卓离线打包
- [Android(安卓)Studio] 关于*.SO压缩问题
- Android(安卓)button, xml文件定义形状,代码中修改背景颜色
- Android(安卓)MVPR 架构模式-Part1
- android使用ffmpeg的实例程序