安卓apk文件的一款反編譯軟件,可以幫你解決在反編譯apk修改文件時出現(xiàn)的build錯誤,使用smali和baksmali文件進行修改及打包可以避免此類錯誤出現(xiàn),東坡這附上了smali baksmali最新版2.1.3版,還有詳細的教程攻略,歡迎參考。
smali baksmali使用教程
android 合并apk和odex文件
前提:正確安裝JDK和配置環(huán)境變量
需要這個apk所在的rom里面的一些jar文件,
都在/system/framework里面:core.jar, ext. jar, framework. jar, android.policy. jar, services. Jar。
當然,這五個是最基本的,有可能還不夠,這種情況下面會講到。
總共分四步:
1、把下載好的smali-2.0.3.jar 和baksmali-2.0.3.jar ,還有rom里面摳出來的5個jar,放到工作目錄,然后apk和odex也放到一起。
2、分解odex文件為class文件。
將smali-2.0.3.jar 和baksmali-2.0.3.jar放在d:\odex文件夾下
命令:鍵入 d:回車 鍵入cd odex 回車
java -jar baksmali-2.0.3.jar -x a.odex\\a.odex喂odex文件的文件名在鍵入命令前務必正確安裝JDK和配置環(huán)境變量
a.odex;處是你要分解的odex文件的名字,命令完成之后,會生成一個out文件夾,里面就是所有的class文件。如果出現(xiàn)問題,
比如什么異常,缺少包什么的,就更到rom里面把出錯信息里面要求的包拿出來,放到當前目錄下。
3、將class生成為classes.dex文件。
命令:java -Xmx512M -jar smali-2.0.3.jar out -o classes.dex
4、 把classes.dex放入apk里面。
使用baksmali及smali修改apk并打包的方法
1、首先解壓apk文件,獲得classes.dex文件
2.使用baksmali反編譯classes.dex
命令為:java -jar baksmali.jar -o classout/ classes.dex
3.反編譯的smali文件存在./classout之中。
4.此時對classout目錄下的smali文件就可以進行修改了
修改過之后需要使用smali.jar將smali目錄重新編譯為classes.dex
5.使用壓縮工具將新生成的classes.dex塞入apk包替換原有的classes.dex
這里需要說明的就是使用baksmali.jar反編譯的生成的smali文件使用的是baksmali語法,和apktool反編譯生成的smali語法有些許的區(qū)別。
6.替換apk包中的classes.dex文件之后,需要對apk重新簽名才能安裝
- PC官方版
- 安卓官方手機版
- IOS官方手機版