这是smali-2.0.3.jar baksmali-2.0.3.jar下(xià)载,有时候(hòu)使用apktool反编(biān)译apk修改Smali文件之后再进行build会出(chū)现错误,这种(zhǒng)情况下(xià)可以(yǐ)换一个更高版本的apktool试试。一个强大的apk文件编辑工具。执行成功后你会发现tools目录下多了一个classout文件夹,里面就是smali类型的文件,里(lǐ)面是反编译出的代码,但是不(bú)是(shì)java代码,还是能看出变量和方法的(de)。
smali-2.0.3.jar baksmali-2.0.3.jar是有时(shí)候使用(yòng)apktool反编译apk修改Smali文件之后再进行build会出现错误,这种情况下可(kě)以换一个更高版本的apktool试试。一个强(qiáng)大的apk文(wén)件编辑工(gōng)具。执行成功(gōng)后(hòu)你(nǐ)会发(fā)现tools目录下多了一个(gè)classout文件夹,里(lǐ)面就是smali类型(xíng)的文件,里面(miàn)是反编译出(chū)的代码,但是不是java代(dài)码,还是能看出变量和(hé)方法的。
首(shǒu)先把baksmali-1.3.2.jar和smali-1.3.2.jar文件放到androids sdk安装路径下的tools里(lǐ)面,把apk文件改成rar文(wén)件,解压后取出classes.dex文(wén)件(jiàn),也放(fàng)入tools里面,然后用命令(lìng)行,cd tools目(mù)录下,
java -jar baksmali-1.3.2.jar -o classout/ classes.dex
下免就可以使用java命令(lìng),tools目录下多了一个classout文件夹,里面就是smali类型的文件,里面是反编译出的代(dài)码,但是不是java代码(mǎ),还是能看(kàn)出变(biàn)量和方法的,
用(yòng)jd_gui来看反编译出的Java代码,这(zhè)样便于寻找自己想要改的(de)东西,找到(dào)后可以到(dào)baksmali classout下去修改相应的地方。然后是利用smali编译回去:
命令如(rú)下:java -jar smali-1.3.2.jar classout/ -o classes.dex
把classout下编译(yì)成(chéng)classes.dex然后把classes.dex放(fàng)回apk下(xià)覆(fù)盖原来的classes.dex文件。
java -jar baksmali-2.0.3.jar -x androids.odex java -jar smali-2.0.3.jar out -o classes.dex /////////// androids 合并apk和(hé)odex文件 前提:正确安装JDK和配(pèi)置环境变量 需要这个apk所在的rom里面的一些jar文件, 都在(zài)/system/framework里面:core.jar, ext. jar, framework. jar, androids.policy. jar, services. Jar。 当然,这五个是最基本的,有(yǒu)可能还不够,这种情(qíng)况下面会讲到。 总共(gòng)分四步: 1. 把下载好的smali-2.0.3.jar 和baksmali-2.0.3.jar ,还有rom里面抠出来(lái)的5个jar,放到工(gōng)作目(mù)录,然后apk和odex也放到一(yī)起。 2. 分解odex文件为(wéi)class文(wén)件。 将smali-2.0.3.jar 和baksmali-2.0.3.jar放在d:\odex文件夹(jiá)下 命令:键入 d:回车 键入cd odex 回车 java -jar baksmali-2.0.3.jar -x a.odex \\a.odex喂odex文(wén)件的文件名在键入(rù)命(mìng)令前务必正确安装JDK和配置环(huán)境变量 <a.odex>处是你要分(fèn)解的(de)odex文件的名字,命令完成(chéng)之后,会生成一个out文(wén)件(jiàn)夹,里面就(jiù)是所有的class文件。如果出现问题, 比如什么异常,缺少包什么的,就更到rom里面把出错信息里面(miàn)要求(qiú)的包拿出(chū)来,放到当前(qián)目录下。 3. 将class生成为(wéi)classes.dex文件。 命令:java -Xmx512M -jar smali-2.0.3.jar out -o classes.dex 4. 把(bǎ)classes.dex放入apk里面。
