Android ROM中Odex文件的作用介绍及破解方式

反编译之系统级应用(apk和被拆分的odex合并) Android的存储中有很多odex文件,相对于APK中的dex文件而言这个odex有什么作用呢? 如果你仔细观察会发现apk和odex文件名是一一对应的,同时那些对应的apk文件解压后发现其中没有了dex文件。这样做可以使其厂商保证一定的反盗版,因为没有没有dex文件的apk是无法正常安装的,而厂商直接将odex和不完整的apk文件放到手机ROM固化到/system/bin中可以让一般用户无法正常导出使用。 odex 是经过优化的dex文件,且独立存在于apk文件。odex 多用于系统预制应用或服务。通过 阅读详情
细心的网友可能发现 Android 的ROM中有很多odex文件,相对于APK中的dex文件而言这个odex有什么作用呢? Android123提示大家,如果你仔细观察会发现文件名时一一对应的,同时那些对应的apk文件中没有dex文件。这样做可以使其厂商保证一定的反盗版,因为没有没有dex文件的apk是无法正常 安装 的,而厂商直接将odex和不完整的apk文件放到手机rom固化到/system/bin中可以让一般用户无法正常导出使用。

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

   一、APK生成odex文件方法:

  编译 开源 GIT上的build/tools/de xpreopt/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文件

  1. 下载  http://smali.googlecode.com/files/smali-1.2.2.jar  和  http://smali.googlecode.com/files/baksmali-1.2.2.jar ,既然是需要盗版,还需要odex所在rom中的一些引用类,一般在 /system/framework 目录中

  2 .  通过odex生成class文件

          java -jar baksmali-1.2.2.jar -x android123.odex

        执行完上面这行命令后,会生成一个out 文件夹里面是android123.odex的class文件。出现问题,根据提示可以从rom的 /system/framework 中的xxx.jar放到pc上的java环境变量中一起生成。

  3. 通过class生成classes.dex 文件。

        java -Xmx512M -jar smali-1.2.2.jar out -o classes.dex

  4. 将classes.dex放到apk文件

        因为apk是zip的mime编码类型,使用winzip或winrar直接拖入到apk改名为zip的压缩包中即可。

  5. 不要忘记了签名,使用jdk中的arsigner和keytool打包重新签名即可。



大家好,这里介绍apk反编译操作。

1:apk反编译

2:odex转dex

 

操作环境:ubuntu

 

A:apk反编译

.到code.google上下载apktool.jar以及相关文件:http://code.google.com/p/android-apktool/downloads/list
点击下载apktool-1.0.0.tar.bz2 和apktool-install-linux-2.1_r01-1.zip


Apktool 命令
./apktool d geek.apk test    反编译 geek.apk到文件夹test

 

 

B:odex转dex

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

下载下面4个文件。

现在我们要对CardManager.odex进行反编译,以CardManager.odex为例。

1:java -jar baksmali-1.3.2.jar -a 12 -x CardManager.odex    

//注意:这里要有core.jar:ext.jar:framework.jar:android.policy.jar:services.jar文件支持。这个 apk 所在的 rom 里面的一些 jar 文件,都在 /system/framework 里面: core.jar, ext. jar, framework. jar, android.policy. jar, services.jar和对应的.odex文件,把这些文件放在CardManager.odex同一级目录。

运行java -jar baksmali-1.3.2.jar -a 12 -x CardManager.odex   ,会生成一个out文件夹,里面的文件以.smali结尾,

 

2:生成 classes.dex文件

运行 java -jar smali-1.3.2.jar out/ -o classes.dex

 

3:下载 dex2jar : dex2jar-0.0.9.8.zip

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


Android 系统应用逆向:从 .vdex/.odex 到可读 Java 源码的完整实战 本文详细介绍了Android系统应用逆向的完整流程,从.vdex/.odex文件到可读Java源码的转换实战。通过使用baksmali、vdexExtractor和dex2jar等工具,逐步解析系统应用的优化字节码,解决CRC校验错误、odex头损坏等常见问题,最终获得可反编译的Java源码。适用于系统开发者和安全研究人员进行深度逆向分析。 阅读详情

