avery
Wetware Developer
Problem
My phone’s rom, grapheneOS, permits tethering, but my carrier bans it1. So, my carrier blocks anything I tether.
There are 4 vectors I’ve read about for tether detection2:
- Packet TTL
- Phone defaults are configured to expose tether status to carriers.
- TCP/IP stack fingerprinting. Default implementations vary by OS
- Deep packet inspection. Mobile devices don’t connect to e.g. a windows update server
Solution
- Incrementing the default packet TTL on my desktop/laptop spoofs my phone’s TTL.
- Variables stored in
/system/build.prop. Specifically,tether_dun_requiredneeds to be0, andnet.tethering.noprovisioningneeds to equaltrue. You need root access now or during the OS build step to edit/system. I don’t think this can be addressed on iOS. - Too inconsistent to be the sole reason to block packets; I ignored this
- A VPN fixes this easily
So now I’m pushing this post on my desktop from my phone’s hotspot3. I don’t know how many of these fixes are actually necessary; that probably varies by carrier. I succeeded after setting up a VPN4, incrementing TTL, editing build.prop vars, and rebooting my desktop.