Android 8.1 默认赋予应用权限

Android 8.1 默认赋予应用权限

最近接到项目需求,需要默认授予预置APP的应用权限以便操作使用,具体修改参照如下:

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

    private void grantDefaultSystemHandlerPermissions(int userId) {Log.i(TAG, "Granting permissions to default platform handlers for user " + userId);final PackagesProvider locationPackagesProvider;final PackagesProvider voiceInteractionPackagesProvider;final PackagesProvider smsAppPackagesProvider;final PackagesProvider dialerAppPackagesProvider;final PackagesProvider simCallManagerPackagesProvider;final SyncAdapterPackagesProvider syncAdapterPackagesProvider;synchronized (mService.mPackages) {locationPackagesProvider = mLocationPackagesProvider;voiceInteractionPackagesProvider = mVoiceInteractionPackagesProvider;smsAppPackagesProvider = mSmsAppPackagesProvider;dialerAppPackagesProvider = mDialerAppPackagesProvider;simCallManagerPackagesProvider = mSimCallManagerPackagesProvider;syncAdapterPackagesProvider = mSyncAdapterPackagesProvider;}String[] voiceInteractPackageNames = (voiceInteractionPackagesProvider != null)? voiceInteractionPackagesProvider.getPackages(userId) : null;String[] locationPackageNames = (locationPackagesProvider != null)? locationPackagesProvider.getPackages(userId) : null;String[] smsAppPackageNames = (smsAppPackagesProvider != null)? smsAppPackagesProvider.getPackages(userId) : null;String[] dialerAppPackageNames = (dialerAppPackagesProvider != null)? dialerAppPackagesProvider.getPackages(userId) : null;String[] simCallManagerPackageNames = (simCallManagerPackagesProvider != null)? simCallManagerPackagesProvider.getPackages(userId) : null;String[] contactsSyncAdapterPackages = (syncAdapterPackagesProvider != null) ?syncAdapterPackagesProvider.getPackages(ContactsContract.AUTHORITY, userId) : null;String[] calendarSyncAdapterPackages = (syncAdapterPackagesProvider != null) ?syncAdapterPackagesProvider.getPackages(CalendarContract.AUTHORITY, userId) : null;synchronized (mService.mPackages) {+            PackageParser.Package uPackage = getSystemPackageLPr("uPackageName");
+            if (uPackage != null&& doesPackageSupportRuntimePermissions(uPackage)) {
+                grantRuntimePermissionsLPw(uPackage, PHONE_PERMISSIONS, userId);
+                grantRuntimePermissionsLPw(uPackage, SMS_PERMISSIONS, userId);
+                grantRuntimePermissionsLPw(uPackage, LOCATION_PERMISSIONS, userId);
+                grantRuntimePermissionsLPw(uPackage, CAMERA_PERMISSIONS, userId);
+                grantRuntimePermissionsLPw(uPackage, STORAGE_PERMISSIONS, userId);
+                grantRuntimePermissionsLPw(uPackage, MICROPHONE_PERMISSIONS, userId);
+                grantRuntimePermissionsLPw(uPackage, SENSORS_PERMISSIONS, userId);
+                grantRuntimePermissionsLPw(uPackage, CONTACTS_PERMISSIONS, userId);
+            }

重新编译验证,修改生效,已默认赋予应用权限

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/606201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【CMake】1. VSCode 开发环境安装与运行

CMake 示例工程代码 https://github.com/LABELNET/cmake-simple 插件 使用 VSCode 开发C项目,安装 CMake 插件 CMakeCMake ToolsCMake Language Support (建议,语法提示) 1. 配置 CMake Language Support , Windows 配置 donet 环境 这…

RT-Thread: 基于STM32CubeMX配置驱STM32驱动的USB虚拟串口调试

关键词:USB 虚拟串口 USB虚拟串口,RT-Thread Studio,STM32 说明: 1:文档记录 STM32F103系列基于 RT-Thread 系统的 USB虚拟串口的开启及数据收发应用流程介绍。 2:本文以STM32F103C8T6型号做测试&#x…

【mysql】Mac安装mysql

1.安装mysql brew install mysql提示:We’ve installed your MySQL database without a root password. 2.给root用户设置密码 ##To connect run mysql -u root ##设置密码 ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY a12345678*;3.启动…

计算机基础面试题 |16.精选计算机基础面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

卡码网Java基础课 | 4. A+B问题IV,5. A+B问题VIII

卡码网Java基础课| 4. AB问题IV,5. AB问题VIII 三元运算符4. AB问题IV5. AB问题VIII 三元运算符 普通if int a 10; int b 20; int c; if (a > b) {c a; } else {c b; }而三元运算符的结构如下: 会先求expression的值,如果为 true ,则…

SLB、DMZ、Nginx、Ingress、Gateway、Kibana和Grafana

SLB、DMZ、Nginx、Ingress、Gateway、Kibana和Grafana虽然有一些相似之处,但是它们的功能和适用场景还是有所不同。 SLB主要用于将大流量的请求分配到多个服务器上进行处理,从而提高系统的可伸缩性和可靠性。它适用于需要处理大流量的应用,如…

ANSIC的编译限制有哪些?

ANSIC(即C89,也称为ISO/IEC 9899:1989)标准中对编译器的限制。 主要体现在以下几个方面 1、函数形参数量上限 ANSIC规定的函数形参数量上限为31个。 2、函数调用时实参数量上限 ANSIC规定的函数调用时实参数量上限也是31个。 3、一条源…

Win10电脑关闭OneDrive自动同步的方法

在Win10电脑操作过程中,用户想要关闭OneDrive的自动同步功能,但不知道具体要怎么操作?首先用户需要打开OneDrive,然后点击关闭默认情况下将文档保存到OneDrive选项保存,最后关闭在这台电脑上同步设置保存就好了。接下来…

TypeScript 从入门到进阶之基础篇(九) Class类篇

系列文章目录 TypeScript 从入门到进阶系列 TypeScript 从入门到进阶之基础篇(一) ts基础类型篇TypeScript 从入门到进阶之基础篇(二) ts进阶类型篇TypeScript 从入门到进阶之基础篇(三) 元组类型篇TypeScript 从入门到进阶之基础篇(四) symbol类型篇TypeScript 从入门到进阶…

OCP NVME SSD规范解读-5.命令超时限制-2

Sanitize清除的数据很彻底,对FTL映射表、User Data(包括已经写入NAND和仍在cache里的)、Meta Data、安全密匙、CMB中SQ/CQ相关信息、可能含有用户数据的log等等会全部清除。不过,sanitize操作不会改变RPMB、boot分区、不包含用户数据的cache等内容。 RP…

用python实现调用达梦数据库

达梦数据库(Dameng Database)是一种关系型数据库管理系统,与常见的MySQL、Oracle等数据库系统类似。要使用Python连接并操作达梦数据库,你需要安装达梦数据库的Python驱动程序。 以下是一个使用Python连接达梦数据库的示例代码&a…

总420+,专业120+南京大学851信号与系统电子信息考研经验通信,电子信息

今年考研数学130,专业课120,总分420顺利被南京大学电通录取,梦圆南大,这一年的复习有过迷茫,有过犹豫,最后都坚持过来了,总结一下自己的复习经验,希望对大家有所帮助。数学 5-8月数…

关键字联合体union的定义和使用

联合体的定义 联合体的定义和结构体相同。 联合体成员共用存储空间,联合体占用的空间最大长度的数据成员的长度。 union State {char sleep;char run;int suspend;double error; }state_u;以上例子,State表示联合体的名字,它相当于声明了一…

Spark 中 BroadCast 导致的内存溢出(SparkFatalException)

背景 本文基于 Spark 3.1.1 open-jdk-1.8.0.352目前在排查 Spark 任务的时候,遇到了一个很奇怪的问题,在此记录一下。 现象描述 一个 Spark Application, Driver端的内存为 5GB,一直以来都是能正常调度运行,突然有一天,报…

HarmonyOS应用开发之ArkTS语言学习记录

1、ArkTS介绍 ArkTS是鸿蒙生态的应用开发语言。它在保持TypeScript(简称TS)基本语法风格的基础上,对TS的动态类型特性施加更严格的约束,引入静态类型。同时,提供了声明式UI、状态管理等相应的能力,让开发者…

JDBC-常用API

在上一篇文章里介绍了JDBC的概念、产生原因及简单使用。本篇将介绍JDBC的常用API,包括Connection,Statement, ResultSet, PreparedStatement。 一、Connection Connection是数据库的连接对象。有两个作用:(1)获取执行…

76.乐理基础-打拍子-二连音、四连音

内容来源于:三分钟音乐社 上一个内容:八三、八六拍的三角形打法-CSDN博客 这里要先理解了三连音的知识。 关于多少连音的总方针,其实就是两句话,如下图中的内容:二连音与四连音实际上就是下图中第二句话里的第一部分…

mmdetection训练自己的数据集

mmdetection训练自己的数据集 这里写目录标题 mmdetection训练自己的数据集一: 环境搭建二:数据集格式转换(yolo转coco格式)yolo数据集格式coco数据集格式yolo转coco数据集格式yolo转coco数据集格式的代码 三: 训练dataset数据文件配置config…

高防ip适合防御网站和游戏类的攻击吗?

​  作为站长,要学会并承受得住网站外来攻击的压力,尤其是所属为 DDoS 攻击高发行业的网站类业务及游戏行业,是很容易被竞争对手或者一些伪黑客爱好者盯上的。 加上,有些站长并没有提前了解,就盲目进军了这两个行业&…

C语言算法(二分查找、文件读写)

二分查找 前提条件&#xff1a;数据有序&#xff0c;随机访问 #include <stdio.h>int binary_search(int arr[],int n,int key);int main(void) {}int search(int arr[],int left,int right,int key) {//边界条件if(left > right) return -1;//int mid (left righ…