admin 管理员组文章数量: 1184232
/**
* 恢复出厂设置,需要系统权限,以及系统签名 android:sharedUserId="android.uid.system"
*/
public void resetSystem() {
Intent intent = new Intent("android.intent.action.FACTORY_RESET");
//8.0
// intent = new Intent("android.intent.action.MASTER_CLEAR");
//9.0
intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
intent.setPackage("android");
//以上区分不同系统
intent.putExtra("android.intent.extra.REASON", "FactoryMode");
//是否擦除SdCard
intent.putExtra("android.intent.extra.WIPE_EXTERNAL_STORAGE", true);
intent.putExtra("android.intent.extra.EXTRA_WIPE_ESIMS", true);
sendBroadcast(intent);
}
恢复出厂设置的脚本
#/bin/sh
rm -rf /cache/recovery/command
echo "--wipe_data" > /cache/recovery/command
echo "--wipe_cache" >> /cache/recovery/command
sync
sync
sleep 1
sync
sync
reboot recovery
把以上脚本写到一个 reset.sh 文件中
push reset.sh 到 /data/local/tmp/
adb shell sh /data/local/tmp/reset.sh
恢复出厂设置的流程
(1)用户在系统设置中选择了“恢复出厂设置”。
(2)Android 系统在/cache/recovery/command 中写入“–wipe_data”。
(3)设备重启后发现了 command 命令,于是进入 recovery。
(4)recovery 将在 BCB(bootloader control block)中写入“boot-recovery”和“–wipe_data”具体是在 get_args()函数中——这样即便设备此时重启,也会再进入 erase 流程。
(5)通过 erase_volume 来重新格式化/data。
(6)通过 erase_volume 来重新格式化/cache。
(7)finish_recovery 将擦除 BCB,这样设备重启后就能进入正常的开机流程了。
(8)main 函数调用 reboot 来
版权声明:本文标题:Android恢复出厂设置代码+脚本 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1763788120a3270268.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论