Android7.0恢复出厂设置代码流程分析

【参考】 https://blog.csdn.net/lizekun2010/article/details/53119988
作者:lefty蓝
时间:2018-5-3 17:04:35

首先我们知道,Android7.0系统的恢复出厂设置处在"Settings"系统应用的personal区域Backup&reset中看到 ERASE EVERYTHING字符串,不多说,先搜索下"ERASE EVERYTHING"字符串,命令grep -ri "ERASE EVERYTHING" packages/apps/Settings/ :packages/apps/Settings/res/values/strings.xml: Erase everything

查找加载这个字符串的xml文件: grep -ri "master_clear_final_button_text" packages/apps/

packages/apps/Settings/res/layout/master_clear_confirm.xml: android:text="@string/master_clear_final_button_text"

查找加载 master_clear_confirm.xml的java源码文件路径:
根据id再搜索,找到java源文件:
android/packages/apps/Settings/src/com/android/settings/MasterClearConfirm.java
Android7.0恢复出厂设置代码流程分析_第1张图片

接下来看看"ERASE EVERYTHING" 按钮 监听事件实现,

Android7.0恢复出厂设置代码流程分析_第2张图片

Android7.0恢复出厂设置代码流程分析_第3张图片

doMasterclear()实现:
Android7.0恢复出厂设置代码流程分析_第4张图片
从代码可以看到此函数主要是发送广播,根据ACTION_MASTER_CLEAR查找是哪个java类广播接手处理这个广播,发现是MasterClearReceiver.java,接下来就是RecoverySystem.java类去调用方法rebootWipeUserData(context, shutdown, reason)
Android7.0恢复出厂设置代码流程分析_第5张图片


你可能感兴趣的:(Android7.0恢复出厂设置代码流程分析)