Android16 给应用默认获取权限

修改点在

/frameworks/base/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java

在grantDefaultSystemHandlerPermissions方法里面可以看到有很多默认获取权限的代码,在这里添加即可如:

复制代码
	  //add by xxx begin
      PackageInfo miniscreenPackageInfo = pm != null ? pm.getSystemPackageInfo("需要添加权限应用的包名") : null;
      if (miniscreenPackageInfo != null
              && doesPackageSupportRuntimePermissions(miniscreenPackageInfo)) { 
          grantPermissionsToSystemPackage(pm, "需要添加权限应用的包名",
                  userId, FOREGROUND_LOCATION_PERMISSIONS);
      }
      //add by xxx end   

这样修改会引起GMS问题,需要在/frameworks/base/core/java/android/app/ApplicationPackageManager.java的checkPermission方法里面同步修改

复制代码
    @Override
    public int checkPermission(String permName, String pkgName) {
        //add by xxx for grant permission begin
        String taker = mContext.getPackageName();
        if ("com.google.android.permission.gts".equals(taker)) {
            if("需要添加权限应用的包名".equals(pkgName)){
                return PERMISSION_DENIED;
            }
        }
        //add by xxx,for grant permission end
        return PermissionManager.checkPackageNamePermission(permName, pkgName, getUserId());
    }
相关推荐
Sayuanni%32 小时前
初阶_多线程1(线程含义与关键属性)
java
程序媛徐师姐3 小时前
Java基于微信小程序的模拟考试系统,附源码+文档说明
java·微信小程序·java模拟考试系统小程序·模拟考试微信小程序·模拟考试系统小程序·模拟考试小程序·java模拟考试小程序
爱装代码的小瓶子3 小时前
【C++与Linux基础】进程间通讯方式:匿名管道
android·c++·后端
疯狂敲代码的老刘3 小时前
JDK 1.6到25 全版本网盘合集 (Windows + Mac + Linux)
java·linux·windows·macos·jdk
夕除3 小时前
js--15
java·jvm·spring
曾经的三心草3 小时前
redis-9-集群
java·redis·mybatis
兴趣使然HX3 小时前
Android绘帧流程解析
android
sun03223 小时前
【架构基础】Spring中的PropertySourcesPlaceholderConfigurer介绍 (并非新知识,比较古老的一种使用方式)
java·spring·架构
chilavert3183 小时前
技术演进中的开发沉思-356:重排序(中)
java·开发语言
毕设源码-邱学长3 小时前
【开题答辩全过程】以 基于SSM的儿童福利院管理系统为例,包含答辩的问题和答案
java·eclipse