特权应用主要是位于/system/priv-app/目录下的系统应用。过去,设备实现人员几乎无法控制可以向特权应用授予哪些签名|特许权限。从Android8.0开始,实现人员可以将特权应用显式加入到 /etc/permissions
目录下的系统配置 XML 文件的白名单中。未在这些 XML 文件中明确列出的应用不会被授予特许权限。
添加白名单
应用的权限白名单可列在位于 frameworks/base/etc/permissions
目录下的单个或多个 XML 文件中,如下:
/etc/permissions/privapp-permissions-OEM_NAME.xml
/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-goog