有时候要分析 apk 中的内容,比如 AndroidManifest,或者 dex 文件,这里分享 2 个常用的工具
官方地址:https://ibotpeaches.github.io/Apktool/
该工具在解析 xml 文件方面比较给力,比如 AndroidManifest.xml 或者是 res 目录下的布局 xml。当然它也能解析出代码,但生成的格式是 smali 或者 kotlin_metadata,不方便阅读,因此我常用来解析 xml 用
反编译用法也简单
1
| $ java -jar apktool.jar d test.apk
|
就在工具目录下生成 apk 同名目录
同时,它还能将反编译的包再打包生成 apk 文件,命令同样简单
1
| $ java -jar apktool.jar b test --frame-path $ANDROID_HOME
|
这样在 test 包下的 dist 目录中生成 apk
dex2jar
地址:https://github.com/pxb1988/dex2jar
这个工具用来解析 classes.dex 文件,解析完成后用查看 class 文件的工具,比如 jd-gui.exe 就能阅读源码了
这个工具是个套件,支持多种转换格式,我常用的就是 d2j-dex2jar.jar
1
| $ d2j-dex2jar.jar --force classes.dex
|
在目录下生成 classes.jar 就是转换好的 class 文件。注意经常更新到最新版本,才能更好支持到新版本的 Android apk 编译的 dex 文件
今天的分享就到这里,利用好这两个工具,能够在日常分析 Android 问题的过程中带来很大的便利