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:
Are there any special steps required for the Android Lollipop emulator on Mac OS X in order to enable packet sniffng?
Thanks in advance!
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.
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:
- Open Settings > More > Cellular Networks > Access Point Names
- 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.
- Go to charlesproxy.com/getssl on Chrome
- The SSL certificate will download
When opening it will ask you to set up a pin or confirm it if you already have it set up
Name the certificate
- 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:
it might be slighly tedious on Mac while debugging on Android emulator.
Follow the steps:
1) Open terminal and go to
tools folder in SDK path.
2) Drag and drop a file named
emulator on the terminal (doing so gives you the path of the executable file).
Your emulator should now read the path like this
/Users/your_pc_name/android_sdk/tools/emulator -avd Nexus_6P_API_23 -http-proxy http://x.x.x.x:8888
here xxxx is the IP address that you can find in Charles Help menu.
3) and execute this.
Voila! Your emulator will now start in proxy networking mode.
/Users/`whoami`/Library/Android/sdk/tools/emulator -avd `android list avd | grep Name -m 1 | cut -c 10-99` -http-proxy `ipconfig getifaddr en0`:8888
This should work in most macs.