## File: README.md

## JADX






[](https://search.maven.org/search?q=g:io.github.skylot%20AND%20jadx)

[](http://www.apache.org/licenses/LICENSE-2.0.html)

**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 all 100% of the code, so errors will occur.
> Check [Troubleshooting guide](https://github.com/skylot/jadx/wiki/Troubleshooting-Q&A#decompilation-issues) for workarounds.

**Main features:**
- decompile Dalvik bytecode to Java code from APK, dex, aar, aab 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
- smali debugger, check [wiki page](https://github.com/skylot/jadx/wiki/Smali-debugger) for setup and usage

Jadx-gui key bindings can be found [here](https://github.com/skylot/jadx/wiki/JADX-GUI-Key-bindings)

See these features in action here: [jadx-gui features overview](https://github.com/skylot/jadx/wiki/jadx-gui-features-overview)



### Download
- release
  from [github: ](https://github.com/skylot/jadx/releases/latest)
- latest [unstable build ](https://nightly.link/skylot/jadx/workflows/build-artifacts/master)

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 11 or later 64-bit version.
For Windows, you can download it from [oracle.com](https://www.oracle.com/java/technologies/downloads/#jdk17-windows) (select x64 Installer).

### Install
- Arch Linux
  [](https://archlinux.org/packages/extra/any/jadx/)
  [](https://aur.archlinux.org/packages/jadx-git)
  ```bash
  sudo pacman -S jadx
  ```
- macOS
  [](https://formulae.brew.sh/formula/jadx)
  ```bash
  brew install jadx
  ```
- Flathub
  [](https://flathub.org/apps/com.github.skylot.jadx)
  ```bash
  flatpak install flathub com.github.skylot.jadx
  ```

### Use jadx as a library
You can use jadx in your java projects, check details on [wiki page](https://github.com/skylot/jadx/wiki/Use-jadx-as-a-library)

### Build from source
JDK 17 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`

### Usage
```
/* Detailed source-code truncated for AI context efficiency. */
```
These options also work in jadx-gui running from command line and override options from preferences' dialog

Usage for `plugins` command
```
usage: plugins [options]
options:
  -i, --install <locationId>      - install plugin with locationId
  -j, --install-jar  - install plugin from jar file
  -l, --list                      - list installed plugins
  -a, --available                 - list available plugins from jadx-plugins-list (aka marketplace)
  -u, --update                    - update installed plugins
  --uninstall           - uninstall plugin with pluginId
  --disable             - disable plugin with pluginId
  --enable              - enable plugin with pluginId
  --list-all                      - list all plugins including bundled and dropins
  --list-versions <locationId>    - fetch latest versions of plugin from locationId (will download all artefacts, limited to 10)
  -h, --help                      - print this help
```


### Troubleshooting
Please check wiki page [Troubleshooting Q&A](https://github.com/skylot/jadx/wiki/Troubleshooting-Q&A)

### Contributing
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*

---

## File: config/jflex/README.md

Refer to the following instructions to modify and use to generate SmaliTokenMarker

```shell
jflex SmaliTokenMaker.flex --skel skeleton.default
```

---

## File: jadx-commons/jadx-zip/README.md

## jadx zip

Custom zip reader implementation to fight tampering and provide additional security checks

---

## File: jadx-commons/jadx-app-commons/README.md

## jadx app commons

This module contains common utilities used in jadx apps (cli and gui) and not needed in jadx-code module:
- `JadxCommonFiles` - wrapper for `dev.dirs:directories` lib to get
  'config' and 'cache' directories in cross-platform way
- `JadxCommonEnv` - utils for work with environment variables

---

## File: jadx-plugins/jadx-input-api/README.md

# jadx-input-api

Base API for code input used in jadx.

Contains common data structures to support both java and dex bytecode.

---

## File: jadx-plugins-tools/src/main/java/jadx/plugins/tools/resolvers/README.md

### Supported publish locations for Jadx plugins

---

#### GitHub release artifact

Pattern: `github:<owner>:<repo>[:<version>][:<artifact name prefix>]`

Examples: `github:skylot:jadx`, `github:skylot:jadx:sample-plugin` or `github:skylot:jadx:0.1.0`

`<version>` - exact version to install (optional), should be equal to release name

Artifact name pattern: `<artifact name prefix>[-<release-version-name>].jar`.

Default value for `<artifact name prefix>` is a repo name, `-<release-version-name>` is optional.

---

#### Local file

Install local jar file.

Pattern: `file:.jar`

Example: `file:/home/user/plugin.jar`

As alternative to install, plugin jars can be copied to `plugins/dropins` folder.