`
George_ghc
  • 浏览: 93489 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android ROM中Odex文件的作用及介绍

阅读更多
细心的网友可能发现Android的ROM中有很多odex文件,相对于 APK中的dex文件而言这个odex有什么作用呢? Android123提示大家,如果你仔细观察会发现文件名时一一对应的,同时那些对应的apk文件中没有dex文件。这样做可以使其厂商保证一定的反盗版,因为没有没有dex文件的apk是无法正常安装的,而厂商直接将odex和不完整的apk文件放到手机rom固化到/system/bin中可以让一般用户无法正常导出使用。(文/Android开发网)

很多网友可能想到的是合并odex和apk变成apk中包含dex文件的,这样合并后最终apk文件安装在/data/中,而rom存放时在 /system/bin中,所以最终导致了用户可装在Android手机中的软件会变少,占用系统空间。

一、APK生成 odex文件方法:

编译开源GIT上的build/tools /dexpreopt/dexopt-wrapper这个,使用dexopt-wrapper即可,操作步骤

将dexopt-wrapper放到/data/local目录中,使用adb shell执行linux命令行,使用cd命令进入/data/local目录,

cd /data/local

./dexopt-wrapper android123.apk android123.odex

二、合并odex和 少dex的apk 为完整的apk文件

需要用到的工具是smali,一个开源的java处理软件:

http://code.google.com/p/smali/downloads/list

一.下载的baksmali和 smali的jar文件到工作目录

二.把ROM里面的core.odex, ext.odex, framework.odex, android.policy.odex, services.odex这5个文件也放在同一目录(也可以放在别的目录,通过设置BOOTCLASSPATH指定,默认就是当前目录)。

例:
以teeter为例子 (HTC一些Android常常会内置),ROM里面拿出来的可能是2个文件,teeter.apk + teeter.odex。
1、分解odex文件:
java -jar baksmali-1.2.1.jar -x teeter.odex
如果没其他问题,会在工作目录生成一个out的目录,里面是分解出来的一些文件,我们在此不深究这些文件的作用。

2、把分解得到的文件变成classes.dex:java -Xmx512M -jar smali-1.2.1.jar out -o classes.dex,这样得到了一个有用的classes.dex文件

3、用WinZip或者WinRAR打开teeter.apk文件,把这个classes.dex 放进去

4、最后再用signapk把最新得到的这个包含classes.dex的apk重新签署一下 (Auto Sign签名工具往期的文章里有下载),就生成一个可以安装的单独APK程序了。

5、签名完成后即可安装使用了
分享到:
评论

相关推荐

    Android 5.0 odex合并apk

    它可以帮助我们将Odex文件转换回原始的DEX格式,然后将其合并到对应的Apk文件中。这样,原本分散的Odex文件就可以被整合成单个Apk,方便管理。 使用步骤大致如下: 1. 首先,将从ROM中提取出的framework、app、...

    关于android中odex与apk 的合并

    这通常发生在自定义ROM或模块开发中,其中可能要求将Odex文件内嵌入Apk,以便于分发或简化安装过程。这个过程涉及以下步骤: 1. **反编译Apk**:使用工具如Apktool,可以将Apk文件解压为源代码和资源文件,这样就...

    ODEX文件转换成DEX文件工具

    一、APK生成odex文件方法: 编译开源GIT上的build/tools/dexpreopt/dexopt-wrapper这个,使用dexopt-wrapper即可,操作步骤 将dexopt-wrapper放到/data/local目录中,使用adb shell执行linux命令行,使用cd命令进入...

    Android安卓 系统ODEX优化代码

    Android系统中运行的程序包主要分framework,system/app,data/app,三个路径,开机的时候启动内核后,就会逐个启动framework里的jar框架程序,再启动system/app的开机自启程序。 如果你想把整个ROM都odex化,就必须先...

    odex2dex合并odex和 少dex的apk 为完整的apk文件

    一、APK生成odex文件方法: 编译开源GIT上的build/tools/dexpreopt/dexopt-wrapper这个,使用dexopt-wrapper即可,操作步骤 将dexopt-wrapper放到/data/local目录中,使用adb shell执行linux命令行,使用cd命令进入...

    一键odex批量合并工具odextools

    在Android系统中,Dalvik虚拟机执行的是DEX(Dalvik Executable)文件,而Odex文件是DEX文件经过优化后的版本,能提高应用程序的加载速度和运行效率。此工具简化了对多个Odex文件的合并过程,尤其对于开发者和ROM...

    odex合并与拆分工具.rar

    在Android系统中,`.odex`(Optimized Dalvik Executable)文件是Dalvik虚拟机执行的优化代码,它是从`.dex`(Dalvik Executable)文件经过优化处理后的产物,通常包含有编译后的字节码和一些元数据。`.odex`文件的...

    odex rom解包打包最小工具包

    odex解包打包ROM的批处理工具,无需其他程序直接用批处理即可完成odex解包打包,完成后可以直接上传手机/system替换原先的odex格式文件,当然替换这步需要机器先被root。 参见 ...

    odex生成器

    在Android系统中,Odex(Optimized Dalvik Executable)文件是Dalvik虚拟机执行的优化代码形式,它是从APK文件中的 Dex(Dalvik Executable)文件通过dex2oat工具生成的。Odex文件的主要目的是提升应用程序的启动...

    最新安卓手机端终端命令odex化

    从Android 5.0(Lollipop)开始,谷歌引入了ART(Android RunTime),它预编译了所有应用的.dex文件为.odex文件,以实现更快的启动时间和运行性能。 2. **odex化过程** Odex化过程通常包括两步: Dex2Oat 和 oat2...

    Android平台ROM的定制及精简介绍

    ### Android平台ROM的定制及精简介绍 #### Android系统文件结构概述 在深入探讨如何定制与精简Android ROM之前,我们首先需要理解Android系统的文件结构。这对于任何希望修改或优化其设备性能的人来说都是至关重要...

    一键合并ODEX工具

    该工具的主要功能是将多个ODEX文件整合到一个单一的文件中,简化了处理过程,降低了用户的操作难度。对于开发者、ROM定制者或者系统优化爱好者来说,这无疑是一种非常便捷的解决方案。它可能包含以下特性: 1. **...

    合并ODEX工具

    4. **开始合并**:点击“开始”或“合并”按钮,工具将开始处理每个ODEX文件,将其内容整合到一个单一的文件中。 5. **验证结果**:合并完成后,记得验证新生成的ODEX文件是否能够正常工作,这通常涉及到安装到一个...

    ROM工具包v1.3

    通过apktool,用户可以解包、反编译APK文件中的资源和代码,便于查看XML布局文件、图片资源、字符串资源等,并进行修改。此外,apktool还能帮助重新打包已修改的APK,使其保持原始的结构和签名,以便于安装和运行在...

    Android_ROM

    如果文件夹中有.odex文件,那么在删除APK文件的同时也需要删除与之对应的.odex文件。 #### 二、JDK6环境变量配置(Windows 7) 为了能够顺利地定制ROM,还需要确保已经正确配置了JDK环境。以下是具体的步骤: 1. ...

    Android系统文件夹结构以及ROM定制初级教程.pdf

    - `/system/app/odex`: 在某些ROM中,与APK文件同名的odex文件(优化过的DEX文件)用于提高系统性能。如果删除APK文件,对应的odex文件也需一并删除。 4. **boot.img**: 这是一个包含引导加载器、内核和恢复系统的...

    Android平台ROM的定制及精简教程

    ### Android平台ROM的定制及精简教程 #### 一、Android系统文件夹结构解析 在开始探讨如何定制和精简Android ROM之前,首先需要理解Android系统的文件夹结构。这不仅有助于我们更好地掌握如何修改ROM,还能帮助...

Global site tag (gtag.js) - Google Analytics