這是smali-2.0.3.jar baksmali-2.0.3.jar下載,有時(shí)候使用apktool反編譯apk修改Smali文件之后再進(jìn)行build會(huì)出現(xiàn)錯(cuò)誤,這種情況下可以換一個(gè)更高版本的apktool試試。一個(gè)強(qiáng)大的apk文件編輯工具。執(zhí)行成功后你會(huì)發(fā)現(xiàn)tools目錄下多了一個(gè)classout文件夾,里面就是smali類(lèi)型的文件,里面是反編譯出的代碼,但是不是java代碼,還是能看出變量和方法的。
smali-2.0.3.jar baksmali-2.0.3.jar是有時(shí)候使用apktool反編譯apk修改Smali文件之后再進(jìn)行build會(huì)出現(xiàn)錯(cuò)誤,這種情況下可以換一個(gè)更高版本的apktool試試。一個(gè)強(qiáng)大的apk文件編輯工具。執(zhí)行成功后你會(huì)發(fā)現(xiàn)tools目錄下多了一個(gè)classout文件夾,里面就是smali類(lèi)型的文件,里面是反編譯出的代碼,但是不是java代碼,還是能看出變量和方法的。
首先把baksmali-1.3.2.jar和smali-1.3.2.jar文件放到android sdk安裝路徑下的tools里面,把a(bǔ)pk文件改成rar文件,解壓后取出classes.dex文件,也放入tools里面,然后用命令行,cd tools目錄下,
java -jar baksmali-1.3.2.jar -o classout/ classes.dex
下免就可以使用java命令,tools目錄下多了一個(gè)classout文件夾,里面就是smali類(lèi)型的文件,里面是反編譯出的代碼,但是不是java代碼,還是能看出變量和方法的,
用jd_gui來(lái)看反編譯出的Java代碼,這樣便于尋找自己想要改的東西,找到后可以到baksmali classout下去修改相應(yīng)的地方。然后是利用smali編譯回去:
命令如下:java -jar smali-1.3.2.jar classout/ -o classes.dex
把classout下編譯成classes.dex然后把classes.dex放回apk下覆蓋原來(lái)的classes.dex文件。
java -jar baksmali-2.0.3.jar -x android.odex java -jar smali-2.0.3.jar out -o classes.dex /////////// android 合并apk和odex文件 前提:正確安裝JDK和配置環(huán)境變量 需要這個(gè)apk所在的rom里面的一些jar文件, 都在/system/framework里面:core.jar, ext. jar, framework. jar, android.policy. jar, services. Jar。 當(dāng)然,這五個(gè)是最基本的,有可能還不夠,這種情況下面會(huì)講到。 總共分四步: 1. 把下載好的smali-2.0.3.jar 和baksmali-2.0.3.jar ,還有rom里面摳出來(lái)的5個(gè)jar,放到工作目錄,然后apk和odex也放到一起。 2. 分解odex文件為class文件。 將smali-2.0.3.jar 和baksmali-2.0.3.jar放在d:\odex文件夾下 命令:鍵入 d:回車(chē) 鍵入cd odex 回車(chē) java -jar baksmali-2.0.3.jar -x a.odex \\a.odex喂odex文件的文件名在鍵入命令前務(wù)必正確安裝JDK和配置環(huán)境變量 <a.odex>處是你要分解的odex文件的名字,命令完成之后,會(huì)生成一個(gè)out文件夾,里面就是所有的class文件。如果出現(xiàn)問(wèn)題, 比如什么異常,缺少包什么的,就更到rom里面把出錯(cuò)信息里面要求的包拿出來(lái),放到當(dāng)前目錄下。 3. 將class生成為classes.dex文件。 命令:java -Xmx512M -jar smali-2.0.3.jar out -o classes.dex 4. 把classes.dex放入apk里面。