I updated my test devices (Samsung galaxy Note 9 and galaxy S9+) to Android 9. Now I am not able to use Charles proxy to grep any traffic. I have updated my Charles Proxy to the latest version 4.2.8 (MAC) And I have configured proxy on Wifi setting like old days.
Note: Charles Proxy was working fine before update (Android 8.0 for S9+, 8.1 for Note 9)
Configuring Your Android Device to use the Charles Proxy. Use the following steps to configure your Android device to use Charles proxy: Go to Settings > Wifi. Press and hold down the power key on the Wifi Network device you are currently connected to.
In Charles go to the Help menu and choose "SSL Proxying > Install Charles Root Certificate". Keychain Access will open. Find the "Charles Proxy..." entry, and double-click to get info on it. Expand the "Trust" section, and beside "When using this certificate" change it from "Use System Defaults" to "Always Trust".
On Android N or higher, ad calls are visible in Charles proxy only when the following steps are performed: Update the Google Play services on the mobile device. Enable Network Tracing on the mobile device. Install Charles SSL certificate on your device, and set up proxy.
On Android N or higher, ad calls are visible in Charles proxy only when the following steps are performed: Update the Google Play services on the mobile device. Enable Network Tracing on the mobile device.
Charles Proxy sits between your app and the Internet. All networking requests and responses will be passed through Charles Proxy, so you’ll be able to inspect and even change data midstream to test how your app responds. How Does Charles Proxy Work With Mobile Devices?
This article describes the steps required to set up your Android device to proxy network requests through Charles, which is helpful for troubleshooting or debugging your implementation of Tealium for Android. Use the following steps to configure Charles Proxy: Go to Proxy > Proxy Settings. In the Proxies tab enter 8888 in the HTTP Proxy Port field.
SSL Certificates | Charles
As of Android N, you need to add configuration to your app in order to have it trust the SSL certificates generated by Charles SSL Proxying. This means that you can only use SSL Proxying with apps that you control.
Add a file res/xml/network_security_config.xml to your app:
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
Then add a reference to this file in your app's manifest, as follows:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config" ... >
...
</application>
</manifest>
After you have reinstalled charles proxy, recreate the certificate.
If you have root access to your phone you can do the same that was done here and add the charles proxy certificate to the system trusted certificates of the phone
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With