apk和odex的合并,让软件成为完整的apk包以便反编译

apk和odex的合并,让软件成为完整的apk包以便反编译

apk和odex的合并,让软件成为完整的apk包以便反编译

最新推荐文章于 2025-08-21 16:20:02 发布

转载

最新推荐文章于 2025-08-21 16:20:02 发布

·

2.4k 阅读

·

0

·

0

文章标签:

#apk

#反编译

android

专栏收录该内容

2 篇文章

订阅专栏

本文深入解析了Android ROM中dex文件与odex文件的区别,阐述了odex文件如何帮助厂商优化空间、提高加载速度并进行反盗版,并提供了将残缺apk与odex文件合并成完整apk的详细步骤与工具。

Android的ROM中正常的软件都是apk内包含有一个classes.dex,但也有有时会没有(比如MIUI或有些HTC的ROM),却有很多odex文件,相对于APK中的dex文件而言这个odex有什么作用呢? 首先分析一下apk文件的安装过程。安装apk包,会在/data/app目录复制一份安装包,在/data/dalvikvm-cache目录放一个解压出来的classes.dex,如果有so文件,还要复制到对应的文件夹。但是,如果把一个apk分解为apk+odex,情况就大大不同了,这时完全可以把apk内的lib文件夹和classes.dex文件删掉,然后签名,配合odex一起使用,当然so文件也不能丢。所以, 正常的包占的的空间=原包+classes.dex+so; 分解后的包占的空间=分解包+odex+so。 这样做可以使其厂商保证一定的反盗版,因为没有没有dex文件的 apk是无法正常安装的,而厂商直接将odex和不完整的apk文件放到手机rom固化到/system/bin中可以让一般用户无法正常导出使用,同时apk带odex不仅节约空间,而且还能优化加载速度。 而那个 apk 是残缺的,里面没有 classes.dex 文件,残缺的 apk 是装不了的,只能把这个 apk 跟 odex 合并成一个完整的 apk 才能安装。 下面介绍合并的方法: 需要的工具: 1.smali-1.2.6.jar 和 baksmali-1.2.6.jar 2.还需要这个 apk 所在的 rom 里面的一些 jar 文件,都在 /system/framework 里面: core.jar, ext. jar, framework. jar, Android.policy. jar, services. jar 。当然,这五个是最基本的,有可能还不够,最好将整个framework文件夹里面的都放这里(不然可能会出异常)。 总共分四步: 1. 首先你的电脑要配置好java环境,不懂的自己Google。 2.把下载好的 smali-1.2.6.jar 和 baksmali-1.2.6.jar ,还有 rom 里面抠出来的 jar ,放到工作目录,然后 apk 和 odex 也放到一起。 3.分解 odex 文件为 class 文件。 命令: java -jar baksmali-1.2.6.jar -x 处是你要分解的 odex 文件的名字(没有角括号),命令完成之后,会生成一个 out 文件夹,里面就是所有的 class 文件。 4.将 class 生成为 classes.dex 文件。 命令: java -Xmx512M -jar smali-1.2.6.jar out -o classes.dex 这一步应该不会有什么问题,然后会生成 classes.dex 文件。 5.把 classes.dex 放入 apk 里面。 最后这一步最简单了,用解压缩软件打开 apk ,然后把千辛万苦生成的 classes.dex 拖进去替换原来的dex文件就 OK 了。这个 apk 就能用了。如果想给他重新签个名的话,去找个 Auto Sign 签名工具签署一下就行。

这里再共享一个非常简单的合并工具,用这个工具可以批量合并ROM里面的apk和odex文件,只需两步

首先把你要合并的ROM解压到romdir文件夹里面,然后点击odextools.bat就可以了(注意同样要java环境和整个framework文件夹里面的文件

odextools.rar

相关文章

燃烧刺激
365bet在线注册

燃烧刺激

📅 07-22 👁️ 9621
文件保存了怎么恢复之前文件?文件还原指南!
365bet在线注册

文件保存了怎么恢复之前文件?文件还原指南!

📅 07-14 👁️ 6192