Rom+Odex+Apk处理
来源:互联网 发布:如何优化网站页面 编辑:程序博客网 时间:2024/05/31 19:23
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 <a.odex>
<a.odex> 处是你要分解的 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 签名工具签署一下就行。
本文只是转载整理
合并工具.rar
这里再共享一个非常简单的合并工具,用这个工具可以批量合并ROM里面的apk和odex文件,只需两步
首先把你要合并的ROM解压到romdir文件夹里面,然后点击odextools.bat就可以了(注意同样要java环境和整个framework文件夹里面的文件)
odextools.rar
来源: http://bbs.xda.cn/thread-10877925-1-1.html
相关参考:
1.反编译contacts.apk问题
http://bbs.hiapk.com/thread-3350926-1-1.html
2. Android APK反编译详解
http://blog.csdn.net/sunboy_2050/article/details/6727581
3.反编译之前用不用合并apk与odex
http://hi.baidu.com/mygalaxydddd/item/57220789ed87e82d100ef328
4.
【教程】安卓.odex反编译教程。小白经验,解决各种编译失败问题
http://tieba.baidu.com/p/2018941707
5.smali和baksmali下载地址
http://code.google.com/p/smali/downloads/list
6.APK反编译过程及用到的工具
http://blog.163.com/fushaolin@126/blog/static/16341724220109195320860/
7.修改和反编译定制ROM合并apk odex
http://wenku.baidu.com/view/8e941ecda1c7aa00b52acbeb.html
- Rom+Odex+Apk处理
- apk odex 合并方法
- apk反编译,包括odex
- 合并apk和odex
- 合并apk和odex
- 合并apk和odex
- apk、dex、odex梳理
- 揭秘ODEX——有ODEX版ROM与无ODEX版ROM区别
- apk生成odex方法以及odex合并apk方法
- Android Odex转dex、apk和odex合成apk
- apk编译不生成odex
- Android apk dex与odex
- 如何合并apk和odex
- android apk odex dex反编译
- Android apk dex与odex
- 合并odex与apk至完整apk
- Android ROM APK 签名
- APK ROM 签名原理
- 正则表达式引擎的构建——基于编译原理DFA(龙书第三章)——5 DFA最小化
- iOS学习之UINavigationController详解与使用(三)ToolBar
- catalan数
- HDU3127:WHUgirls(完全背包)
- XP之后Windows的一些变化
- Rom+Odex+Apk处理
- 对内存敏感的WeakHashMap
- ruby webdriver
- spoj 13041 The Black Riders
- Bone Collector解题报告
- 在 Web 项目中应用 Apache Shiro
- UltraISO+U盘+win8重装系统
- poj1077双向宽搜——境界四
- 2013.7 显卡天梯及详细性能比对