skylot /jadx

Dex to Java decompiler

★ 51,735⑂ 5,929👁 862⑃ 866● 2,148▤ 35◈ 13
JavaApache-2.0Created 2013-03-18
51,735
stars
+25
5,929
forks
862
watchers
866
prs
2,148
issues
35
releases
13
discussions

README

JADX

!Build status
!GitHub contributors
!GitHub all releases
!GitHub downloads (latest release)
!Latest release

!Java 11+


jadx - Dex to Java decompiler

Command-line and GUI tools for producing Java source code from Android Dex and APK files

 [!WARNING]
 Please note that in most cases jadx can't decompile 100% of the code, so errors will occur.
 Check the Troubleshooting guide for workarounds.

Main features:
- decompile Dalvik bytecode to Java code from APK, dex, aab, apks, apkm, xapk and zip files
- also decompile Java bytecode (jar, class, aar) and smali files
- decode AndroidManifest.xml and other resources from resources.arsc
- deobfuscator included

jadx-gui features:
- view decompiled code with syntax highlighting
- jump to declaration
- find usage
- full-text search
- smali debugger, see the wiki page for setup and usage

Key bindings for jadx-gui can be found here

See these features in action here: jadx-gui features overview



 Download
- release
  from GitHub: ![Latest release](https://github.com/skylot/jadx/releases/latest)
- latest unstable build ![GitHub commits since tagged version (branch)](https://nightly.link/skylot/jadx/workflows/build-artifacts/master)

For jadx-.zip, unpack it, go to the bin directory and run:
- jadx - command-line version
- jadx-gui - GUI version

On Windows, run the .bat files with a double-click.
For the Windows bundles, unpack and run jadx-gui-.exe.

Note: make sure you have 64-bit Java 11 or later installed (not needed for the with-jre bundle).
For Windows, you can download it from oracle.com (select the x64 Installer).

 Install
- Arch Linux
  
  
  bash
  sudo pacman -S jadx
  
- macOS
  
  bash
  brew install jadx
  
- Flathub
  
  bash
  flatpak install flathub com.github.skylot.jadx
  

 Usage

jadx[-gui] [command] [options]  (.apk, .dex, .jar, .class, .smali, .zip, .aar, .arsc, .aab, .xapk, .apkm, .apks, .jadx.kts)
commands (use ' --help' for command options):
  plugins	  - manage jadx plugins

options:
  -d, --output-dir                              - output directory
  -ds, --output-dir-src                         - output directory for sources
  -dr, --output-dir-res                         - output directory for resources
  -r, --no-res                                  - do not decode resources
  -s, --no-src                                  - do not decompile source code
  -j, --threads-count                           - processing threads count, default: half of CPU threads
  --single-class                                - decompile a single class, full name, raw or alias
  --single-class-output                         - file or dir for write if decompile a single class
  --output-format                               - can be 'java' or 'json', default: java
  -e, --export-gradle                           - save as gradle project (set '--export-gradle-type' to 'auto')
  --export-gradle-type                          - Gradle project template for export:
                                    

Top issues

Discussions

Latest release

1.5.6 v1.5.6 2026-07-10
Main features and fixes

Security fixes:
- Reject absolute or path to CWD for zip entries
- Sanitize all string values for gradle scripts on export
- Add missing escaping on summary page

Core:
- Use queue instead of recursion for type updates

GUI:
- Graph views, code pane sync, and more (PR 2784)
- Collapse single-child directory chains in resource tree (PR 2866)
- Handle pasted file lists in file chooser (PR 2876)
- Show simple message box for file exceptions (2659)

API:
- Allow to create input category node even if no matching files found (2806)
- New module/library for 

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON