本文主要是介绍如何合并apk和odex文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如何合并apk和odex文件有时候你看上某个rom里的程序比较好用,想提取出来和大家分享,却发现这个程序分了为apk和odex两个文件,不方便安装,所以我们要想办法把这两个文件合并成为一个文件。
那么我先说明下odex文件的作用,如果你仔细观察会发现那些对应的apk文件中没有dex文件。这样做可以使其厂商保证一定的反盗版,因为没有没有dex文件的apk
是无法正常安装的,而厂商直接将odex和不完整的apk文件放到手机rom固化到/system/bin中可以让一般用户无法正常导出使用。据说还能使系统稳定什么的,我在这
里不多研究了,其实我也不清楚。嘿嘿。
那么我们开始工作:
一。首先是要在java环境(java环境请访问www.java.com安装网页提示下载安装)
二。baksmali-1.2.4.jar和smali-1.2.4.jar下载 然后把这两个文件和ROM里面的
system\framework目录下的文件一起放在一个文件夹里。
http://code.google.com/p/smali/downloads/list
三:我们以pdf为例子,ROM里面拿出来的可能是2个文件,pdfapk + pdf.odex。
第一步,分解odex文件:
先运行cmd命令,然后用CD /D +你文件所在目录,将这个目录设置工作目录
然后运行下列命名:
java -jar baksmali-1.2.4.jar -x pdf.odex
会在工作目录生成一个out的目录,里面是分解出来的一些文件,我们在此不深究这些文件的作用。
四:把分解得到的文件变成classes.dex:
在cmd中运行下列命令:
java -Xmx512M -jar smali-1.2.4.jar out -o classes.dex (注意大小写)
这样,我们就得到了一个有用的classes.dex文件,用WinZip或者WinRAR打开pdf.apk文件,把这个classes.dex放进去,
最后把这个包含classes.dex的apk重新签名一下,就生成一个可以安装的单独APK程序了。
那么我们就完工了,没有什么难度。
这篇关于如何合并apk和odex文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!