最近工作中發(fā)現(xiàn)之前8.0的hook接口在最新的9.0華為手機(jī)上無效,但是在原生9.0上有效,說明是華為修改了部分代碼,造成了接口不好使,所以想到查看手機(jī) framework 層的源碼。
具體操作步驟:
- 用 adb 或者 as 的
Device File Explorer導(dǎo)出system/framework/arm64下的vdex文件。
2.利用 vdexExtractor 工具將 vdex 文件轉(zhuǎn)換成標(biāo)準(zhǔn)的 dex 文件:
感謝 vdexExtractor 的作者:
https://github.com/anestisb/vdexExtractor
編譯 vdexExtractor,批量導(dǎo)出 dex 文件
git clone https://github.com/anestisb/vdexExtractor
cd vdexExtractor
./make.sh
cd tools/deodex/
./run.sh -i vdex/ -o out-dex/
vdex為從手機(jī)導(dǎo)出vdex文件存放的目錄,out-dex 為存放輸出 dex 的目錄。

image.png
轉(zhuǎn)換后的文件放在vdexExtractor_deodexed目錄下,都是根據(jù) vdex 按文件夾存放的。
- 導(dǎo)出的 dex 文件的 文件
magic number為 039,借助 dex2jar 將它們轉(zhuǎn)換為 jar 文件。
感謝 https://github.com/DexPatcher/dex2jar/releases 提供的 2.1 版本,能轉(zhuǎn)化成功。