Tool
ddc
Rust decompiler that turns Android DEX bytecode, versions 035 to 041, from APKs, multi-dex apps and XAPK/APKS/APKM containers into Java, folding lambdas and string concatenation back into Java syntax and giving locals jadx-style names. By default every file also goes through a source-level cleanup pass, described as semantics-preserving, that inlines copy chains, recovers ternaries and for-each loops and drops dead stores; --fast skips it. Alongside full decompilation, 15 query subcommands return app and manifest information, resources, strings, cross-references, class hierarchies, disassembly or single classes and methods on demand, and the same queries are served over REST and MCP.
Requirements and limitations
- Release at review: v0.1.30, published 2026-10-18, which is the reviewed main commit. The repository was created in September 2026 and releases come quickly (v0.1.28 to v0.1.30 within eight days). Releases ship raw binaries for Linux, Windows and macOS on x86_64 and ARM64, the non-macOS builds UPX-compressed, and Homebrew, Scoop and cargo-binstall install them; source builds use stable Rust and the author's jdc-core, cure and xyz-rust crates.
- Input is an APK, app container or DEX file from the user's own app; full decompilation writes an <input>-out directory next to the input by default. ddc serve and ddc http default to the listen address :8080, with no host given, and bearer-token authentication is optional; ddc mcp stdio runs as an agent subprocess.
- The README reports that all 909,689 files emitted for seven benchmark APKs, and docs/validation.md that 4.08 million files from 39 apps, pass javac's parse phase; this is a syntax check only. Known limitations include erased generic types, separate d8-desugared lambda classes, timeouts on some very large R8 methods whose output can vary between runs, and desugared pattern switches; a full-classpath javac run still finds about 7,500 ddc-attributable errors across 0.91 million files, roughly twice jadx's count on the same set.
- CI builds and runs cargo test on Linux, macOS and Windows. The benchmark APKs are not in the repository; its fixtures are small DEX files and one binary AndroidManifest. MIT license. No apps were decompiled and the servers were not run.
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.
Primary sources
- README.md GitHub · ejfkdev/ddc · Revision e240550
- README.md#L179-L192 GitHub · ejfkdev/ddc · Revision e240550
- docs/cli.md GitHub · ejfkdev/ddc · Revision e240550
- docs/subcommands.md GitHub · ejfkdev/ddc · Revision e240550
- docs/validation.md GitHub · ejfkdev/ddc · Revision e240550
- docs/architecture.md GitHub · ejfkdev/ddc · Revision e240550
- crates/ddc-cli/src/mode_help.rs GitHub · ejfkdev/ddc · Revision e240550
- Cargo.toml GitHub · ejfkdev/ddc · Revision e240550
- .github/workflows/ci.yml GitHub · ejfkdev/ddc · Revision e240550
- LICENSE GitHub · ejfkdev/ddc · Revision e240550
- https://github.com/ejfkdev/ddc/releases/tag/v0.1.30