recovery模式自动退出研究思路

一.非正常进recovery原因

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

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

二.解决思路

1.最好能够知道进recovery执行的操作是什么,然后分析为什么没有退出,是卡在哪一个步骤了

(1)可以通过修改recovery下的redirect_stdio函数参数,将参数修改成"/dev/console",可以通过echo命令,向"/dev/console"写入数据,看串口是否打印,可能会涉及添加SElinux权限问题,根据log添加相应的权限就好了,将recovery模式下的log重定向到串口上面,以便于分析执行到哪一步了。

(2)或者可以通过adb将misc分区信息导出来,看看往misc分区写了什么,然后分析代码,看是卡在哪一步没有出来。

通过dd if=/dev/block/by-name/misc of=/data/misc.img和adb pull将misc文件导出来

这是我们misc分区的内容,然后根据参数,分析recovery源码,发现是在等待用户选择具体操作,因为没有用户选择,所有一直卡在那儿,然后把等待选择的去掉就好了,直接将用户数据擦除。

最重要的就是要知道分析的流程,知道它是怎么运行的,在慢慢找是哪个地方有问题

这个也是等待用户选择的界面,也会阻塞,也应该去掉 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值