使用gradle 移除敏感权限

news2024/9/23 23:35:18

前言

最近要上架Google Play 但是因为有个敏感权限很容易被拒。在这里插入图片描述

想着把权限依赖的库去掉就行了,但是遇到一个恶心的问题。就是这个权限在Android Studio的Merged Manifest 视图中没有,但是在生成的apk中却包含。这样的就不能通过Android Studio来定位权限来自于那个库。

Merged Manifest  视图中没有
包含在生成的清单文件中
在这里插入图片描述

解决方案

通过gradle脚本动态移除 ,放在app模块的build.gradle文件中即可。以下脚本在gradle:8.4.2中运行良好

 void removePermission(File file){
    if(file.isDirectory()){
        file.listFiles().every {
            removePermission(it)
        }
    }
    if(file.name.equals("AndroidManifest.xml")){
        def manifestOutFile =file;
        def manifestContent = manifestOutFile.getText()
        // 删除指定权限,通过替换成不敏感的权限实现

        if (manifestContent.contains('android.permission.QUERY_ALL_PACKAGES')) {
            println "包含敏感权限"
        } else {
            println "不包含敏感权限"
        }
        manifestContent = manifestContent.replaceAll('android.permission.QUERY_ALL_PACKAGES', 'android.permission.INTERNET')
        println('执行替换')
        if (manifestContent.contains('android.permission.QUERY_ALL_PACKAGES')) {
            println "包含敏感权限"
        } else {
            println "不包含敏感权限"
        }
        // 再写回manifest文件
        manifestOutFile.write(manifestContent)
    }
}
afterEvaluate {

 def set=  getTasks().findAll {
        def name=it.name;
        if(name.contains('process')&&name.contains("ManifestForPackage")){

            return true;
        }
        return false;
    }
    println "set="+set
    set.each {
        it.doFirst{
            it.inputs.files.each {
                removePermission(it)
            }
        }

    }

运行结果

成功把敏感权限替换成了非敏感权限。相当于移除了

在这里插入图片描述

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

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

相关文章

一文搞懂 js 原型和原型链

文章目录 一、前言二、原型2.1 概念2.2 获取原型的方法2.2.1 __proto__获取方式2.2.2 通过构造函数prototype 属性获取2.2.2 ES6 class 通过Object.getPrototypeOf()获取类原型 2.3 通过原型实现继承2.4 原型的作用 三、 原型链四、ES6实现继承五、综述 一、前言 原型和原型链…

计算机网络面试真题总结(七)

文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 什么是对称加密、非对称加密? 对称加密是一种常用的加…

C语言 之 自定义类型:结构体、结构体内存对齐、修改默认对齐参数 详细说明 可以来看看哟

结构体类型的声明 结构体的声明 struct tag {member-list; //结构体中的成员,可以有多个 }variable-list; //这里是直接创建结构体的变量,但是不一定要在这里声明变量 //不能把后面这个 ; 省略了例如结构体用于描述一个学生: struct Stu…

MySQL内部临时表(Using temporary)案例详解及优化解决方法

目录 前言 一.场景案例 二、什么是内部临时表? 三、哪些场景会使用内部临时表? 四、内部临时表如何存储? 1)使用内存 2)先使用内存,再转化成磁盘文件 3)直接使用磁盘文件 五、如何优化…

Stable Diffusion绘画 | ControlNet应用-IP-Adapter:一致性角色就这么简单

IP-Adapter 更新了全新的模型—FaceID plus V2 版本,同时还支持 SDXL 模型。 FaceID plus V2 版本的优点: 解决任务一致性 一张图生成相似角色 其中,两个 Lora文件 放置在:SD安装目录\models\Lora 两个 bin文件 放置在&#x…

三、IIC 总线协议——1、IIC总线协议介绍

IIC总线协议介绍 1、IIC介绍: Inter Integrated Circuit,同步、串行、半双工通信总线。 2、IIC总线结构图 ① 由时钟线SCL和数据线SDA组成,并且都接上拉电阻,确保总线空闲状态为高电平。 ②总线支持多设备连接,允许…

SSM电动车智能充电桩管理系统 项目源码24481

摘 要 随着社会对环保和可持续发展的关注不断增加,电动车作为清洁能源交通工具受到了广泛关注和推广。然而,电动车充电设施的建设和管理面临着诸多挑战,如充电效率低下、管理繁琐等问题。为解决这些问题,本研究设计开发了一款电…

揭秘无线领夹麦克风五大行业隐秘:音质失真、隐私泄露需警惕!

