
jadx无头mcp
概览
基于 ,为(例如抖音:295 MB / 55 dex)构建,且 。它通过官方(可流式 HTTP)向大型语言模型客户端开放 32 个 RE 工具。 这就是 .它取代了早期的 Rust-bridge 实现(v0.x 标签 / 开发分支),完全消除了跨语言桥和 GUI 依赖。 现有选项不符合逆向工程(RE)需求: - (例如 jadx-ai-mcp)在没有图形界面上下文时退出——他们 。- 通过 grep 翻译 smali 文本定位信息,这迫使每个类(),在像抖音这样的大型 APK 上反编译,使得 MCP 实际上无用。 这个项目是:加载任意APK(包括抖音),保持所有工具快速稳定,(加载时间可能更长,一次),在堆中。 - 🧩 jadx-core和MCP服务器在同一进程中运行;MCP通过嵌入Jetty通信(而非已弃用的SSE),绑定在127.0.0.1。
概述(AI 翻译)
英语 ·简体中文
一个单进程、无头jadx反编译器+MCP服务器,为 逆向工程大型安卓应用(例如抖音:295 MB / 55 Dex),在20 GB堆下**,且 每个MCP工具调用限制为~60 s。它通过官方向LLM客户端暴露32个RE工具 模型上下文协议(可流式HTTP)。
这就是 v1.0 Java 重写。它取代了早期的 Rust-bridge 实现(
v0.x标签 /dev分支),完全移除了跨语言桥和图形用户界面依赖。
目录
- 为什么
- 亮点
- 建筑学
- 项目结构
- 要求
- 安装 / 构建
- 使用情况
- 连接MCP客户端
- MCP 工具
- 大型应用行为与内存
- 更新日志
- 许可与演出资格
为什么
现有选项不符合逆向工程(RE)需求:
- **GUI嵌入插件(例如 jadx-ai-mcp)在没有 GUI 上下文时会跳出——它们 无法运行 无头。
- **先前的
jadx-headless-mcp**通过grep-ing小文字定位信息,强制执行 反编译所有课程(极其缓慢),在像抖音这样的大型APK上,加载失败, 使MCP实际上变得毫无用处。
本页由 AI 翻译,技术细节请以原文为准。
README
以下为原文 README 节选,完整内容请查看原文。
jadx-headless-mcp
English · 简体中文
A single-process, headless jadx decompiler + MCP server built for reverse-engineering large Android apps (e.g. Douyin: 295 MB / 55 dex) under a 20 GB heap, with every MCP tool call bounded to ~60 s. It exposes 32 RE tools to LLM clients over the official Model Context Protocol (Streamable HTTP).
This is the v1.0 Java rewrite. It supersedes the earlier Rust-bridge implementation (the
v0.xtags /devbranch), removing the cross-language bridge and the GUI dependency entirely.
Table of contents
- Why
- Highlights
- Architecture
- Project structure
- Requirements
- Install / Build
- Usage
- Connecting an MCP client
- MCP tools
- Large-app behavior & memory
- Changelog
- License & credits
Why
Existing options didn’t fit reverse-engineering (RE) needs:
- GUI-embedded plugins (e.g. jadx-ai-mcp) bail out when there is no GUI context — they cannot run headless.
- The earlier
jadx-headless-mcplocated information by grep-ing smali text, which forced decompiling every class (extremely slow), and on huge APKs like Douyin it failed to load fully, making the MCP effectively useless.
This project is rebuilt for RE: load any APK (including Douyin), keep all tools fast and stable, ≤ 60 s per tool call (loading may take longer, once), within 20 GB of heap.
Highlights
- 🧩 Single JVM, no bridge, no Python. jadx-core and the MCP server run in one process; MCP speaks
Streamable HTTP (not the deprecated SSE) via an embedded Jetty, bound to
127.0.0.1. - 🧠 Out-of-heap xref. A custom
IUsageInfoCacheexports jadx’s usage graph to SQLite (symbols + edges);get_xrefs_*/get_call_graphanswer from SQL and never touch jadx’s in-heapgetUseIn(). On Douyin that’s 4.5 M symbols / 29.5 M edges off the heap. - 🔎 Indexed code search.
search_in_codeuses an SQLite FTS5 trigram index over decompiled text (with a ripgrep fallback for full regex) — no full-corpus re-scan per query. - 💾 Bounded + disk code cache. A bounded in-heap LRU over a disk cache replaces jadx’s unbounded
安装
This server does not publish a one-line install command.
Open the repository installation guide 新手?先看 mcpskill.org 教程 →配置
{
"mcpServers": {
"jadx-headless": {
"type": "streamable-http",
"url": "http://127.0.0.1:8650/mcp"
}
}
}