安装jdk8
-
brew cask install adoptopenjdk8
安装jadx
编译安装
git clone https://github.com/skylot/jadx.git
cd jadx
./gradlew dist
然后将build/jadx/bin加入到环境变量。
export JADX_HOME=/Users/chennan/Desktop/2019/jadx/build/jadx export JADX_BIN=$JADX_HOME/bin export PATH=$PATH:$JADX_BIN
开始反编译
等完毕后,可以开始了,我就介绍个最简单最常用的用法
- 把apk改成zip
- 解压zip获取class.dex文件
- 将classes.dex文件放到jadx目录下
cd build/jadx/ jadx -d out classes.dex # 反编译后放入out文件夹下(如果out不存在它会自动创建) #or jadx-gui classes.dex # 会反编译,并且使用gui打开
使用jadx
jadx也有GUI,直接双击bin目录下的jadx-gui,然后选择要反编译的apk即可,运行效果如下。
jadx_gui如果要保存源码,选择File->Save ALL即可保存文件,然后就可以导入Android Studio等IDE中。 我们也可以直接使用命令行反编译apk文件:jadx -d out classes.dex #直接输出.java文件到out目录
jadx-gui classes.dex #使用gui打开
在反编译较大的apk时,如果遇到jadx-jui卡顿和假死的情况,可适当优化jvm相关参数, 我直接在~/.bash_profile
中加上了如下语句:
export JVM_ARGS="-Xmx4096m -XX:MaxPermSize=1024m"