Skip to content
Security
Command

/decompile

Decompile an Android APK/XAPK/AAB/DEX/JAR/AAR and analyze its structure

From plugin
android-reverse-engineering-claude-skill
1341 skill1 command
> /plugin marketplace add incogbyte/android-reverse-engineering-claude-skill
> /plugin install android-reverse-engineering@android-reverse-engineering-claude-skill

Command definition

decompile.md
allowed-tools: Bash, Read, Glob, Grep, Write, Edit
description: Decompile an Android APK/XAPK/AAB/DEX/JAR/AAR and analyze its structure
user-invocable: true
argument-hint: <path to APK, XAPK, AAB, DEX, JAR, or AAR file>
argument: path to APK, XAPK, AAB, DEX, JAR, or AAR file (optional)

/decompile

Decompile an Android application and perform initial structure analysis.

Instructions

You are starting the Android reverse engineering workflow. Follow these steps:

Step 1: Get the target file

If the user provided a file path as an argument, use that. Otherwise, ask the user for the path to the APK, XAPK, AAB, DEX, JAR, or AAR file they want to decompile.

Step 2: Check and install dependencies

Run the dependency check:

bash ${CLAUDE_PLUGIN_ROOT}/skills/android-reverse-engineering/scripts/check-deps.sh

Parse the output looking for `INSTALL_REQUIRED:` and `INSTALL_OPTIONAL:` lines.

**If required dependencies are missing**, install them one by one:

bash ${CLAUDE_PLUGIN_ROOT}/skills/android-reverse-engineering/scripts/install-dep.sh java
bash ${CLAUDE_PLUGIN_ROOT}/skills/android-reverse-engineering/scripts/install-dep.sh jadx

The install script auto-detects the OS and installs without sudo when possible (user-local install to `~/.local/`). If sudo is needed, it will prompt — if the user declines or sudo is unavailable, the script prints exact manual instructions (exit code 2). Show those instructions to the user and stop.

**For optional dependencies** (`INSTALL_OPTIONAL:vineflower`, `INSTALL_OPTIONAL:dex2jar`, `INSTALL_OPTIONAL:bundletool`, etc.), ask the user if they want to install them. Recommend vineflower and dex2jar for better results. bundletool is required for AAB files.

After any installations, re-run `check-deps.sh` to verify. Do not proceed until all required dependencies pass.

Step 3: Decompile

Run the decompile script on the target file. Choose the engine based on the input:

  • **APK, XAPK, or AAB** → use jadx first (handles resources natively; XAPK is auto-extracted; AAB uses bundletool):
  bash ${CLAUDE_PLUGIN_ROOT}/skills/android-reverse-engineering/scripts/decompile.sh <file>
  • **DEX** → jadx handles DEX natively:
  bash ${CLAUDE_PLUGIN_ROOT}/skills/android-reverse-engineering/scripts/decompile.sh <file>
  • **JAR/AAR** and Fernflower is available → prefer fernflower for better Java output:
  bash ${CLAUDE_PLUGIN_ROOT}/skills/android-reverse-engineering/scripts/decompile.sh --engine fernflower <file>
  • **If jadx output has warnings** or the user wants the best quality → run both and compare:
  bash ${CLAUDE_PLUGIN_ROOT}/skills/android-reverse-engineering/scripts/decompile.sh --engine both <file>

For obfuscated apps (if the user mentions it or you detect single-letter package names), add `--deobf`:

bash ${CLAUDE_PLUGIN_ROOT}/skills/android-reverse-engineering/scripts/decompile.sh --deobf <file>

Step 4: Analyze structure

After decompilation completes:

1. Read `AndroidManifest.xml` from the resources directory. For XAPK, check the base APK's output first. 2. If XAPK, review `xapk-manifest.json` in the output directory to understand the split structure. 3. List the top-level package structure 4. Identify the app's main Activity, Application class, and architecture pattern 5. Report a summary to the user

Step 5: Offer next steps

Tell the user what they can do next:

  • **Trace call flows**: "I can follow the execution flow from any Activity to its API calls"
  • **Extract APIs**: "I can search for all HTTP endpoints (Retrofit, OkHttp, GraphQL, WebSocket) and document them"
  • **Security audit**: "I can scan for certificate pinning, exposed secrets, debug flags, and weak crypto"
  • **Kotlin/RxJava analysis**: "I can trace coroutine/Flow/RxJava call chains"
  • **Generate report**: "I can generate a full Markdown report of all findings"
  • **Analyze specific classes**: "Point me to a specific class or feature to analyze"
  • **Re-decompile with Fernflower**: If jadx output has warnings, offer to re-run with `--engine both` for comparison

Refer to the full skill documentation in `${CLAUDE_PLUGIN_ROOT}/skills/android-reverse-engineering/SKILL.md` for the complete workflow.

Read more
@incogbyte
Ships withandroid-reverse-engineering-claude-skill

Author: incogbyte Claude Code skill that automates Android application reverse engineering.

Stars on GitHub

Momentum

stars in total
134
Star history of incogbyte/android-reverse-engineering-claude-skill on GitHub, a chart by star-history.com

More commands from other plugins.

deslop-reborn

deslop-reborn

Command

One iteration of the IronClaw Reborn de-slop loop — take ONE Reborn crate, fan out parallel review sub-agents (thermo-nuclear…

ironclaw12d13k
@nearai@nearaiInstall Command
audit

audit

Command

Audit a file, directory, or whole repo for insecure default configuration: fallback secrets, default credentials, fail-open…

@trailofbits@trailofbitsInstall Command
arsenal

arsenal

Command

Show which external bug-bounty tools are installed on this machine and print install hints for the missing ones. Curated from…

@awarexone@awarexoneInstall Command