Phone tethering in the past was possible by adjusting the TTL on the client, but this was closed long ago by creating a dedicated rmnet device just for tethering.
Lions last used tethering on a daily basis while commuting, 6 years ago.
In recent years, interest in tethering began to return as xfinity/comca$t reliability went downhill & data plans got ever cheaper. Paid tethering was still proving very unreliable for some reason, compared to the apps on the phone. It wasn't used often enough to justify the cost. Simultaneously, modern phone plans leave a lot of data allowance unused.
A big question was how to connect a client to the phone. ADB & USB would be quite difficult & unreliable. 2.4Ghz wifi was quite slow & unreliable. By 2024, 5Ghz wifi finally made it to cheap phones & drastically outperformed any other method. It didn't seem to be throttled when LTE was the default gateway. The kaboom case is if wifi is throttled when LTE is the default gateway, but a full proxy implementation would be the easiest way to test it.
The idea is the phone & client would attach to an offline, raspberry pi access point. Then the phone would use its LTE to access the great beyond. The client would access the phone's wifi through a virtual ethernet device. The raw packets from the client would be mangled on the phone to look like they came from a phone app.
Helas, it's not possible to send raw packets to the rmnet devices on a cheap phone. The phone app would have to analyze every raw packet from the client & create its own copy of every connection by using the Java library. It would act like a virtual machine.
Raw packet mangling would be possible with a full time server on the internet side of the phone, but it would cost more than a data plan.
---------------------------------------------------------------------------------------------------------------------------------------------------------
The trick with testing is setting up a dedicated raspberry pi with its default route being the virtual ethernet device connected to the proxy server. A test of translating raw ICMP packets from a client into InetAddress.isReachable commands on the phone showed promise. Next would be making a DNS server that read raw UDP & called InetAddress.getByName
The great task would be translating raw TCP packets into custom Socket commands on the phone.
lion mclionhead
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.