• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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