Android
资源和java
文件 混淆
注:请在执行操作前备份代码
在project
的build.gradle
中的buildscript
下添加
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
classpath 'com.github.ZTWave:IdGuard:0.3.6'
}
在app下的build.gradle中添加
plugins {
id 'idguard'
}
或者
apply plugin : 'idguard'
如果你有白名单需求请在app module 下添加。支持包名和文件名指定
如需要指定生成的混淆字典大小的话请添加 dictCapacity
属性,该值默认为 10000
idGuard{
whiteList = [
"com.littlew.example.pc",
"com.littlew.example.pa",
//support single java file
"com.littlew.example.pf.A.java",
]
dictCapacity = 5000
}
在Android Studio
的Task
中可以找到 LayoutGuard
IdGuard
ResGuard
这三个Task
LayoutGuard
: 可以将layout
文件进行随机命名并更新引用IdGuard
: 可以将view
的id
进行重命名并更新引用ResGuard
: 可以把mipmap
drawable
string
中的 资源文件进行随机命名并更新引用ClassGuard
: 可以把java
文件夹中的所有java
文件和对应得 类 函数 变量 形参 进行重命名并更新引用ProguardDicGen
: 可以生成一个混淆字典,按照入下方式添加到你的混淆配置文件中
-obfuscationdictionary dict.txt
-classobfuscationdictionary dict.txt
-packageobfuscationdictionary dict.txt
第 1 - 4 个 task
执行过后会在根目录下输出mapping
文件,记得及时备份,以防修正错误或者日后查找需要
0.3.3
版本更新后,所有Task
已经全部支持多个module情况
sync
过后,在Gardle
的窗口中可以找到guard
这个group
,双击某个任务可以执行这个Task
目前classGuard
会对arr或者jar调用的同名方法进行替换,请在该task
完成后进行错误检查!!