Android系统的特许权限白名单

一、什么是特权应用

特权应用(Privileged Application 简称 priv-app)
直观的讲就是位于系统priv-app目录下的应用。
不同Android版本对priv-app定义的分区有所不同

<=Android 8.1的版本,特权分区为/system。
>=Android 9的版本,特权分区为/system, /product和/vendor。

二、Android系统的特许权限

Android系统的特许权限是指在frameworks/base/core/res/AndroidManifest.xml中定义,并且等级为signature|privileged或signatureOrSystem的权限

如:
     <permission android:name="android.permission.KEYPHRASE_ENROLLMENT_APPLICATION"
         android:protectionLevel="signature|privileged" />

注意:
signatureOrSystem等同于signature|privileged

//frameworks/base/core/java/android/content/pm/PermissionInfo.java
      public static int fixProtectionLevel(int level) {
   
          if (level == PROTECTION_SIGNATURE_OR_SYSTEM) {
   
              level = PROTECTION_SIGNATURE | PROTECTION_FLAG_PRIVILEGED;
          }
          ......
          return level;
      }

三、特许权限白名单

从Android 8.0开始,特权应用如果要使用系统的特许权限,就需要把这个特许权限加入到白名单中。
简单的说就是priv-app有用到frameworks/base/core/res/AndroidManifest.xml里定义的特许权限,就必须要把这个权限加到白名单中。
白名单添加必须遵循:特权应用在个分区,对应的白名单文件就放在哪个分区
即priv-app在vendor分区,白名单文件就必须放在/vendor/etc/permissions/目录
priv-app在system分区,白名单文件就必须放在/system/etc/permissions/目录
priv-app在product分区,白名单文件就必须放在/product/etc/permissions/目录

1、白名单限制宏开关

在启动新设备时,可通过启用过渡日志模式来查找缺少的权限。
ro.control_privapp_permissions=log
违规行为会在日志文件中予以报告。
所有违规行为均必须通过将应用加入白名单来予以解决。如果未加入,这些应用将不会被授予缺少的权限,即使它们位于 priv-app 路

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值