SZ

samael-z/jadx-headless-mcp

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

20 stars 1 forks Качество 54 Тренд 14

jmcp

Обзор

А построен для (например, Douyin: 295 МБ / 55 декс) под a, с . Он предоставляет 32 инструмента RE для клиентов LLM поверх официального (Streamable HTTP). Вот оно. Он заменяет более раннюю реализацию Rust-bridge (теги v0.x / ветвь dev), полностью удаляя межязычный мост и зависимость от графического интерфейса. Существующие варианты не соответствовали потребностям реверс-инжиниринга (RE): - (например, jadx-ai-mcp) выручать, когда нет контекста GUI - они. Расположенная информация с помощью греп-инг-смали текста, который заставил декомпилировать каждый класс (), и на огромных APK, таких как Douyin, делает MCP фактически бесполезным. Этот проект: загрузите любой APK (включая Douyin), держите все инструменты быстрыми и стабильными (загрузка может занять больше времени, один раз). . jadx-core и MCP-сервер работают в одном процессе; MCP говорит (не обесцененный SSE) через встроенный Jetty, связанный с 127.0.0.1.

Обзор (машинный перевод)

** Английский ** * 中

** однопроцессный, безголовый jadx-декомпилятор + MCP-сервер** Обратно-инженерные большие приложения для Android (например, Douyin: 295 МБ / 55 декс) под кучей 20 ГБ, с ** Каждый MCP-инструмент ограничен ~60 с**. Он предоставляет 32 инструмента RE клиентам LLM. Модельный контекстный протокол (Streamable HTTP).

Перезапись Java **v1.0. Он заменяет более раннюю реализацию Rust-bridge v0.x.

tags / dev, полностью удаляя межъязыковой мост и зависимость от графического интерфейса.

Таблица содержимого

Почему

  • Основные моменты

  • Архитектура Структура проекта

  • Требования

  • Установка / Строительство

  • Использование Подключение клиента MCP Инструменты MCP Поведение большого приложения и память Changelog

  • Лицензия и кредиты

Почему

Существующие варианты не соответствовали потребностям реверс-инжиниринга (RE):

GUI-встроенные плагины (например, jadx-ai-mcp) выходят, когда нет контекста GUI - они ** не могут работать Безголовый. ** Раннее jadx-headless-mcp** располагало информацию по greping-smali-тексту, что вынуждало декомпиляция каждого класса (** чрезвычайно медленно**), а на огромных АПК, таких как Douyin, он ** не загружался полностью**, Это делает MCP бесполезным.

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

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.x tags / dev branch), removing the cross-language bridge and the GUI dependency entirely.


Table of contents


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-mcp located 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 IUsageInfoCache exports jadx’s usage graph to SQLite (symbols + edges); get_xrefs_* / get_call_graph answer from SQL and never touch jadx’s in-heap getUseIn(). On Douyin that’s 4.5 M symbols / 29.5 M edges off the heap.
  • 🔎 Indexed code search. search_in_code uses 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
Открыть полный README на GitHub

Установка

This server does not publish a one-line install command.

Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →

Конфигурация

{ "mcpServers": { "jadx-headless": { "type": "streamable-http", "url": "http://127.0.0.1:8650/mcp" } } }