3

I am familiar with how iOS devices report hot spot use by treating it differently somehow. My understand is that Android is not crippled like this, and there is rightly no difference in traffic between hot spot data and data from the phone itself.

So I was a bit shocked when I received a text from Verizon telling me I had used up almost all my paltry hot-spot "allowance" because this should not be possible that it discriminates traffic like that. How is this possible? I have used my hotspot a lot before and never received this message.

I have read something about an "APN"s but there is only one, "VZWINTERNET" which can only be "reset to default" with no option to delete or create a new one.

1

2 Answers 2

8

Your phone uses a different type of connection (DUN) to send tethered data but you can make the provider treat all traffic as if it is non-tethered:

adb shell settings put global tether_dun_required 0

When enabling tethering on Android, the OS will first do a provisioning check with the carrier to determine if your plan allows tethering. You can remove this check:

adb shell su
mount -o rw,remount /system_root
cd /system_root/system/
echo net.tethering.noprovisioning=true >> /system_root/system/build.prop

However it will not be enough because carriers often spot tethering by looking at the TTL of your IP packages.

Time to live (TTL) refers to the amount of time or “hops” that a packet is set to exist inside a network before being discarded by a router. It is decremented for each hop. A hop is any intermediate router the packet passes through.

When tethering, your phone acts as a router and your TTL is decreased by 1 before reaching your ISP, which is what betrays you.

By default, Android and iOS have a TTL of 64 so you only need to set the TTL on your PC to 65.

On GNU/Linux :

net.ipv4.ip_default_ttl=65

# persistent change
echo 'net.ipv4.ip_default_ttl=65' | sudo tee /usr/lib64/sysctl.d/70-ttl.conf

On Windows:

netsh int ipv4 set glob defaultcurhoplimit=65 netsh int ipv6 set glob
defaultcurhoplimit=65

On MacOS:

sudo sysctl -w net.inet.ip.ttl=65

For now it seems to be enough but keep in mind that your carrier has other ways to detect tethering (see here) and will most likely use them in the future.

1
  • well i did everything except the part requiring root (which i can't do because my phone is not rootable) and ran a speed test and right in the middle of the test the speed dropped and i got a text from my carrier that i had used up my hot spot data so uh... i guess the root part is required for this to work :(
    – Michael
    Jul 10, 2020 at 19:30
0

See http://forum.xda-developers.com/showthread.php?t=734138 for a discussion about how they might. Mechanisms other than APN change might include

  • Time to live
  • Request header
  • Data volume
2
  • nice article, but seeing as how it's 10 years old I'm wondering what the state of the art is
    – Michael
    Jul 8, 2020 at 2:06
  • 1
    Yes. Irfan's article is more recent. It boils down to the same thing however. I'm as interested as you are in getting to a factual answer. Jul 8, 2020 at 11:25

Not the answer you're looking for? Browse other questions tagged .