​无线领夹麦克风是演讲、教学、直播等场合的得力助手,然而市场上品牌众多,产品质量参差不齐,安全隐患层出不穷。作为一名音频设备评测师,我近期入手了多款无线领夹麦克风进行测评,下面就来为大家揭秘无线领夹麦克风行…

Jupyter Notebook详细教程

1、Ipython介绍 介绍 科学计算标准工具集的组成部分 IPython是一个免费、开源的项目,支持Linux、Unix、Mac OS X和Windows平台,其官方网址:Jupyter and the future of IPython — IPython IPython中包括各种组件,其中的两个主要…

无盘设计及其在Allegro中的具体操作

无盘设计的好处有两点: 去掉焊环后,增加了孔与线或是其它孔的间距; 去掉焊环后,铜皮避让的面积更少了,增加了铺铜平面的完整性。 一、确定通孔/过孔焊盘支持去除焊环 只有在封装中勾选了Suppress unconnected internal pads; leg…

AI大模型,互联网的中年革命?人才抢夺白热化,平均工资水平惊呆了……

写在前面 在腾讯股东大会上,CEO马化腾深刻指出,人工智能(AI)并非仅仅是互联网领域十年一遇的机遇,而是一个具有深远影响的、堪比电力发明的工业革命级别的重大机遇。 本文将包括: 1- 行业概览 2- 大模型…

C++必修:bitset的用法与实现

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C学习 贝蒂的主页:Betty’s blog 1. 位图的引入 首先我们来看一道面试题: 给40亿个不重复的无符号整数…

乌龙?揭露2024国自然被刷真相!

8月24日,国自然正式放榜,并且申请项目批准资助通知、不予资助通知以及专家评审意见也已发送到各位申请人手里。 中了的人兴奋庆祝,没中的人气愤懊恼,一遍又一遍的看着评审意见,甚至会质疑一些评审的意见有些 “不合理…

The Power of Scale for Parameter-Efficient Prompt Tuning

系列论文研读目录 文章目录 系列论文研读目录论文题目含义Abstract1 Introduction2 Prompt Tuning5.6.7.8.9.10. 论文链接 论文题目含义 刻度在参数高效快速调优中的作用 Abstract In this work, we explore “prompt tuning,” a simple yet effective mechanism for lear…

(四)Kafka离线安装 - Kafka下载及安装

Kafka官方下载地址:Apache Kafka 这时候下载安装版本。 我这里的安装目录在 /usr/local/ cd /usr/local/# 创建目录 mkdir kafka cd kafka mkdir kafka_log 把下载的压缩包,放入到/usr/local/kafka/目录下,解压。 # 解压 tar -zxvf kafka…

PDF招生简章如何转二维码?

​随着科技的不断发展,招生报名方式也在不断创新。如今,许多学校和企业都采用PDF招生简章来宣传招生。然而,传统的纸质招生简章存在携带不便、易损坏等问题。为了解决这些问题,将PDF招生简章转换为二维码成为了一种趋势。那你知道…

Laravel邮件发送功能的实现的方法和技巧?

Laravel邮件发信功能如何配置?怎么使用Laravel发信? 在现代Web开发中,邮件发送功能是不可或缺的一部分。Laravel框架以其优雅的语法和强大的功能,成为了许多开发者的首选。AokSend将深入探讨如何在Laravel中实现邮件发送功能&…

让甲方看得见服务器资源降本增效-软件开发不仅考虑开发成本也要重视长期的运维成本

这几天有几个开发者朋友问,用Go语言开发后端真能降低服务器成本吗?本文想分享是低成本一种解决方案,我们不讨论谁是世界上最好的开发语言,所以开发者朋友看到对比语言就不要去挣个高低。GoFly社区今天给大家分享我们这几年用下来真…

餐饮点餐外卖到店小程序系统管理

餐饮业主要以到店就餐和外卖方式/部分细分业快递配送、团餐等满足客户购餐消费需要,互联网时代,尤其是年轻人无论进店与否都追求快捷方便,商家也要提高自身服务效率。 制作餐饮外卖配送/到店/扫码点餐小程序并可在后台开启设置扫码点餐、到店…

黑神话悟空 PC端配置需求详解:如何为不同游戏体验选择合适的配置?

《黑神话:悟空》是一款备受期待的动作角色扮演游戏,由游戏科学(Game Science)开发,基于《西游记》改编。随着游戏的发布,许多玩家都在关心一件事:我的电脑能带动这款游戏吗?本文将详…