MegatronKing / StringFog

一款自动对字节码中的字符串进行加密Android插件工具
Apache License 2.0
1.71k stars 343 forks source link

R8编译问题 #66

Closed chaolei-peng closed 2 years ago

chaolei-peng commented 2 years ago

请教大佬一个问题 image 我在学习插件中用kotlin把你的groovy代码复写了一遍,然后运行发现打包出来的APK少了很多源文件,比如依赖的第三方库代码,包正常打出来70M,我现在打出来只有50m左右,少了很多,编译日志看到了R8这里不正常,具体没找出什么原因,请大佬指教指教,请喝茶

chaolei-peng commented 2 years ago

因为对groovy不熟,但我想修改下源码将插件集成到项目里面来,然后增加一些东西,如jni的方式来做加密,在native层做环境校验,防止被批量解密同时也可以增加一些进程注入校验等等,增加点难度

MegatronKing commented 2 years ago

可能是这里出了问题,检查一下:https://github.com/MegatronKing/StringFog/blob/99aefd083fd0001ea5482f0031fe32c040c8d003/stringfog-gradle-plugin/src/main/groovy/com/github/megatronking/stringfog/plugin/StringFogTransform.groovy#L122

chaolei-peng commented 2 years ago

对比我发现正常的编译会在这个路径下产出很多jar包,而我失败的案列没有产出jar包,不知是否是这个原因,请教一下这块对应核查的代码应该是哪一块? image

chaolei-peng commented 2 years ago

通过日志发现jar状态一直是NOTCHANGED,无法走到copyfile阶段,然后我这边添加一个copyFile代码,就正常输出jar了,但我不太明白为什么我这里的状态一直NOTCHANGED,我这样是改了插件代码,但我直接按照sample方式集成进来却又是正常的,没搞明白,请指教一下,非常感谢 image