背景

由于手头没有合适的真机,所有经常使用雷神模拟器来跑项目,模拟器也需要能够抓包看看接口返回的数据,以便自测调试。本文记录了如何在雷电模拟器安卓7.0+上使用Charles抓包,其他模拟器没试过。

最终效果

模拟器上浏览器打开百度网页,能抓到百度页面数据

android charles抓包证书不信任 charles抓包安卓10_笔记

具体步骤

模拟器开启root权限

android charles抓包证书不信任 charles抓包安卓10_模拟器_02

安装Charles根证书到本地计算机

  • 点击Charles->Help->SSL Proxying->Install Charles Root Certificate弹出如下界面
  • 点击安装证书->存储位置选本地计算机->下一步,选择将所有的证书放入下列存储,选择浏览,弹出的弹窗选择受信任的根证书颁布机构

导出Charles根证书

  • 点击Charles->Help->SSL Proxying->Save Charles Root Certificate
  • 导出文件类型选.cer,文件名自定义,如mcert

模拟器安装Charles根证书

  • 将上一步的mcert证书拖入模拟器,并双击安装,证书名称随意

模拟器上安装的用户证书转移到系统根证书内

  • 依次进模拟器的文件管理器目录/data/misc/user/0/cacerts-added,找到.0文件,右键复制它
  • 粘贴到目录/system/etc/security/cacerts内

Charles端口配置

  • Proxy->Proxy Settings,配置如下,端口号自定义
  • Proxy->SSL Proxy Settings,配置如下
    勾选Enable SSL Proxying后确认

模拟器wifi配置代理

cmd查看电脑ip地址

android charles抓包证书不信任 charles抓包安卓10_charles_03

  • 模拟器wifi打开代理,主机名为电脑ipv4地址,代理端口号与charles配置的http proxy一致

模拟器安装ProxyDroid app

android charles抓包证书不信任 charles抓包安卓10_android_04

  • Host为电脑ipv4地址,port与Charles配置的socks proxy端口一致,proxy type选socks5
  • Proxy Switch打开
    该软件需要后台保持运行,确保代理打开了

模拟器配置网络桥接(可选)

  • 桥接网卡选电脑网卡
  • IP地址跟电脑ipv4同一网段,如ipv4为192.168.1.0,则填192.168.1.1
  • 网关与电脑默认网关一致
  • 子网掩码与电脑子网掩码一致