对于超大型app,例如超过200m的apk软件,如需检查代码,建议使用 dex2jar, 先将 dex 转为 jar 包,再将 jar 使用 jadx 转为 java 文件
dex2jar
首先将 apk 改名为 zip ,获取其中所有的 dex 文件,然后逐个转换,而不是一次性转换,否则内存占用极高。转换失败:
#!/usr/bin/env bash
cd dex-tools-v2.4
ls douyin/ |grep dex |grep classes |while read line; do
echo $line
./d2j-dex2jar.bat -f dexdir/$line
done
jadx 下载地址
https://github.com/skylot/jadx
jadx 虽然支持直接将 apk 转换,但是对于单个 apk ,会将文件直接加载到内存中,导致内存占用极大,出现无法转换的问题,所以建议使用脚本,逐个转换:
ls classes-jars |while read line; do
echo $line
./jadx-1.5.1/bin/jadx.bat -d out/ classes-jars/$line
done
-d 指定输出目录