强制执行恢复出厂设置android
前言
有时候我们在系统正常运行的时候,突然跑到recovery里面了,并且停在了如下界面
原因分析
我们查看下recovery的log:
cat /tmp/recovery.log
[ 1.516818] erasing_text: en (68 x 29 @ 990)
[ 1.520345] no_command_text: en (124 x 29 @ 990)
[ 1.523416] error_text: en (49 x 29 @ 990)
[ 1.993076] installing_text: en (228 x 29 @ 990)
[ 2.028634] SELinux: Loaded file_contexts
[ 2.028675] Command: "/sbin/recovery" "--prompt_and_wipe_data" "--reason=RescueParty" "--locale=en_US"
有参数“ --prompt_and_wipe_data”,我们可以在google的官方查看此命令解释如下:
很多用户严重依赖他们的手机,需要一台始终可以正常工作的设备。然而,有时设备会陷入重新启动循环僵局,这样,用户便需要提交支持服务单据或保修咨询。这个过程会让用户不舒服,而对于设备制造商和运营商来说,则需要支付高昂的费用。
Android 8.0 中纳入了一个功能,当该功能注意到核心系统组件陷入崩溃循环僵局时,就会派出“救援程序”。然后救援程序会通过一系列操作来上报相关情况,以期恢复设备。最后的解决方法是,救援程序使设备重新启动并进入恢复模式,然后提示用户恢复出厂设置。
Android 兼容性定义文档并未要求提供此类救援功能,但此类功能对减少邮件支持记录来说非常有用。
实现原理分析
在 Android 8.0 中,救援程序默认处于启用状态,其实现位于/services/core/java/com/android/server/RescueParty.java 中。 在出现以下情况时,救援程序会收到有关启动和崩溃事件的信息,然后即会启动:
system_server 在 5 分钟内重启 5 次以上。
永久性系统应用在 30 秒内崩溃 5 次以上。
当检测到上述某种情况时,救援程序会将其上报给下一救援级别、处理与该级别相关联的任务,并让设备继续运行,看看能否恢复。清除或重置内容的程度随级别而增加。最高级别会提示用户将设备恢复出厂设置。
要支持救援程序,无需特别的硬件支持。实现后,设备的恢复系统必须响应 --prompt_and_wipe_data 命令,且设备必须先提供一种方法,让用户确认用户数据是否有任何损坏,然后再继续运行。此外,恢复系统还应为用户提供有关尝试再次启动设备的选项。
由于每个救援级别都会使设备再次变为可运行状态的时间延后(可能长达 5 分钟),因此设备制造商不应添加自定义救援级别。设备处于不可运行的状态的时间越长,用户发出支持请求或保修咨询,而不是自行恢复其设备的可能性就越大。
例外情况
当设备具有有效的 USB 数据连接时,系统会停止所有救援事件,因为这是一个较强的信号,表示有人正在调试设备。
(1)要停止此类抑制行为,请运行:
adb shell setprop persist.sys.enable_rescue 1
在此处,您可以触发系统或界面崩溃循环。
(2)要触发低级 system_server 崩溃循环,请运行:
adb shell setprop debug.crash_system 1
(3)要触发中级 SystemUI 崩溃循环,请运行:
adb shell setprop debug.crash_sysui 1
这两个崩溃循环都会启动救援逻辑。所有的救援操作也都会记录到存储在 /data/system/uiderrors.txt 中的永久性的 PackageManager 日志中,以供日后进行检查和调试。 此外,“软件包警告消息”部分下的每个错误报告中也会包含这些永久性的日志。
强制执行恢复出厂设置android相关推荐
- Android知识点 431 -- recovery 强制执行恢复出厂设置(Rescue Party)
转载原文:https://www.cnblogs.com/codeking100/p/10339258.html 返回知识列表:Android知识点list 1 Incremented rescue ...
- Android 8.1 recovery 强制执行恢复出厂设置
在工作中开发过程中,我们经常调试apk,然后推进机器里面去会已停止运行,你点几下就会恢复出厂设置. 意思是说,不能加载正常的安卓系统,可能数据损坏,如果你继续收到此消息,请执行恢复出厂设置擦除所有的用 ...
- recovery 强制执行恢复出厂设置(Rescue Party)
有时候我们在系统正常运行的时候,突然跑到recovery里面了,并且停在了如下界面: Can't load Android system. Your data may be corrupt. If y ...
- android root 恢复出厂设置,Android系统 免root 卸载预置应用
如下方法仅能删除当前系统中预置的 APP,恢复出厂设置后,删除的 APP 会恢复.如不清楚包名对应的应用请自行百度,请勿轻易删除未知报名导致系统损坏. 1.关于手机连续点击软件版本号6次,开启手机开发 ...
- android phone恢复出厂设置,Android手机正确恢复出厂设置方法
Android手机正确恢复出厂设置方法 作为一款智能操作系统,Android也内置了许多其他智能操作系统共有的功能,比如每部手机都必备的恢复出厂设置.那么Android手机该如何设置,才能让它正确的恢 ...
- 恢复出厂设置android手机号码,安卓手机怎么恢复出厂设置
很多人的手机用久了,因为垃圾文件过多就会导致手机速度变慢,很多人就想通过恢复手机的出厂设置来提升手机的速度,就是把手机还原到刚买回来时候的那个样子,很多后来自己在手机上安装的软件和一些设置都会清除,这 ...
- 恢复出厂设置android手机号码,手机怎么恢复出厂设置 安卓手机恢复出厂设置方法汇总...
最近接连有不少身边的朋友遇到一些比较奇怪的智能手机问题,比如最开始有朋友无意间设置了图案锁屏保护密码,但之后却不记得自设置的图案密码,导致连续五次解锁失败,手机直接成为了锁定状态,需要注册的谷歌账号密 ...
- 恢复出厂设置android手机号码,安卓手机恢复出厂设置会怎么样?
安卓手机恢复出厂设置会怎么样?事实上,用户若是主动将安卓手机恢复出厂设置,未备份的手机号码(在手机里面的,SIM卡中的电话号码不影响).短信.应用.设置等数据就会被直接删除. 安卓手机恢复出厂设置会怎 ...
- 恢复出厂设置android手机号码,安卓手机怎么正确恢复出厂设置的简单方法
手机难免会出现一些比较难处理的一些现象,比如手机机身无法清理的软件残骸导致的手机卡机现象,不知所云的设置,找不到设置按钮了,严重影响使用感觉,这都是难免出现的一些问题这个时候可能就需要通过一些强硬的手 ...
最新文章
- F#创建者Don Syme谈F#设计原则
- C# vs C++ 全局照明渲染性能比试
- ALV输出的时候,输出字段内容前面的空格
- 银河麒麟svn: E215000: GNOME Keying被锁定,并且我们处于非交互方式
- neo4j 连接超时_Neo4j:遍历查询超时
- svga文件如何查看_电脑隐藏文件?如何查看隐藏文件 方法简单易学
- Kubernetes-命名空间namespace(ns)(十四)
- C#中Windows Media Player控件使用实例|方法
- linksys 打印软件_Linksys对FCC表示“不”,Mozilla扩大了开源资金,还有更多新闻
- Linux下用vi 打开文件出现乱码
- asp.net 数据绑定 使用eval 时候报 “字符文本中的字符太多” 问题解决
- 有监督学习(supervised learning))与无监督学习(unsupervised learning)之间有何区别?
- bzoj2101[Usaco2010 Dec]Treasure Chest 藏宝箱*
- 关于抖音抓包的一些分析和抖音视频批量下载
- haas506 2.0开发教程-hota(仅支持2.2以上版本)
- 汽车半导体FMEDA的挑战和解决方案
- python写文件自动换行_python怎么换行继续写脚本
- openCV之waitKey函数简介
- 设计美好的服务器(6)--SEDA架构笔记
- C#元祖Tuple的事例
热门文章
- Go语言格式化金额为3个一组隔开
- UITableViewCell awakeFromNib
- 使用防火玻璃块创建安全,时尚的窗户和墙壁
- rust队友开挂_腐蚀怎么判断开挂玩家?开挂玩家识别方法一览
- issue no route to host 为什么 jmeter 分布式测试,一定要设置 java.rmi.server.hostname--(有效)
- 【时间序列分析】MA模型公式总结
- uni-app中正则表达式验证手机号,身份证号输入格式是否正确
- 会计基础(1) - 总论
- 从“快艇”、“集装箱”到“管道”,SAP在中国再加速
- 新世纪周刊:美剧的今世与前生