Packages and Binaries:


This package contains a Dex to Java decompiler. It contains a command line and GUI tools for produce Java source code from Android Dex and Apk files.

Main features: - decompile Dalvik bytecode to java classes from APK, dex, aar and zip files - decode AndroidManifest.xml and other resources from resources.arsc - deobfuscator included

jadx-gui features: - view decompiled code with highlighted syntax - jump to declaration - find usage - full text search

Installed size: 16.33 MB
How to install: sudo apt install jadx

  • default-jre
root@kali:~# jadx -h

jadx - dex to java decompiler, version: 1.2.0

usage: jadx [options] <input files> (.apk, .dex, .jar, .class, .smali, .zip, .aar, .arsc)
  -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
  --single-class                      - decompile a single class
  --output-format                     - can be 'java' or 'json', default: java
  -e, --export-gradle                 - save as android gradle project
  -j, --threads-count                 - processing threads count, default: 4
  --show-bad-code                     - show inconsistent code (incorrectly decompiled)
  --no-imports                        - disable use of imports, always write entire package name
  --no-debug-info                     - disable debug info
  --no-inline-anonymous               - disable anonymous classes inline
  --no-replace-consts                 - don't replace constant value with matching constant field
  --escape-unicode                    - escape non latin characters in strings (with \u)
  --respect-bytecode-access-modifiers - don't change original access modifiers
  --deobf                             - activate deobfuscation
  --deobf-min                         - min length of name, renamed if shorter, default: 3
  --deobf-max                         - max length of name, renamed if longer, default: 64
  --deobf-rewrite-cfg                 - force to save deobfuscation map
  --deobf-use-sourcename              - use source file name as class name alias
  --deobf-parse-kotlin-metadata       - parse kotlin metadata to class and package names
  --rename-flags                      - what to rename, comma-separated, 'case' for system case sensitivity, 'valid' for java identifiers, 'printable' characters, 'none' or 'all' (default)
  --fs-case-sensitive                 - treat filesystem as case sensitive, false by default
  --cfg                               - save methods control flow graph to dot file
  --raw-cfg                           - save methods control flow graph (use raw instructions)
  -f, --fallback                      - make simple dump (using goto instead of 'if', 'for', etc)
  -v, --verbose                       - verbose output (set --log-level to DEBUG)
  -q, --quiet                         - turn off output (set --log-level to QUIET)
  --log-level                         - set log level, values: QUIET, PROGRESS, ERROR, WARN, INFO, DEBUG, default: PROGRESS
  --version                           - print jadx version
  -h, --help                          - print this help
  jadx -d out classes.dex

root@kali:~# jadx-gui -h
Exception in thread "main" java.lang.ExceptionInInitializerError
	at jadx.gui.settings.JadxSettingsAdapter.load(
	at jadx.gui.JadxGUI.main(
Caused by: java.awt.HeadlessException: 
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
	at java.desktop/javax.swing.text.JTextComponent.checkDragEnabled(
	at java.desktop/javax.swing.text.JTextComponent.setDragEnabled(
	at org.fife.ui.rtextarea.RTextArea.init(
	at org.fife.ui.rsyntaxtextarea.RSyntaxTextArea.init(
	at org.fife.ui.rtextarea.RTextAreaBase.<init>(
	at org.fife.ui.rtextarea.RTextArea.<init>(
	at org.fife.ui.rsyntaxtextarea.RSyntaxTextArea.<init>(
	at jadx.gui.settings.JadxSettings.<clinit>(
	... 2 more

Updated on: 2021-Nov-26