一、需要工具

  1. apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件。
  2. dex2jar:将反编译后的classes.dex文件转化为.jar文件。
  3. jd-gui:用于将.jar文件转换成java代码。

二、apktool安装:

下载地址:https://ibotpeaches.github.io/Apktool/install/,看页面说明安装。

apktool d -s xxx.apk //编译apk

三、dex2jar安装:

源码下载地址:https://github.com/pxb1988/dex2jar

这里做个说明:很多地方可以下载,如:https://sourceforge.net/projects/dex2jar/files/

但是这些使用的时候会报错,像一下这样的:

dex2jar classes.dex -> ./classes-dex2jar.jar Detail Error Information in Fil

看错误日志说的是:

java.lang.RuntimeException: can not merge I and Z

具体原因看:https://www.jianshu.com/p/0306cb947d7a

现在是需要下载源码,编译修复好的源码拿到工具。( 别人修复了,但是没有把工具直接放出来,我们编译源码生成就好了)

安装gradle:brew install gradle
编译源码:gradle clean distZip
编译成功后,脚本会出现在/dex-tools/build/distributions/目录下
sh d2j-dex2jar.sh classes.dex   
//有时候可能说没有权限,sudo chmod +x d2j_invoke.sh

四、jd-gui安装:

下载地址:http://java-decompiler.github.io/ 

按版本下载就好。

把上一步生成的jar包拖进去窗口查看就好