MAC下JADX+MCP+OpenCode自动APK逆向分析

概述

本文档介绍如何在 macOS 上配置 JADX 反编译工具与 OpenCode 的 MCP 连接,实现 APK 分析。

架构说明

|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 | ┌─────────────┐ ┌──────────────────┐ ┌──────────────────┐ │ OpenCode │ ──► │ jadx-mcp-server │ ──► │ JADX Plugin │ │ (MCP Client) │ (Python 服务器) │ │ (localhost:8650)│ │ │ │ (:8651) │ │ │ └─────────────┘ └──────────────────┘ └──────────────────┘ |

注意:JADX 插件本身不是 MCP 服务器,需要通过 jadx-mcp-server (Python) 作为中间层转换。


一、安装 JADX 及插件

1.1 安装 JADX

|-----|----------------------------------------|
| 1 2 | # 使用 Homebrew 安装 brew install jadx |

1.2 安装 JADX AI MCP 插件

|---|-----------------------------------------------------------|
| 1 | jadx plugins --install "github:zinja-coder:jadx-ai-mcp" |

1.3 验证插件安装

|---|---------------------|
| 1 | jadx plugins list |


二、安装 jadx-mcp-server (Python 中间层)

2.1 安装 uv (Python 包管理器)

|---|---------------------------------------------------|
| 1 | curl -LsSf https://astral.sh/uv/install.sh | sh |

安装完成后需要加载环境变量:

|---|-------------------------------|
| 1 | source $HOME/.local/bin/env |

建议将以下内容添加到 ~/.zshrc

|-----|-----------------------------------------------|
| 1 2 | # uv export PATH="$HOME/.local/bin:$PATH" |

2.2 下载 jadx-mcp-server

|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 | # 创建工作目录 mkdir -p ~/jadx-mcp-server cd ~/jadx-mcp-server # 下载最新版本 (替换为最新版本号) curl -L https://github.com/zinja-coder/jadx-ai-mcp/releases/download/v6.3.0/jadx-mcp-server-6.3.0.zip -o jadx-mcp-server.zip # 解压 unzip jadx-mcp-server.zip |


三、配置 OpenCode MCP

3.1 编辑 OpenCode 配置文件

配置文件位置:~/.config/opencode/opencode.json

添加 MCP 配置:

|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 | { ``"mcp": { ``"jadx-ai": { ``"type": "remote", ``"url": "http://localhost:8651/mcp", ``"enabled": true ``} ``} } |

3.2 验证配置

|-----|--------------------------------------------------|
| 1 2 | opencode mcp list opencode mcp debug jadx-ai |


四、启动顺序 (每次使用时)

步骤 1: 启动 JADX-GUI 并加载 APK

|---|------------|
| 1 | jadx-gui |

在 JADX 界面中:

  1. File → Open 选择要分析的 APK 文件
  2. 等待加载完成
  3. 插件会自动启动 HTTP 服务器 (默认端口 8650)

步骤 2: 启动 jadx-mcp-server

|-------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 | # 进入工作目录 cd ~/jadx-mcp-server/jadx-mcp-server # 启动 MCP 服务器 (后台运行) export PATH="$HOME/.local/bin:$PATH" nohup uv run jadx_mcp_server.py --http > /tmp/jadx-mcp.log 2>&1 & # 验证启动成功 curl -s http://127.0.0.1:8651/mcp |

步骤 3: 重启 OpenCode

完全退出 OpenCode 应用后重新启动。

步骤 4: 验证连接

|-----|-----------------------------------------------------|
| 1 2 | opencode mcp list # 应该显示: ● ✓ jadx-ai connected |


五、使用 JADX MCP 工具

在 OpenCode 中可以直接使用以下工具:

|-------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # 获取所有类 jadx-ai_get_all_classes(count=20) # 获取 AndroidManifest jadx-ai_get_android_manifest() # 搜索类 jadx-ai_search_classes_by_keyword(search_term="activity") # 获取类源代码 jadx-ai_get_class_source(class_name="com.huawei.LauncherActivity") # 获取方法列表 jadx-ai_get_methods_of_class(class_name="com.huawei.LauncherActivity") # 查找类的引用 jadx-ai_get_xrefs_to_class(class_name="com.huawei.LauncherActivity") # 查找方法引用 jadx-ai_get_xrefs_to_method(class_name="com.huawei.LauncherActivity", method_name="onCreate") # 获取资源文件 jadx-ai_get_resource_file(resource_name="values/strings.xml") |


六、常见问题

Q1: opencode mcp list 显示 404

  • 确保 jadx-mcp-server 已启动
  • 确保 URL 是 http://localhost:8651/mcp (带 /mcp 后缀)

Q2: MCP 连接成功但无工具可用

  • 确保 JADX-GUI 已加载 APK 文件
  • 插件需要先加载文件才能提供分析功能

Q3: JADX 插件端口修改

  • 默认端口: 8650
  • MCP Server 连接端口: 8651
  • 如需修改,使用参数: uv run jadx_mcp_server.py --http --jadx-port 8652

七、相关资源

相关推荐
豆豆17 分钟前
2026年主流CMS技术选型对比:从架构特性到适用场景的深度解析
ai·架构·cms·建站系统·建站平台·内容管理系统·网站管理系统
组合缺一1 小时前
Java AI 框架三国杀:Solon AI vs Spring AI vs LangChain4j 深度对比
java·人工智能·spring·ai·langchain·llm·solon
maxmaxma1 小时前
Claude Code集成DeepSeek-V4-pro全栈开发 - MCP 连接数据库
数据库·ai
扬帆破浪2 小时前
免费开源AI软件.桌面单机版,可移动的AI知识库,察元 AI桌面版:macOS首次启动报无法验证 开发者签名与公证的现实做法
人工智能·macos·开源·知识图谱
irpywp2 小时前
合盖断网打断后台计算,Modafinil:一款防休眠菜单栏工具,让 Mac 闭眼继续跑 Agent
macos·ios·开源·github
Elastic 中国社区官方博客3 小时前
Elastic 的 AI agent skills
大数据·人工智能·elasticsearch·搜索引擎·ai·全文检索
TENSORTEC腾视科技3 小时前
腾视科技AI大模型应用:提效、破局与落地,重塑智能新生态
人工智能·科技·安全·ai·ai大模型·无人叉车及智能调度系统解决方案
weixin_699602445 小时前
CoQA 数据集介绍
ai
Lyon198505285 小时前
《文字定律》AI读后感来自——ChatGPT
人工智能·ai·语言模型·chatgpt·生命
Elastic 中国社区官方博客5 小时前
Elasticsearch 9.4 为 Elastic AI 生态系统的下一阶段提供支持:Dell AI Data Platform(与 NVIDIA 合作)
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索