Android 13/14/15 默认授权应用权限的实现方法

在Android系统定制开发中,有时需要为应用自动授予运行时权限,避免用户手动授权的繁琐过程。本文将介绍在Android 13、14、15版本中实现默认权限授权的不同方法。

Android 13/14 权限授权方案

对于Android 13和14版本,可以通过修改Permission.java文件来实现权限的默认授权。

修改方案

修改文件:frameworks/base/services/core/java/com/android/server/pm/permission/Permission.java

--- a/frameworks/base/services/core/java/com/android/server/pm/permission/Permission.java
+++ b/frameworks/base/services/core/java/com/android/server/pm/permission/Permission.java
@@ -206,12 +206,14 @@ public final class Permission {
     }
 
     public boolean isNormal() {
-        return (mPermissionInfo.protectionLevel & PermissionInfo.PROTECTION_MASK_BASE)
-                == PermissionInfo.PROTECTION_NORMAL;
+       // return (mPermissionInfo.protectionLevel & PermissionInfo.PROTECTION_MASK_BASE)
+       //         == PermissionInfo.PROTECTION_NORMAL;
+          return true;
     }
     public boolean isRuntime() {
-        return (mPermissionInfo.protectionLevel & PermissionInfo.PROTECTION_MASK_BASE)
-                == PermissionInfo.PROTECTION_DANGEROUS;
+      //  return (mPermissionInfo.protectionLevel & PermissionInfo.PROTECTION_MASK_BASE)
+      //          == PermissionInfo.PROTECTION_DANGEROUS;
+           return false;
     }

实现原理

这种修改方式的核心思路是:

  • 将所有权限都标记为Normal权限(返回true)
  • 将所有权限都不标记为Runtime权限(返回false)
  • 这样系统会将所有权限当作普通权限处理,在安装时自动授予

Android 15 权限授权方案

重要提醒:Android 15版本中,上述修改Permission.java的方式已经无效,需要采用新的实现方案。

修改方案

Android 15需要修改两个文件来实现权限的自动授权:

1. 修改DeviceIdleController.java

修改文件:frameworks/base/apex/jobscheduler/service/java/com/android/server/DeviceIdleController.java

--- a/frameworks/base/apex/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值