{
  "added_at": "2026-11-02",
  "additional_evidence_urls": [
    "https://github.com/anestisb/vdexExtractor/blob/78f283b60ab6991fa27eeaff7d7be16409401c08/README.md#L239-L349",
    "https://github.com/anestisb/vdexExtractor/blob/78f283b60ab6991fa27eeaff7d7be16409401c08/README.md#L350-L422",
    "https://github.com/anestisb/vdexExtractor/blob/78f283b60ab6991fa27eeaff7d7be16409401c08/make.sh",
    "https://github.com/anestisb/vdexExtractor/tree/78f283b60ab6991fa27eeaff7d7be16409401c08/src/vdex",
    "https://github.com/anestisb/vdexExtractor/blob/78f283b60ab6991fa27eeaff7d7be16409401c08/scripts/extract-apps-from-device.sh",
    "https://github.com/anestisb/vdexExtractor/blob/78f283b60ab6991fa27eeaff7d7be16409401c08/tools/deodex/run.sh",
    "https://github.com/anestisb/vdexExtractor/blob/78f283b60ab6991fa27eeaff7d7be16409401c08/tools/deodex/constants.sh",
    "https://github.com/anestisb/vdexExtractor/blob/78f283b60ab6991fa27eeaff7d7be16409401c08/LICENSE",
    "https://github.com/anestisb/vdexExtractor/commit/5f36debb03fccbb245af60129b1f94d369d7544c"
  ],
  "category": "android",
  "description_en": "Command-line C tool that extracts the Dex bytecode held in the Vdex containers that ART's dex2oat compiler writes beside Oat files since Android 8.0 (API 26), and by default reverts ART's dex-to-dex quickening so the output is ordinary Dex again. It can also dump the verified-dependency records stored in a Vdex file, disassemble the bytecode in a dexdump-like format and report the Android API level of a Vdex version. Android 9 and 10 Vdex files hold CompactDex, which the bundled deodex helper converts back to standard Dex through a separately built compact_dex_converter.",
  "description_zh": "C 语言命令行工具，用于从 ART 的 dex2oat 编译器自 Android 8.0（API 26）起在 Oat 文件旁生成的 Vdex 容器中提取 Dex 字节码，并默认撤销 ART 的 dex-to-dex quickening 优化，使输出重新成为普通 Dex。它还能转储 Vdex 文件中保存的验证依赖记录，以类似 dexdump 的格式反汇编字节码，并报告某个 Vdex 版本对应的 Android API 级别。Android 9 和 10 的 Vdex 文件存放的是 CompactDex，随附的 deodex 辅助脚本会借助单独构建的 compact_dex_converter 将其转换回标准 Dex。",
  "entry_url": "https://awesomerea.org/resources/vdexextractor/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/vdexextractor/",
  "evidence_url": "https://github.com/anestisb/vdexExtractor/blob/78f283b60ab6991fa27eeaff7d7be16409401c08/README.md",
  "group": "tools",
  "id": "vdexextractor",
  "json_url": "https://awesomerea.org/resources/vdexextractor/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/vdexextractor/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/vdexextractor/index.md",
  "name": "vdexExtractor",
  "name_zh": "vdexExtractor Vdex 字节码提取工具",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "Inactive: the last tag is 0.6.0 (2019-12-30), there are no GitHub releases, and the reviewed master commit (2020-05-13) is seven commits past that tag. Backends exist for Vdex versions 006, 010, 019 and 021, which the README and changelog place between Android 8 (Oreo) and Android 10 (Q); there is no backend for later Vdex versions.",
    "Build with make.sh using gcc (default) or clang on Linux or macOS, or under Cygwin on Windows; zlib development files are required, and the cross-android target uses the Android NDK's ndk-build to produce armeabi-v7a, arm64-v8a, x86 and x86_64 executables. Binaries are written under bin/; the repository commits no prebuilt executables.",
    "Inputs are Vdex files, or directories of them, that the user takes from their own device or system image; scripts/extract-apps-from-device.sh pulls the oat, art and vdex outputs, and optionally the APKs, of installed packages over ADB, and some system app data needs root. tools/deodex/run.sh needs wget, shasum and unzip and downloads the author's prebuilt compact_dex_converter archives from OneDrive with SHA-256 checks; the API 29 converter is Linux-only, and the converter's own source builds only as an AOSP module.",
    "Apache-2.0 (copyright CENSUS S.A.). The README notes that equivalent unquickening was contributed to AOSP's oatdump. Recovered Dex code remains subject to the rights of the app or system-image owner."
  ],
  "requirements_zh": [
    "项目已不再活跃：最后一个标签是 0.6.0（2019-12-30），没有 GitHub 发布版，所审阅的 master 提交（2020-05-13）比该标签多七个提交。后端支持 Vdex 006、010、019 和 021 版本，README 和更新日志将其对应到 Android 8（Oreo）至 Android 10（Q）；更新的 Vdex 版本没有对应后端。",
    "使用 make.sh 构建，可在 Linux 或 macOS 上选用 gcc（默认）或 clang，Windows 上可在 Cygwin 下构建；需要 zlib 开发文件，cross-android 目标借助 Android NDK 的 ndk-build 生成 armeabi-v7a、arm64-v8a、x86 和 x86_64 可执行文件。二进制输出到 bin/ 目录；仓库未提交任何预编译的可执行文件。",
    "输入为使用者从自己的设备或系统镜像中取得的 Vdex 文件或其所在目录；scripts/extract-apps-from-device.sh 可通过 ADB 拉取已安装应用的 oat、art 和 vdex 产物，并可选拉取 APK，部分系统应用数据需要 root 权限。tools/deodex/run.sh 需要 wget、shasum 和 unzip，会从 OneDrive 下载作者预编译的 compact_dex_converter 压缩包并校验 SHA-256；API 29 版转换器仅有 Linux 版本，转换器源码本身只能作为 AOSP 模块构建。",
    "采用 Apache-2.0 许可（版权归 CENSUS S.A.）。README 提到，等效的 unquickening 功能已贡献给 AOSP 的 oatdump。恢复出的 Dex 代码仍受应用或系统镜像权利人的权利约束。"
  ],
  "targets": [
    "app"
  ],
  "url": "https://github.com/anestisb/vdexExtractor",
  "verification": "source-reviewed",
  "verified_at": "2026-10-20"
}
