手把手教你将odex转dex
2016-05-14 16:33
274 查看
转载请标明出处:http://blog.csdn.net/EdisonChang/article/details/51406623
android 开发中经常需要解决一些兼容性问题,通常情况下我们会把对应的系统预装的app拉出来,逆其结构看其有何端倪。过程中,我们会发现,有一些rom ,/system/app 目录下是以xxx.odex的文件形式存在,那么odex 是什么呢?
odex是Optimized dex的缩写,也就是优化后的dex文件。odex文件依赖系统中已经编译好的系统模块,一般是/system/framwork目录下的jar 包,目的也是为了提高Dalvik虚拟机的运行速度,可以说从class 到dex是针对android 平台的一种通用优化,odex是dex 文件在不同手机rom在做的特殊优化。对此有兴趣的朋友可以阅读 邓凡平老师的深入理解Android之Java虚拟机Dalvik。
文章的主要内容就是介绍下如何将odex 转成dex 。
1、工欲善其事必先利其器,配置好jar 环境后,到bitbucket.org上下载 smali-xxx.jar、baksmali-xxx.jar、baksmali、smali四个文件,并放到本地目录test。
2、将odex转smali
将对应的odex文件也一同拷贝到test目录,/system/framwork 中的jar 包拷贝到test/framwork目录,运行如下命令:
java -jar baksmali-xxx.jar -x test.odex -d framework
3、将smali转dex
java -jar smali-xxx.jar out -o test.dex
-o,–output the directory where the disassembled files will be placed. Default is out.
-d,–bootclasspath-dir the base folder to look for the bootclasspath files in.
-v,–version prints the version then exits
-x,–deodex deodex the given odex file.
因为odex的优化是依赖于特定os的,所以使用baksmali时,依然需要Android系统的库文件,如果缺少framwork里面的jar包,会导致解析失败 。网上也有朋友将这些命令行集成一个bat ,可以参考 android APK提取内置软件odex转dex 。
android 开发中经常需要解决一些兼容性问题,通常情况下我们会把对应的系统预装的app拉出来,逆其结构看其有何端倪。过程中,我们会发现,有一些rom ,/system/app 目录下是以xxx.odex的文件形式存在,那么odex 是什么呢?
odex是Optimized dex的缩写,也就是优化后的dex文件。odex文件依赖系统中已经编译好的系统模块,一般是/system/framwork目录下的jar 包,目的也是为了提高Dalvik虚拟机的运行速度,可以说从class 到dex是针对android 平台的一种通用优化,odex是dex 文件在不同手机rom在做的特殊优化。对此有兴趣的朋友可以阅读 邓凡平老师的深入理解Android之Java虚拟机Dalvik。
文章的主要内容就是介绍下如何将odex 转成dex 。
1、工欲善其事必先利其器,配置好jar 环境后,到bitbucket.org上下载 smali-xxx.jar、baksmali-xxx.jar、baksmali、smali四个文件,并放到本地目录test。
2、将odex转smali
将对应的odex文件也一同拷贝到test目录,/system/framwork 中的jar 包拷贝到test/framwork目录,运行如下命令:
java -jar baksmali-xxx.jar -x test.odex -d framework
3、将smali转dex
java -jar smali-xxx.jar out -o test.dex
-o,–output the directory where the disassembled files will be placed. Default is out.
-d,–bootclasspath-dir the base folder to look for the bootclasspath files in.
-v,–version prints the version then exits
-x,–deodex deodex the given odex file.
因为odex的优化是依赖于特定os的,所以使用baksmali时,依然需要Android系统的库文件,如果缺少framwork里面的jar包,会导致解析失败 。网上也有朋友将这些命令行集成一个bat ,可以参考 android APK提取内置软件odex转dex 。
相关文章推荐
- java 内存:重排序
- XML解析方式
- WCF学习系列二---【WCF Interview Questions – Part 2 翻译系列】
- Palette(调色板)
- 将流转换成字符串
- 数据库设计三大范式
- excel 2003代码
- 选择云存储服务商的6条安全红线
- android开发笔记之多媒体—小图片的加载
- Problem E: Balance (华中农业大学预赛)
- 动作游戏设计 —— 敌人受击设计
- 基于dubbo框架下的RPC通讯协议性能测试 转
- 第八次作业
- 行内元素和块级元素的区别
- Amazon : 找出所给数字的下一个回文数
- 通讯录-静态实现
- Css技术入门笔记02
- Css技术入门笔记02
- Objective-C 关于静态方法与实例方法
- Struts2 是如何避免表单的重复提交的呢?