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: https://www.whatsmyuseragent.com/
  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 whatsmyuseragent.com from your laptop.

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


Follow me @pierotofy and don't forget to
  • Eric Selle

    My question would be… Do you need to do both of these at the same time?

    • pierotofy

      Try to do the User-Agent switch first. That alone might be sufficient.

      • Eric Selle

        Thanks! My Nexus 5 is rooted, and I’ve already changed the .db tethering value to 0. The sources I’ve looked at seem to indicate that that should do the trick, but I was just wondering if T-Mo had other ways of detecting.

  • Mewmew

    I have unlimited data but with a 5GB tethering cap. Can this be done AFTER I hit my 5GB cap to restore access?

    • After you hit your cap you actually don’t need this anymore; T-mobile will let you tether at low speeds without filtering.

      • Mewmew

        I didn’t know that, thanks. Do you know if this is the case for international data using T-Mobile’s ‘Simple Choice’ plan which allows for unlimited data and text while in certain countries overseas?

        • Not sure about overseas; never tried it.

          • Mewmew

            Still, good info. Thanks

      • HueHue

        Hey, I tried to find tutorials, etc, on how to open an adb shell but for the life of me I can’t do it. I like to think I’m at least a bit tech savvy, and have just finished my first year of Comp Sci in college. However I can’t find resources, even after painfully trying for god knows how long.

        Help? 😛