前言

有时候我们在系统正常运行的时候,突然跑到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相关推荐

  1. Android知识点 431 -- recovery 强制执行恢复出厂设置(Rescue Party)

    转载原文:https://www.cnblogs.com/codeking100/p/10339258.html 返回知识列表:Android知识点list 1 Incremented rescue ...

  2. Android 8.1 recovery 强制执行恢复出厂设置

    在工作中开发过程中,我们经常调试apk,然后推进机器里面去会已停止运行,你点几下就会恢复出厂设置. 意思是说,不能加载正常的安卓系统,可能数据损坏,如果你继续收到此消息,请执行恢复出厂设置擦除所有的用 ...

  3. recovery 强制执行恢复出厂设置(Rescue Party)

    有时候我们在系统正常运行的时候,突然跑到recovery里面了,并且停在了如下界面: Can't load Android system. Your data may be corrupt. If y ...

  4. android root 恢复出厂设置,Android系统 免root 卸载预置应用

    如下方法仅能删除当前系统中预置的 APP,恢复出厂设置后,删除的 APP 会恢复.如不清楚包名对应的应用请自行百度,请勿轻易删除未知报名导致系统损坏. 1.关于手机连续点击软件版本号6次,开启手机开发 ...

  5. android phone恢复出厂设置,Android手机正确恢复出厂设置方法

    Android手机正确恢复出厂设置方法 作为一款智能操作系统,Android也内置了许多其他智能操作系统共有的功能,比如每部手机都必备的恢复出厂设置.那么Android手机该如何设置,才能让它正确的恢 ...

  6. 恢复出厂设置android手机号码,安卓手机怎么恢复出厂设置

    很多人的手机用久了,因为垃圾文件过多就会导致手机速度变慢,很多人就想通过恢复手机的出厂设置来提升手机的速度,就是把手机还原到刚买回来时候的那个样子,很多后来自己在手机上安装的软件和一些设置都会清除,这 ...

  7. 恢复出厂设置android手机号码,手机怎么恢复出厂设置 安卓手机恢复出厂设置方法汇总...

    最近接连有不少身边的朋友遇到一些比较奇怪的智能手机问题,比如最开始有朋友无意间设置了图案锁屏保护密码,但之后却不记得自设置的图案密码,导致连续五次解锁失败,手机直接成为了锁定状态,需要注册的谷歌账号密 ...

  8. 恢复出厂设置android手机号码,安卓手机恢复出厂设置会怎么样?

    安卓手机恢复出厂设置会怎么样?事实上,用户若是主动将安卓手机恢复出厂设置,未备份的手机号码(在手机里面的,SIM卡中的电话号码不影响).短信.应用.设置等数据就会被直接删除. 安卓手机恢复出厂设置会怎 ...

  9. 恢复出厂设置android手机号码,安卓手机怎么正确恢复出厂设置的简单方法

    手机难免会出现一些比较难处理的一些现象,比如手机机身无法清理的软件残骸导致的手机卡机现象,不知所云的设置,找不到设置按钮了,严重影响使用感觉,这都是难免出现的一些问题这个时候可能就需要通过一些强硬的手 ...

最新文章

  1. F#创建者Don Syme谈F#设计原则
  2. C# vs C++ 全局照明渲染性能比试
  3. ALV输出的时候,输出字段内容前面的空格
  4. 银河麒麟svn: E215000: GNOME Keying被锁定,并且我们处于非交互方式
  5. neo4j 连接超时_Neo4j:遍历查询超时
  6. svga文件如何查看_电脑隐藏文件?如何查看隐藏文件 方法简单易学
  7. Kubernetes-命名空间namespace(ns)(十四)
  8. C#中Windows Media Player控件使用实例|方法
  9. linksys 打印软件_Linksys对FCC表示“不”,Mozilla扩大了开源资金,还有更多新闻
  10. Linux下用vi 打开文件出现乱码
  11. asp.net 数据绑定 使用eval 时候报 “字符文本中的字符太多” 问题解决
  12. 有监督学习(supervised learning))与无监督学习(unsupervised learning)之间有何区别?
  13. bzoj2101[Usaco2010 Dec]Treasure Chest 藏宝箱*
  14. 关于抖音抓包的一些分析和抖音视频批量下载
  15. haas506 2.0开发教程-hota(仅支持2.2以上版本)
  16. 汽车半导体FMEDA的挑战和解决方案
  17. python写文件自动换行_python怎么换行继续写脚本
  18. openCV之waitKey函数简介
  19. 设计美好的服务器(6)--SEDA架构笔记
  20. C#元祖Tuple的事例

热门文章

  1. Go语言格式化金额为3个一组隔开
  2. UITableViewCell awakeFromNib
  3. 使用防火玻璃块创建安全,时尚的窗户和墙壁
  4. rust队友开挂_腐蚀怎么判断开挂玩家?开挂玩家识别方法一览
  5. issue no route to host 为什么 jmeter 分布式测试,一定要设置 java.rmi.server.hostname--(有效)
  6. 【时间序列分析】MA模型公式总结
  7. uni-app中正则表达式验证手机号,身份证号输入格式是否正确
  8. 会计基础(1) - 总论
  9. 从“快艇”、“集装箱”到“管道”,SAP在中国再加速
  10. 新世纪周刊:美剧的今世与前生