开机向导到联网状态,一直失败问题 分析

问题现象:开机向导到联网状态,一直失败,查看log输出,如下信息:

2-31 20:35:15.312 3722 3722 E AndroidRuntime: Caused by: java.lang.SecurityException: NetworkScoreService: Neither user 10044 nor current process has android.permission.REQUEST_NETWORK_SCORES.

12-31 20:35:15.312 3722 3722 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:2004)

也就是开机向导没有REQUEST_NETWORK_SCORES这个权限,导致问题产生。

我们在framework/base/core/res 下面,打开

AndroidManifest.xml

搜索可以看到:

我们知道,GMS是不能用系统签名的,于是只能是setup了。而这里的setup是什么意思呢?

完整的讲解在

https://blog.csdn.net/u013553529/article/details/53167072

这些数值,对应的源码位置在PermissionInfo.java文件:

于是关键搜索就是PROTECTION_FLAG_SETUP 这个值了。

搜索出来,定位到PackageManagerService.java 文件

grantSignaturePermission方法里面

这里发现,关键信息是包名 和 mSetupWizardPackage 进行比对了,那么我们就去看看这个mSetupWizardPackage值从哪来的?

继续去看:

然后我们发现,这里有个逻辑判定:

matches.size() == 1 ,也就是只有为1时候,才会赋值,于是我们定位就转为,找下手机是否有多个开机向导了。如果有多个,也就可以定位问题点了。

那么我们再次看一个信息:

连接手机,使用

adb shell dumpsys package permission android.permission.REQUEST_NETWORK_SCORES

使用此命令,将此权限的信息打印出来。

这里就能看到,这个权限是谁提供的, android

权限信息:signature|setup

然后只是每个申请此权限的apk,以及是否允许状态。

这里granted=true 表示已经授权。

使用adb shell dumpsys package com.google.android.setupwizard 进行查看开机向导授权信息:

正常情况下有一行

异常时候没有这一行,也就代表没有授权。

然后使用

adb shell dumpsys package -f 打印出所有intent信息

搜索 开机向导的intent:android.intent.category.SETUP_WIZARD

发现有两个包处理这个:

com.google.android.setupwizard

com.android.provision

问题定位,删掉com.android.provision解决。

关于解析apk的androidManifest.xml 流程,这里权限的解析在:

PackageParser.java文件的

这里,然后代码中关联的就是PermissionInfo.java的一系列值。更详细的流程

https://blog.csdn.net/qq_23547831/article/details/51203482

------------------

这次推荐一个AI公众号,希望大家能够学习,有所收获。

AI极客研修站

「AI极客研修站」分享AI知识,由浅入深,坚持原创。从理论到实践,使用Python语言,带你领略神奇的人工智能世界。想入门或者学习人工智能方面的童鞋一定不要错过啦!

原文发布于微信公众号 - 代码GG之家(code_gg_home)

原文发表时间:2018-04-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小白课代表

Easy Paint Tool SAI (1和2)下载安装教程。

Easy Paint Tool SAI是SYSTEMAX公司发行的一款商业化的绘图软件,也是很多大触的必备软件之一。

1281
来自专栏程序员互动联盟

小白如何学好linux?

首先我们还是来普及以下概念,讲点虚的。 现在是图形系统的天下,windows我们用了20年。成功归功与它图形界面,你会点鼠标吗你会敲键盘吗?所以你会上网会聊天会...

3297
来自专栏玉树芝兰

如何用iPad运行Python代码?

(由于微信公众号外部链接的限制,文中的部分链接可能无法正确打开。如有需要,请点击文末的“阅读原文”按钮,访问可以正常显示外链的版本。)

1222
来自专栏诸葛青云的专栏

一名c语言新手试图成为一名黑客,最后居然成功了?

完成“hello world”程序后,瞬间觉得自己可以做大事情了。于是联想到电影里面的黑客,他们几行代码就可以让别人的电脑瘫痪。

530
来自专栏张善友的专栏

IE 在中国的春运刷票中又败了,Chrome扩展插件crx时代来临

又到了一年一度的中国春运,今年的网络订票(12306.cn)有好多的故事上演,下面几条是这两天的几条相关新闻。 抢票插件风靡的恶果:农民工成购车票弱势群体 12...

19710
来自专栏coding

yii2实战之初见端倪PHP框架大PK安装yii2项目初始化配置服务小结

1205
来自专栏小樱的经验随笔

Kali Linux菜单中各工具功能大全

各工具kali官方简介(竖排):https://tools.kali.org/tools-listing 名称 类型 使用模式 功能 功能评价 dm...

8279
来自专栏hadoop学习

Hadoop新手篇:hadoop入门基础教程

关于hadoop的分享此前一直都是零零散散的想到什么就写什么,整体写的比较乱吧。最近可能还算好的吧,毕竟花了两周的时间详细的写完的了hadoop从规划到环境安装...

624
来自专栏hadoop学习笔记

hadoop基础学习教程实操篇汇总

关于hadoop的分享此前一直都是零零散散的想到什么就写什么,整体写的比较乱吧。最近可能还算好的吧,毕竟花了两周的时间详细的写完的了hadoop从规划到环境安装...

711
来自专栏hotqin888的专栏

HydroCMS完成项目标签功能和自定义目录修改功能

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

842

扫码关注云+社区