前提条件:仅当你的手机和电脑在同一个wifi下,电脑上的Charles才能够抓手机的包。
一、如何给手机安装Charles证书
1.手机在使用电脑代理的条件下,访问chls.pro/ssl下载证书;也可以电脑下载证书,传输到手机上。
注意,小米手机需要关闭“下载管理”中的迅雷加速,否则下载不了证书。
4.通过WLAN底部->高级设置,安装证书。或者修改证书后缀pem->crt后,可直接点击证书文件安装。
二、使你的app信任Chares证书
到了这一步,一般你还不能抓到包,而且还会在Android Studio的日志中看到明显的报错。
这是因为,Charles证书是Charles软件自己开发的,所以它会被安装在手机的users证书文件夹中。除非root手机,否则不能将其安装到系统证书文件夹中。
因此,改动xml代码,使你的app信任users文件夹下的证书。
Manifest.xml
<application
android:name=".MraApplication"
android:networkSecurityConfig="@xml/network_security_config"
</application
network_security_config.xml
<!--Charles certificate is installed in "user" directory of phones, not "system".-->
<!--The settings bellow access this app to Charles.-->
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
</base-config>
接下来,就可以使用Charles抓到手机里你的app的网络数据包了。