首先我们需要 4个工具, apktool: 解压缩 资源文件的
dex2jar : dex文件转为 java文件(jar)
jd-jui: 非常常见的 jar 源码查看器
步骤 1:
使用 apktool 解压 apktool.bat d -f test.apk test
其中 -f 是可选的 后面一个test指的是 生成的目录, 可以省略,默认当前目录
得到 classes.dex 后可以直接用 dex2jar 工具进行下一步. 但有些 apk会发现 没有dex 只有 odex文件. odex文件是经过优化
的dex文件, 通常预装软件和系统软件会采取这种方式 ,在 /system/app下有许多,顺便提一下在此目录安装的应用优先级比普通的/data/data
应用要高.
步骤2:
使用 java -jar baksmali-2.0.2.jar -a 16 -x uiautomator.odex -d test 来处理odex文件 test目录表示依赖文件目录. 一般比较多,我的做法是
直接把 framework里面的都拷进去. 当然你也可以根据报错的提示 一个个的添加
成功之后会生成 一个 out 文件 (gcc的敢脚)
步骤3:
使用 java -jar smali-2.0.3.jar -a 19 -o classes.dex out 到了这一步 就会生成 jar文件了 ,文件名 :classes.dex
这个时候基本成功了.
步骤4:
使用 dex2jar.bat classes.dex 来生成 classes-dex2jar.jar. 当然也可以用 d2j-dex2jar.bat命令来使用
用 jd查看就行了