Google released a feature with Android recently which allows your carrier or network provider to know when you’re using your phone’s internet with a tethered device, either via USB or the Wifi hotspot feature of your Android device.
Before this update the phone would just use the NAT to route traffic between the phone’s internet connection and the tethered devices. Since the update Android is separating traffic from the local phone and the tethered devices onto different virtual network interfaces within networking of the operating system, providing the network operator with a different source device for the traffic.
This update is sneaky and I’d imagine Google has been pressured into implementing this “feature” to help carriers market and charge for tethering as an extra add-on or to impose data caps. A similar feature has been employed by Apple on iOS devices for some time.
Anyway, we can stop this behaviour and get back our freedom to tether without restriction. There are a couple of ways you can achieve this, if you’re rooted there are more options. There are apps that claim to be able to do this, but it’s really not necessary. I’m going to walk through how to do this without apps and without root.
To do this you’re going to have to get your hands dirty a little with the Android developer SDK.
- Download the Android SDK which is available for both Windows, Mac OS X and Linux.
The easiest way is to install the Android Studio bundle package. Here’s the direct links (updated Sept 2015):
- Follow the SDK packages installation instructions to add the SDK Tools and platform tools.
- Your device must have developer mode enabled. You can find instructions on how to do this here, it’s really simple, essentially tap ‘Build number’ in ‘Settings > About’ 7 times .
Ok so now we have the SDK installed and your device in developer mode we can apply the fix to enable unlimited tethering and wifi hotspot.
- Open a terminal or command prompt and navigate to the location where you installed the SDK, if you’re using the Android Studio bundle, here’s where it’s usually located:
Windows: C:\Users\USERNAME\AppData\Local\Android\sdk\platform-tools Mac OS X: /Users/USERNAME/Library/Android/sdk/platform-tools Linux: ~/android-sdk-linux/platform-tools
- Connect your device via USB, you might see a warning like this
Click OK to allow your computer access to your device
- Back in the terminal or command prompt type
- This should list your device in the output something like:
- So now we know your device is connected correctly we can jump onto a shell and make the fix for tethering. Type:
- Then at the prompt, enter:
settings put global tether_dun_required 0
- Disconnect your device and enjoy full unlimited tethering and wifi hotspot, your network operator no longer has the aiblity to tell if the internet traffic is coming from your device or the tethered device.
If you perform a factory reset on your device, you’ll need to follow this procedure again.
Any questions just drop a comment below.