繁体   English   中英

Charles Proxy 不适用于 7.0 以上的 Android 版本?

[英]Charles Proxy not working for Android version above 7.0?

我长时间使用 Charles 来拦截请求和响应,但是当我尝试针对 Android Oreo 的谷歌像素时,它一直给我握手异常。 我知道他们在 Naught about network security 中进行了某些更改。 任何形式的帮助将不胜感激。

如果您在 Android 7.0 以上的设备目标上使用 Charles 时遇到问题,请按照以下步骤操作, 详见 Charles Proxy 文档

  1. 添加以下行

    android:networkSecurityConfig="@xml/network_security_config">

    到应用程序标签中的清单文件。

  2. 使用名为network_security_config的文件创建一个 xml 文件夹,并将以下代码粘贴到其中。

 <?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>

注意:如果您只有单一构建风格,请不要在上面提交到您的分支。

对于具有不同构建风格(调试/发布/其他)的人,也可以将其用于调试版本和提交。

另一个答案也是正确的,但根据文档,根本不需要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>

我们可以只允许用户安装的证书,而不是指定特定的证书,就像在另一个答案中一样:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <certificates src="user" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM