mao

Results 199 comments of mao

原来dex没处理过,那会存在,处理过的话,你可以反编译对应类,方法会被native化,字节码都会为空。而且最好只加固重要逻辑,全局加固可能导致严重的性能问题

处理过程会依据过滤规则分离原classes.dex为classes_impl.dex跟classes_shell.dex,classes_impl.dex会被转为c代码编译为.so,classes_shell.dex重名后替换原本的classes.dex,跟.so一起打包进apk。 这些中间文件处理完成后都不删除,有需要可以自己分析。

map文件在哪呢?这个报错必然是找不到aab里的BUNDLE-METADATA/com.android.tools.build.obfuscation/proguard.map,如果有其他版本的aab结构另说。

这是测试代码,某个测试生成文件依赖我本地文件系统。不用注释掉就行,那个路径只是方便我开发时用其他工具查看生成代码。

jdk版本问题,换成jdk11试试

看使用说明,本来提供例子是给人分析看效果的,安装请自己签名

你看下日志从哪崩溃的,应该跟加固androidx库有关系,跳过加固那些类。我改了loadLibrary调用位置后会导致加固androidx库的一些类在so加载前初始化。

最开始把loadlibrary放在application里没问题,后面单独放在自己添加的类里(NatvieUtils),这种情况下我之前调试就遇到androidx里一个enum报找不到本地方法错误。按理说任何情况下新增加进去的NatvieUtils的静态初始化方法会第一时间执行,不会出现so没加载情况,目前不清楚具体原因,不过遇到这种一般跳过那些类就正常了。

不用改其他,看源码里有这个部分的注释,你需要在AndroidManifest.xml里增加android:extractNativeLibs="true",如果没加这个参数就不能压缩so,且so需要4k对齐。

不压缩so加上so对齐(需要对齐跟mmap系统调用有关),apk安装后就不会解压so,安装后占用空间小些但apk本身会增大。