In this article, we give a small journey inside the implementation of networking interfaces exposed by iOS when connected via USB. These are used for

iOS: a journey in the USB networking stack

submited by
Style Pass
2024-05-01 09:00:43

In this article, we give a small journey inside the implementation of networking interfaces exposed by iOS when connected via USB. These are used for sharing a computer's connection with iPhone (tethering), sharing an iPhone's connection with a computer (reverse tethering) and since the latest versions of iOS, USB networking even carries RemoteXPC packets which seems to be the future common ground for all Apple based cross-device communications.

There is an ongoing hot topic in the Synacktiv development team between a handful of iOS developers that are willing to work on a full macOS environment and people that'd rather spend an insane amount of time to make it work on their Linux development setup.

This Linux-extremist gang was recently interested in making reverse tethering on iOS devices work on Linux hosts. This is particularly useful to avoid creating Wi-Fi networks to connect iPhones to a controlled network.

Tethering is the process of sharing your phone's internet connection with a computer. The idea is that the phone acts as a router, routing packets sent by the computer to whichever air interface is connected. As a user, it's basically like doing a Wi-Fi hotspot but over USB.

Leave a Comment