【Android安全】vdex、odex文件

家电修理 2023-07-16 19:16www.caominkang.com电器维修

Android中的vdex、odex文件

参考https://blog.csdn./linxinfa/article/details/107669242
以下内容未验证

vdex文件

为何要搞出个vdex文件?目的是为了避免不必要的验证Dex 文件合法性的过程,例如安装时,进行dex2oat时,会校验Dex 文件各个section的合法性。

vdex文件
1.第一次开机就会生成在/system/app//oat/下;
2.在系统运行过程中,虚拟机将其 从“/system/app”下 copy到“/data/davilk-cache/”下

odex文件

我们知道 Android app的 java 层代码存储在apk 文件的 class.dex 文件中。

一般情况下,我们在每次启动程序时会从中获取到 dex 文件并进行解析,显然每次都这样做,效率会比较低下。Android 开发者提出了一种方式,即我们最初加载 dex 文件时,就对其进行优化,生成一个 ODEX 文件,存放在 /data/dalvik-cache 目录下。当以后运行这个程序时,我们只需要直接加载这个优化过的 ODEX 文件就行了,省去了每次都要优化的时间。
对于 Android ROM 中系统自带的 app ,直接转换为 odex 文件,存放在与 apk 相同的目录下,这样,当手机每次开机启动的时候,就会快很多了。

在Android O之后,odex是从vdex这个文件中 提取了部分模块生成的一个新的 可执行文件 , odex从vdex中提取后,vdex的大小就减少了。具体过程
1.第一次开机就会生成在/system/app//oat/下
2.在系统运行过程中,虚拟机将其 从“/system/app”下 copy到 “/data/davilk-cache/”下
3.odex + vdex = apk的全部源码 (vdex并不是独立于odex的文件,odex + vdex才代表一个apk)

Copyright © 2016-2025 www.caominkang.com 曹敏电脑维修网 版权所有 Power by