graevy
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_required
needs to be0
, andnet.tethering.noprovisioning
needs 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.