jadx
jadx is a Dex to Java decompiler that produces Java source code from Android Dex and APK files. It includes both command-line and GUI tools with features like resource decoding and deobfuscation.
Description
jadx is a dex to java decompiler package in Kali Linux, containing command line and GUI tools to produce Java source code from Android Dex and Apk files. Main features include decompiling Dalvik bytecode to java classes from APK, dex, aar, and zip files, decoding AndroidManifest.xml and other resources from resources.arsc, and an included deobfuscator. The jadx-gui provides viewing decompiled code with highlighted syntax, jump to declaration, find usage, and full text search.
Use cases involve reverse engineering Android applications by extracting readable Java source code for analysis, understanding app behavior, or security auditing. It supports various input formats like .apk, .dex, .jar, .class, .smali, .zip, .aar, .arsc, .aab, .xapk, .apkm, and .jadx.kts.
The tool manages plugins and offers environment variables for customizing security checks and directories.
How It Works
jadx decompiles Dalvik bytecode from dex files to Java classes, decodes resources like AndroidManifest.xml from resources.arsc, and handles multiple input formats including APK, dex, aar, zip. It uses plugins like dex-input for loading and verifying dex/apk files, java-convert for converting .class/.jar/.aar to dex using dx or d8 modes, and kotlin-metadata for code generation. Deobfuscation is built-in, with threading for processing and options to skip resources or sources.
Installation
sudo apt install jadxFlags
Examples
jadx -d out classes.dexjadx --rename-flags "none" classes.dexjadx --rename-flags "valid, printable" classes.dexjadx --log-level ERROR app.apkjadx -Pdex-input.verify-checksum=no app.apkjadx-gui -sc