REA:Reverse Engineer Android is distributed from this local source checkout.
It does not publish through the upstream REA release process and does not
update from the public rea-agents npm package.
- Node.js 24.22.1 from
.nvmrc, or another version accepted by
package.json. - npm from
package.json#packageManager. - Android APK analysis: full JDK 17 or newer and
jadx-headless-mcp-0.7.1-all.jar. - Android devices:
adb. - Android resources: Apktool 2.7.0 or newer.
- Native
.soanalysis: Ghidra or IDA. - Optional runtime work: JEB and Frida.
REA:Reverse Engineer Android never installs or upgrades Java, JADX, ADB, Apktool, Ghidra, IDA, JEB, or Frida.
npm ci
npm run build:cached
node scripts/rea.mjs --helpThe local launcher is scripts/rea.mjs. Use the same Node.js runtime that
built the checkout.
Set the absolute JAR path:
export REA_JADX_MCP_JAR=/absolute/path/jadx-headless-mcp-0.7.1-all.jarSet JAVA_HOME when Java 17 or newer is not selected by PATH.
Run:
node scripts/rea.mjs doctor --provider jadx --jsonReadiness verifies the selected JAR and Java runtime. It does not prove that a particular APK can be decoded.
Use adb on PATH or set:
export REA_ADB_PATH=/absolute/path/adbThe client probe checks the binary version and does not contact a device.
Use apktool on PATH or set:
export REA_APKTOOL_COMMAND=/absolute/path/apktoolSelect an existing Ghidra installation:
export GHIDRA_INSTALL_DIR=/absolute/path/ghidra
export JAVA_HOME=/absolute/path/jdkRun:
node scripts/rea.mjs doctor --provider ghidra --jsonGhidra imports the selected target into a private ephemeral analysis database. It does not modify the original executable bytes.
Configure the selected upstream IDA MCP registration and set
REA_IDA_MCP_CONFIG to its absolute JSON path. REA does not install, launch,
activate, or license IDA.
Run:
node scripts/rea.mjs doctor --provider ida --jsonAttached IDA analysis is read-only. REA never saves or closes the attached GUI database.
Start a caller-owned JEB client that serves MCP, then set:
export REA_JEB_MCP_URL=http://127.0.0.1:8425/mcpFrida remains an optional package dependency in normal npm installs. The Frida manager loads the binding only when a Frida operation runs. Install or provide Frida according to the host and target requirements.
Supported setup clients are Claude Code, Claude Desktop, Codex, Cursor, Gemini CLI, Windsurf, Devin, OpenCode, Antigravity, GitHub Copilot CLI, Command Code, Qwen Code, Kimi Code, VS Code, Trae, WorkBuddy, Grok Build, OMP, Pi, Hermes, Qoder, Factory Droid, ZCode, DeepSeek Harness, FreeBuff, and Grok Bot. The generated client list is recorded in docs/public/product-catalog.json.
node scripts/rea.mjs setupReview the proposed client changes before approving. Setup creates backups and
installs the Android-only reverse-engineer-anything skill.
For manual stdio registration, point the client at the absolute Node.js
executable and this checkout's scripts/rea.mjs:
{
"mcpServers": {
"rea": {
"command": "/absolute/path/to/node",
"args": ["/absolute/path/to/rea/scripts/rea.mjs", "mcp"]
}
}
}Restart or reconnect the client after setup.
node scripts/rea.mjs doctor --json
node scripts/rea.mjs doctor --client codex --json
node scripts/rea.mjs doctor --provider jadx --json
node scripts/rea.mjs doctor --provider ghidra --json
node scripts/rea.mjs doctor --provider ida --jsonDoctor checks registration and provider configuration. It does not prove that the current agent session is connected or that a provider can analyze every target.
The default input schema profile is compact. Set
REA_MCP_INPUT_SCHEMA_PROFILE=full when the client needs complete field
guidance and nested validation details.
Complete output schemas are advertised by default. A client with a strict
tools/list frame limit can set REA_MCP_OUTPUT_SCHEMA_PROFILE=compact or
off. Server-side result validation remains canonical.
Windows JADX, Ghidra, and owned-process workflows require the packaged native
controls under native/windows/build/. The source tree does not generate them
during npm ci or npm run build:cached.
Restore the matching files from the exact rea-agents@6.8.0 tarball or follow
native/windows/README.md.
rea update is source-managed:
npm ci
npm run build:cachedReconnect the client afterward. See fork maintenance for selective upstream review.
node scripts/rea.mjs uninstallThe command removes only recognized REA-owned client registration and skill files. It does not remove caller-supplied providers or APKs.
This fork does not register browser, Electron, standalone JavaScript, Apple, HarmonyOS, desktop, firmware, managed .NET, RL environment, WASM, EVM, model, GPU, Hopper, Kuna, Cutter, GDB, Rizin, or objdump workflows. SQLite, saved packet captures, process/crash evidence, devicetree, raw binary regions, kernel modules, and legacy native architectures are documented as Android support analysis without becoming default MCP families.