Skip to content

Guide · Agent skill

How to use the APK Reverse Engineering agent skill

Updated · written with AI from the project's own documentation and checked against our catalogue data

The apk-reverse skill gives an AI coding agent a structured procedure for analysing Android APK files from the command line: decompiling Java with jadx, unpacking smali and resources with apktool, reading the manifest, hooking running apps with Frida, and moving into native .so analysis when the logic lives there. It is written for people who already do authorised reverse engineering and have the CLI tools installed. By the end of this guide you will know what the skill changes about the agent's behaviour, how to install it, how to phrase requests so it activates, and which limits to respect.

APK Reverse Engineeringzhaoxuya520/reverse-skill · MIT

Quick start

  1. 1Download and unzip the skill. Download the apk-reverse ZIP from this page and unzip it so that SKILL.md sits inside an apk-reverse folder.
  2. 2Place it in the skills folder. Move the folder into ~/.claude/skills/ for personal use, or into the project's .claude/skills/ for one project. Alternatively, upload the ZIP under Settings → Capabilities → Skills in the Claude apps.
  3. 3Verify the CLI tools. Run jadx --version, apktool --version, frida-ps -U and adb devices to confirm the tools and a connected device are available.
  4. 4Make a precise request. Describe the APK, your goal and your authorisation, for example asking the agent to decompile app.apk and locate the login logic.
  5. 5Follow the triage order. Let the agent read the manifest and Java entry points before any smali patch or Frida hook.
  6. 6Rebuild and verify if you patched. Rebuild with apktool or the rebuild-sign-install script, then check signing and verification output before installing.

What does the apk-reverse skill make the agent do?

An agent skill is a folder of instructions (a SKILL.md file plus optional references and scripts) that the agent loads when a task matches its description. This skill's description covers APK unpacking, Java decompilation, smali modification, repacking, Frida dynamic hooking, and switching to so/native analysis.

Once loaded, the agent follows a fixed order: triage the APK first (manifest, package, lib/ folder), then read Java logic, then confirm smali and resources, then rebuild or hook, and only then go native. The skill's rules say not to patch smali blindly, not to write a Hook before reading the manifest and main entry point, and not to treat incomplete Java output as proof that logic cannot be analysed.

  • Decompiles Java with jadx and unpacks resources and smali with apktool
  • Checks AndroidManifest.xml for exported components, permissions and the main launcher activity
  • Looks for keywords such as login, sign, encrypt, token, root, certificate and trust in decompiled code
  • Hooks Java and native functions with Frida, printing arguments and return values before changing them
  • Rebuilds, aligns, signs and installs a modified APK through bundled scripts

Install the apk-reverse skill

You can install the skill in either of two ways. Download the ZIP from the skill page on this site and unzip it. For a personal setup, place the apk-reverse folder inside ~/.claude/skills/. For a single project, place it inside that project's .claude/skills/ folder.

If you use the Claude apps, you can instead upload the ZIP under Settings → Capabilities → Skills. The folder should contain SKILL.md at its top level, alongside the references/ and scripts/ folders.

  • Personal install: unzip into ~/.claude/skills/
  • Project install: unzip into the project's .claude/skills/
  • Claude apps: upload the ZIP under Settings → Capabilities → Skills

Check the required tools before you start

The skill assumes the command-line tools are already installed and configured. It does not teach installation from scratch. The source lists jadx, apktool, frida and frida-ps, adb, Java, and apksigner and zipalign for signing. Bash is used on Linux or Kali, and PowerShell is used for the Windows script versions. JEB Pro, IDA or radare2 are optional, for deeper native analysis.

Confirm the basics from a terminal with the version and device commands below. The skill's own list records tools verified on one machine, but your versions may differ.

  • Java must be installed; apktool depends on a JDK
  • zipalign and apksigner come from the Android Build-Tools, which you install manually (for example with sdkmanager "build-tools;35.0.0")
  • frida-tools is installed with pip install frida-tools, and Python must already be present
jadx --version apktool --version frida-ps -U adb devices

Trigger the skill with natural requests

The agent loads the skill when your request matches its description, so describe the task in plain terms and name the kind of work. Mention the APK, the goal and, where relevant, the device. Be explicit that the app is yours or that you have authorisation to test it.

The skill also responds to requests about native code. If the APK contains .so files, mention the architecture folder you want examined, such as lib/arm64-v8a.

  • "Decompile app.apk with jadx and tell me where the login logic is."
  • "Unpack my app's APK with apktool and summarise the exported activities in the manifest."
  • "I own this app. Hook the certificate check in the OkHttp client with Frida and log the arguments."
  • "Rebuild the modified APK in apktool_out, sign it and install it on 127.0.0.1:7555."
  • "The login check seems to be in libxxx.so for arm64-v8a. Help me triage the exported JNI functions."

Example workflow: from APK to findings

A typical session starts with decoding. The decode script runs jadx and apktool together and writes a summary of the package, Java files, smali directories and .so files. The output directory is created next to the original APK. Without the script, you can run the two tools by hand using the commands shown here.

After decoding, the agent reads the manifest and the Java entry points, then searches for sensitive areas. Its final report should name the entry components, say whether key logic sits in Java, smali or .so, list the sensitive points confirmed (login, signing, root, SSL, WebView, JNI), and record any patch or hook it made.

jadx -d jadx_out app.apk apktool d app.apk -o apktool_out jadx --single-class com.example.LoginActivity -d jadx_out app.apk

