PCAPdroid 详细部署教程

PCAPdroid 是一款隐私友好的开源 Android 应用,能够追踪、分析和拦截设备上其他应用的网络连接。它通过模拟 VPN 的方式,在无需 Root 的情况下捕获网络流量,所有数据均在本地设备上处理,无需远程 VPN 服务器。

一、环境准备与系统要求

系统要求

  • Android 版本:Android 5.0 (Lollipop) 及以上
  • 架构支持:arm64-v8a、armeabi-v7a、x86、x86_64
  • 存储空间:建议预留至少 50MB 用于应用安装和抓包文件存储

安装方式概览

PCAPdroid 提供以下几种安装方式:

方式 适用场景 是否自动更新
F-Droid 客户端 推荐日常使用
直接下载 APK 无法使用 F-Droid 时
Google Play 习惯使用 Play 商店的用户
源码编译 开发者/定制需求 手动

二、方式一:通过 F-Droid 安装(推荐)

F-Droid 是自由开源 Android 应用的主要分发平台,能够自动获取更新通知,是安装 PCAPdroid 最安全便捷的方式。

步骤 1:安装 F-Droid 客户端

访问 F-Droid 官网 (f-droid.org) 下载并安装 F-Droid 客户端。

步骤 2:在 F-Droid 中搜索并安装

打开 F-Droid,在搜索框中输入 “PCAPdroid”,找到应用后点击安装。

步骤 3:安装附加组件(可选)

根据需求安装以下附加组件:

PCAPdroid-mitm(TLS 解密插件)

如果需要解密 HTTPS/TLS 流量,需额外安装此插件。它使用 mitmproxy 来解密 TLS/SSL 连接并在应用中显示解密后的数据。

Wireshark Lua 脚本(显示应用名称)

如需在 Wireshark 中显示每个数据包对应的应用名称,可安装官方提供的 Lua 脚本。

步骤 4:首次配置

  1. 打开 PCAPdroid,阅读并同意隐私政策
  2. 系统会提示授予 VPN 权限,点击“允许”
  3. 应用进入就绪状态,显示“就绪”按钮

三、方式二:直接下载 APK 安装

如果无法使用 F-Droid,可以从官方渠道直接下载 APK 文件。

步骤 1:下载 APK

从 F-Droid 网站或 GitHub Releases 页面下载对应架构的 APK 文件。

步骤 2:允许安装未知来源应用

在 Android 设置中,找到“安全”或“应用与通知”选项,启用“允许来自此来源的应用”。

步骤 3:安装 APK

使用文件管理器找到下载的 APK 文件,点击安装。

注意:直接下载 APK 的方式不会收到更新通知,需要手动检查新版本,这是一种相对不太安全的下载方式。

四、方式三:源码编译安装(开发者)

如果你需要修改代码或进行定制开发,可以从源码编译。

环境要求

  • Android Studio:最新稳定版
  • Android SDK:对应 PCAPdroid 的 target SDK 版本
  • Android NDK:用于编译原生组件
  • CMake:版本 3.22.1(PCAPdroid 使用的版本)
  • Git:用于克隆仓库(Windows 用户需安装 gitforwindows)

编译步骤

步骤 1:克隆仓库

1
2
git clone https://github.com/emanuele-f/PCAPdroid.git
cd PCAPdroid

步骤 2:初始化子模块

1
git submodule update --init

执行后 submodules 目录应被填充。

步骤 3:配置 Android Studio

  1. 用 Android Studio 打开项目目录
  2. 根据提示安装所需的 SDK 和 NDK 版本
  3. 如果遇到 “No valid CMake executable was found” 错误,需从 SDK Manager 中安装 CMake 3.22.1

步骤 4:编译应用

在 Android Studio 中点击 Build → Build Bundle(s) / APK(s) → Build APK(s)。

编译完成后,APK 文件将生成在 app/build/outputs/apk/ 目录下。

五、核心功能部署与使用

5.1 实时抓包

  1. 打开 PCAPdroid,确保状态为“就绪”
  2. 点击开始按钮(▶)启动捕获
  3. 切换到“连接”标签页,可实时查看所有连接

连接列表显示信息

  • 产生连接的应用进程
  • 目标域名和 IP 地址
  • 协议和端口
  • 连接状态(如 ESTABLISHED、CLOSED)
  • 流量大小和载荷长度

5.2 过滤特定应用或目标

  • 按应用过滤:在设置中选择特定应用
  • 按主机过滤:在连接页面使用搜索框过滤特定目标主机

5.3 查看 HTTP 请求与载荷

