Mate10 EMUI 5.1 8.1.0
P9 EMUI 5.0 8.0.0
Mate20 EMUI 9.0.0 9.0.0
Mate20 EMUI 10.1.0 10
adb pull /system/framework .
2. 利用 vdexExtractor工具将 *.vdex 转化为 dex 文件
vdexExtractor -i input_file -o . output_file
3. 利用 jadx将转化后的 dex 文件转化为 java 源码;
4. 编写脚本 convert.sh,请见 convert.sh
-
Android 9.0 dex2oat 生成的衍生文件(odex、vdex 和 cdex), 其中 cdex 需要用到 compact_dex_converter
-
compact_dex_converter 工具可以将 cdex 转化为标准的 dex,再用最新的 jadx 转化成 java 源码,旧版本的 jadx 转化可能有问题,建议自己编译最新的源码使用;
-
run.sh 会去 one.drive下载 compact_dex_converter,速度太慢,自己可以先根据 constants.sh 中的网址下载解压后放到对应的目录: linux、mac
其中 linux 路径:
vdexExtractor/tools/deodex/hostTools/Linux/api-API_28
- 将 run.sh 中 deps_prepare_env "$apiLevel" 一行注释掉就会使用本地已经下载好的依赖