1.1.在rom中找php
1.2.经过adb pull
从/system/app/
目录找搞出来java
1.3.在网上搜,看看有没有xxx.apk的下载android
2.1.须要/system/framework/
里面的东西,直接adb pull
出来git
2.2.须要7za (这里面有个oat2dex附件里面有这个 http://forum.xda-developers.c... ) github
2.3.apktool(HP: https://ibotpeaches.github.io... )api
2.4.aapt(这个在android sdk里有)app
2.5.baksmali,smali(HP: https://github.com/JesusFreke... )ide
2.6.jd-gui(HP: http://jd.benow.ca/)工具
3.1.先解压安装包apk文件,通常会获得.odex
或.odex.xz
文件。
面对.odex.xz
文件的时候,须要用7za将它变成.odex
文件。
具体命令:post
7za x *.odex.xz
3.2.接下来使用aapt
工具和apk文件获得targetSdkVersion,具体命令相似于下面:
aapt d badging xxxx.apk | grep version
记下这个sdkVersion,好比是23
3.3.接下来使用baksmali
将.odex
文件变成一堆smali
文件。具体命令相似于下面(各个版本不同):
baksmali deodex xxxxx.odex -a 23 -d system\framework -o output // 上面不行试试这个 baksmali -x arm\temp.odex -a 21 -o output -d system\framework // 仍是不行试试这个 baksmali xxx.odex -a 23 -x -c boot.oat -d system\framework\arm -o output
总之这个工具用起来仍是有点不畅,有点坑,须要本身多尝试,多研究。
-a 后面跟api版本,就是3.2步骤获得的那个数字,-d后面跟adb pull
出来的/system/framework
这个目录
而后,若是你遇到Unsupported oat version: 45
这种错误或者相似的错误,这个没辙。具体看这里:https://github.com/JesusFreke...
若是遇到相似于找不到什么class啊,core-junit.jar什么的,还能够抢救一下,尝试上面第三行的那个命令。
若是遇到
Error occurred while loading class path files. Aborting. java.util.MissingFormatArgumentException: Format specifier '%s'
这个错误的话,你应该用的是上面第一行那个命令,考虑从新下载个低一点版本的smali,而后再试试第二行,第三行的指令。
若是啥都没显示,那应该是成功了,你会获得一个文件夹,里面有一些相似于java包的组织形式的文件夹和文件,文件是smali后缀。
3.4.上一步成功了以后,你须要用smali工具将上一步的输出转换成一个dex文件。
smali -o classes.dex output
output指的是3.3步骤产出的output文件夹。这个步骤我基本没有失败过,成功后,你获得了一个dex文件。
3.5.最后使用d2j-dex2jar工具就能够将dex转换成jar文件了。
3.6.最后使用jd-gui.exe工具打开jar文件,就能够查看到代码了。
4.1.若是遇到rom里面是system.new.data
这种形式的文件,要用SystemExtract
这个工具将它解压出来。
SystemExtract
下载:http://forum.xda-developers.c...
参考连接:http://forum.xda-developers.c...