Android M原生BUG,手机使用过程中SystemServer空指针异常导致手机重启

一、问题现象

手机正常使用过程中重启

二、问题分析

问题代码:NetworkPolicyManagerService.java:2381

     private boolean isUidIdle(int uid) {
         final String[] packages = 
mContext.getPackageManager().getPackagesForUid(uid);
         final int userId = UserHandle.getUserId(uid);

         //Modified for Defect-2243173 20160603 Begin
         if(packages != null){
             for (String packageName : packages) {//当packages[]数组为空的时候,此处使用将直接导致系统重启
                 if (!mUsageStats.isAppIdle(packageName, userId)) {
                     return false;
                 }
             }
         }
         //Modified for Defect-2243173 20160603 End
         return true;
     }
2,用户手机系统重启的log > > Exception Log 
Time:[Thu Jun  2 15:30:47 CST 2016] [67916.885470]

 Exception Class: Java (JE)

Exception Type: system_server_crash

Current  Executing Process:

 system_server

Backtrace:

Process: system_server

Build:  TCL/5095B/shine_plus:6.0/MRA58K/v1B1Z-0:user/release-keys
 java.lang.NullPointerException: Attempt to get length of null array at 
com.android.server.net.NetworkPolicyManagerService.isUidIdle(NetworkPolicyManagerService.java:2381) 
    at  com.android.server.net.NetworkPolicyManagerService.updateRuleForAppIdleLocked(NetworkPolicyManagerService.java:2310) 
    at com.android.server.net.NetworkPolicyManagerService.updateRulesForTempWhitelistChangeLocked(NetworkPolicyManagerService.java:2361) 
    at com.android.server.net.NetworkPolicyManagerService$3.run(NetworkPolicyManagerService.java:591) 
    at android.os.Handler.handleCallback(Handler.java:815)

    at android.os.Handler.dispatchMessage(Handler.java:104)

    at  android.os.Looper.loop(Looper.java:207)

    at  android.os.HandlerThread.run(HandlerThread.java:61)
Android M漏洞会导致进 程重启,若是该漏洞代码位于system_server进程,那
么 就会出现今天用户遇到的手机重启问题.



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值