合并apk和odex的方法

linghujava 2010-06-10

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

 

       需要的工具:

1. smali-1.2.2.jarbaksmali-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.jarbaksmali-1.2.2.jar,还有rom里面抠出来的5个jar,放到工作目录,然后apk和odex也放到一起。

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

命令:java -jar baksmali-1.2.2.jar -x <a.odex>

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

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

命令:java -Xmx512M-jar smali-1.2.2.jar out -o classes.dex

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

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

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

相关推荐