Unplanned
Last Updated: 14 Aug 2020 09:21 by ADMIN
Aaron
Created on: 01 Jun 2020 21:04
Type: Bug Report
2
Fiddler Everywhere (v0.10.0) not working with Android Emulator

Latest version of Fiddler (v0.10.0) and Android Emulator is not proxying the connections properly.

I have Fiddler Everywhere running and know it is working when I can send requests through Postman and see them show up in Fiddler properly.

However, if I set up the Android Emulator through Android Studio, and set the proxy to be Fiddler, connections do not fully reach the backend service I am sending requests to. All that shows up in Fiddler is

REQUEST

CONNECT 192.168.5.7:5000 HTTP/1.1
Host: 192.168.5.7:5000

RESPONSE

HTTP/1.1 200 Connection Established
FiddlerGateway: Direct
StartTime: 16:12:05.141
Connection: close

The service is running on my local host machine (192.168.5.7) on port 5000.

If I close Fiddler and run charles-proxy, then set the Android Emulator to use that as the proxy, I see the full request, my service responds, and I see the response in Charles.

17 comments
ADMIN
Nick Iliev
Posted on: 14 Aug 2020 09:21

Hello Aaron,

 

I've tested on MacOS and on Windows 10. Once I have the change to test on Linux distributions I will post back here.

 

Regards,
Nick Iliev
Progress Telerik

Aaron
Posted on: 13 Aug 2020 13:38

Nick,

 

Turning airplane mode on and then off did not work. Additionally, using charles proxy and burp suite, I do not have to toggle airplane mode to get those to work. Also, my emulated device is now showing that I do not have internet connectivity. So this does seem like a bug with Fiddler. You keep saying that this is all working on your side, what version, OS, etc are you using? I'm on Linux (Pop OS 20.04) using Fiddler Everywhere 1.0.1.

 

Aaron

ADMIN
Nick Iliev
Posted on: 13 Aug 2020 09:03

Hello Aaron,

 

You should be able to use the AVD settings panel but there is a catch - you might need to turn on and then off the Airplane mode inside the Android device. This solution is suggested in this SO thread and worked out on my side.

Attaching a screenshot of a successfully captured session once the above "hack" was applied.

 

 

Regards,
Nick Iliev
Progress Telerik

Attached Files:
Aaron
Posted on: 12 Aug 2020 14:17

Nick,

Thanks for the links and the screenshot. I am setting the proxy through the device emulator settings, not in android itself. I have attached a screenshot and the output. Apps that bypass the system proxy cannot be tested with fiddler when setting it through the OS. It has to be set in the AVD settings. You will notice that the AVD says it can connect to the proxy, but when you try to do anything you get a CONNECT, but then fiddler closes the connection immediately.

Other tools do work in this manner so this is not an AVD limitation but a problem with Fiddler.

Aaron

Attached Files:
ADMIN
Nick Iliev
Posted on: 12 Aug 2020 08:52

Hi Aaron,

 

I am attaching a screenshot from my AVD proxy settings which are working as expected on my side - can you verify that you hav3e similar settings and that you are able to capture non-secure traffic from http://examnple.com (for secure traffic you will also need to export/import the TRUST certificate)

 

Regards,
Nick Iliev
Progress Telerik

Attached Files:
ADMIN
Nick Iliev
Posted on: 12 Aug 2020 08:27

Hello Aaron,

 

My initial confirmation was related to the described steps not working on AVD (Android emulator) but the steps are working on a real device. The difference is that on an emulator you would need to change the proxy as the AVD doesn't have direct access to the network. The AVDs are usually using addresses like 10.0.2.2 as loopback aliases (see here). So that said there is a different set of steps (compared to using a real device in the same network) - see this thread for detailed suggestions.

 

Regards,
Nick Iliev
Progress Telerik

Aaron
Posted on: 11 Aug 2020 15:25

Nick,

I didn't receive any answer to my previous question. Is this something that is going to be fixed or not? This issue is marked as unplanned. My project is setup correctly, as noted in the original issue, because I can use another tool that does work.

