Android系统使用时莫名重启进入recovery

最近客户报了个问题,使用手机时莫名关机重启进入了recovery模式,提示如下内容:

"Can't load Android system. Your data may be corrupt.  If you continue to get this message, you may need to perform a factory data reset and erase all user data stored on this device."

然后下面出现两行菜单:

"Try again"

"Factory data reset"

点击 Try again 可以正常进入系统。

奇怪的是这整个过程很自然,有关机动画播放,然后再重启进入 recovery 模式,这个模式让客户很懵逼。

分析发现,这是 Android 系统的一个自救措施,当内置的persistent类型的应用频繁crash时,就启动了这个自救功能。

最终从 /data/system/dropbox取到的内容也可以看到,其中一款persistent类型应用有很多crash log。

Android 自救程序可以参考: com.android.server.RescueParty

这个类官方说明是

/**

* Utilities to help rescue the system from crash loops. Callers are expected to

* report boot events and persistent app crashes, and if they happen frequently

* enough this class will slowly escalate through several rescue operations

* before finally rebooting and prompting the user if they want to wipe data as

* a last resort.

*

*/

执行流程是:

notePersistentAppCrash -> executeRescueLevel -> RecoverySystem.rebootPromptAndWipeUserData(context, TAG)

把最后重启的过程代码屏蔽即可避免进入recovery模式。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容