APP模拟器抓取https请求

一.安装模拟器(需开启可写系统盘和手机Root权限),图例来自:MuMu 模拟器

imageimage

二.保存证书到本地(抓包工具Charles)

image

三.生成证书并推送到模拟器

步骤 1:计算证书哈希(得到 8 位编号)

打开终端直接复制运行(修改自己证书目录):

openssl x509 -inform PEM -subject_hash_old -in /Users/xiyongpeng/Downloads/charles-ssl-proxying-certificate.pem | head -1

执行后会输出一串 8 位字符,比如 9c34924f,记下这个数字。
 

步骤 2:生成带 .0 后缀的系统证书文件

把下面命令里的 9c34924f 替换成你上一步算出的数字,复制执行:

openssl x509 -inform PEM -in /Users/xiyongpeng/Downloads/charles-ssl-proxying-certificate.pem -out /Users/xiyongpeng/Downloads/9c34924f.0

 

步骤 3:进入 MuMu 的 adb 工具目录

cd /Applications/MuMuPlayer.app/Contents/MacOS/MuMuEmulator.app/Contents/MacOS/tools/

步骤 4:重启 adb 服务,获取 root

./adb kill-server
./adb start-server
./adb root

步骤 5:手动挂载 system 分区为可写(替代 adb remount)

./adb shell mount -o remount,rw /system 
无报错就是挂载成功。

步骤 6:推送证书到模拟器系统证书目录(完整正确语法)

依旧替换 9c34924f 为你自己算出的哈希:
./adb push /Users/xiyongpeng/Downloads/9c34924f.0 /system/etc/security/cacerts/9c34924f.0

步骤 7:修改证书权限(必须执行,否则不生效)

./adb shell chmod 644 /system/etc/security/cacerts/9c34924f.0 

步骤 8(可选):把 system 分区恢复只读

./adb shell mount -o remount,ro /system 
 
附:执行过程

image

 

最后生效操作

完全关闭 MuMu 模拟器,重新打开,配置模拟器 WiFi 代理为 Charles 地址 10.8.6.10:8888,所有 APP HTTPS 不再报证书错误。

 

模拟器配置代理,抓包示例:

imageimage

  

image

 

posted @ 2026-07-24 15:29  小郗测试  阅读(3)  评论(0)    收藏  举报