Use Frida for dynamic hooks

Static reading is often not enough for login or certificate logic. The skill's Frida guidance is to hook the Java layer first, print parameters and return values, and only then change a return value. Common targets listed in the source include login functions, OkHttp, Retrofit and WebView hook points, javax.crypto and MessageDigest, root-detection functions and SSL pinning logic.

For one-off commands, use the frida tools directly. For repeatable injection, the skill recommends its frida-run script, which avoids mixing up the -f, -n and -U flags.

frida-ps -U frida -U -f com.example.app -l hook.js frida-trace -U -f com.example.app -j '*!*certificate*'

Rebuild, sign and install a modified APK

When you have edited smali or the manifest, rebuild with apktool. The bundled rebuild-sign-install script wraps the steps: apktool build, zipalign, apksigner signing and verification, and an optional adb install. By default it creates and reuses a debug keystore and writes output next to the project folder.

The skill notes that its apktool path alone does not guarantee a device-ready package, so signing steps may still be needed. Check the script's output and verification result before you rely on the APK.

  • -Clean rebuilds from scratch
  • -Install with -Reinstall and -DeviceSerial installs to a specific device
apktool b apktool_out -o rebuilt.apk pwsh -File "<skill-root>\apk-reverse\scripts\rebuild-sign-install.ps1" -ProjectDir "apktool_out" -Install -Reinstall -DeviceSerial "127.0.0.1:7555"

Safety notes: scripts and network access

This skill runs scripts and uses the network. Its bootstrap can download jadx and apktool from GitHub releases, install frida-tools from PyPI, and install adb with winget or a fallback path. Read the scripts before running them, and check that your network policy allows these sources. The source also describes automated installation as a convenience, so you can install tools yourself if you prefer.

JEB Pro is commercial software. You must obtain and license it yourself; the package does not download, crack or work around licences. The skill says any third-party JEB MCP bridge must be reviewed for source, permissions, network behaviour and version before you register it.

The skill is oriented toward authorised analysis. Its own rules say to record indicators such as curl-to-shell URLs rather than execute destructive commands. Only run it against apps and devices you are permitted to test.

  • Bootstrap downloads from GitHub and PyPI, and may use winget
  • Dynamic analysis is meant for devices you are authorised to test
  • Do not run unknown install commands from an APK; record them as evidence instead

Tips for better results

Give the agent a precise target. A named class, package, or .so file produces a more focused run than a general request about an app. Tell it what you already know, such as the manifest has been unpacked or the login logic is in a specific class.

Let the agent finish triage before asking for patches or hooks. The skill's order exists because wrong early patches waste time. If Java output is incomplete, ask the agent to check smali and resources rather than declaring the logic unreadable.

  • State the package name and the device serial if more than one device is connected
  • Ask for the output summary, not just the answer, so you can verify evidence
  • Start with read-only hooks that log values before any return-value change

What people use it for

  • Reading the Java logic of a login or request-signing flow in an app you are testing
  • Listing exported activities, services and receivers from AndroidManifest.xml
  • Checking whether certificate validation or root detection runs in Java or in a native .so file
  • Hooking OkHttp or WebView calls with Frida to log parameters during a security review of your own app
  • Debugging a developer's own app by rebuilding a patched APK and installing it on a test device

Frequently asked questions

How do I install the apk-reverse skill?

Download the ZIP from the skill page and unzip it into ~/.claude/skills/ for personal use, or into a project's .claude/skills/ folder. In the Claude apps you can instead upload the ZIP under Settings → Capabilities → Skills. The folder should contain SKILL.md at its top level.

What do I need installed before using the skill?

The source lists jadx, apktool, frida and frida-ps, adb, Java, and apksigner and zipalign for signing. Bash is used on Linux or Kali and PowerShell for the Windows script versions. The skill assumes these are installed and configured rather than teaching installation.

Is the apk-reverse skill free to use?

The skill is published under the MIT licence. The optional JEB Pro is commercial software that you must license yourself, and the skill does not provide or bypass licences. Check the skill page for any other terms.

Can I use this skill to bypass licensing or DRM in an app?

No. The skill is written for authorised analysis, and its workflow is oriented toward security review and debugging, not toward bypassing licensing, DRM or anti-cheat. Analysing or patching apps you do not own or have permission to test can break law or terms of service.

What is the difference between jadx and apktool in this workflow?

jadx decompiles the APK into readable Java, which is best for understanding business logic. apktool unpacks resources and smali and rebuilds the APK, which is needed when you change the manifest or code. The skill recommends starting with jadx and moving to apktool when decompilation is incomplete or patching is required.

How does it compare to using jadx, apktool and Frida by hand?

The skill does not add new tools. It adds a consistent procedure and bundled scripts for decoding, Frida device and process handling, and rebuild-sign-install steps, so the same order and flags are used each time. If you already follow that procedure, the skill mainly saves time and reduces flag mistakes.

What should I do if a tool is missing or the bootstrap fails?

The skill says bootstrap can download jadx and apktool, install frida-tools with pip and install adb with winget. Failures are usually caused by blocked GitHub or PyPI access, an old winget, or a missing Java installation. Install the missing tool manually and confirm it with its version command.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

Use this skill if you already run jadx, apktool, Frida and adb, and you are doing authorised security review or debugging your own app's login, SSL or root-detection code. Pick something else if you are new to Android tooling, need a guided beginner setup, or plan to analyse apps you have no permission to test.

Download the skill