合并apk和odex文件
本人在ubuntu10.04环境下安装java1.6版本。
需要的工具:
1. smali-1.4.2.jar 和 baksmali-1.4.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文件。
将smali-1.2.2.jar 和baksmali-1.2.2.jar放在d:\odex文件夹下
命令:键入 d:回车 键入cd odex 回车
java -jar baksmali-1.2.2.jar -x a.odex \\a.odex喂odex文件的文件名在键入命令前务必正确安装JDK和配置环境变量
<a.odex>处是你要分解的odex文件的名字,命令完成之后,会生成一个out文件夹,里面就是所有的class文件。如果出现问题,
比如什么异常,缺少包什么的,就更到rom里面把出错信息里面要求的包拿出来,放到当前目录下。
3. 将class生成为classes.dex文件。
命令:java -Xmx512M -jar smali-1.2.2.jar out -o classes.dex
4. 把classes.dex放入apk里面。
最后这一步最简单了,用解压缩软件打开apk,然后把千辛万苦生成的classes.dex塞进去,就ok了。
这个apk就能用了。如果想给他重新签个名的话,去找个Auto Sign签名工具签署一下就行。(但apk为系统文件是不必重新签名的!)
这样apk和odex就合拼啦