安卓apk文件的一款反编译软件,可以帮你解决在反编译apk修改文件时出现的build错误,使用smali和baksmali文件进行修改及打包可以避免此类错误出现,东坡这附上了smali baksmali最新版2.1.3版,还有详细的教程攻略,欢迎参考。
smali baksmali使用教程
android 合并apk和odex文件
前提:正确安装JDK和配置环境变量
需要这个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和配置环境变量
a.odex;处是你要分解的odex文件的名字,命令完成之后,会生成一个out文件夹,里面就是所有的class文件。如果出现问题,
比如什么异常,缺少包什么的,就更到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语法有些许的区别。
6.替换apk包中的classes.dex文件之后,需要对apk重新签名才能安装
- PC官方版
- 安卓官方手机版
- IOS官方手机版