合并apk和odex的方法

转自:http://dev.10086.cn/cmdn/wiki/index.php?doc-view-3326

有时候发现别人手机里有一款apk挺好,想弄出来装自己手机上,可是却发现那个apk是残缺的,里面没有classes.dex文件,却有个跟apk同名的odex文件。残缺的apk是装不了的,只能把这个apk跟odex合并成一个完整的apk才能安装。

需要的工具:

1.smali-1.2.2.jar和baksmali-1.2.2.jar

2.还需要这个apk所在的rom里面的一些jar文件,都在/system/framework里面:core.jar,ext.jar,framework.jar,Android.policy.jar,services.Jar。当然,这五个是最基本的,有可能还不够,这种情况下面会讲到。

总共分四步:

1.把下载好的smali-1.2.2.jar和baksmali-1.2.2.jar,还有rom里面抠出来的5个jar,放到工作目录,然后apk和odex也放到一起。

2.分解odex文件为class文件。

命令:Java-jarbaksmali-1.2.2.jar-x<a.odex>

<a.odex>处是你要分解的odex文件的名字,命令完成之后,会生成一个out文件夹,里面就是所有的class文件。如果出现问题,比如什么异常,缺少包什么的,就更到rom里面把出错信息里面要求的包拿出来,放到当前目录下。

3.将class生成为classes.dex文件。

命令:java-Xmx512M-jarsmali-1.2.2.jarout-oclasses.dex

这一步应该不会有什么问题,然后会生成classes.dex文件。

4.把classes.dex放入apk里面,把盖子盖上。

最后这一步最简单了,用解压缩软件打开apk,然后把千辛万苦生成的classes.dex塞进去,就ok了。这个apk就能用了。如果想给他重新签个名的话,去找个AutoSign签名工具签署一下就行。

相关推荐