• 【Android安全】vdex、odex文件


    Android中的vdex、odex文件

    参考:https://blog.csdn.net/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)

  • 相关阅读:
    Vsan数据恢复—Vsan存储断电导致虚拟机无法启动的数据恢复案例
    【计算机网络】TCP协议
    [MySQL] 表的增删查改(CURD)
    二、基本类型及函数使用《2022 solidity8.+ 版本教程到实战》
    力扣373.查找和最小的K对数字
    Redis内存策略
    周四见|物流人的一周资讯
    第28节——useCallback
    基于蝴蝶种类识别
    《CTF特训营》——古典密码学
  • 原文地址:https://blog.csdn.net/qq_39441603/article/details/126338028