On Wed, 7 Oct 2026 21:11:30 +0200, Giuseppe Piscitelli wrote:
On the first insertion of an iPhone (05ac:12a8) after boot, an already
running usbmuxd can select USB configuration 4 before the charging driver
apple-mfi-fastcharge loads. usbmuxd is a userspace daemon that uses libusb
to communicate with Apple devices; apple-mfi-fastcharge is a USB device
driver that enables their higher charging current.
USB device uevents have no MODALIAS. The charging module instead loads
from an interface uevent. Its registration reprobes the device, unbinds
the generic driver and calls usb_set_configuration(udev, -1), tearing down
the interfaces and interrupting usbmuxd's transfers.
What is actually the appeal of apple-mfi-fastcharge?
It seems to just issues some control requests to the device when
commanded by userspace. Userspace could do the same with libusb,
apparently without unbinding drivers, changing configurations or
even claiming USB interfaces. I just tried a simple program that
queries GET_CONFIGURATION, with no disruption to kernel drivers
or other libusb applications using the same device concurrently.
Then simply blacklist the kernel module and all its problems are
gone forever without one line of kernel code?
Regards,
Michal