apk-reverse

Reverse engineer Android APKs using jadx, apktool, Frida, and adb from the CLI.

7|4|Updated Jun 22, 2026
One-click install
npx skills add https://github.com/dbx0/skills --skill apk-reverse-dbx0
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: apk-reverse
Source: https://github.com/dbx0/skills/tree/main/skills/mobile/reverse-engineering/apk-reverse
Command: npx skills add https://github.com/dbx0/skills --skill apk-reverse-dbx0

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires frida-tools, and includes scripts (resource) and references (resource) components.

What problem does it solve? Analyzing Android APKs requires juggling many tools (jadx, apktool, Frida, adb, zipalign, apksigner) with error-prone parameters and no clear workflow, making it easy to miss key logic or waste time on obfuscated code. ## Core Features & Use Cases - End-to-end APK unpacking: Run jadx decompilation and apktool unpacking in one shot, producing a summary of package name, Java file count, smali directories, and native .so libraries. - Smali patching and repackaging: Modify AndroidManifest.xml and smali code, then rebuild, zipalign, sign with a debug keystore, and install to a device via adb. - Dynamic analysis with Frida: Unified spawn/attach injection for hooking login logic, crypto operations, SSL pinning, and root detection, plus a static deobfuscation script that defeats repeating-XOR string encryption used by commercial obfuscators. - Use Case: Given a fintech APK with obfuscated strings, decode the hidden intent extras and deeplink templates statically, hook the signing function with Frida, patch root detection in smali, and reinstall the modified APK on a test device. ## Quick Start Use the apk-reverse skill to unpack and decompile the APK at app.apk, then summarize its manifest components, permissions, and whether its core logic lives in Java or native libraries.

Frequently Asked Questions about apk-reverse

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I reverse engineer an Android APK from the command line?

Run jadx to decompile Java code and apktool to unpack smali and resources, then inspect AndroidManifest.xml and the main package. The bundled decode script runs both tools in one pass and summarizes package name, Java files, smali dirs, and native libraries.

How to bypass SSL pinning on Android with Frida?

Hook okhttp3.CertificatePinner.check to return nothing and replace TrustManagerImpl.verifyChain to return the untrusted chain. The references include a universal bypass script covering OkHttp, Retrofit, WebView, and Flutter's libflutter.so.

jadx vs apktool for APK analysis, which should I use?

Use jadx first to read high-level Java logic and search class and method names. Switch to apktool output when jadx decompilation is incomplete or obfuscated, or when you need to actually patch smali and rebuild the APK.

Can I modify and reinstall an APK after decompiling it?

Yes. Edit smali or the manifest in the apktool output, then rebuild with apktool b, align with zipalign, and sign with apksigner using a debug keystore. The rebuild-sign-install script automates this chain and can adb install the result.

Why do decoded obfuscated strings turn to garbage after a few characters?

The XOR key was parsed incorrectly, usually because byte values were scraped from the whole class file instead of only the byte[] initializer, inflating the key length. Parse just the array initializer and sanity-check against a known string like UTF-8.

When should I switch from Java analysis to native .so analysis?

Switch when the Java layer is only a JNI wrapper, key logic disappears after System.loadLibrary, or signing and certificate validation live in native code. Use radare2 for quick triage and IDA for deep decompilation of the .so.