1on early-boot 2 mkdir /config/usb_gadget/g1 3 mkdir /config/usb_gadget/g1/strings/0x409 4 mkdir /config/usb_gadget/g1/configs/b.1 5 write /config/usb_gadget/g1/idVendor 0x18d1 6 write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno} 7 write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer} 8 write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model} 9 write /config/usb_gadget/g1/configs/b.1/MaxPower 0x384 10 write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1 11 write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100" 12 13 # ffs function 14 mkdir /config/usb_gadget/g1/functions/ffs.adb 0770 shell shell 15 mkdir /config/usb_gadget/g1/functions/ffs.mtp 16 mkdir /config/usb_gadget/g1/functions/ffs.ptp 17 mkdir /dev/usb-ffs 0775 shell shell 18 mkdir /dev/usb-ffs/adb 0770 shell shell 19 mkdir /dev/usb-ffs/mtp 0770 mtp mtp 20 mkdir /dev/usb-ffs/ptp 0770 mtp mtp 21 mount functionfs adb /dev/usb-ffs/adb rmode=0770,fmode=0660,uid=2000,gid=2000,no_disconnect=1 22 mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1 23 mount functionfs ptp /dev/usb-ffs/ptp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1 24 setprop sys.usb.mtp.device_type 3 25 setprop sys.usb.mtp.batchcancel true 26 symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1 27 28 # mtp function 29 mkdir /config/usb_gadget/g1/functions/mtp.gs0 30 31 # ptp function 32 mkdir /config/usb_gadget/g1/functions/ptp.gs1 33 34 # accessory function 35 mkdir /config/usb_gadget/g1/functions/accessory.gs2 36 37 # audio_source function 38 mkdir /config/usb_gadget/g1/functions/audio_source.gs3 39 40 # rndis function 41 mkdir /config/usb_gadget/g1/functions/rndis.gs4 42 # Modify class/subclass/protocol for rndis.gs4 43 # Remote NDIS: Class: Wireless Controller (0xe0), Subclass: 0x1, Protocol: 0x3 44 write /config/usb_gadget/g1/functions/rndis.gs4/class e0 45 write /config/usb_gadget/g1/functions/rndis.gs4/subclass 01 46 write /config/usb_gadget/g1/functions/rndis.gs4/protocol 03 47 write /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.ncm/compatible_id RNDIS 48 write /config/usb_gadget/g1/functions/rndis.gs4/ifname rndis%d 49 setprop vendor.usb.rndis.config rndis.gs4 50 51 # midi function 52 mkdir /config/usb_gadget/g1/functions/midi.gs5 53 54 # acm function 55 mkdir /config/usb_gadget/g1/functions/acm.gs6 56 57 # dm function 58 mkdir /config/usb_gadget/g1/functions/dm.gs7 59 60 # uts function 61 mkdir /config/usb_gadget/g1/functions/uts.gs8 62 63 # ncm function 64 mkdir /config/usb_gadget/g1/functions/ncm.gs9 65 write /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm/compatible_id WINNCM 66 write /config/usb_gadget/g1/functions/ncm.gs9/ifname ncm%d 67 68 # etr_miu function 69 mkdir /config/usb_gadget/g1/functions/etr_miu.gs11 70 71 # acm function for uwb 72 mkdir /config/usb_gadget/g1/functions/acm.uwb0 73 74 # chown file/folder permission 75 chown system system /config/usb_gadget/ 76 chown system system /config/usb_gadget/g1 77 chown system system /config/usb_gadget/g1/UDC 78 chown system system /config/usb_gadget/g1/bDeviceClass 79 chown system system /config/usb_gadget/g1/bDeviceProtocol 80 chown system system /config/usb_gadget/g1/bDeviceSubClass 81 chown system system /config/usb_gadget/g1/bMaxPacketSize0 82 chown system system /config/usb_gadget/g1/bcdDevice 83 chown system system /config/usb_gadget/g1/bcdUSB 84 chown system system /config/usb_gadget/g1/configs 85 chown system system /config/usb_gadget/g1/configs/b.1 86 chown system system /config/usb_gadget/g1/configs/b.1/MaxPower 87 chown system system /config/usb_gadget/g1/configs/b.1/bmAttributes 88 chown system system /config/usb_gadget/g1/configs/b.1/strings 89 chown system system /config/usb_gadget/g1/functions 90 chown system system /config/usb_gadget/g1/functions/accessory.gs2 91 chown system system /config/usb_gadget/g1/functions/acm.gs6 92 chown system system /config/usb_gadget/g1/functions/acm.gs6/port_num 93 chown system system /config/usb_gadget/g1/functions/acm.uwb0 94 chown system system /config/usb_gadget/g1/functions/acm.uwb0/port_num 95 chown system system /config/usb_gadget/g1/functions/audio_source.gs3 96 chown system system /config/usb_gadget/g1/functions/dm.gs7 97 chown system system /config/usb_gadget/g1/functions/ffs.adb 98 chown system system /config/usb_gadget/g1/functions/ffs.mtp 99 chown system system /config/usb_gadget/g1/functions/ffs.ptp 100 chown system system /config/usb_gadget/g1/functions/midi.gs5 101 chown system system /config/usb_gadget/g1/functions/midi.gs5/buflen 102 chown system system /config/usb_gadget/g1/functions/midi.gs5/id 103 chown system system /config/usb_gadget/g1/functions/midi.gs5/in_ports 104 chown system system /config/usb_gadget/g1/functions/midi.gs5/index 105 chown system system /config/usb_gadget/g1/functions/midi.gs5/out_ports 106 chown system system /config/usb_gadget/g1/functions/midi.gs5/qlen 107 chown system system /config/usb_gadget/g1/functions/mtp.gs0 108 chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc 109 chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP 110 chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/compatible_id 111 chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/sub_compatible_id 112 chown system system /config/usb_gadget/g1/functions/ncm.gs9 113 chown system system /config/usb_gadget/g1/functions/ncm.gs9/dev_addr 114 chown system system /config/usb_gadget/g1/functions/ncm.gs9/host_addr 115 chown system system /config/usb_gadget/g1/functions/ncm.gs9/ifname 116 chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc 117 chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm 118 chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm/compatible_id 119 chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm/sub_compatible_id 120 chown system system /config/usb_gadget/g1/functions/ncm.gs9/qmult 121 chown system system /config/usb_gadget/g1/functions/ptp.gs1 122 chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc 123 chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP 124 chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP/compatible_id 125 chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP/sub_compatible_id 126 chown system system /config/usb_gadget/g1/functions/rndis.gs4 127 chown system system /config/usb_gadget/g1/functions/rndis.gs4/class 128 chown system system /config/usb_gadget/g1/functions/rndis.gs4/dev_addr 129 chown system system /config/usb_gadget/g1/functions/rndis.gs4/host_addr 130 chown system system /config/usb_gadget/g1/functions/rndis.gs4/ifname 131 chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc 132 chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis 133 chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis/compatible_id 134 chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis/sub_compatible_id 135 chown system system /config/usb_gadget/g1/functions/rndis.gs4/protocol 136 chown system system /config/usb_gadget/g1/functions/rndis.gs4/qmult 137 chown system system /config/usb_gadget/g1/functions/rndis.gs4/subclass 138 chown system system /config/usb_gadget/g1/idProduct 139 chown system system /config/usb_gadget/g1/idVendor 140 chown system system /config/usb_gadget/g1/max_speed 141 chown system system /config/usb_gadget/g1/os_desc 142 chown system system /config/usb_gadget/g1/os_desc/b.1 143 chown system system /config/usb_gadget/g1/os_desc/b_vendor_code 144 chown system system /config/usb_gadget/g1/os_desc/qw_sign 145 chown system system /config/usb_gadget/g1/os_desc/use 146 chown system system /config/usb_gadget/g1/strings 147 chown system system /config/usb_gadget/g1/strings/0x409 148 chown system system /config/usb_gadget/g1/strings/0x409/manufacturer 149 chown system system /config/usb_gadget/g1/strings/0x409/product 150 chown system system /config/usb_gadget/g1/strings/0x409/serialnumber 151 setprop vendor.usb.functions.ready 1 152 153on boot 154 write /config/usb_gadget/g1/bcdDevice 0x0510 155 # Use USB Gadget HAL 156 setprop sys.usb.configfs 2 157 158on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && property:sys.usb.configfs=1 159 write /config/usb_gadget/g1/idProduct 0x4EE7 160 write /config/usb_gadget/g1/idVendor 0x18D1 161 162on property:vendor.usb.config=* 163 start usbd 164 165on property:persist.vendor.usb.usbradio.config=* 166 start usbd 167 168on charger 169 mkdir /config/usb_gadget/g1 170 mkdir /config/usb_gadget/g1/strings/0x409 171 mkdir /config/usb_gadget/g1/configs/b.1 172 write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno} 173 write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer} 174 write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model} 175 write /config/usb_gadget/g1/configs/b.1/MaxPower 0x384 176 write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1 177 write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100" 178 write /config/usb_gadget/g1/bcdDevice 0x0510 179 mkdir /config/usb_gadget/g1/functions/midi.gs5 180 symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1 181 setprop sys.usb.controller "11110000.dwc3" 182 setprop sys.usb.configfs 1 183 184on property:ro.bootmode=charger 185 setprop sys.usb.config charger 186 187on property:sys.usb.config=charger && property:sys.usb.configfs=1 188 write /config/usb_gadget/g1/idVendor 0x18d1 189 write /config/usb_gadget/g1/idProduct 0x4eea 190 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "midi" 191 symlink /config/usb_gadget/g1/functions/midi.gs5 /config/usb_gadget/g1/configs/b.1/f1 192 write /config/usb_gadget/g1/UDC ${sys.usb.controller} 193 setprop sys.usb.state ${sys.usb.config} 194 195on property:vendor.usb.contaminantdisable=true 196 exec /vendor/bin/hw/disable_contaminant_detection.sh 197 198on property:ro.bootmode=usbuwb 199 setprop persist.vendor.usb.usbradio.config uwb_acm 200