# Jadx — Android and Java Decompiler with GUI and CLI > Jadx converts Android DEX and APK files back into readable Java source code with a built-in decompiler, search, and navigation interface. ## Install Save as a script file and run: # Jadx — Android and Java Decompiler with GUI and CLI ## Quick Use ```bash # Install via Homebrew brew install jadx # Decompile an APK jadx -d output_dir app.apk # Launch the GUI jadx-gui app.apk ``` ## Introduction Jadx is an open-source tool that decompiles Android DEX bytecode and APK files into human-readable Java source code. It provides both a command-line interface and a Swing-based GUI with code navigation, search, and syntax highlighting, making it a go-to for Android security research and app analysis. ## What Jadx Does - Decompiles DEX, APK, AAR, AAB, and class files to Java source - Provides a searchable GUI with syntax highlighting and cross-references - Supports deobfuscation with mapping files (ProGuard, R8) - Exports decompiled projects as Gradle-ready source trees - Handles Kotlin metadata for improved output readability ## Architecture Overview Jadx operates in two phases: first it parses Dalvik bytecode into an intermediate representation using its own IR, then it applies a series of optimization and deobfuscation passes before emitting Java source. The GUI is built on Swing with a custom code viewer that provides click-through navigation between classes, methods, and fields. ## Self-Hosting & Configuration - Download release JARs from GitHub or install via Homebrew/Scoop - Requires Java 11+ runtime to execute - CLI flags control output directory, thread count, and deobfuscation - Mapping files can be supplied with `--deobf-cfg-file` for readable names - Plugin system allows custom decompilation passes ## Key Features - Full APK-to-source decompilation in a single command - Interactive GUI with code search, usage tracking, and text highlighting - Resource decoding for AndroidManifest.xml, layouts, and assets - Multi-threaded decompilation for faster processing on large apps - Active development with regular releases and broad format support ## Comparison with Similar Tools - **APKTool** — focuses on resource decoding and APK rebuilding rather than source recovery - **JADX vs JD-GUI** — Jadx handles DEX natively while JD-GUI targets JVM class files - **Procyon** — Java-only decompiler without Android-specific handling - **CFR** — strong Java decompiler but lacks Android resource support - **Bytecode Viewer** — wraps multiple decompilers but Jadx offers a cleaner standalone experience ## FAQ **Q: Can Jadx decompile obfuscated APKs?** A: Yes. Jadx applies its own deobfuscation heuristics and accepts ProGuard/R8 mapping files for name recovery. **Q: Does Jadx support Kotlin?** A: Jadx reads Kotlin metadata annotations and uses them to improve output, though the result is still Java source code. **Q: Can I recompile the output?** A: Jadx's Gradle export produces a project structure you can open in Android Studio, but full recompilation depends on completeness of the decompiled code. **Q: Is Jadx suitable for large apps?** A: Yes. Multi-threaded mode and incremental loading in the GUI handle apps with thousands of classes efficiently. ## Sources - https://github.com/skylot/jadx - https://github.com/skylot/jadx/wiki --- Source: https://tokrepo.com/en/workflows/asset-1ffed113 Author: Script Depot