序進行操作,很好用。 打開apktool工具包,看到如下內容:   Akp程序的解包和打包軟件由2個程序來完成:apktool.jar 和 aapt.exe。 另外提供一個批處理文件:apktool.bat,其內容為:  java -jar "%~dp0\apktool.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9  運行apktools.jar需要java環境(1.6.0版本以上)。apktool.jar用於解包,apktool.jar和aapt.exe聯合用於打包。testkey.pk8和testkey.x509.pem是簽名程序。  解包命令:  apktool d xxxxxx.apk ABC 這裡“d”表示要解碼。Xxxxx.apk是要解包的APK文件。ABC是子
目錄名。解包的文件會放在這個子目錄內。  打包命令:  apktool b ABC yyyyy.apk 這裡“b”表示要打包,ABC是子目錄名,是解包時產生的子目錄,用來存放所有解包後的和修改後的文件。yyyyy.apk是打包後產生的新的APK文件。  在上傳的apk工具包裡,已經另外加了兩個批處理文件:Unpack-apk.bat和Repack-apt.bat。前者用於apk的解包過程,後者用於編輯後的文件的打包和簽名。把待解包的apk文件放到Unpack-apk.bat的同一個目錄裡,雙擊Unpack-apk.bat,apk文件解包開始,產生3個子文件夾,解包後的文件被放在Working_APK文件夾內。詳細內容將在第二部分描述。另外,批處理文件允許同時對多個apk文件順序進行解包和打包。  2) apk manager  apk manager是另一個“apk反編譯利器”。它比apktool工具包還要強大些。三星的許多apk系統應用程序用了三星的閉源系統,用apktool可以解包,但是打包不成功。這時,apk manager就好用了。  打開apk manager工具包,看到如下內容。軟件都放在other子目
錄裡。運行apk manager要求adb工具包(見下圖中的3個adb文件)。把待解包的apk文件放到place-apk-here-for-modding子目錄裡,雙擊腳本批處理程序Script.bat,選擇選項:9,產生一個子文件夾projects,解包後的文件被放在這個子文件夾內。詳細內容將在第二部分描述。  在使用時,有時apktool和apk manager交替使用,一個不行就用另外一個。 所以,在編輯apk應用程序時兩者都要掌握。  3) Dex2jar和XJad  該方法不是直接對apk文件進行解包。它是首先提取apk文件內的classes.dex文件,然後使用dex2jar.jar工具包將classes.dex解包成jar文件,再通過XJad 或者其他class反編譯工具進行java反編譯,最後生成java源文件。
但是,使用這個工具包無法進行classes.dex的還原(當然也無法進行apk的打包)。儘管如此,這個工具包仍然很重要,因為它把classes.dex文件轉換成了可以更容易閱讀的java源文件。在修改apk應用程序時,必不可少,是一極強的輔助工具。相比之下,apktool和apk manager反編譯後得到的是Dalvik 反編譯碼 (Dalvik opcodes),需要很專業的知識來閱讀,很不直觀。如果你讀懂了java源文件,那修改相對應的Dalvik碼不就容易多了嗎。  4) 其它工具包簡介  此外,還有許多工具包可用。這些也容易在網上找到。 a) DoAPK  DoAPK實際上就是apktool工具包。有人把apktool寫成了帶窗口界面的可執行文件。 b) Google Smali  有兩個程序:baksmali.jar和smali.jar。baksmali.jar用來反解析dex和odex文件,得到Dalvik碼。然後用smali.jar還原成dex文件。例如,在修改狀態欄時間顯示顏色時,要用的這兩個解析程序。 c) AXMLPrinter2.jar  AXMLPrinter2.jar對apk文件內的 AndroidManifest.xml和main.xml進行操作,將XML還原成文本文件,便於閱讀。 d) Apkdb  是一個集成apktool,smali,Dex2jar,簽名等功能的工具。
e) 其它工具  不再介紹。自己動手到網上去搜索吧。  我把這些收集到的apk工具包打包上傳,供你們使用,免得你們找來找去。  
文章標籤
全站熱搜
創作者介紹

android99 發表在 痞客邦 留言(0) 人氣(12)