-
-
Notifications
You must be signed in to change notification settings - Fork 380
Description
My understanding is that this usbmuxd is the reverse-engineered counterpart of lockdownd that runs on iOS.
For tethering, usbmuxd sets the USB configuration on the iOS device (which makes a new ethernet interface eth* appear) and then does a bunch of things to somehow enable the tethering. If I only set_configuration, then the eth* interface is set as NO_CARRIER.
I would be interested in understanding what happens at the USB level. As in: what exactly is needed on top of setting the USB configuration for the tethering to be setup properly?
I see that there is at least some "VERSION" packet, followed by some "SETUP" packet, followed by a bunch of "TCP" packets. And after that, somehow, the network interface is active and usbmuxd can be killed 😎.
Also is it something specific to Apple devices, or is it something that happens with other drivers that do ethernet-over-usb? And couldn't this be done directly in ipheth?
I am interested and willing to learn how this works 😇.