相关推荐

安卓ROM解包与打包实战:从系统镜像定制到刷机包制作

安卓系统镜像(ROM)是移动设备操作系统的核心载体,其本质是一个包含多个分区的结构化容器。理解ROM的格式与分区结构是进行系统定制的基础,常见的格式包括Android Sparse Image(.img)和Recovery Flashable ZIP(.zip)。解包与打包过程涉及文件系统操作、镜像格式转换和刷机脚本编写,其技术价值在于允许开发者深度定制系统、移除预装应用、集成Root权限或优化性能。在应用场景上,这项技术广泛应用于老旧设备焕新、系统精简、功能增强以及个性化定制。本文以电视盒子等安卓设备为例

weixin_33933118的博客 481

Android Odex 文件使用

Android Odex 文件使用

蜡笔小辛的专栏 8141

安卓ROM定制入门:从解包到开机的避坑指南与实战思路

本文详细介绍了安卓ROM定制的完整流程,从解包、修改到刷机的避坑指南与实战技巧。涵盖boot分区处理、system分区校验机制、美化修改及救砖方法,特别推荐使用Magisk和Android Kitchen等工具,适合新手从红米Note等骁龙机型入门。

weixin_42524276的博客 143

Android系统ODEX文件格式解析

对于一个Android的apk应用程序,其主要的执行代码都在其中的class.dex文件中。在程序第一次被加载的时候,为了提高以后的启动速度和执行效率,Android系统会对这个class.dex文件做一定程度的优化,并生成一个ODEX文件,存放在/data/dalvik-cache目录下。以后再运行这个程序的时候,就只要直接加载这个优化过的ODEX文件就行了,省去了每次都要优化的时间。 不过,

Roland_Sun的专栏 2万+

实战|Android后台启动Activity实践之路续

家人们!Android 原生 ROM 都能正常地从后台启动 Activity 界面,无论是 Android 9(直接启动) 还是 10 版本(借助全屏通知)。Android P版本的机型:通过 moveTaskToFront 方法将应用切换到前台,如果切换失败的话可以多尝试几次调用 moveTaskToFront 方法;小米机型可以通过Hook相关参数来后台启动Activity;Android Q版本的机型:通过系统全屏通知的方式调起后台 Activity;

2301_82242499的博客 1323

Android ROM解包打包工程化实践:从AVB签名到super分区

ROM解包与打包是Android固件开发的核心基础能力,其本质是遵循AOSP规范对sparse、br、ext4等二进制镜像格式的精准解析与重构。原理层面涉及AVB2.0签名验证、dynamic partition布局解析、Brotli/LZ4压缩解码及SELinux策略兼容性控制;技术价值在于实现可重复、可审计、零人工干预的定制ROM量产流程;典型应用场景包括旧机续命、ODM批量出货和LineageOS适配——尤其在Android 12+系统中,super分区与vbmeta签名链成为绕不开的硬性门槛。本文聚

weixin_34199405的博客 445

android odex文件作用,安卓odex详细介绍

首先解释一下什么是Odex?Odex全称optimize dalvik package,Odex是安卓上的应用程序apk中提取出x来的可运行文件,是通过apk安装包的中的dex优化过的,再把apk包里的dex文件删除。这样做可以加快软件的启动速度,预先提取,减少对RAM的占用,因为没有odex的话,系统要从apk包中提取dex再运行。所谓Odex,是由android软件中的classes.dex生...

weixin_30798713的博客 2146

WPF窗口定位技巧:从基础到高级的三种实现方法

本文详细解析WPF窗口定位的三种核心方法:屏幕居中(CenterScreen)、父窗口居中(CenterOwner)和手动定位(Manual)。通过对比其适用场景、实现代码与注意事项,帮助开发者根据实际需求选择最佳方案,从而提升WPF应用程序的用户体验与专业度。

