【转】[安卓]解决因为冻结了系统程序导致不能开机的问题

原帖地址:

https://blog.csdn.net/lqxandroid2012/article/details/54091087

[安卓]解决因为冻结了系统程序导致不能开机的问题

 折腾   admin   3年前 (2014-01-13)   7863℃   0评论

今夜,某人说系统缓慢,运行内存很高,经常死机,我一看,手拿看了看,决定冻结一些没用的系统程序,以缓解当务之急,下载了系统调谐器,然后对系统软件进行了冻结,经过一番选择后,手机搞定了,给回,但是对我来说最可怕的一幕要就要发生了,一会儿之后手机死机,再也重启不成功了,一直在第二画面重复重复的,我断定是因为我冻结了不应该冻结的系统程序,所以不能开机了,我不想双清刷机,所以我只能解冻程序。网上找啊找,找不到,最后自己想办法解决了。

经过一番搜索,最后用了LINUX的命令查看最新文件的修改时间来选定文件,选定了在data目录里面的一个文件

/data/system/users/0/package-restrictions.xml

这个文件存储了所有应用程序的运行状态,开机立即读取,经过系统行为的判断,如果系统必须启动的APP被禁用了,则不能启动系统,一直重复重复的某个环节,

里面内容有如下东西

<pkg name=”com.google.android.gsf” stopped=”true” enabled=”3″>
<disabled-components>
<item name=”com.google.android.gsf.loginservice.MigrateToAccountManagerBroadcastReceiver” />
<item name=”com.google.android.gsf.checkin.CheckinService$Receiver” />
<item name=”com.google.android.gsf.gtalkservice.ServiceAutoStarter” />
<item name=”com.google.android.gsf.checkin.EventLogService$Receiver” />
<item name=”com.google.android.gsf.update.SystemUpdateService$Receiver” />
</disabled-components>
</pkg>

有名字 和一些服务名等等,还包含一个应用的状态,enabled=”3″,这个东西可有可无

后面的数字为3时等于禁用状态,1时等于状态正常,暂时没发现有其他已知状态

因此,如果冻结了系统APK不能开机的话,如果条件允许,可以进行恢复

条件是

1.有电脑和adb相关驱动程序(必须)

2.手机已经root(非必须)

3.手机安装了recovery(非必须)

4.开机可以进入recovery模式(必须)

条件4是必须的,而且很重要,因为如果不能进入刷机模式,这样就没有办法修改文件了,也就是不能解冻了

把文件提取到电脑

adb -d pull /data/system/users/0/package-restrictions.xml C:\

方法有很多,但是我用这一个

然后用笔记本打开

之后搜索你已经冻结了的程序名字,或者搜索(enabled=”3″)括号里面的内容,替换成(enabled=”1″)括号里面的内容,把所有已经冻结的程序解冻,以确保不是因为冻结程序导致不能开机的问题

最后检测一遍,enabled=”3″数字不等于3即可,然后保存,复制到手机,

adb -d push “C:\package-restrictions.xml” /data/local/tmp/

adb shell 进入命令模式,此事手机还是在刷机模式哦,千万不能动手机

输入命令

cd /data/local/tmp/

chmod 0660 package-restrictions.xml

cd /data/system/users/0

mv package-restrictions.xml package-restrictions.xml.bak

mv /data/local/tmp/package-restrictions.xml ./

然后输入ls -l 查看一下文件是否修改完毕

两个文件必须存在,

而且上面任何一个步骤也不能出现错误,否则要自己检测一下问题所在了

确定无误后输入reboot重启

如果能成功进入系统,那么,恭喜您!

总得来说还是有惊无险啊,差点就要双清刷机了,那么好可怕啊,程序没备份,通话记录丢失等等