1、准备 root 过的 android 手机,关于自己手机root方法,自行查找解决。
adb root
adb disable-verity
2、并重新挂载分区,使系统根目录可写入
adb shell "mount -o rw,remount /system"
根据图示菜单选择导出,证书密码通过后面的 View Generated SSL Certificates Keystore Password 查看。
2、查看证书的 hash 值
$ openssl x509 -inform PEM -subject_hash_old -in ~/Downloads/charles-proxy-ssl-proxying-certificate.pem |head -1
26f93358
3、证书重命名为 {hash}.0
mv ~/Downloads/charles-proxy-ssl-proxying-certificate.pem 26f93358.0
4、上传证书到手机里的 /system/etc/security/cacerts 目录下
adb push 26f93358.0 /system/etc/security/cacerts
adb shell "chmod 664 /system/etc/security/cacerts/26f93358.0"
5、重启手机
charles 左侧选中域名,开启 SSL代理(Enable SSL Proxying)
IOS 只需要手动安装证书,并授权即可,比 Android 要简单。
从 android 10 开始,针对 /system 分区多了一层保护,不能直接写入,暂时还没有找到解决方案,如果有知情的大牛欢迎给出解决方案。