weixin_29224309的博客 272

破解思路分析01

本文主要介绍了一些软件分析思路。

cwtlw的博客 1067

Jetson AGX Orin 新手避坑:解决‘找不到nvidia-jetpack包’的完整修复指南

本文详细介绍了Jetson AGX Orin设备在安装JetPack开发套件时遇到的'nvidia-jetpack包缺失'问题的完整解决方案。通过分析问题根源、提供分步修复指南以及系统优化建议,帮助开发者快速解决这一常见问题,充分发挥Jetson AGX Orin的边缘计算性能。

weixin_42520909的博客 460

Intouch间接变量(扩展)

间接变量只是Intouch提供给开发者的便捷方式之一,并不是所有情况都一定要使用间接变量,有时候用条件语句或者内存变量的方式也能起到类似的作用。

weixin_41571357的博客 2167

android 7.x 解包工具,「Android 5.x - Android 7.x」odex 和 deodex

Android 的 ROM 中正常的软件都是 apk 内包含有一个 classes.dex,但也有时会没有(比如 MIUI 等),却有很多 .odex 文件,相对于 apk 中的 .dex 文件而言,这个 .odex 有什么作用呢?首先分析一下 apk 文件的安装过程。安装 apk 包,会在 /data/app 目录复制一份安装包,在 /data/dalvik-cache 目录放一个解压出来的 c...

weixin_42498981的博客 971

基于分位数回归的静态CoVaR计算 案例与代码

原文链接:https://bbs.pinggu.org/thread-7925441-1-1.html 一、静态CoVaR模型介绍 二、资料简介 实现对相关期刊论文进行论文重现,解决实证分析中的技术操作问题。里面包含了每一步详细的步骤,可以方便的利用这个手册解决大部分利用分位数回归计算静态CoVaR的论文的模型实现问题。即从数据下载到模型实现一整条操作步骤。 关键词:【分位数回归】【Co...

ChenQihome9的博客 7503

Android ROM定制 入门到精通(含改机、移植、破解网络层、root原理、植入hook框架,反安全监测等)

最近在定制一款ROM,拉取谷歌源码,解包、精简、修改、打包。想要实现MIUI一样的效果和国人常用的功能设置和手势。 在这个过程中遇到了很多疑难问题,也发现公司刚招来的这些小孩基础太差,而且他们根本不知道去哪学习,怎么学习,学点啥才能编译ROM。我查了一下相关资料确实太少。系统点的书也是2011出版的,太古老了,这些年真正深入到系统层,framework层开发的人太少,但是随着市场淘汰了大批的技术...

hao_qi 1万+

学习笔记之——Event Camera(事件相机)调研

概述 Event Camera是一种bio-inspired sensor,对应的领域为bio-inspired vision。对于传统的相机,从某种程度上,是捕获一个静态/静止的空间,而Event Camera的目的是:敏感地捕捉运动的物体。 对于传统RGB-camera,相机传回的信息是同步的,所谓同步,就是在某一时刻t,相机会进行曝光,把这一时刻所有的像素填在一个矩阵里回传,一张照片就诞生了。一张照片上所有的像素都对应着同一时刻。至于视频,不过是很多帧的图片,相邻图片间的时间间隔...

gwpscut的博客 3万+

别再到处找教程了!Windows下用FFmpeg+Mediamtx+VLC搭建本地RTSP流媒体服务器,保姆级配置流程

本文详细介绍了在Windows系统下使用FFmpeg、Mediamtx和VLC搭建本地RTSP流媒体服务器的完整流程。从环境准备到核心配置,再到推流和拉流的实战技巧,提供了保姆级的避坑指南和优化建议,帮助开发者快速实现稳定的流媒体服务部署。

weixin_42614269的博客 212

安卓rom制作教程_ROM制作与开发必备知识点和技能汇总

