|  | on property:sys.usb.config=none && property:sys.usb.configfs=1 | 
|  | write /config/usb_gadget/g1/UDC "none" | 
|  | stop adbd | 
|  | setprop sys.usb.ffs.ready 0 | 
|  | setprop sys.usb.ffs.mtp.ready 0 | 
|  | write /config/usb_gadget/g1/bDeviceClass 0 | 
|  | write /config/usb_gadget/g1/bDeviceSubClass 0 | 
|  | write /config/usb_gadget/g1/bDeviceProtocol 0 | 
|  | rm /config/usb_gadget/g1/configs/b.1/f1 | 
|  | rm /config/usb_gadget/g1/configs/b.1/f2 | 
|  | rm /config/usb_gadget/g1/configs/b.1/f3 | 
|  | rmdir /config/usb_gadget/g1/functions/rndis.gs4 | 
|  | setprop sys.usb.state ${sys.usb.config} | 
|  |  | 
|  | on property:init.svc.adbd=stopped | 
|  | setprop sys.usb.ffs.ready 0 | 
|  |  | 
|  | on property:sys.usb.config=adb && property:sys.usb.configfs=1 | 
|  | start adbd | 
|  |  | 
|  | on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && property:sys.usb.configfs=1 | 
|  | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb" | 
|  | symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1 | 
|  | write /config/usb_gadget/g1/UDC ${sys.usb.controller} | 
|  | setprop sys.usb.state ${sys.usb.config} | 
|  |  | 
|  | on property:sys.usb.ffs.mtp.ready=1 && property:sys.usb.config=mtp && property:sys.usb.configfs=1 | 
|  | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp" | 
|  | symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1 | 
|  | write /config/usb_gadget/g1/UDC ${sys.usb.controller} | 
|  | setprop sys.usb.state ${sys.usb.config} | 
|  |  | 
|  | on property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1 | 
|  | start adbd | 
|  |  | 
|  | on property:sys.usb.ffs.ready=1 && property:sys.usb.ffs.mtp.ready=1 && \ | 
|  | property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1 | 
|  | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_adb" | 
|  | symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1 | 
|  | symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 | 
|  | write /config/usb_gadget/g1/UDC ${sys.usb.controller} | 
|  | setprop sys.usb.state ${sys.usb.config} | 
|  |  | 
|  | on property:sys.usb.ffs.mtp.ready=1 && property:sys.usb.config=ptp && property:sys.usb.configfs=1 | 
|  | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp" | 
|  | symlink /config/usb_gadget/g1/functions/ptp.gs1 /config/usb_gadget/g1/configs/b.1/f1 | 
|  | write /config/usb_gadget/g1/UDC ${sys.usb.controller} | 
|  | setprop sys.usb.state ${sys.usb.config} | 
|  |  | 
|  | on property:sys.usb.config=ptp,adb && property:sys.usb.configfs=1 | 
|  | start adbd | 
|  |  | 
|  | on property:sys.usb.ffs.ready=1 && property:sys.usb.ffs.mtp.ready=1 && \ | 
|  | property:sys.usb.config=ptp,adb && property:sys.usb.configfs=1 | 
|  | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_adb" | 
|  | symlink /config/usb_gadget/g1/functions/ptp.gs1 /config/usb_gadget/g1/configs/b.1/f1 | 
|  | symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 | 
|  | write /config/usb_gadget/g1/UDC ${sys.usb.controller} | 
|  | setprop sys.usb.state ${sys.usb.config} | 
|  |  | 
|  | on property:sys.usb.config=accessory && property:sys.usb.configfs=1 | 
|  | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "accessory" | 
|  | symlink /config/usb_gadget/g1/functions/accessory.gs2 /config/usb_gadget/g1/configs/b.1/f1 | 
|  | write /config/usb_gadget/g1/UDC ${sys.usb.controller} | 
|  | setprop sys.usb.state ${sys.usb.config} | 
|  |  | 
|  | on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=1 | 
|  | start adbd | 
|  |  | 
|  | on property:sys.usb.ffs.ready=1 && property:sys.usb.config=accessory,adb && property:sys.usb.configfs=1 | 
|  | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "accessory_adb" | 
|  | symlink /config/usb_gadget/g1/functions/accessory.gs2 /config/usb_gadget/g1/configs/b.1/f1 | 
|  | symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 | 
|  | write /config/usb_gadget/g1/UDC ${sys.usb.controller} | 
|  | setprop sys.usb.state ${sys.usb.config} | 
|  |  | 
|  | on property:sys.usb.config=audio_source && property:sys.usb.configfs=1 | 
|  | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "audiosource" | 
|  | symlink /config/usb_gadget/g1/functions/audio_source.gs3 /config/usb_gadget/g1/configs/b.1/f1 | 
|  | write /config/usb_gadget/g1/UDC ${sys.usb.controller} | 
|  | setprop sys.usb.state ${sys.usb.config} | 
|  |  | 
|  | on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=1 | 
|  | start adbd | 
|  |  | 
|  | on property:sys.usb.ffs.ready=1 && property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=1 | 
|  | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "audiosource_adb" | 
|  | symlink /config/usb_gadget/g1/functions/audio_source.gs3 /config/usb_gadget/g1/configs/b.1/f1 | 
|  | symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 | 
|  | write /config/usb_gadget/g1/UDC ${sys.usb.controller} | 
|  | setprop sys.usb.state ${sys.usb.config} | 
|  |  | 
|  | on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=1 | 
|  | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "accessory_audiosource" | 
|  | symlink /config/usb_gadget/g1/functions/accessory.gs2 /config/usb_gadget/g1/configs/b.1/f1 | 
|  | symlink /config/usb_gadget/g1/functions/audio_source.gs3 /config/usb_gadget/g1/configs/b.1/f2 | 
|  | write /config/usb_gadget/g1/UDC ${sys.usb.controller} | 
|  | setprop sys.usb.state ${sys.usb.config} | 
|  |  | 
|  | on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=1 | 
|  | start adbd | 
|  |  | 
|  | on property:sys.usb.ffs.ready=1 && property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=1 | 
|  | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "accessory_audiosource_adb" | 
|  | symlink /config/usb_gadget/g1/functions/accessory.gs2 /config/usb_gadget/g1/configs/b.1/f1 | 
|  | symlink /config/usb_gadget/g1/functions/audio_source.gs3 /config/usb_gadget/g1/configs/b.1/f2 | 
|  | symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3 | 
|  | write /config/usb_gadget/g1/UDC ${sys.usb.controller} | 
|  | setprop sys.usb.state ${sys.usb.config} | 
|  |  | 
|  | on property:sys.usb.config=midi && property:sys.usb.configfs=1 | 
|  | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "midi" | 
|  | symlink /config/usb_gadget/g1/functions/midi.gs5 /config/usb_gadget/g1/configs/b.1/f1 | 
|  | write /config/usb_gadget/g1/UDC ${sys.usb.controller} | 
|  | setprop sys.usb.state ${sys.usb.config} | 
|  |  | 
|  | on property:sys.usb.config=midi,adb && property:sys.usb.configfs=1 | 
|  | start adbd | 
|  |  | 
|  | on property:sys.usb.ffs.ready=1 && property:sys.usb.config=midi,adb && property:sys.usb.configfs=1 | 
|  | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "midi_adb" | 
|  | symlink /config/usb_gadget/g1/functions/midi.gs5 /config/usb_gadget/g1/configs/b.1/f1 | 
|  | symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 | 
|  | write /config/usb_gadget/g1/UDC ${sys.usb.controller} | 
|  | setprop sys.usb.state ${sys.usb.config} | 
|  |  | 
|  | on property:sys.usb.config=rndis && property:sys.usb.configfs=1 | 
|  | mkdir /config/usb_gadget/g1/functions/rndis.gs4 | 
|  | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis" | 
|  | symlink /config/usb_gadget/g1/functions/rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1 | 
|  | write /config/usb_gadget/g1/UDC ${sys.usb.controller} | 
|  | setprop sys.usb.state ${sys.usb.config} | 
|  |  | 
|  | on property:sys.usb.config=rndis,adb && property:sys.usb.configfs=1 | 
|  | start adbd | 
|  |  | 
|  | on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,adb && property:sys.usb.configfs=1 | 
|  | mkdir /config/usb_gadget/g1/functions/rndis.gs4 | 
|  | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb" | 
|  | symlink /config/usb_gadget/g1/functions/rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1 | 
|  | symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 | 
|  | write /config/usb_gadget/g1/UDC ${sys.usb.controller} | 
|  | setprop sys.usb.state ${sys.usb.config} |