android最新基于gradle编译字符串混淆的常用配置模板
简书链接:android最新基于gradle编译字符串混淆的常用配置模板
文章字数:102,阅读全文大约需要1分钟
1  | gradle中设置  | 
applicationVariants.all { variant ->
    variant.javaCompileProvider.configure {
        it.doLast {
            JavaCompile javaCompile = variant.javaCompile
            if (variant.hasProperty('javaCompileProvider')) {
                //android gradle 3.3.0 +
                javaCompile = variant.javaCompileProvider.get()
            } else {
                javaCompile = variant.javaCompile
            }
            if ("${javaCompile.destinationDir}".toLowerCase().contains("relase")) {
                println("start classes obfuscation " + "${variant.javaCompile.destinationDir}")
                try {
                    javaexec {
                        setDefaultCharacterEncoding("utf-8")//这里传错会导致解密出现问题,
                        main("-jar")
                        args(
                                "../obfuseStringGradle.jar",
                                project.name,
                                javaCompile.destinationDir,
                                "../ignore_class.txt",
                                ENCRYPT_CONFIG_JSON
                        )
                    }
                } catch (e) {
                    println("exec encrypt fail.. " + "${e.getMessage()}")
                }
            }
        }
    }
}
1  | obfuseStringGradle.jar是混淆程序,  | 
该套配置可以实现一些字节码的插.桩,甚至干扰流程控制。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 情迁博客!
 评论