其实,学习ROM开发并不难,但是需要了解的知识面非常广,从最开始学习ROM制作就是自己一路摸索,不断前行,很多网上的爱好者一起探讨研究,然后学习了很多ROM开发相关的东西,可以自己独立制作出想要的ROM。下面是总结的一些ROM开发需要或者会涉及到的一些东西和技术点ROM的概念涉及知识面包含内容和方向搭建开发环境:Windows环境、Linux环境熟悉安卓系统结构了解系统模式和分区学会卡刷...

weixin_39652658的博客 883

【YOLO系列】YOLOv12详解:模型结构、损失函数、训练方法及代码实现

本文提出YOLOv12,一种以注意力为中心的实时目标检测框架,通过创新性改进解决传统YOLO模型在精度与速度上的失衡问题。核心贡献包括:1)轻量混合注意力模块(LHA)结合通道与空间注意力,在不增加计算负担下提升特征提取能力;2)区域注意机制与R-ELAN网络优化特征聚合,显著改善小目标检测(AP_S提升8.3%);3)动态多光谱数据增强策略增强模型鲁棒性。实验表明,YOLOv12在COCO等基准上实现SOTA性能,同时保持2.1 TOPS/W的高能效比,适用于边缘设备部署。该工作为实时目标检测提供了新的注

一碗白开水一 1807

android中dex及odex的反编译

一、odex破解步骤: 1、下载baksmali-1.4.2.jar、smali-1.4.2.jar并放到framework文件目录下,最好取出ROM中/system/framework及/system/app下所有文件; 2、执行java -jar .\baksmali-1.4.2.jar -x .\framework.odex(需要反编译的odex文件); 3、执行java -Xmx51

fyang的专栏 1330

【WorkBuddy专栏61】字节的AI打法为什么一直在变——WorkBuddy/CodeBuddy vs 字节Trae/TRAE Work/豆包全维度对比

【WorkBuddy专栏61】字节的AI打法为什么一直在变——WorkBuddy/CodeBuddy vs 字节Trae/TRAE Work/豆包全维度对比

AI人人懂 2737

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Android 系统应用解析之——odex

 强大的工具ES文件浏览器  首先介绍一款比较实用的工具——ES文件浏览器(小映子推荐),当需要破解某些系统软件,而该系统还无法root时,这个软件可以轻松的获取源文件:  它类似与文件管理器,但可以显示那些系统想隐藏而不让你看到你文件,且无需root权限。一般系统软件都存放在 system/app中,当然别忘了还有system/priv-app等,从内存中将想要的文件进行拷贝,然后黏贴到sd...

weixin_30823227的博客 794

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Android 可执行文件

简介 可执行文件是操作系统的基础,它反映着系统的运行机制,Android系统的可执行文件也是如此。 Apk Apk是Android Package的缩写,实际上Apk文件就是一个zip压缩包,使用zip格式解压缩软件对apk文件进行解压,会发现它由一些图片资源与其它文件 组成,并且每个apk文件中包含一个classes.dex,它是Dalvik可执行文件。 dex 文件格式 在Andr...

836811384 1011

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Android混淆、反编译以及反破解的简单回顾

Android混淆、反编译以及反破解的简单回顾 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://vaero.blog.51cto.com/4350852/856014 Android混淆、反编译以及反破解的简单回顾          搜索下,发现文章相关文档好多好多。就简单点,不赘述了==

joy 920

自用Android程序破解,逆向分析工具集

下载: git clone https://github.com/zencodex/hack-android.git 本人主要在Mac osx使用,所以linux下没经过严格测试,可能会存在小问题。签名脚本是自己写的,临时文件写到了/tmp 目录下,所以linux下要确定存在/tmp。 如遇到问题,可在github上[new issue](https://github.co...

wyk86485480的博客 236
上一篇: Java内存查看与分析
下一篇: 关于什么是DLNA, 什么是DMS的详细介绍
offbye
offbye 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄24年 1309粉丝 252原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

offbye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值