Charles Proxy 不适用于 7.0 以上的 Android 版本?
Charles Proxy not working for Android version above 7.0?
我很长时间以来一直在使用 Charles 来拦截请求和响应,但是当我尝试 google 像素定位 Android 奥利奥时,它一直给我握手异常。我知道他们在 Naught 中对网络安全进行了某些更改。任何形式的帮助将不胜感激。
如果您在设备 tar 上使用 Charles 时遇到问题 - 在 Android 中达到 7.0 以上,请按照以下步骤操作,as detailed in the Charles Proxy documentation
添加以下行
android:networkSecurityConfig="@xml/network_security_config">
到应用程序标签中的清单文件。
- 创建一个 xml 文件夹,其中包含一个名为 network_security_config 的文件,并在其中粘贴以下代码。
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config>
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
<debug-overrides>
<trust-anchors>
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
注意:如果您只有单一构建风格,请不要将以上内容提交给您的分支。
For People having different build flavours (debug/release/other) can use this for debug version and commit as well.
另一个答案也是正确的,但是根据 the documentation 根本不需要 base-config
xml 标签。虽然没有明确提及,但他们的示例不包含该标记。
这是“为调试配置 CA”文档站点上的代码:
res/xml/network_security_config.xml
:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<certificates src="@raw/debug_cas"/>
</trust-anchors>
</debug-overrides>
</network-security-config>
我们可以只允许 user-installed 证书,而不是指定特定的证书,就像在其他答案中一样:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
我很长时间以来一直在使用 Charles 来拦截请求和响应,但是当我尝试 google 像素定位 Android 奥利奥时,它一直给我握手异常。我知道他们在 Naught 中对网络安全进行了某些更改。任何形式的帮助将不胜感激。
如果您在设备 tar 上使用 Charles 时遇到问题 - 在 Android 中达到 7.0 以上,请按照以下步骤操作,as detailed in the Charles Proxy documentation
添加以下行
android:networkSecurityConfig="@xml/network_security_config">
到应用程序标签中的清单文件。
- 创建一个 xml 文件夹,其中包含一个名为 network_security_config 的文件,并在其中粘贴以下代码。
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config>
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
<debug-overrides>
<trust-anchors>
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
注意:如果您只有单一构建风格,请不要将以上内容提交给您的分支。
For People having different build flavours (debug/release/other) can use this for debug version and commit as well.
另一个答案也是正确的,但是根据 the documentation 根本不需要 base-config
xml 标签。虽然没有明确提及,但他们的示例不包含该标记。
这是“为调试配置 CA”文档站点上的代码:
res/xml/network_security_config.xml
:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<certificates src="@raw/debug_cas"/>
</trust-anchors>
</debug-overrides>
</network-security-config>
我们可以只允许 user-installed 证书,而不是指定特定的证书,就像在其他答案中一样:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>