Android知识点 431

您所在的位置:网站首页 k2x车机系统恢复出厂设置密码 Android知识点 431

Android知识点 431

2024-06-29 10:04:04| 来源: 网络整理| 查看: 265

转载原文:https://www.cnblogs.com/codeking100/p/10339258.html

返回知识列表:Android知识点list

 

1 Incremented rescue level to Factory Reset triggered by UID 100

第一句话实际上是进入的log典型信息

有时候我们在系统正常运行的时候,突然跑到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的官方查看此命令何意:

https://source.android.com/devices/tech/debug/rescue-party

这个需要代理服务器才能查看,我把原文贴下:

 

2 救援程序 RescueParty.java

很多用户严重依赖他们的手机,需要一台始终可以正常工作的设备。然而,有时设备会陷入重新启动循环僵局,这样,用户便需要提交支持服务单据或保修咨询。这个过程会让用户不舒服,而对于设备制造商和运营商来说,则需要支付高昂的费用。

Android 8.0 中纳入了一个功能,当该功能注意到核心系统组件(还包括常驻APP)陷入崩溃循环僵局时,就会派出“救援程序”。然后救援程序会通过一系列操作来上报相关情况,以期恢复设备。最后的解决方法是,救援程序使设备重新启动并进入恢复模式,然后提示用户恢复出厂设置。

因为,包括常驻APP的crash也会导致rescue,这就有些让人崩溃了,等于说应用的死影响到整个系统了,把整个系统拉入了recovery模式。(个人理解)

Android 兼容性定义文档并未要求提供此类救援功能,但此类功能对减少邮件支持记录来说非常有用。

 

3 实现

在 Android 8.0 中,救援程序默认处于启用状态,其实现位于/services/core/java/com/android/server/RescueParty.java 中。 在出现以下情况时,救援程序会收到有关启动和崩溃事件的信息,然后即会启动:

system_server 在 5 分钟内重启 5 次以上。

永久性系统应用在 30 秒内崩溃 5 次以上。

当检测到上述某种情况时,救援程序会将其上报给下一救援级别、处理与该级别相关联的任务,并让设备继续运行,看看能否恢复。清除或重置内容的程度随级别而增加。最高级别会提示用户将设备恢复出厂设置。

要支持救援程序,无需特别的硬件支持。实现后,设备的恢复系统必须响应 --prompt_and_wipe_data 命令,且设备必须先提供一种方法,让用户确认用户数据是否有任何损坏,然后再继续运行。此外,恢复系统还应为用户提供有关尝试再次启动设备的选项。

由于每个救援级别都会使设备再次变为可运行状态的时间延后(可能长达 5 分钟),因此设备制造商不应添加自定义救援级别。设备处于不可运行的状态的时间越长,用户发出支持请求或保修咨询,而不是自行恢复其设备的可能性就越大。

  4 验证

当设备具有有效的 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加的自动判断系统状态,实现的救援程序,触发进入recovery,强制执行恢复出厂设置。

有时候我们在断电煲机的时候,有时候会触发系统的救援程序,其实是在压力测试,但是触发了android本身的救援程序,我们可以把救援程序禁止,这样防止煲机触发进入recovery系统。

执行如下命令即可:setprop persist.sys.disable_rescue true

 

5 典型log输出

RescueParty: Attempting rescue level  RESET_SETTINGS_UNTRUSTED_DEFAULTS

RescueParty: Noticed 2 events for UID 1000 in last 6 sec

RescueParty: Noticed 3 events for UID 1000 in last 9 sec

RescueParty: Noticed 4 events for UID 1000 in last 17 sec

RescueParty: Noticed 5 events for UID 1000 in last 29 sec

RescueParty: Attempting rescue level RESET_SETTINGS_UNTRUSTED_CHANGES 

... 又死一遍

RescueParty: Attempting rescue level RESET_SETTINGS_TRUSTED_DEFAULTS 

... 再死一遍

RescueParty: Attempting rescue level FACTORY_RESET        这就好去reboot了。进recovery  , --reason=RescueParty

 

 6 分析一下代码(未完成)

主要的代码路径:frameworks/base/services/core/java/com/android/server/RescueParty.java

 

 

 

 

 

 

 



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