Tool

vdexExtractor

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.

Requirements & limits

  • 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. Nothing was built or run, and the reviewed sources establish no REA connection.

About this entry

Type
Tool
Category
Android tools
Relationship
Foundation tool
Targets
App

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · anestisb/vdexExtractor · Revision 78f283b
  2. README.md#L239-L349 GitHub · anestisb/vdexExtractor · Revision 78f283b
  3. README.md#L350-L422 GitHub · anestisb/vdexExtractor · Revision 78f283b
  4. make.sh GitHub · anestisb/vdexExtractor · Revision 78f283b
  5. src/vdex GitHub · anestisb/vdexExtractor · Revision 78f283b
  6. scripts/extract-apps-from-device.sh GitHub · anestisb/vdexExtractor · Revision 78f283b
  7. tools/deodex/run.sh GitHub · anestisb/vdexExtractor · Revision 78f283b
  8. tools/deodex/constants.sh GitHub · anestisb/vdexExtractor · Revision 78f283b
  9. LICENSE GitHub · anestisb/vdexExtractor · Revision 78f283b
  10. https://github.com/anestisb/vdexExtractor/commit/5f36debb03fccbb245af60129b1f94d369d7544c

More in Apps

All 103 entries in Apps