Aaron

Aaron
Posted on: 27 Jul 2020 13:03

Nick,

I'm seriously confused here since the very first comment on this issue that you made, was that you were able to reproduce this and were going to mark this as a bug and set it to planned to be fixed. Is that not the case? We have already done everything needed to set up a device in the android emulator to try to get this to work and it doesn't. 

This was the steps you and I both followed to try to get this to work: https://www.telerik.com/blogs/how-to-capture-android-traffic-with-fiddler

And you said you couldn't either. What's the deal?


ADMIN
Nick Iliev
Posted on: 27 Jul 2020 08:40

Hello Aaron,

 

I wanted to confirm that as pointed in the link you are trying to capture traffic from an application that is developed by you - and if so that the proper key-value is added as shown  (in the resource folder).

 

Regards,
Nick Iliev
Progress Telerik

Aaron
Posted on: 23 Jul 2020 12:37

Nick,

I'm not debugging ssl traffic. Additionally,  others have told you that doesn't work either. 

Aaron

ADMIN
Nick Iliev
Posted on: 23 Jul 2020 09:53

Hi Aaron,

 

Try the steps described in this Webinar including adding the Fiddler certificate after setting the Manual proxy. Note that you will not be able to capture traffic from other apps that you are not developing - see the comments made here and how you could handle this issue for an app in development.

 

Regards,
Nick Iliev
Progress Telerik

Aaron
Posted on: 22 Jul 2020 14:11
Is there any ideas on when we can expect this to be fixed? I am using a competing product to do this and I must say, it's not as user friendly. :)
Aaron
Posted on: 04 Jun 2020 14:23
Just know that I am NOT trying to use HTTPS in my instance, so both Igors and I are experiencing the problem with both HTTPS and non-HTTPS.
Igors
Posted on: 04 Jun 2020 12:55

Hey Nick. 

 

Good to hear that y'all are looking at it. 

 

I did some more digging and here's the gist: 

Since Android 7 (N) each app can specify which root certificates it allows.  

 

So unless you're testing the app that you build and can modify the security manifest file to allow the Fiddler root cert, your only option is to add that manifest to the apk file.  

Adding it to the apk is fiddly, and doesn't work well (at least with the tools currently available).

 

But if y'all could figure a way to make this work, it would increase the value proposition of Fiddler by a thousand fold.

ADMIN
Nick Iliev
Posted on: 04 Jun 2020 10:52

Hello Aaron,

 

I've added the provided additional information in our internal issue - once again thank you for providing the feedback and the details.

 

Regards,
Nick Iliev
Progress Telerik

Progress is here for your business, like always. Read more about the measures we are taking to ensure business continuity and help fight the COVID-19 pandemic.
Our thoughts here at Progress are with those affected by the outbreak.
Igors
Posted on: 03 Jun 2020 11:38

@Nick Iliev

This actually goes way deeper. I was about to write a report on it. 


This problem is present on Fiddler for Windows (latest), 0.5.0, 0.10 . Same problem on all 3 operating systems. 

Tried multiple phones, multiple router configs and etc.  

 

Every single time, CONNECT requests get a response and no data is sent afterwards with mobile apps. 

 

This happens only when you try to Decrypt HTTPS traffic.

ADMIN
Nick Iliev
Posted on: 02 Jun 2020 07:52

Hello Aaron,

 

Thank you for the detailed explanation of your issue! I've tested the scenario on my side and can confirm that setting a manual proxy, as shown in this blog post (but while using port 8866 for Fiddler Everywhere), is not working and causing the same behavior as the one you described. Marking the issue as a bug to be planned and fixed. I will update this thread with related information as soon as we have more insights on the matter.

 

Regards,
Nick Iliev
Progress Telerik

Progress is here for your business, like always. Read more about the measures we are taking to ensure business continuity and help fight the COVID-19 pandemic.
Our thoughts here at Progress are with those affected by the outbreak.