极力推荐文章:欢迎收藏
Android 干货分享
本篇文章主要介绍 Android
开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:
一、priv-app 白名单简介
二、添加priv-app 白名单
三、生成priv-app白名单
四、自定义priv-app白名单
五、查找缺少的priv-app权限
六、执行priv-app白名单
七、priv-app 中申请权限未添加特许白名单遇到的坑
一、priv-app 白名单简介
特权应用程序是位于/system/priv-app
系统映像目录中的系统应用程序 。从历史上看,设备实施者几乎无法控制哪些特权权限可以授予特权应用程序。从Android 8.0
开始,实现者可以在/etc/permissions
目录中的系统配置XML
文件中明确地将特权应用程序列入白名单。未在这些XML文件中明确列出的应用程序未被授予特权权限。
特别注意事项
仅对 具有package =“android”
的应用程序声明的 权限才需要白名单 。Google Play
进展使用com.example
和com.android
命名空间。
二、添加priv-app 白名单
应用程序的权限白名单可以列在frameworks/base/etc/permissions
目录中的单个或多个XML
文件中,如下所示:
frameworks/base/etc/permissions/privapp-permissions-OEM_NAME.xml
frameworks/base/etc/permissions/privapp-permissions-DEVICE_NAME.xml
组织内容没有严格的规则。只要所有应用程序/system/priv-app都列入白名单,设备实施者就可以确定内容结构 。例如,Google
为Google
开发的所有特权应用程序都有一个白名单。我们建议使用以下组织:
- 已包含在Android开源项目(AOSP)中的应用的权限列于
/etc/permissions/privapp-permissions-platform.xml
。 Google
应用程序的权限列于/etc/permissions/privapp-permissions-google.xml
。- 对于其他应用程序,请使用以下形式的文件:
/etc/permissions/privapp-permissions-DEVICE_NAME.xml
三、生成priv-app白名单
要为系统映像上的所有可用应用程序自动生成白名单,请使用AOSP
命令行工具 development/tools/privapp_permissions/privapp_permissions.py
。要生成特定于设备的初始版本 privapp-permissions.xml
1.构建系统映像:
. build/envsetup.sh
lunch PRODUCT_NAME
make -j
2.运行该privapp_permissions.py
脚本以生成一个privapp-permissions.xml
文件,该 文件列出了要列入白名单的所有签名特权权限:
development/tools/privapp_permissions/privapp_permissions.py