点击任意连接,可查看:

  • 概览:连接持续时间、URL、协议、进程信息
  • HTTP:完整的请求和响应内容
  • 载荷:原始数据,支持文本和十六进制格式切换

5.4 保存 PCAP 文件

PCAPdroid 支持三种数据包转储方式:

转储方式 说明 适用场景
HTTP 服务器 启动 HTTP 服务提供 PCAP 下载 快速导出
PCAP 文件 直接保存到手机存储 推荐方式
UDP 导出器 发送到远程 UDP 接收器 实时分析

操作步骤

  1. 进入设置 → 数据包转储
  2. 选择 “PCAP 文件” 模式
  3. 开始抓包,文件将按时间格式命名保存
  4. 停止抓包后,在文件管理器中找到转储文件

5.5 TLS/HTTPS 解密配置

前提条件:安装 PCAPdroid-mitm 插件。

步骤

  1. 在 PCAPdroid 设置中启用 “TLS 解密”
  2. 安装 mitmproxy 的 CA 证书(应用会引导操作)
  3. 开始抓包,已解密的连接会显示绿色锁图标
  4. 停止抓包后,SSLKEYLOGFILE 会自动保存

重要提示:通过 ADB Intent 启动抓包时,keylog 文件会自动保存到 /sdcard/Download/PCAPdroid/sslkeylog.txt;只有在手动启动时才需要手动确认保存位置。

5.6 在 Wireshark 中分析

  1. 将 PCAP 文件从手机导出到电脑
  2. 用 Wireshark 打开,可看到完整的 TCP 握手、DNS 查询、TLS 握手等
  3. 如需显示应用名称,安装官方 Lua 脚本:
    • 前提:PCAPdroid 中启用 “PCAPdroid Trailer”,禁用 PCAPNG 格式
    • 将 Lua 脚本放入 Wireshark 插件目录(Help → About Wireshark → Folders)

六、高级部署:ADB Intent 自动化控制

PCAPdroid 提供了 API,可通过 ADB Intent 控制抓包,适合自动化测试场景。

6.1 基本命令格式

1
2
adb shell am start -e action [ACTION] -e api_key [API_KEY] -e [SETTINGS] \
-n com.emanuelef.remote_capture/.activities.CaptureCtrl

ACTION 可选值:startstopget_status

6.2 生成 API Key

在 PCAPdroid 设置 → Control Permissions 页面,从菜单中生成 API Key。

6.3 常用示例

启动抓包并保存到 PCAP 文件

1
2
3
adb shell am start -e action start -e pcap_dump_mode pcap_file \
-e pcap_name traffic.pcap \
-n com.emanuelef.remote_capture/.activities.CaptureCtrl

仅抓取 Firefox 流量并发送到本地 UDP

1
2
3
4
adb shell am start -e action start -e pcap_dump_mode udp_exporter \
-e collector_host 127.0.0.1 -e collector_port 5123 \
-e app_filter org.mozilla.firefox \
-n com.emanuelef.remote_capture/.activities.CaptureCtrl

七、故障排查

问题 可能原因 解决方案
mitmproxy 崩溃(无文件访问权限) mitm 插件默认无文件访问权 打开 mitm 应用 → Addons → 选择 “Enable files access”
transparent 模式端口冲突 与 socks5 模式使用相同端口 指定不同端口,如 --mode transparent@9090
SSLKEYLOG 文件无法解密 Root 解密模式下 keylog 不工作 确保使用非 Root 模式进行 TLS 解密
ADB 启动时 keylog 未保存 需要手动保存 通过 Intent 启动时 keylog 会自动保存到 Download/PCAPdroid/ 目录
Android 6/arm-v7a 频繁崩溃 旧版本兼容性问题 尝试更新到最新版本或使用 1.7.5 等较稳定版本

八、付费功能说明

以下功能需要付费解锁:

  • 防火墙:创建规则拦截特定应用、域名或 IP
  • 恶意软件检测:使用第三方黑名单检测恶意连接
  • PCAPng 格式:便于导出和分析解密后的流量

付费价格约为 13 港币(约合人民币 12 元),可通过应用内购买解锁。

九、快速上手清单

  1. ✅ 从 F-Droid 安装 PCAPdroid
  2. ✅ (可选)安装 PCAPdroid-mitm 用于 TLS 解密
  3. ✅ 打开应用,授予 VPN 权限
  4. ✅ 点击开始按钮进行实时抓包
  5. ✅ 在“连接”页面查看应用网络活动
  6. ✅ 在设置中配置 PCAP 文件转储
  7. ✅ 停止抓包,导出 PCAP 文件
  8. ✅ 用 Wireshark 分析或安装 Lua 脚本显示应用名称