Gradle插件

最近心血来潮学了学gradle,整了几个插件

EasyKms 远程签名工具

source maven
目的是单独保管jks,keystore密钥文件,不用分发到所有开发手上就能签名。

(按理说应该搞一套用户名密码系统,而不是像现在这样直接传证书密码。但是先懒了,以后再说吧)

通过在package于assemble任务之间插入自定义sign任务通过kms签名

EasyPublish 归档发布插件

source maven
目前支持GitHub/Gitea/GitLab/AList/本地。配置完对应发布目标后才会生成任务。默认没有挂钩任何task,有需求可以通过 finalizedBy 挂到 assemble 的任务后面

EasyHash 字符串Hash加密工具

source maven
编译时替换kotlin的字符串比较(Intrinsics.areEqual)为哈希比较,使用asm对class文件进行修改。
例如 var1 == "aaa" 替换为 va1.sha256() == "9834876dcfb05cb167a5c24953eba58c4ac89b1adf57f28f2f9d09af107ee8f0"
目前仅支持内联的常量替换。尝试过替换非内联的局部变量,但是栈追踪过于复杂遂放弃。

LoliFog 字符串通用加密(基于 StringFog 修改)

source maven
这东西仅针对静态反编译破解,动态调试和没有一样(
主要是加了个plugin id,方便通过 plugins 块直接引入

EasyOfuscator DEX控制流混淆插件(基于 BlackObfuscator 修改)

source maven
将if..else这些流控制转为大量的switch并加入没用的花指令。我的修改主要是适配了一下安卓新版变体api,语言统一成了kotlin。这东西不好用,经常生成损坏的字节码。应该是dex2jar太老了,无法适配kotlin的协程和compose。