1.现象 模块使用了Settings.Global之后,单编模块push到手机里面重启,发现手机卡在开机logo界面,开不了机
2.抓取logcat看log打印会发现如下图片中的打印,主要的关键词为Privileged permissions not in privapp-permissions whitelist
二.查找源码定位问题(Q的代码)
文件路径PermissionManagerService.java(frameworks\base\services\core\java\com\android\server\pm\permission)
三.修改的位置
1.frameworks\base\data\etc 在这个文件夹下面有很多xml文件,除了privapp-permissions-platform.xml文件其他有些文件比如com.android.dialer.xml是单独以包名分开的,可以再里面添加权限 比如我在com.android.dialer.xml文件中添加了权限WRITE_SECURE_SETTINGS的权限
2.对应的模块需要在manifest文件中加上权限android.permission.WRITE_SECURE_SETTINGS
四.如何验证
整编代码-------刷机----------导出文件有没有生效 生成文件目录/system/etc/permissions/privapp-permissions-platform.xml 或者/product/etc/permissions/com.android.dialer.xml 这个生成的目录具体是由同级目录下的Android.bp决定的,实在找不到就find搜索文件
五.快速验证
在手机中adb shell进入目录,导出对应的xml文件,添加好权限,push到源目录,reboot尝试是否可以开机,若可以表示添加的权限是ok的,然后就放心大胆的添加在framework下的对应文件里面,整编ok提交代码上库。
Android权限警告(not in privapp-permissions whitelist) - 知乎 (zhihu.com) 标签:xml,文件,whitelist,privapp,Android,权限,com,permissions From: https://www.cnblogs.com/wanglongjiang/p/18036903