楼主试了 MuMu 模拟器( Android 6.0 )。
按照网上的教程(比如 mitmproxy 提供的教程,虽然我用的不是 mitmproxy ):
(1)WiFi 设置里,需要设置代理服务器为手动,填入抓包软件开的代理 IP 和端口。
(2)需要把抓包软件的根 CA 证书转成 PEM 格式,然后用 openssl x509 -subject_hash_old 查到类似 1234abcd 的哈希值,再把 PEM 格式的证书重命名成 1234abcd.0 、丢到 /system/etc/security/cacerts/下面。
(3)最后重启模拟器。
一套折腾下来,结果怎么样呢?
很有意思:
(1)用自带浏览器打开 https www . ipip . net
报错,证书错误;
(2)打开 https www . grc . com
欸,这回不报错啦,正常打开。
点开证书信息,也是抓包软件的 MITM 证书,绿色对勾,有效。
(3)清空自带浏览器的数据,再试试?
还是老样子,并没有什么变化……
我看了模拟器里现存的其他证书,貌似里面的内容大概是这样:
(大概就那个意思)
-- BEGIN CERTIFICATE --
一坨 base64
-- END CERTIFICATE --
( openssl x509 转出来的 PEM 证书只含有上面的部分,不含有下面的部分)
人类可读的,文本格式的证书信息,包括主题、密钥等等
SHA1 Fingerprint
于是我就用 openssl x509 照葫芦画瓢了一下……然后,不出意外地……
情况还是那个情况,并没有什么变化。
那么,换个模拟器,比如 Android studio 自带的 AVD ?
楼主之前折腾过一个 Android 11 的 AVD,用 github 上 newbit1 的 rootAVD 脚本给它刷了 magisk,然后安装 edxposed,都是正常的。
然后,楼主试了 magisk 官方仓库里的 movecert 模块。先在设置里安装为用户证书,然后重启,等着 movecert 把用户证书转换成系统证书。
结果呢?
模拟器它直接黑屏了……压根开不了机……adb shell 都进不去
我不服气,强关掉模拟器,重启它,按音量-按钮进了安全模式,然后发现,/data/adb/modules/movecert/system/etc/security/cacerts/里面的证书文件(文件名就是上面看到过的 1234abcd.0 )貌似不是 base64 的,而是二进制的;而我自己用 openssl 转出来的 PEM 是 base64 的。于是我就用 cat 命令把它覆盖掉,(当然,magisk 模块的 disable 要删掉)再重启。
不出意外地……嗯……还是黑屏了……还是 adb shell 都进不去
楼主表示自己已经凌乱了……
按照网上的教程(比如 mitmproxy 提供的教程,虽然我用的不是 mitmproxy ):
(1)WiFi 设置里,需要设置代理服务器为手动,填入抓包软件开的代理 IP 和端口。
(2)需要把抓包软件的根 CA 证书转成 PEM 格式,然后用 openssl x509 -subject_hash_old 查到类似 1234abcd 的哈希值,再把 PEM 格式的证书重命名成 1234abcd.0 、丢到 /system/etc/security/cacerts/下面。
(3)最后重启模拟器。
一套折腾下来,结果怎么样呢?
很有意思:
(1)用自带浏览器打开 https www . ipip . net
报错,证书错误;
(2)打开 https www . grc . com
欸,这回不报错啦,正常打开。
点开证书信息,也是抓包软件的 MITM 证书,绿色对勾,有效。
(3)清空自带浏览器的数据,再试试?
还是老样子,并没有什么变化……
我看了模拟器里现存的其他证书,貌似里面的内容大概是这样:
(大概就那个意思)
-- BEGIN CERTIFICATE --
一坨 base64
-- END CERTIFICATE --
( openssl x509 转出来的 PEM 证书只含有上面的部分,不含有下面的部分)
人类可读的,文本格式的证书信息,包括主题、密钥等等
SHA1 Fingerprint
于是我就用 openssl x509 照葫芦画瓢了一下……然后,不出意外地……
情况还是那个情况,并没有什么变化。
那么,换个模拟器,比如 Android studio 自带的 AVD ?
楼主之前折腾过一个 Android 11 的 AVD,用 github 上 newbit1 的 rootAVD 脚本给它刷了 magisk,然后安装 edxposed,都是正常的。
然后,楼主试了 magisk 官方仓库里的 movecert 模块。先在设置里安装为用户证书,然后重启,等着 movecert 把用户证书转换成系统证书。
结果呢?
模拟器它直接黑屏了……压根开不了机……adb shell 都进不去
我不服气,强关掉模拟器,重启它,按音量-按钮进了安全模式,然后发现,/data/adb/modules/movecert/system/etc/security/cacerts/里面的证书文件(文件名就是上面看到过的 1234abcd.0 )貌似不是 base64 的,而是二进制的;而我自己用 openssl 转出来的 PEM 是 base64 的。于是我就用 cat 命令把它覆盖掉,(当然,magisk 模块的 disable 要删掉)再重启。
不出意外地……嗯……还是黑屏了……还是 adb shell 都进不去
楼主表示自己已经凌乱了……