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...