APK Reverse Engineering Tools in reverse-skill: The Complete Toolkit Guide

The reverse-skill repository orchestrates APK reverse engineering through a standardized toolchain including apktool for resource decoding, jadx for Java decompilation, frida for dynamic instrumentation, and adb for device management, all registered in skills/scripts/lib/ToolDiscovery.ps1.

The apk-reverse skill within the reverse-skill repository provides a structured framework for Android security analysis. It automates tool discovery and standardizes workflows for decompiling, modifying, and re-signing Android application packages through PowerShell and Bash orchestration scripts.

Core Static Analysis Tools

apktool: Resource Decoding and Rebuilding

apktool serves as the primary utility for disassembling APK binaries into human-readable smali code and XML resources. In skills/scripts/lib/ToolDiscovery.ps1 at line 58, the tool is explicitly declared as a required capability for the apk-reverse skill, enabling analysts to decode application packages for modification.


# Decode APK to smali and resources

apktool d target.apk -o decoded_app/

# Rebuild modified application

apktool b decoded_app/ -o unsigned.apk

The repository's routing matrix in skills/routing.md maps "APK / Android app" analysis tasks to the apk-reverse skill, which relies on apktool for the initial disassembly phase.

jadx: DEX Decompilation to Java Source

jadx converts Android DEX bytecode into readable Java or Kotlin source code. According to skills/reverse-engineering/tools.md, jadx provides superior readability for logic analysis compared to smali, making it essential for understanding application behavior without execution.


# Decompile APK to Java source directory

jadx target.apk -d java_source/

# Generate Gradle project structure

jadx --decompile-all --export-gradle target.apk -o project/

This tool complements apktool by offering high-level source code visibility while apktool handles low-level resource manipulation.

Dynamic Analysis Capabilities

frida: Runtime Instrumentation

frida enables JavaScript injection into running Android processes for method hooking and runtime manipulation. ToolDiscovery.ps1 at line 30 registers both frida and frida-ps as required utilities for the APK reverse engineering workflow, allowing analysts to bypass security checks and inspect encrypted traffic.


# List running applications on connected device

frida-ps -U

# Inject hook script into specific package

frida -U -f com.example.app -l hook.js --no-pause

The repository includes wrapper scripts under apk-reverse/scripts/ that standardize frida execution across different analysis environments.

adb: Android Debug Bridge

adb facilitates communication with Android devices and emulators for file transfer, shell access, and application installation. The tool discovery script ties adb specifically to the apk-reverse skill, ensuring device connectivity before dynamic analysis begins.


# Install rebuilt APK to device

adb install -r modified.apk

# Pull application data for inspection

adb pull /data/data/com.example.app/ ./evidence/

APK Signing and Alignment Utilities

apksigner and zipalign

After modification, APKs must be cryptographically signed and memory-aligned for installation. ToolDiscovery.ps1 lines 89-100 explicitly verify the presence of apksigner and zipalign as mandatory post-processing tools for the rebuild workflow.


# Align APK to 4-byte boundaries for runtime optimization

zipalign -p -f -v 4 unsigned.apk aligned.apk

# Sign with keystore using apksigner (Android SDK)

apksigner sign --ks keystore.jks --ks-pass pass:password --out signed.apk aligned.apk

# Verify signature integrity

apksigner verify -v signed.apk

These utilities ensure that modified applications maintain valid digital signatures and meet Android's installation requirements.

Optional Commercial and Automated Tools

JEB Pro: Advanced Decompilation

JEB Pro appears in skills/routing.md as an optional licensed tool for advanced cross-referencing decompilation, including ARM native code analysis within APKs. While not required for basic workflows, it provides commercial-grade static analysis capabilities for obfuscated applications and native library inspection.

mobSF: Automated Static Analysis

mobSF (Mobile Security Framework) is referenced in the routing matrix as an auxiliary scanner for automated APK security assessment. This tool generates comprehensive vulnerability reports without manual reverse engineering, serving as a preliminary analysis layer before deep manual inspection.

Tool Discovery and Routing Architecture

The reverse-skill framework automates tool management through skills/scripts/lib/ToolDiscovery.ps1, which maintains a registry mapping each skill to its required binaries. For the apk-reverse skill, this script validates the installation status of apktool, jadx, frida, adb, apksigner, and zipalign before executing analysis workflows.

The routing configuration in skills/routing.md directs "apk-reverse" tagged requests to the appropriate toolchains based on analysis type (static vs. dynamic). Installation guidance for missing tools is provided via skills/scripts/refresh-tool-index.sh, which generates OS-specific setup commands for the complete toolkit.

Summary

  • apktool handles APK decoding and rebuilding at the smali/resource level in skills/scripts/lib/ToolDiscovery.ps1
  • jadx provides high-level Java decompilation for logic analysis per skills/reverse-engineering/tools.md
  • frida enables runtime instrumentation and method hooking on physical devices
  • adb manages device connectivity and file operations during dynamic analysis
  • apksigner and zipalign validate and prepare modified APKs for installation
  • JEB Pro and mobSF offer optional advanced decompilation and automated scanning capabilities

Frequently Asked Questions

What is the difference between apktool and jadx in the reverse-skill workflow?

apktool disassembles APKs into smali bytecode and XML resources, enabling precise modification of application components and resource files. jadx decompiles DEX files into Java source code for logic analysis but does not support direct modification. The reverse-skill repository uses apktool for active modification workflows and jadx for static code review and vulnerability assessment.

How does reverse-skill verify that required APK tools are installed?

The skills/scripts/lib/ToolDiscovery.ps1 script executes at initialization to check for the presence of apktool, jadx, frida, adb, and signing utilities. If binaries are missing, the script references skills/scripts/refresh-tool-index.sh to provide platform-specific installation instructions, ensuring the apk-reverse skill operates with validated dependencies.

Can I use reverse-skill for dynamic analysis without a physical Android device?

Yes. The framework supports Android emulators through adb connectivity, allowing frida instrumentation and dynamic analysis on virtual devices. The ToolDiscovery.ps1 script registers adb for both physical and emulator environments, and the routing matrix in skills/routing.md accommodates emulator-based workflows for APK reverse engineering tasks.

What is the purpose of zipalign when rebuilding APKs in reverse-skill?

zipalign optimizes the memory alignment of uncompressed data within the APK, which is mandatory for Android's installation verification. According to the tool discovery configuration, reverse-skill enforces zipalign execution before apksigner to ensure rebuilt applications meet Android's 4-byte alignment requirements and install successfully on target devices.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →