explaingit

skylot/jadx

📈 Trending48,584JavaAudience · developerComplexity · 3/5ActiveLicenseSetup · easy

TLDR

JADX converts compiled Android apps (APK files) back into readable Java or Kotlin source code, letting you examine how an app works.

Mindmap

mindmap
  root((repo))
    What it does
      Decompiles APK files
      Decodes resources
      Deobfuscates code
    How to use it
      Command-line tool
      Desktop GUI app
      Syntax highlighting
    Use cases
      Security auditing
      Malware analysis
      Competitor research
    Tech stack
      Java 11+
      Gradle
      Smali debugger
    Audience
      Security researchers
      Malware analysts
      Developers

Things people build with this

USE CASE 1

Audit Android apps for security vulnerabilities and malicious code.

USE CASE 2

Investigate suspicious APK files to understand malware behavior.

USE CASE 3

Recover or examine source code from compiled Android applications.

USE CASE 4

Analyze competitor apps to understand their architecture and features.

Tech stack

JavaGradleDalvik bytecodeSmali

Getting it running

Difficulty · easy Time to first run · 5min
Apache 2.0, use freely for any purpose, including commercial use, as long as you include the license and copyright notice.

In plain English

JADX is a decompiler for Android applications. When you download an Android app (an APK file), the code inside it is stored in a compiled format called Dalvik bytecode (DEX files), a low-level representation that Android devices can run directly but humans cannot easily read. JADX converts this compiled bytecode back into readable Java or Kotlin source code, letting you examine how an app works. The tool works through a process called decompilation: it reads the DEX bytecode, reconstructs the original program flow, and produces Java source code that approximates what the original developer would have written. It also decodes Android resource files like the AndroidManifest.xml (which describes the app's permissions and components) and binary resource archives. For obfuscated apps, where developers have intentionally renamed all variables and classes to meaningless letters to make reverse engineering harder, JADX includes a built-in deobfuscator that attempts to restore meaningful names, and it supports external renaming maps in several formats. The project comes in two forms: a command-line tool for scripted or batch analysis, and a GUI (graphical desktop application) with syntax highlighting, click-to-navigate class references, full-text search across all decompiled code, and a Smali debugger (Smali is the assembly-like language that directly represents Dalvik bytecode). You would use JADX if you are a security researcher auditing Android apps for vulnerabilities, a developer trying to understand how a competitor's app works, a malware analyst investigating a suspicious APK, or a developer who has lost their own source code. The README notes that JADX cannot decompile 100% of all code, complex constructs may produce errors or incomplete output. The tech stack is Java (requires Java 11 or later), built with Gradle, and available on Windows, macOS, and Linux.

Copy-paste prompts

Prompt 1
How do I use JADX to decompile an Android APK file and view the source code?
Prompt 2
Show me how to use JADX's GUI to search for specific code patterns across a decompiled app.
Prompt 3
How does JADX's deobfuscator work, and how can I apply custom renaming maps to restore variable names?
Prompt 4
What are the limitations of JADX when decompiling obfuscated or complex Android apps?
Prompt 5
How do I set up JADX from the command line to batch-decompile multiple APK files?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.