On Wed, 21 Dec 2011, Benoit Goby wrote: > The Android Gadget driver is a composite driver that allows > userspace to change at runtime the list of functions enabled in > its configuration and to configure these functions. It supports > multiple functions: acm, adb, rndis, mtp/ptp, mass storage and > accessory. > > It is usually controlled by a daemon that changes the configuration > based on user settings. For example, rndis is enabled when the user > enables sharing the phone data connection and adb (Android Debug > Bridge) is only enabled when the user wants to debug applications > for security reasons. > > As an example on how to use it, the following shell commands will > make the gadget disconnect from the host and make it be re-enumerated > as a composite with 1 rndis and 2 acm interfaces, and a different > product id: > > echo 0 > /sys/class/android_usb/android0/enable > echo rndis,acm > /sys/class/android_usb/android0/functions > echo 2 > /sys/class/android_usb/android0/f_acm/instances > echo 2d01 > /sys/class/android_usb/android0/idProduct > echo 1 > /sys/class/android_usb/android0/enable Isn't this the sort of thing that configfs was meant to handle? For example, see http://marc.info/?l=linux-usb&m=132430533824884&w=2 Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html