How To Bypass T-Mobile’s Mobile HotSpot Filter

August 15th, 2014

If you are a T-Mobile customer and tether your internet connection from your phone, you might have encountered this annoying screen:

Now this is a ridiculous effort by T-Mobile to charge you twice for using the data plan that you already paid for. I call it a ridiculous effort because they have no sure way of detecting whether an internet request comes from your phone or from a device connected to it, and this is clearly a way to milk more money out of non-technical users. A more in-depth explanation is available here.

T-Mobile has two ways of detecting whether you are currently using a tethered device. One is by redirecting the tethered traffic to a secondary network interface, which in turn marks the traffic as tethered, a behavior that can be eliminated by following these steps. These steps will work for Android phones, not sure what the procedure would be for an iPhone or Windows Phones. You will probably have to jailbreak it.

  1. Enable developer mode (Settings -> About phone, click on the build number until the mode is enabled).
  2. Enable USB debugging from Settings -> Developer options.
  3. Connect the device via USB to a computer with the Android SDK platform tools installed.
  4. Start an adb shell. From the command line type: adb shell
  5. From the adb shell, type: settings put global tether_dun_required 0

The second way is to look at the User Agent string that is sent voluntarily by web browsers with each HTTP request. T-Mobile snoops your traffic for this information and if it detects that the string contains any reference to a non-mobile browser, it stops the request and sends a redirect command instead. So if you can make your laptop’s web browser User Agent string to look like your phone’s web browser’s User Agent string, you can bypass this filter.

  1. From your phone, open this page:
  2. Note the string that appears at the top. It looks something like this: Mozilla/5.0 (Linux; Android 4.4.4; GT-I8190 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.39 Mobile Safari/537.36
  3. Find an extension or change the settings of your browser to override the User Agent string. For Chrome this extension seems to work well.
  4. Test that your new User Agent string is being sent properly by vising from your laptop.

Voilà! If everything is working, you should now be able to bypass the dreaded mobile hotspot filter page.