最近查一个特定rom的bug,打算反编译rom查看rom中的源码,于是总结了下大致的方式。
挂载镜像:
OS X:
$ brew cask install osxfuse $ brew install ext4fuse $ mkdir /mnt $ ./simg2img system.img system.ext4.imt $ ext4fuse system.ext4.img /mnt
oat转jar
下面以MIUI 8.0.7.0 为例
准备工具: dextra: http://newandroidbook.com/tools/dextra.tar
dex2jar:https://github.com/pxb1988/dex2jar
将framework核心代码pull到本地:
adb pull /system/framework/arm64/boot.oat ~/Downloads
oat转换为dex:
./dextra boot.oat -dextract
然后会得到一堆dex
dex转换为jar
bash d2j-dex2jar.sh system@framework@framework.jar@classes.dex -o framework.jar bash d2j-dex2jar.sh system@framework@framework.jar:classes2.dex@classes.dex -o framework2.jar
得到两个jar包,这样可以直接使用了
参考
rom镜像解包打包:https://forum.xda-developers.com/galaxy-s2/general/ref-unpacking-repacking-stock-rom-img-t1081239 dextra使用:http://www.jianshu.com/p/b50d326a98b8