You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用mitmproxy抓取Android系统所有应用的网络流量?

Android 7.0+ 系统mitmproxy抓取全应用流量解决方案

问题核心原因

警告:面向Android API Level 24(2016年推出,对应Android 7.0)及更高版本的应用仅接受系统信任存储区的证书。除非应用手动适配,否则用户添加的CA证书不被信任。除浏览器外,绝大多数应用需要手动修改才可支持。

你自行安装的mitmproxy证书属于用户级信任证书,因此非浏览器类应用默认不会信任,导致无法抓包,可根据你的设备情况选择以下任意一种方案解决:

方案1:已Root设备直接安装证书到系统信任区(无需修改应用,全量生效)

  • 导出mitmproxy的CA证书,默认文件名为mitmproxy-ca-cert.cer
  • 计算证书哈希值并重命名:本地执行命令openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.cer | head -1,会得到类似c8750f0d的8位哈希值,将证书文件重命名为c8750f0d.0(哈希值加.0后缀)
  • 执行命令adb push c8750f0d.0 /system/etc/security/cacerts/,将证书推送到设备系统证书目录
  • 进入设备shell执行chmod 644 /system/etc/security/cacerts/c8750f0d.0,修改证书权限为系统可读
  • 重启设备后,mitmproxy证书会进入系统信任列表,所有应用默认信任该证书,可直接抓包

方案2:无Root设备,单独修改目标应用网络配置(仅针对单个应用生效)

  • 反编译目标APK文件,打开根目录下的AndroidManifest.xml
  • 在<application>标签中添加属性:android:networkSecurityConfig="@xml/network_security_config"
  • 在res/xml目录下新建network_security_config.xml文件,写入以下配置:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config>
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        </trust-anchors>
    </base-config>
</network-security-config>
  • 重新打包APK并签名后安装到设备,即可对该应用进行抓包

方案3:无Root设备,使用虚拟环境全局代理(无需修改单个应用)

  • 安装支持全局代理、CA证书注入的安卓虚拟环境应用
  • 在虚拟环境中安装所有需要抓包的目标应用
  • 在虚拟环境的安全设置中导入mitmproxy的CA证书,将全局代理地址设置为mitmproxy的监听地址
  • 启动虚拟环境内的应用,所有流量都会经过mitmproxy完成抓包

内容的提问来源于stack exchange,提问作者erfan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 05:18:00