具有不可调试风格的Android应用程序的Charles代理

时间:2019-02-25 08:34:40

标签: android charles-proxy network-monitoring

首先让我澄清一下,我知道这是一个非常糟糕的做法,并且我不会将此更改推送到我的生产代码中。但是有时我们需要调试应用程序的不可调试形式的某些更改,但是所有https url均失败,并显示以下错误

Client SSL handshake failed: An unknown issue occurred processing the certificate (certificate_unknown)

我已使用以下网络配置文件并将其添加到清单文件中。这可以在应用程序的可调试样式中运行,但仍然不能在不可调试的样式中运行。

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

我有什么办法可以使用查尔斯(Charles)来监视我的Android应用程序中不可监听的网络通话吗?

2 个答案:

答案 0 :(得分:0)

在创建需要使用Charls进行调试的发行版本时,请在应用程序上下文中的清单中。请在此之后添加android:debuggable="true",以尝试构建您的发行版并尝试使用Charls进行调试。 我没有尝试过,但这可能行得通。根据以下链接。 https://developer.android.com/training/articles/security-config.html

答案 1 :(得分:0)

这个对我有用:

{"ICM_ACTION_COMPATIBLE": true,
    "context": null,
    "name": "Custom Add Case Action",
    "description": "An action to add cases from other solution",
    "properties": [
       {
          "id": "label",
          "title": "Add a custom Case",
          "defaultValue": "Custom Add Case",
          "type": "string",
          "isLocalized":false
       },
       {
          "id": "solution",
          "title": "Solution",
          "type": "string",
          "isLocalized":false
       },
       {
          "id": "caseType",
          "title": "Case Type",
          "defaultValue": "",
          "type": "string",
          "isLocalized":false
       }
    ],
    "events":[
       {
          "id":"icm.OpenAddCasePage",
          "title":"Open Add custom Case Page",
          "direction":"published",
          "type":"broadcast",
          "description":"Open Add Custom Case Page"
       }
    ]
}; 

Source