作者:徐建祥(netpirate@gmail.com)
日期:2009/12/23
網址:http://www.anymobile.org
1/ apk檔案結構:
Apk檔案:
Android application package檔案。每個要安裝到OPhone平台的應用都要被編譯打包為一個單獨的檔案,尾碼名為.apk,其中包含了應用的二進位代碼、資源、設定檔等。
apk檔案實際是一個zip壓縮包,可以通過解壓縮工具解開。可以用zip解開*.apk檔案,下面是一個helloword的apk樣本檔案
|– AndroidManifest.xml
|– META-INF
| |– CERT.RSA
| |– CERT.SF
| `– MANIFEST.MF
|– classes.dex
|– res
| |– drawable
| | `– icon.png
| `– layout
| `– main.xml
`– resources.arsc
2/ apk檔案解壓後反編譯:
2.1 圖片等多媒體檔案:沒有編譯,無需反編譯。
2.2 layout等二進位xml檔案:使用AXMLPrinter將其轉換為可讀的xml檔案:java -jar AXMLPrinter2.jar main.xml > new_main.xml
工具:http://code.google.com/p/android4me/downloads/list
2.3 class檔案反編譯:
Android模擬器中提供了一個dex檔案的反編譯工具,dexdump。用法為首先啟動Android模擬器,把要查看的dex檔案用adb push上傳的模擬器中,然後通過adb shell登入,找到要查看的dex檔案,執行dexdump xxx.dex。
目前在網上能找到的另一個dex檔案的反編譯工具是Dedexer。Dedexer可以讀取dex格式的檔案,產生一種類似於組合語言的輸出。這種輸出與jasmin[ ]的輸出相似,但包含的是Dalvik的位元組碼。
2.4 resources.arsc資源檔:參考漢化部分
3/ android 軟體漢化
方案1:通過16進位編碼軟體自行替換英文
1.JDK(Java Development Kit) -開發環境
2.Auto-Sign -簽名工具
3.Hex Workshop -十六進位編輯器
4.WinRAR -壓縮軟體
圖文並茂樣本:http://bbs.blueshow.net/thread-604533-1-1.html
方案2:通過漢化開發人員自行編寫的漢化軟體For Android
1.JDK(Java Development Kit) -開發環境
2.Android ResEdit-漢化軟體
3.WinRAR -壓縮軟體
圖文並茂樣本:http://mobile.yesky.com/363/9292863.shtml
參考文檔:
Apk檔案結構簡介 http://www.ophonesdn.com/article/show/38
Apk檔案結構、dex反編譯 http://ken.opda.cn/?p=31
android 資源檔反編譯 http://ken.opda.cn/?p=53