jadx
Decompile Android DEX and APK files
TLDR
Decompile a Dex file into a directory
Decompile a Dex file into a specific directory
SYNOPSIS
jadx [options] <apk|dex|aar|jar|class|kt|smali>...
PARAMETERS
-h, --help
show this help message
-v, --version
print version info
-r
use raw names, do not deobfuscate
--deobf
deobfuscate code
--deobf-min <len>
min length of name, default 3
--deobf-max <len>
max length of name, default 64
--deobf-file <file>
load class names from file
--deobf-res
deobfuscate resource file names
-d <dir>
output directory
-p <package>
output package
-e <entry>
output entry class
-s <sources>
sources directory
-j <threads>
threads num, default cpu cores
--show-bad-code
show bad code in method
--cfg
save method cfg dot files
--xml
save xml files with class info
--log-level <level>
log level: trace|debug|info|warn|error|off
-Xmx<size>
max memory size, e.g. -Xmx2048m
--fs-case-sensitive
case sensitive file system
--no-restart
do not restart if crash happened
DESCRIPTION
JADX is a powerful command-line tool for decompiling Android DEX bytecode, APK, AAR, JAR, and other files back into readable Java source code. Primarily used for reverse engineering Android applications, security analysis, and understanding obfuscated apps.
It excels at reconstructing original source code with high accuracy, supporting large projects and complex class hierarchies. Key features include automatic deobfuscation, multi-threading for speed, export of control flow graphs (CFG) as DOT files, XML class info output, and handling of bad code sections. The tool processes files in parallel using CPU cores by default and allows customization of memory usage.
On Linux, JADX requires Java 8+ and is often installed via package managers like Snap or built from source. Output is organized into packages mirroring the app structure, with resources optionally deobfuscated. While highly effective, results may require manual tweaks for heavily obfuscated or ProGuard-optimized code.
CAVEATS
Requires Java 8+; large APKs need high memory (-Xmx); obfuscated code may decompile imperfectly; no official manpage, use --help.
INSTALLATION
Ubuntu/Debian: snap install jadx; Arch: pacman -S jadx; or build: ./gradlew dist from https://github.com/skylot/jadx.
GUI ALTERNATIVE
Launch jadx-gui for interactive decompilation and browsing.
BASIC EXAMPLE
jadx -d output/ app.apk
Decompiles APK to output/ directory with sources.
HISTORY
Developed by Skylot (Pavel Sikun) starting 2015 on GitHub. First public release 0.6 in 2016; version 1.0 in 2019. Actively maintained with 10k+ stars, focusing on accuracy and performance for Android reverse engineering.


