Analytics debugging on android device using Charles debugger | Community
Skip to main content
purnimajena
Level 3
April 18, 2025
Solved

Analytics debugging on android device using Charles debugger

  • April 18, 2025
  • 2 replies
  • 1284 views

Hi everyone,

We've recently implemented Adobe Analytics in our Android app and are in the process of validating the implementation using Charles Proxy. However, we're running into an issue where no network calls from the app are being captured when Charles is connected.

It appears that once the Android device is configured to use Charles as a proxy, the internet stops working on the device entirely. Has anyone else experienced this? If so, how did you resolve it?

Any guidance or suggestions would be greatly appreciated!

Thanks in advance!

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Jennifer_Dungan

We stopped using Charles a while ago, and use AEP Assurance (at least for Adobe).

 

However, we have other tracking systems in our apps that we still do need to test tracking, and of course, we need a proxy tool for that.

 

We started using HTTP Toolkit, but Android still gave us some issues due to Android's security.

 

HTTP Toolkit has a whole page about connecting Android:

https://httptoolkit.com/docs/guides/android/

 

Of particular interest is modifying the network security config for your own app, that tells Android to allow the proxy connection.

 

<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config> <trust-anchors> <certificates src="system" /> <certificates src="user" overridePins="true" /> </trust-anchors> </base-config> </network-security-config>

 

I believe that no matter what proxy tool you are trying to use, you may have to apply a similar change applied to your apps.

 

 

This basically just provides a directive for your application to trust both built-in AND user-added CA certificates (whether that cert is for Http Toolkit, Charles, Fiddler, or any other proxy tool)

 

Good luck

2 replies

FarazHusain
Adobe Employee
Adobe Employee
April 18, 2025

This is a fairly common issue when using Charles Proxy with Android devices, and it usually comes down to SSL certificate trust or proxy configuration problems. You can validate a couple of things:


Ensure Proxy is Set Correctly on the Android Device
On your Android device:

  • Go to Wi-Fi settings
  • Tap and hold your connected Wi-Fi network → Modify network
  • Enable Advanced options
  • Set Proxy to Manual
  • Enter your laptop/PC IP address as Proxy hostname
  • Set Port to 8888 (default for Charles)

Install Charles SSL Certificate on the Android Device - This is crucial for HTTPS traffic to be intercepted.

A. Export the certificate:
In Charles: Go to Help → SSL Proxying → Install Charles Root Certificate on a Mobile Device or Remote Browser.

It will show a link like: http://charlesproxy.com/getssl

Open this on your Android device browser.

B. Install the certificate:
Download the certificate and name it (e.g., CharlesSSL)

You’ll be prompted to set a device screen lock if not already set.

It installs under Settings → Security → Trusted credentials → User


Furthermore, from Android 7.0 (Nougat) onwards, apps do not trust user-installed certificates by default. This means:

If you're debugging your own app, you need to explicitly trust user certs by adding the following to your app’s network_security_config.xml.

 

Enable SSL Proxying in Charles: In Charles: Go to Proxy → SSL Proxying Settings

  • Check Enable SSL Proxying
  • Add a location for: Host: * and Port: 443

This ensures all HTTPS traffic can be decrypted.

 

These are a couple of things that you can check.

Jennifer_Dungan
Community Advisor and Adobe Champion
Jennifer_DunganCommunity Advisor and Adobe ChampionAccepted solution
Community Advisor and Adobe Champion
April 18, 2025

We stopped using Charles a while ago, and use AEP Assurance (at least for Adobe).

 

However, we have other tracking systems in our apps that we still do need to test tracking, and of course, we need a proxy tool for that.

 

We started using HTTP Toolkit, but Android still gave us some issues due to Android's security.

 

HTTP Toolkit has a whole page about connecting Android:

https://httptoolkit.com/docs/guides/android/

 

Of particular interest is modifying the network security config for your own app, that tells Android to allow the proxy connection.

 

<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config> <trust-anchors> <certificates src="system" /> <certificates src="user" overridePins="true" /> </trust-anchors> </base-config> </network-security-config>

 

I believe that no matter what proxy tool you are trying to use, you may have to apply a similar change applied to your apps.

 

 

This basically just provides a directive for your application to trust both built-in AND user-added CA certificates (whether that cert is for Http Toolkit, Charles, Fiddler, or any other proxy tool)

 

Good luck

purnimajena
Level 3
April 21, 2025

Hi @jennifer_dungan , 

 

Thank you for your response. We’ve already implemented the suggested configuration update at the app level. However, we're still seeing the message "SYSTEM TRUST DISABLED" when attempting to connect to the HTTP Toolkit app from an Android device.

 

While we're able to track all the static events within the app, the content is not loading as expected—likely due to API calls failing with the current setup. Could you please advise if there are any additional steps we might have missed or need to take to resolve this?

 

 

 

Thanks,

Purnima Jena

 

Jennifer_Dungan
Community Advisor and Adobe Champion
Community Advisor and Adobe Champion
April 21, 2025

Hmm have you installed the HTTP Toolkit Certificate? (connect to HTTP Toolkit with your device, then navigate to http://amiusing.httptoolkit.tech/certificate, then install the certificate here... this will be generated by your own computer)

 

It's been a while since I set this up on my system, so I am trying to remember all the steps, and if there are more troubleshooting options.