Code Quality Rank: L2
Programming language: Java
License: Apache License 2.0
Latest version: v1.2.0

jadx alternatives and similar packages

Based on the "Security & Decompiler" category.
Alternatively, view jadx alternatives based on common mentions on social networks and blogs.

  • android-classyshark

    ClassyShark a handy Android and Java executables viewer
  • simplify

    Generic Android Deobfuscator
  • Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.
    Sponsored scoutapm.com
  • enjarify

    Enjarify is a tool for translating Dalvik bytecode to equivalent Java bytecode. This allows Java analysis tools to analyze Android applications.
  • backdoor-apk

    backdoor-apk is a shell script that simplifies the process of adding a backdoor to any Android APK file. Users of this shell script should have working knowledge of Linux, Bash, Metasploit, Apktool, the Android SDK, smali, etc. This shell script is provided as-is without warranty of any kind and is intended for educational purposes only.
  • apk2gold

    CLI tool for decompiling Android apps to Java. It does resources! It does Java! Its real easy!
  • procyon

    Java metaprogramming suite, including Java decompiler.
  • dexterity

    dexterity is a C library intended for manipulation and analysis of DEX files. It has python bindings for all basic DEX structures and most of the manipulation functions.

Do you think we are missing an alternative of jadx or a related project?

Add another 'Security & Decompiler' Package



Build Status Code Coverage Alerts from lgtm.com SonarQube Bugs License semantic-release

jadx - Dex to Java decompiler

Command line and GUI tools for producing 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

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

jadx-gui screenshot


After download unpack zip file go to bin directory and run:

  • jadx - command line version
  • jadx-gui - UI version

On Windows run .bat files with double-click\ Note: ensure you have installed Java 8 or later 64-bit version. For windows you can download it from adoptopenjdk.net (select "Install JRE").


  1. Arch linux bash sudo pacman -S jadx
  2. macOS bash brew install jadx

Build from source

JDK 8 or higher must be installed:

git clone https://github.com/skylot/jadx.git
cd jadx
./gradlew dist

(on Windows, use gradlew.bat instead of ./gradlew)

Scripts for run jadx will be placed in build/jadx/bin and also packed to build/jadx-<version>.zip


jadx[-gui] [options] <input file> (.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
  --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
 jadx --rename-flags "none" classes.dex
 jadx --rename-flags "valid,printable" classes.dex
 jadx --log-level error app.apk

These options also worked on jadx-gui running from command line and override options from preferences dialog


Please check wiki page Troubleshooting Q&A


To support this project you can:

  • Post thoughts about new features/optimizations that important to you
  • Submit decompilation issues, please read before proceed: [Open issue](CONTRIBUTING.md#Open-Issue)
  • Open pull request, please follow these rules: [Pull Request Process](CONTRIBUTING.md#Pull-Request-Process)

Licensed under the Apache 2.0 License

*Note that all licence references and agreements mentioned in the jadx README section above are relevant to that project's source code only.