当前位置: 首页 > article >正文

Android 10 默认授权安装app运行时权限(去掉运行时所有权限授权弹窗)

 GRANT_INSTALL就是在安装apk时已经给予了所有申请权限,所以运行时给与权限改为安装时给予权限就可以了。
解决方案如下:
PermissionManagerService.java文件中restorePermissionState方法中将应用权限设置为安装权限

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

final String perm = bp.getName();
                boolean allowedSig = false;
                int grant = GRANT_DENIED;

                // Keep track of app op permissions.
                if (bp.isAppOp()) {
                    mSettings.addAppOpPackage(perm, pkg.packageName);
                }

public class PermissionManagerService {
 if (bp.isNormal()) {
                    // For all apps normal permissions are install time ones.
                    grant = GRANT_INSTALL;
                } else if (bp.isRuntime()) {
                    if (origPermissions.hasInstallPermission(bp.getName())
                            || upgradedActivityRecognitionPermission != null) {
                        // Before Q we represented some runtime permissions as install permissions,
                        // in Q we cannot do this anymore. Hence upgrade them all.
                        grant = GRANT_UPGRADE;
                    } else {
                        // For modern apps keep runtime permissions unchanged.
+                        //grant = GRANT_RUNTIME;
+                         grant = GRANT_INSTALL;
                    }
                } else if (bp.isSignature()) {
                    // For all apps signature permissions are install time ones.
                         // Before Q we represented some runtime permissions as install permissions,
                         // in Q we cannot do this anymore. Hence upgrade them all.
-                        grant = GRANT_UPGRADE;
+                        grant = GRANT_INSTALL;
                     } else {
                         // For modern apps keep runtime permissions unchanged.
                         //grant = GRANT_RUNTIME;
@@ -1179,7 +1179,7 @@ public class PermissionManagerService {
                             // to the platform (note: need to only do this when
                             // updating the platform).
                             if (!isNewPlatformPermissionForPackage(perm, pkg)) {
-                                grant = GRANT_DENIED;
+                                grant = GRANT_INSTALL;
                             }
                         }
                     }

另外,此修改方法只适用于安卓10,或者安卓11 R版本修改,也是行的通的。

请查阅下面的参考修改: 

Android R版本默认允许运行时安装权限-CSDN博客


http://www.kler.cn/a/394186.html

相关文章:

  • 【大数据学习 | HBASE高级】storeFile文件的合并
  • mysql 配置文件 my.cnf 增加 lower_case_table_names = 1 服务启动不了的原因
  • 微信小程序的主体文件和页面文件介绍
  • (六)Spark大数据开发实战:豆瓣电影数据处理与分析(scala版)
  • 边缘的检测
  • odoo 17 后端路由接口认证自定义
  • Python简单文件操作day9
  • RocketMQ学习笔记
  • vue3 中那些常用 靠copy 的内置函数
  • ChatGPT提问prompt范例模板
  • MySQL高级(二):一条更新语句是如何执行的
  • Flutter:input输入框
  • DOCKER 镜像基础命令
  • Windows 云服务器搭建 FTP 服务
  • 深度学习之全连接、局部连接、全卷积与局部卷积
  • 大数据-224 离线数仓 - 数仓 技术选型 版本选型 系统逻辑架构 数据库命名规范
  • CTF攻防世界小白刷题自学笔记13
  • Mybatis中批量插入foreach优化
  • Jmeter基础篇(22)服务器性能监测工具Nmon的使用
  • zookeeper之节点基本操作
  • Spark 读取 HDFS 文件时 RDD 分区数的确定原理与源码分析
  • ubuntu[无桌面]——使用FileZilla连接本地和虚拟机实现文件共享
  • AI数字人短视频生成--核心源头技术开发
  • StarRocks Summit Asia 2024 全部议程公布!
  • [pyspark] pyspark中如何修改列名字
  • 【机器学习】如何配置anaconda环境(无脑版)