How is Verizon suddenly tracking my hot-spot usage on Android and how do I disable this tracking? 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 &quot;allowance&quot; 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 &quot;APN&quot;s but there is only one, &quot;VZWINTERNET&quot; which can only be &quot;reset to default&quot; with no option to delete or create a new one.
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 &gt;&gt; /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.