Android恢复出厂设置流程分析

一、应用层流程分析

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

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

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

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

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

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

 

二、恢复模式流程分析

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

Android恢复出厂设置流程分析 - 唐敏 - Hello World
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恢复出厂设置流程分析 - 唐敏 - Hello World
分区擦除后,系统重启,然后进正常开机流程,重新使用system分区的内容完成开机初始化,代码片段如下:

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值