客退机分析:开机卡在开机动画界面,log显示android.content.pm.PackageManager$NameNotFoundException: android

主要log信息:

01-02 01:34:11.010 I/SystemServer( 1059): User Service
01-02 01:34:11.019 E/System  ( 1059): ******************************************
01-02 01:34:11.019 E/System  ( 1059): ************ Failure starting system services
01-02 01:34:11.019 E/System  ( 1059): java.lang.RuntimeException: Unable to find android system package
01-02 01:34:11.019 E/System  ( 1059): 	at com.android.server.am.ActivityManagerService.setSystemProcess(ActivityManagerService.java:2399)
01-02 01:34:11.019 E/System  ( 1059): 	at com.android.server.SystemServer.startBootstrapServices(SystemServer.java:533)
01-02 01:34:11.019 E/System  ( 1059): 	at com.android.server.SystemServer.run(SystemServer.java:355)
01-02 01:34:11.019 E/System  ( 1059): 	at com.android.server.SystemServer.main(SystemServer.java:242)
01-02 01:34:11.019 E/System  ( 1059): 	at java.lang.reflect.Method.invoke(Native Method)
01-02 01:34:11.019 E/System  ( 1059): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
01-02 01:34:11.019 E/System  ( 1059): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)
01-02 01:34:11.019 E/System  ( 1059): Caused by: android.content.pm.PackageManager$NameNotFoundException: android
01-02 01:34:11.019 E/System  ( 1059): 	at android.app.ApplicationPackageManager.getApplicationInfo(ApplicationPackageManager.java:312)
01-02 01:34:11.019 E/System  ( 1059): 	at com.android.server.am.ActivityManagerService.setSystemProcess(ActivityManagerService.java:2374)
01-02 01:34:11.019 E/System  ( 1059): 	... 6 more
01-02 01:34:11.020 D/RecoveryManagerService( 1059): Catch exception 
01-02 01:34:11.020 D/RecoveryManagerService( 1059): java.lang.RuntimeException: Unable to find android system package
01-02 01:34:11.020 D/RecoveryManagerService( 1059): 	at com.android.server.am.ActivityManagerService.setSystemProcess(ActivityManagerService.java:2399)
01-02 01:34:11.020 D/RecoveryManagerService( 1059): 	at com.android.server.SystemServer.startBootstrapServices(SystemServer.java:533)
01-02 01:34:11.020 D/RecoveryManagerService( 1059): 	at com.android.server.SystemServer.run(SystemServer.java:355)
01-02 01:34:11.020 D/RecoveryManagerService( 1059): 	at com.android.server.SystemServer.main(SystemServer.java:242)
01-02 01:34:11.020 D/RecoveryManagerService( 1059): 	at java.lang.reflect.Method.invoke(Native Method)
01-02 01:34:11.020 D/RecoveryManagerService( 1059): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
01-02 01:34:11.020 D/RecoveryManagerService( 1059): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)
01-02 01:34:11.020 D/RecoveryManagerService( 1059): Caused by: android.content.pm.PackageManager$NameNotFoundException: android
01-02 01:34:11.020 D/RecoveryManagerService( 1059): 	at android.app.ApplicationPackageManager.getApplicationInfo(ApplicationPackageManager.java:312)
01-02 01:34:11.020 D/RecoveryManagerService( 1059): 	at com.android.server.am.ActivityManagerService.setSystemProcess(ActivityManagerService.java:2374)
01-02 01:34:11.020 D/RecoveryManagerService( 1059): 	... 6 more
01-02 01:34:11.022 W/RecoveryManagerService( 1059): RMS is partial support, do not recover any files, just record the exception
01-02 01:34:11.022 D/AndroidRuntime( 1059): Shutting down VM
--------- beginning of crash
01-02 01:34:11.022 E/AndroidRuntime( 1059): *** FATAL EXCEPTION IN SYSTEM PROCESS: main
01-02 01:34:11.022 E/AndroidRuntime( 1059): java.lang.RuntimeException: Unable to find android system package
01-02 01:34:11.022 E/AndroidRuntime( 1059): 	at com.android.server.am.ActivityManagerService.setSystemProcess(ActivityManagerService.java:2399)
01-02 01:34:11.022 E/AndroidRuntime( 1059): 	at com.android.server.SystemServer.startBootstrapServices(SystemServer.java:533)
01-02 01:34:11.022 E/AndroidRuntime( 1059): 	at com.android.server.SystemServer.run(SystemServer.java:355)
01-02 01:34:11.022 E/AndroidRuntime( 1059): 	at com.android.server.SystemServer.main(SystemServer.java:242)
01-02 01:34:11.022 E/AndroidRuntime( 1059): 	at java.lang.reflect.Method.invoke(Native Method)
01-02 01:34:11.022 E/AndroidRuntime( 1059): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
01-02 01:34:11.022 E/AndroidRuntime( 1059): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)
01-02 01:34:11.022 E/AndroidRuntime( 1059): Caused by: android.content.pm.PackageManager$NameNotFoundException: android
01-02 01:34:11.022 E/AndroidRuntime( 1059): 	at android.app.ApplicationPackageManager.getApplicationInfo(ApplicationPackageManager.java:312)
01-02 01:34:11.022 E/AndroidRuntime( 1059): 	at com.android.server.am.ActivityManagerService.setSystemProcess(ActivityManagerService.java:2374)
01-02 01:34:11.022 E/AndroidRuntime( 1059): 	... 6 more
01-02 01:34:11.026 E/ActivityManager( 1059): get crashInfo fail.
01-02 01:34:11.031 D/AudioTrackShared(  420): front(215040), mIsOut(1), mAvailToClient=14208 stepCount=1024 minimum=11264, FUTEX_WAKE
01-02 01:34:11.033 E/AndroidRuntime( 1059): Error reporting crash
01-02 01:34:11.033 E/AndroidRuntime( 1059): java.lang.SecurityException: Unable to find app for caller android.app.ActivityThread$ApplicationThread@5539661 (pid=1059) when getting content provider settings
01-02 01:34:11.033 E/AndroidRuntime( 1059): 	at com.android.server.am.ActivityManagerService.getContentProviderImpl(ActivityManagerService.java:11362)
01-02 01:34:11.033 E/AndroidRuntime( 1059): 	at com.android.server.am.ActivityManagerService.getContentProvider(ActivityManagerService.java:11774)
01-02 01:34:11.033 E/AndroidRuntime( 1059): 	at android.app.ActivityThread.acquireProvider(ActivityThread.java:4992)
01-02 01:34:11.033 E/AndroidRuntime( 1059): 	at android.app.ContextImpl$ApplicationContentResolver.acquireProvider(ContextImpl.java:2004)
01-02 01:34:11.033 E/AndroidRuntime( 1059): 	at android.content.ContentResolver.acquireProvider(ContentResolver.java:1501)
01-02 01:34:11.033 E/AndroidRuntime( 1059): 	at android.provider.Settings$NameValueCache.lazyGetProvider(Settings.java:1317)
01-02 01:34:11.033 E/AndroidRuntime( 1059): 	at android.provider.Settings$NameValueCache.getStringForUser(Settings.java:1371)
01-02 01:34:11.033 E/AndroidRuntime( 1059): 	at android.provider.Settings$Global.getStringForUser(Settings.java:8658)
01-02 01:34:11.033 E/AndroidRuntime( 1059): 	at android.provider.Settings$Global.getString(Settings.java:8647)
01-02 01:34:11.033 E/AndroidRuntime( 1059): 	at android.provider.Settings$Global.getInt(Settings.java:8714)
01-02 01:34:11.033 E/AndroidRuntime( 1059): 	at com.android.server.am.ActivityManagerService$20.run(ActivityManagerService.java:14593)
01-02 01:34:11.033 E/AndroidRuntime( 1059): 	at com.android.server.am.ActivityManagerService.addErrorToDropBox(ActivityManagerService.java:14633)
01-02 01:34:11.033 E/AndroidRuntime( 1059): 	at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:14181)
01-02 01:34:11.033 E/AndroidRuntime( 1059): 	at com.android.server.am.ActivityManagerService.handleApplicationCrash(ActivityManagerService.java:14165)
01-02 01:34:11.033 E/AndroidRuntime( 1059): 	at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:109)
01-02 01:34:11.033 E/AndroidRuntime( 1059): 	at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
01-02 01:34:11.033 E/AndroidRuntime( 1059): 	at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
平台:MT6755M
分析:

    1.通过公司下载工具(flashtool也可以)readback dump出手机分区内容下载到其他手机(称克隆机)能够正常开机(除了userdata,由于系统默认加密导致    userdata分区即使下载到其他手机也无法使用)。由此发现可能与userdata区域有关。
    2.客退机通过刷对应版本的usedebug boot img文件,开启adb调试
    3.adb pull 导出客退机data区域,然后分步push到克隆机发现当data/system/users/0/package-restrictions.xml被push进去后克隆机卡在开机动画界面,查看log和客退机一致:Caused by: android.content.pm.PackageManager$NameNotFoundException: android
    4.逐步查看和<pkg name="android" inst="false" stopped="true" nl="true"/>,逐步排除发现和inst="false"有关。
    5.由于缺少问题产生时log,最后反复查看代码也无法判断产生为什么会导致package-restrictions.xml重写异常,因此最后做了一个work around方案去规避此问题:在开机读文件package-restrictions.xml解析的时候发现有pkg name="android" inst="false"时就删除package-restrictions.xml文件,该文件在每次write的时候都会重新读取PMS信息完成write操作,验证无问题。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实验报告封面 课程名称: Android平台开发与应用 课程代码: SM3004 任课老师: 梁郁君 实验指导老师: 梁郁君 实验报告名称:实验10 Android数据存储与IO 学生姓名: 学号: 教学班: 递交日期: 签收人: 我申明,本报告内的实验已按要求完成,报告完全是由我个人完成,并没有抄袭行 为。我已经保留了这份实验报告的副本。 申明人(签名): 实验报告评语与评分: 评阅老师签名: 一、实验名称:Android数据存储与IO 二、实验日期:2014/11/13 三、实验目的: 1、掌握SharedPreferences的存储数据的格式及位置,能够读写其他应用程序的Shared Preferences。 2、File存储数据 3、掌握SQLite存储数据方法。 4、会使用SQLiteOpenHelper辅助类,进行操作数据库。 四、实验用的仪器和材料: PC+Eclipse+ADT 五、实验的步骤和方法: 1、读写其他应用程序SharedPreferences。 读写其他应用程序的SharedPreferences,步骤如下: 创建应用App1 和应用App2,App2尝试读取App1的SharedPreferences内容 在App2 需要创建App1对应的Context。 调用App1的Context的getSharedPreferences(String name,int mode) 即可获取相应的SharedPreferences对象。 如果需要向App1的SharedPreferences数据写入数据,调用SharedPreferences的e dit()方法获取相应的Editor即可。 根据上述说明和下面截图,以及代码注释,完成相关代码片段填空,并思考问题: SharedPreferences何时会丢失? 图1 App1运行的界面 图2 App2 运行结果 App1:记录应用程序的使用次数,/com.Test/UseCount.java程序如下,补充程序中所缺 代码: "import android.app.Activity; " "import android.content.SharedPreferences; " "import android.content.SharedPreferences.Editor; " "import android.os.Bundle; " "import android.widget.Toast; " "public class UseCount extends Activity{ " "SharedPreferences preferences; " "@Override " "public void onCreate(Bundle savedInstanceState){ " "super.onCreate(savedInstanceState); " "setContentView(R.layout.main); " "preferences = getSharedPreferences("count", MODE_WORLD_READABLE); " "//读取SharedPreferences里的count数据 " "int count = ("count" , 0); " "//显示程序以前使用的次数 " "Toast.makeText(this , "程序以前被使用了" + count + "次。", " "10000).show(); " "Editor editor = ; " "//存入数据 " "editor.putInt("count" , ++count); " "//提交修改 " "editor. ; " "} " "} " App2:ReadOtherPreferences.java代码如下,补充程序所缺代码: "import android.app.Activity; " "import android.content.Context; " "import android.content.SharedPreferences; " "import " "android.content.pm.PackageManager.NameNotFoundException; " "import android.os.Bundle; " "import android.widget.TextView; " "public class ReadOtherPreferences extends Activity{ " "Context useCount; " "@Override " "public void onCreate(Bundle sav

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值