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

devtools/2024/11/19 1:53:37/

 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.ppmy.cn/devtools/135083.html

相关文章

SQL Server中,CONVERT函数转换日期

在SQL Server中,CONVERT函数支持多种样式代码(style codes),用于指定日期和时间的格式。样式代码 23 是一种常用的格式,表示 yyyy-mm-dd。以下是一些常用的样式代码: 日期格式样式代码 0 or 100 - mon dd…

从“大吼”到“轻触”,防爆手机如何改变危险油气环境通信?

众所周知,在加油站用手机打电话是被明令禁止的,这是因为手机内部会产生静电或射频火花,可能点燃空气中的油气混合物,导致爆炸或火灾。那么加油站的工作人员如何交流呢?以前他们靠吼,现在有了防爆手机&#…

智能网页内容截图工具:AI助力内容提取与可视化

我们每天都会接触到大量的网页内容。然而,如何从这些内容中快速提取关键信息,并有效地进行整理和分享,一直是困扰我们的问题。本文将介绍一款我近期完成的基于AI技术的智能网页内容截图工具,它能够自动分析网页内容,截…

自动化运维(k8s):一键获取指定命名空间镜像包脚本

前言:脚本写成并非一蹴而就,需要不断的调式和修改,这里也是改到了7版本才在 生产环境 中验证成功。 该命令 和 脚本适用于以下场景:在某些项目中,由于特定的安全或政策要求,不允许连接到你的镜像仓库。然而…

常用中间件介绍

1. RabbitMQ RabbitMQ是一个基于AMQP(Advanced Message Queuing Protocol,高级消息队列协议)的开源消息代理软件,实现了面向消息的中间件。它支持消息持久化、队列、交换机(Exchange)和绑定(Bin…

UAV-VisLoc:中国11地大规模无人机视觉定位数据集

2024-05-16,由中科院、北京邮电大学和香港城市大学联合创建了UAV-VisLoc数据集,这个数据集通过收集中国11个不同地点的无人机图像和卫星地图,为无人机在失去全球导航卫星系统(GNSS)信号时提供精确的经纬度坐标定位,具有重要的实际…

C# DataTable使用Linq查询详解

前奏- C# 对DataTable进行查询 C# 可以对 DataTable 进行查询。在 .NET 框架中,DataTable 类提供了几种方法来查询数据,包括 Select 方法和 AsEnumerable 扩展方法(在 System.Data.DataSetExtensions 命名空间中)。 使用 Select…

hadoop分布式文件系统常用命令

前言 搭建完hadoop后,会生成一个hdfs的分布式文件系统。HDFS是一个逻辑上的文件系统,它存储在Hadoop集群的多个节点上,而不是单个机器的本地磁盘上。 常用命令 # 创建目录,-p参数可以创建所有必需的父目录(按照层级…