说下为什会有这个需求,以某系统应用为例,我们通过 adb 获取到的 apk 反编译查看只有少部分代码和资源,关键代码看不到。
经过一系列操作,把 odex 转换为 dex 可以看到源码。
工具下载
- Smali 下载
1、使用 adb shell pm list package 查看包名
2、使用 adb shell pm path [包名] 查看路径
3、使用 adb pull [目标路径] [存储路径] 导出文件
4、使用 MT管理器查看安装包,并进入 APK路径(/system/app/包名或/system/pri-app/应用名称),导出 odex 文件(arm 目录)
5、导出 /system/framework 目录(如需转换 arm64,则需把此目录下所有文件复制到 framework 下)
6、使用 baksmali 获得 smail
java -jar baksmali-2.5.2.jar de UpSlide.odex --classpath-dir framework
7、使用 smali 获得 dex
java -jar smali-2.5.2.jar a out/ -o UpSlede.dex