安裝jdk8

  1. brew cask install adoptopenjdk8

安裝jadx

編譯安裝

  1. git clone https://github.com/skylot/jadx.git
  2. cd jadx
  3. ./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

  

開始反編譯

等完畢后,可以開始了,我就介紹個最簡單最常用的用法

  1. 把apk改成zip
  2. 解壓zip獲取class.dex文件
  3. 將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_guijadx_gui如果要保存源碼,選擇File->Save ALL即可保存文件,然后就可以導入Android Studio等IDE中。 我們也可以直接使用命令行反編譯apk文件:

 

  1. jadx -d out classes.dex #直接輸出.java文件到out目錄
  2. jadx-gui classes.dex #使用gui打開

在反編譯較大的apk時,如果遇到jadx-jui卡頓和假死的情況,可適當優化jvm相關參數, 我直接在~/.bash_profile中加上了如下語句:

  1. export JVM_ARGS="-Xmx4096m -XX:MaxPermSize=1024m"