apk-docforge
apk-docforge
apk-docforge — это локальный Python-инструментарий для документирования и аудита
артефактов Android APK. Он сочетает детерминированный статический анализ, необязательное
контролируемое наблюдение за выполнением на авторизованном ADB-устройстве, загрузку
с учётом происхождения, веб-интерфейс FastAPI и MCP-сервер stdio.
Используйте его только с приложениями, которыми вы владеете, которые уполномочены оценивать или можете проверять в соответствии с их лицензией. Проект не обходит аутентификацию, платежи, DRM, сертификатный пиннинг, лицензирование или защиту от взлома.
Возможности
Приём APK, APKS и XAPK с карантином и SHA-256-происхождением.
Статическое сопоставление структуры пакета, данных манифеста, разрешений, ресурсов, экранов, сетевых сигналов, SDK, функций и результатов проверки безопасности.
Ссылки на доказательства, а также явные статусы
observed,inferredиunknown.Поисковые адаптеры для F-Droid и GitHub Releases, а также официальные URL-адреса из белого списка с точным совпадением хоста.
Контролируемый динамический анализ на явно выбранном ADB-устройстве с неразрушающей навигацией и блокировкой чувствительных потоков.
Локальный веб-интерфейс, JSON API и MCP-совместимые инструменты stdio.
Детерминированный вывод в Markdown с необязательным ограниченным дополнением DeepSeek.
Related MCP server: APK Security Guard MCP Suite
Быстрый старт
Требования: Python 3.11 или новее и uv.
uv sync --locked --extra dev
uv run --locked apk-docforge serve
open http://127.0.0.1:8765/Запустите статический анализ напрямую:
uv run --locked apk-docforge analyze ./app.apk --out ./outputs/app --mode staticСгенерированный каталог включает analysis_summary.json, report.md,
codex_ingestion_prompt.md, qa_report.json и версионированные JSON-доказательства.
Безопасность по умолчанию
HTTP-сервис намеренно работает только локально:
serveпо умолчанию использует127.0.0.1и отклоняет любой другой адрес привязки.Уровень ASGI также отклоняет HTTP-клиентов, чей сокетный адрес не является loopback.
Доверенные хосты — ровно
127.0.0.1иlocalhost.Кросс-ориджин доступ браузера ограничен настроенными loopback-ориджинами.
Тела загрузок ограничены до и во время multipart-разбора.
Загрузки проверяют
Content-Length, применяют потоковый лимит байт и повторно проверяют каждый редирект и конечный URL на соответствие политике источника.Вложенные артефакты, распаковка архивов и чтение манифестов имеют независимые лимиты.
Настройки записываются атомарно в обычный файл
.envс режимом0600.
Лимиты по умолчанию консервативны и настраиваются через переменные окружения:
Настройка | По умолчанию |
| 256 МиБ |
| 512 МиБ |
| 256 МиБ |
| 10 000 |
| 1 ГиБ |
| 5 |
Скопируйте .env.example для локальной настройки и храните полученный файл в тайне:
cp .env.example .env
chmod 600 .envСм. SECURITY.md о модели угроз и процессе сообщения об уязвимостях.
Команды
apk-docforge analyze ./app.apk --out ./outputs/app --mode static
apk-docforge search "TeamNewPipe/NewPipe" --sources github --limit 1
apk-docforge download --candidate-id 3 --out ./downloads
apk-docforge import-device --package com.example.app --out ./downloads
apk-docforge sources
apk-docforge serve
apk-docforge mcp-serverДинамический анализ включается вручную и требует авторизованный серийный номер устройства:
apk-docforge analyze ./app.apk \
--out ./outputs/app-dynamic \
--mode dynamic \
--device emulator-5554search сохраняет кандидатов в локальном индексе SQLite и выводит числовой ID,
принимаемый командой download.
Политика загрузки
Загрузки F-Droid остаются на одобренном хосте F-Droid.
Ресурсы релизов GitHub остаются на одобренных хостах ресурсов GitHub.
Официальные URL-адреса требуют HTTPS и точного DNS-хоста в
APK_DOCFORGE_OFFICIAL_URL_ALLOWLIST; IP-литералы отклоняются.Адресаты редиректов и конечный URL ответа оцениваются по той же политике до принятия их тел ответа.
Сторонние зеркала APK и скрейпинг Google Play остаются отключёнными.
Адаптер Google Play Developer — это только зарезервированная точка интеграции; в настоящее время он не ищет и не загружает артефакты, даже если настроен путь к учётным данным.
Необязательная документация DeepSeek
Задайте ключ, только если хотите необязательное дополнение к документации:
export APK_DOCFORGE_DOCUMENTATION_PROVIDER=deepseek
export DEEPSEEK_API_KEY=...APK-бинарники и полный декомпилированный исходный код не отправляются. Провайдер получает ограниченные JSON-сводки и ссылки на доказательства. Без ключа детерминированный локальный отчёт остаётся доступным.
API и MCP
Локальный API включает конечные точки health, upload, search, download, analysis, report,
findings, features, screens, sources и settings в разделе /api.
Интерактивная документация OpenAPI доступна по адресу http://127.0.0.1:8765/docs.
Проверка MCP:
printf '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}\n' \
| uv run --locked apk-docforge mcp-serverНеобязательные контейнеры
Сервисы Docker привязываются только к loopback и отключены, если не выбран их профиль. MobSF закреплён за опубликованным версионированным образом:
docker compose --profile mobsf up mobsfPostgreSQL и Redis — будущие интеграционные сервисы; приложение по умолчанию использует SQLite. Задайте непустой пароль перед запуском будущего профиля:
export APK_DOCFORGE_POSTGRES_PASSWORD='replace-with-a-strong-secret'
docker compose --profile future up postgres redisРазработка
uv sync --locked --extra dev
uv run --locked --extra dev ruff check .
uv run --locked --extra dev pytestCI запускает те же проверки линтера, форматирования и тестов на Python 3.11 и 3.12.
Текущие ограничения
Глубина статического анализа зависит от необязательных инструментов Android, таких как
apkanalyzer,jadxиapktool.Динамический режим устанавливает один выбранный основной APK; установка раздельных пакетов не реализована.
Навигация во время выполнения никогда не вводит учётные данные и не запускает потоки входа, оплаты, публикации, публикации, обмена, удаления, подписки или выхода.
Перехват трафика и инструментирование на основе Frida намеренно отсутствуют.
API не имеет удалённой аутентификации, поскольку удалённая привязка не поддерживается.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceProvides a one-stop automated solution for Android APK security analysis by integrating tools like JEB, JADX, APKTOOL, FlowDroid, and MobSF into unified MCP standard API interfaces.11
- Flicense-qualityDmaintenanceIntegrates multiple Android APK security analysis tools into MCP standard APIs for automated static and dynamic analysis and vulnerability detection.
- Alicense-qualityCmaintenanceEnables authorized Android security testing with static and dynamic analysis, Frida instrumentation, storage inspection, and traffic interception via MCP tools.MIT
- Alicense-qualityBmaintenanceLocal static-analysis assistant for Android malware research that manages investigation cases, exposes MCP tools via a local server, and persists evidence-backed findings without cloud dependency.MIT
Related MCP Connectors
Remote MCP for Android CLI agent build gate, structured receipts, audit logs, and reviewer-ready evi
Static MCP manifest and tool-policy security preflight with signed input-redacted receipts
Zero-config MCP security scanner for AI-generated apps. 25K+ vulnerability patterns.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/alejandrojlamas/apk-docforge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server