Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to setup Android Lollipop emulator with Charles Proxy?

Tags:

I've been following instructions from other questions such as How to configure SSL certificates with Charles Web Proxy and the latest Android Emulator on Windows? (I'm on a MAC though) and SSL Proxy/Charles and Android trouble and I'm able to use Charles Proxy to analyze the packets of Android emulators all the way up to Kitkat.

Now I'm trying to do the same for Lollipop emulators. However, when I repeated the same steps I used to successfully setup the Kitkat emulators, Charles show nothing! When I try to connect to the web using the emulator's browser, it gives the following error: enter image description here

Are there any special steps required for the Android Lollipop emulator on Mac OS X in order to enable packet sniffng?

Thanks in advance!

like image 720
Some Noob Student Avatar asked Nov 03 '14 23:11

Some Noob Student


People also ask

How do I install Charles certificate on emulator?

Install the Charles SSL Cert To do that, just open up a browser on the emulator, and navigate to http://chls.pro/ssl. The browser may prompt you to allow it to save the cert to disk, and then you can click to install it.

Does Charles proxy work on Android?

Charles Proxy is a web debugging tool that monitors the network calls and decrypts the web traffic. It helps in understanding the content in your network call. E.g. Requests sent to the server and data fetched from the server etc. This network debugging tool can read the web traffic of Windows, Android and IOS devices.


2 Answers

I had the same, and finally find a way out: Follow the instruction in the link you mentioned: How to configure SSL certificates with Charles Web Proxy and the latest Android Emulator on Windows?

Then from charles I went into the 'Proxy' menu and enabled 'Mac OS X proxy'. Than suddenly stuff came through. Even after I switched off the 'Mac OS X proxy'...

ps: setting the proxy through the mobile settings on the emulator did not work; proxy setting has to be done through the command-line (The emulator command in in the sdk/tools and should be run something like : ./emulator -avd Nexus_4_API_21 -http-proxy http://<your-ip-as-in-charles-help-menu>:8888). I've also tried some proxy-apps like the proximator without any succes. Also I've have problems and restarting charles fixed it.

like image 155
Hans Avatar answered Feb 22 '23 09:02

Hans


If you don't want to faff around with command line you can do this from the emulator, it requires a bit more setup but works nicely:

  1. Open Settings > More > Cellular Networks > Access Point Names

enter image description here

  1. Select the main APN and enter the proxy as 10.0.2.2:8888 (Points to your machine localhost) You can use another IP on the network if you are doing it with an actual device or it's on a local device farm.

enter image description here

  1. Go to charlesproxy.com/getssl on Chrome

enter image description here

  1. The SSL certificate will download

enter image description here

  1. When opening it will ask you to set up a pin or confirm it if you already have it set up

  2. Name the certificate

enter image description here

  1. Enjoy proxying (you have to enable SSL proxying for your domain on Charles in order to see the requests)

Note: I've tested this with an API 24 emulator and seems to work, however it should work with other versions.

Note 2: As of Android Studio 3.0 Charles will be no longer needed when using API > 21 for the most part since this is coming: https://developer.android.com/studio/profile/network-profiler.html

like image 24
pablisco Avatar answered Feb 22 '23 08:02

pablisco