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

发布于:2025-08-03 ⋅ 阅读:(10) ⋅ 点赞:(0)

在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/

网站公告

今日签到

点亮在社区的每一天
去签到