簡單的總結幾個關鍵步驟:
一、工具準備:apktool , dex2jar , jd-gui
二、使用dex2jar + jd-gui 得到apk的java源碼
1.用解壓工具從 apk包中取出 classes.dex 文件
用命令(dex2jar.bat classes.dex
)得到一個 jar文件
2.用jd-gui反編譯工具將得到.jar文件反編譯成.java文件
三、使用apktool得到apk的xml文件
1.用命令(apktool d xxx.apk xxx_xml
)反編譯xxx.apk包
2.從 xxx_xml 文件夾得到xml文件
四、第二步得到的程序源代碼和第三步得到的xml文件組合下,即可得到完整的apk源碼。
五、漢化/去廣告,加 values-zh-rCN, values-zh-rTW, values-de, values-fr
1.在步驟三的文件夾裏 建文件夾: values-zh-rCN,values-zh-rTW
2.1複製values\strings.xml 到 values-zh-rCN 並翻譯.
2.2 去廣告見:http://www.cnblogs.com/wangjianhui/archive/2011/07/05/2098563.html
3.重建APK,用命令(apktool b xxx ) ,輸出到ABC/dist/out.apk
或命令( apktool b xxx out.apk )
六、簽名
1.把未簽名的apk 複製到 sign.bat 目錄下。
2.打開cmd, 進入到 sign.bat 目錄下, 輸入命令:
sign out.apk out_signed.apk
out.apk 即爲沒簽名的apk, out_signed.apk 爲簽名的
sign.bat 要改下:
@ECHO OFF
java -jar signapk.jar testkey.x509.pem testkey.pk8 %1 %2
--------------------------------- 以下是整理/摘選的 ---------------------------------
在官網下載 apktools 工具
http://code.google.com/p/android-apktool/
apktool1.4.3.tar.bz2 和 apktool-install-windows-r04-brut1.tar.bz2
解壓分別得到 apktool.jar 和 apktool.bat , aapt.exe .
把這3個文件複製到 系統文件夾下面, 一般是C:\Windows
jd-jui: http://java.decompiler.free.fr/?q=jdgui
dex2jar : http://code.google.com/p/dex2jar/downloads/list
=================================================
部分內容摘自: http://www.cnblogs.com/afirefly/archive/2011/10/12/2208461.html
一、工具準備:apktool , dex2jar , jd-gui
工具包也可以在這裏下載。http://www.kuaipan.cn/index.php?ac=file&oid=3166172581218989
1、dex2jar下載,jd-gui下載。
2、apktool,可以去Google的官方下載,apktool-1.0.0.tar.bz2(裏面有apktool.jar)和apktool-install-windows-2.1_r01-1.zip兩個包都要下。解壓 apktool.tar.bz2,把apktool.jar 放到 C:\Windows下,解壓apktool-install-windows.zip到任意文件夾(例如E盤根目錄或 C:\Windows )。
二、使用dex2jar + jd-gui 得到apk的java源碼
步驟如下:
1、用.rar打開apk文檔,將classes.dex文件解壓出來,然後使用工具反編譯成.jar文件。
在cmd下進入dex2jar.bat所在路徑,然後輸入命令:
dex2jar.bat XXX
,XXX指的是你要反編譯的apk中的classes.dex文件所在路徑及名稱,比如:我的dex2jar.bat在D:\Android\apk_decode\dex2jar-0.0.7-SNAPSHOT路徑下, classes.dex在D:\Android下,所以: 你進入dex2jar.bat路徑下後,輸入dex2jar.bat D:\Android\classes.dex
,這樣會生成一個jar文件(一般是:classes.dex.dex2jar.jar)。
2.用jd-gui反編譯工具將得到.jar文件反編譯成.java文件
三、使用apktool得到apk的xml文件
1、Win+R 運行CMD,用cd命令轉到apktool-install-windows所在文件夾,輸入命令:
apktool d XXX.apk ABC
反編譯XXX.apk到文件夾ABC
2、 在解壓後的文件夾中可以得到apk的xml配置文件
四、第二步得到的程序源代碼和第三步得到的xml文件組合下,就成一個android工程,即可得到完整的apk源碼。
=================================================
部分內容摘自: http://zhangyan1158.blog.51cto.com/2487362/683234
APKTool的使用
1.decode
該命令用於進行反編譯apk文件,一般用法爲
apktool d <file.apk> <dir>
<file.apk>代表了要反編譯的apk文件的路徑,最好寫絕對路徑,比如C:\MusicPlayer.apk
<dir>代表了反編譯後的文件的存儲位置,比如C:\MusicPlayer
如果你給定的<dir>已經存在,那麼輸入完該命令後會提示你,並且無法執行,需要你重新修改命令加入-f指令
apktool d –f <file.apk> <dir>
這樣就會強行覆蓋已經存在的文件
2.build
該命令用於編譯修改好的文件,一般用法爲
apktool b <dir>
這裏的<dir>就是剛纔你反編譯時輸入的<dir>(如C:\MusicPlayer),輸入這行命令後,如果一切正常,你會發現C:\MusicPlayer內多了2個文件夾build和dist,其中分別存儲着編譯過程中逐個編譯的文件以及最終打包的apk文件。
3.install-framework
該命令用於爲APKTool安裝特定的framework-res.apk文件,以方便進行反編譯一些與ROM相互依賴的APK文件。具體情況請看常見問題
==========================
jadclipse Decompiler.zip
jad158e.linux.intel.zip
jad158g.win.zip (
jad.exe
)
jadclipse.txt
jadclipse_3.1.0.jar
jadclipse_3.2.0.jar
net.sf.jadclipse_3.2.4.jar
net.sf.jadclipse_3.3.0.jar