簡體   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