在电脑中将 Charles 的证书(.pem格式)导出到本地路径,名称为charles.pem。
计算证书 hash 值并修改名称:
-
- openssl x509 -inform PEM -subject_hash_old -in charles.pem
复制代码
将首行 e9352f7c 的 8 位的 hash 值进行复制,拷贝并命名证书:
-
- cp charles.pem e9352f7c.0
复制代码
证书导入到手机,执行以下adb命令将证书导入到/system/etc/security/cacerts/
-
- adb root
- adb remount # 用root用户重新挂载为rwx权限, 这两步必须在shell外部执行
- adb push e9352f7c.0 /sdcard/
- adb shell
- mount -o rw,remount /system
- mv /sdcard/e9352f7c.0 /system/etc/security/cacerts/
- chmod 644 /system/etc/security/cacerts/e9352f7c.0
复制代码
系统设置 → 更多设置 → 系统安全 → 加密与凭证 → 信任的凭据中可查看
三:
Proxy->Proxy Settings 进行如下设置:
Proxy->External Proxy Settings 进行如下设置:
四:
Postern 服务器和端口设置
Postern 的作用是代理转发,Vpx 代理是处于网络层的,可以抓到更多的数据包。
服务器名称:可任意填写
服务器地址:主机 IP 地址就是服务器地址,我这是 172.20.10.5。
服务器端口:可自行在 Charles 中设置,参考:Charles的配置,默认为8889,可更改。
代理类型:SOCKS5
用户名 & 密码:填 | 不填 都可
Postern 匹配规则设置
匹配类型:匹配所有地址
动作:通过代理连接
代理/代理组:上面设置的:服务器名称 - 服务器地址:服务器端口,例:test - 172.20.10.5:16666
抓包测试上述内容都配置好后,点击开启 Vpx,会看到手机顶部会有个钥匙的标志或 Vpx 字样,不同品牌、不同版本手机会有所不同:
开启后,在手机上对 google.com 进行访问,看 Charles 是否能抓到相关数据包,若能则成功: