android 资源文件混淆

news2025/1/22 15:50:43

AGP7.0以上引用AndResGuard有坑 记录下

  1. 在项目的build.gradle中添加如下
buildscript {
    ext.kotlin_version = "1.4.31"
    repositories {
        google()
        jcenter()
        maven {
            url "https://s01.oss.sonatype.org/content/repositories/snapshots/"
        }
    }
    dependencies {
        classpath "com.android.tools.build:gradle:7.2.2"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
//        classpath "com.bytedance.android:aabresguard-plugin:0.1.0"
        classpath 'io.github.leon406:AndResGuard-gradle-plugin:1.2.23'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
  1. 在app目录下新建脚本and_res_guard.gradle
apply plugin: 'AndResGuard'

andResGuard {
    //mappingFile = file("./resource_mapping.txt")
    mappingFile = null
    use7zip = true
    useSign = true
    keepRoot = false
    compressFilePattern = [
            "*.png",
            "*.jpg",
            "*.jpeg",
            "*.gif",
            "*.xml",
            "*.json",
            "*.html",
//            "assets.arsc",
            "resources.arsc"
    ]
    whiteList = [
            // your icon
            "R.mipmap.ic_launcher",
            "R.mipmap.ic_launcher_round",
            // for fabric
            "R.string.com.crashlytics.*",
            // for umeng update
            "R.string.tb_*",
            "R.layout.tb_*",
            "R.drawable.tb_*",
            "R.drawable.u1*",
            "R.drawable.u2*",
            "R.color.tb_*",
            // umeng share for sina
            "R.drawable.sina*",
            // for google-services.json
            "R.string.google_app_id",
            "R.string.gcm_defaultSenderId",
            "R.string.default_web_client_id",
            "R.string.ga_trackingId",
            "R.string.firebase_database_url",
            "R.string.google_api_key",
            "R.string.google_crash_reporting_api_key",

            //友盟
            "R.string.umeng*",
            "R.string.UM*",
            "R.layout.umeng*",
            "R.drawable.umeng*",
            "R.id.umeng*",
            "R.anim.umeng*",
            "R.color.umeng*",
            "R.style.*UM*",
            "R.style.umeng*",

            //融云
            "R.drawable.u*",
            "R.drawable.rc_*",
            "R.string.rc_*",
            "R.layout.rc_*",
            "R.color.rc_*",
            "R.id.rc_*",
            "R.style.rc_*",
            "R.dimen.rc_*",
            "R.array.rc_*"
    ]

    sevenzip {
        artifact = 'com.tencent.mm:SevenZip:1.2.10'
        //path = "/usr/local/bin/7za"
    }
    /**
     * 可选: 如果不设置则会默认覆盖assemble输出的apk
     **/
    //finalApkBackupPath = "${project.rootDir}/final.apk"
}

  1. 在app/build.gradle中引用第二步的脚本
apply from: 'and_res_guard.gradle'
  1. 其他环境配置
grade:gradle-7.3.3-bin.zip 
classpath "com.android.tools.build:gradle:7.2.2"
jdk:11
  1. 执行编译
    在这里插入图片描述
    附上demo:demo

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

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

相关文章

【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(七)- 向量算术指令格式

1. 引言 以下是《riscv-v-spec-1.0.pdf》文档的关键内容: 这是一份关于向量扩展的详细技术文档,内容覆盖了向量指令集的多个关键方面,如向量寄存器状态映射、向量指令格式、向量加载和存储操作、向量内存对齐约束、向量内存一致性模型、向量…

成功案例(IF=13.263)| 基因组+重测序+GWAS揭示豇豆传播过程中基因组的变化及荚果相关性状的遗传调控关键位点

研究背景 豇豆(Vigna unguiculata (L.) Walp.),豆科的一员,是一种一年生的热带或亚热带草本植物,用于人类食物和动物饲料,作为青粪、干草或青贮饲料。有两种主要栽培亚种Vigna unguiculata ssp. sesquiped…

文档管理系统解决方案(word原件)

1.系统概述 1.1.需求描述 1.2.需求分析 1.3.重难点分析 1.4.重难点解决措施 2.系统架构设计 2.1.系统架构图 2.2.关键技术 数据备份技术 3.系统功能设计 3.1.功能清单列表 3.2.基础数据管理 3.3.位置管理 3.4.文档使用 3.5.文档管理 软件全套资料包获取方式①:软件项…

leetcode热题100.接雨水

Problem: 42. 接雨水 文章目录 题目思路复杂度Code 题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 …

pyside6,“提升为”的部件使用困惑

在Qt designer中,新建一个QMainWindow,新建一个QWidget,并命名为widget,如图: 新建NewClass.py,输入代码: # encoding: utf-8 from PySide6.QtWidgets import QWidgetclass NewClass(QWidget):…

【JavaScript】原型链/作用域/this指针/闭包

1.原型链 参考资料:Annotated ES5 ECMAScript起初并不支持如C、Smalltalk 或 Java 中“类”的形式创建对象,而是通过字面量表示法或者构造函数创建对象。每个构造函数都是一个具有名为“prototype”的属性的函数,该属性用于实现基于原型的继…

mysql的索引类型与数据存储

mysql索引与类型 什么是索引? 索引(Index)是帮助MySQL高效获取数据的数据结构。我们可以简单理解为:快速查找排好序的一种数据结构。Mysql索引主要有两种结构:BTree索引和Hash索引。我们平常所说的索引,如…

真实的招生办对话邮件及美国高校官网更新的反 AI 政策

这两年 ChatGPT 的热度水涨船高,其编写功能强大,且具备强大的信息整合效果,所以呈现的内容在一定程度上具备可读性。 那么,美国留学文书可以用 ChatGPT 写吗?使用是否有风险?外网博主 Kushi Uppu 在这个申…

鸿蒙学习记录

问题小测记录 总结链接:小测总结 学习笔记:鸿蒙开发学习记录 1、 main_pages.json存放页面page路径配置信息。 2、在stage模型中,下列配置文件属于AppScope文件夹的是? app.json5 3、module.json5配置文件中,包含…

自然语言处理技术(Natural Language Processing)知识点

自然语言处理知识点 自然语言处理1. word2vec是什么2. 常用的NLP工具和软件3. 朴素贝叶斯分类器4. BiLSTM-CRF模型怎么去实现5. Bert模型实现NER6. 命名实体识别任务中,怎么去处理数据分布不均的问题?7. 用户问题检索相关文本时,具体都用了哪…

解决报错 npm ERR! Missing script:“serve“

项目场景: 在运行vue项目时,遇到报错!导致无法启动! 问题描述 报错:npm犯错!缺少脚本:“serve” npm ERR! Missing script:"servenpmERR!ERR! To see a list of scripts, run:noMnpmERR!npm runnpm ERR! A compl…

HiveSQL如何生成连续日期剖析

HiveSQL如何生成连续日期剖析 情景假设: 有一结果表,表中有start_dt和end_dt两个字段,,想要根据开始和结束时间生成连续日期的多条数据,应该怎么做?直接上结果sql。(为了便于演示和测试这里通过…

一个项目的SpringCloud微服务改造过程

SSO是公司一个已经存在了若干年的项目,后端采用SpringMVC、MyBatis,数据库使用MySQL,前端展示使用Freemark。今年,我们对该项目进行了一次革命性的改进,改造成SpringCloud架构,并且把前后端分离&#xff0c…

QT中使得界面类相关输出打印到控制台上

如下图所示,全部输出到了控制台上: 如何设置? 1、设置 Run in teminal 2、pro文件中设置 CONFIG console选项 3、clean -> qmake -> run,此时观察到已经输出到控制台上了

Day16_学点儿JavaEE_理论知识_Tomcat、JSP、Servlet

1 软件的结构 C/S (Client - Server 客户端-服务器端) 典型应用:QQ软件 ,飞秋,印象笔记。 特点: 必须下载特定的客户端程序。服务器端升级,客户端升级。 B/S (Broswer -Server 浏览器端- 服务器端&…

一起学习python——基础篇(7)

今天讲一下python的函数。 函数是什么?函数是一段独立的代码块,这块代码是为了实现一些功能,而这个代码块只有在被调用时才能运行。 在 Python 中,使用 def 关键字定义函数: 函数的固定结构就是 def(关键字)函数名字…

Day108:代码审计-PHP模型开发篇MVC层动态调试未授权脆弱鉴权未引用错误逻辑

目录 案例1-Xhcms-动态调试-脆弱的鉴权逻辑 案例2-Cwcms-动态调试-未引用鉴权逻辑 案例3-Bosscms-动态调试-不严谨的鉴权逻辑 知识点: 1、PHP审计-动态调试-未授权安全 2、PHP审计-文件对比-未授权安全 3、PHP审计-未授权访问-三种形态 动态调试优点: 环境配置&…

C语言 | Leetcode C语言题解之第15题三数之和

题目&#xff1a; 题解&#xff1a; int cmp(const void *x, const void *y) {return *(int*)x - *(int*)y; } //判断重复的三元组 bool TheSame(int a, int b, int c, int **ans, int returnSize) {bool ret true;for(int i 0;i < returnSize;i){if(a ans[i][0] &&…

Java智慧校园系统源码 微信小程序+电子班牌

Java智慧校园系统源码 微信小程序电子班牌 通过设备管理对百纳智慧校园的智慧班牌以及百纳智慧屏&#xff08;校牌&#xff09;进行统一集中式管理&#xff0c;支持浏览所有设备的基本信息以及在离线状态&#xff0c;支持添加设备、设备一键开关机、一键重启、设置节假日开关机…

TiDB 慢查询日志分析

导读 TiDB 中的慢查询日志是一项 关键的性能监控工具&#xff0c;其主要作用在于协助数据库管理员追踪执行时间较长的 SQL 查询语句。 通过记录那些超过设定阈值的查询&#xff0c;慢查询日志为性能优化提供了关键的线索&#xff0c;有助于发现潜在的性能瓶颈&#xff0c;优化…