1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
|
on early-boot
mkdir /config/usb_gadget/g1
mkdir /config/usb_gadget/g1/strings/0x409
mkdir /config/usb_gadget/g1/configs/b.1
write /config/usb_gadget/g1/idVendor 0x18d1
write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
write /config/usb_gadget/g1/configs/b.1/MaxPower 0x384
write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
# ffs function
mkdir /config/usb_gadget/g1/functions/ffs.adb 0770 shell shell
mkdir /config/usb_gadget/g1/functions/ffs.mtp
mkdir /config/usb_gadget/g1/functions/ffs.ptp
mkdir /dev/usb-ffs 0775 shell shell
mkdir /dev/usb-ffs/adb 0770 shell shell
mkdir /dev/usb-ffs/mtp 0770 mtp mtp
mkdir /dev/usb-ffs/ptp 0770 mtp mtp
mount functionfs adb /dev/usb-ffs/adb rmode=0770,fmode=0660,uid=2000,gid=2000,no_disconnect=1
mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
mount functionfs ptp /dev/usb-ffs/ptp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
setprop sys.usb.mtp.device_type 3
setprop sys.usb.mtp.batchcancel true
symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
# mtp function
mkdir /config/usb_gadget/g1/functions/mtp.gs0
# ptp function
mkdir /config/usb_gadget/g1/functions/ptp.gs1
# accessory function
mkdir /config/usb_gadget/g1/functions/accessory.gs2
# audio_source function
mkdir /config/usb_gadget/g1/functions/audio_source.gs3
# rndis function
mkdir /config/usb_gadget/g1/functions/rndis.gs4
# Modify class/subclass/protocol for rndis.gs4
# Remote NDIS: Class: Wireless Controller (0xe0), Subclass: 0x1, Protocol: 0x3
write /config/usb_gadget/g1/functions/rndis.gs4/class e0
write /config/usb_gadget/g1/functions/rndis.gs4/subclass 01
write /config/usb_gadget/g1/functions/rndis.gs4/protocol 03
write /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.ncm/compatible_id RNDIS
write /config/usb_gadget/g1/functions/rndis.gs4/ifname rndis%d
setprop vendor.usb.rndis.config rndis.gs4
# midi function
mkdir /config/usb_gadget/g1/functions/midi.gs5
# acm function
mkdir /config/usb_gadget/g1/functions/acm.gs6
# dm function
mkdir /config/usb_gadget/g1/functions/dm.gs7
# uts function
mkdir /config/usb_gadget/g1/functions/uts.gs8
# ncm function
mkdir /config/usb_gadget/g1/functions/ncm.gs9
write /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm/compatible_id WINNCM
write /config/usb_gadget/g1/functions/ncm.gs9/ifname ncm%d
# etr_miu function
mkdir /config/usb_gadget/g1/functions/etr_miu.gs11
# acm function for uwb
mkdir /config/usb_gadget/g1/functions/acm.uwb0
# uvc function
mkdir /config/usb_gadget/g1/functions/uvc.0
write /config/usb_gadget/g1/functions/uvc.0/function_name "Android Webcam"
write /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket 3072
# write /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst 5
# write /config/usb_gadget/g1/functions/uvc.0/streaming_interval 2
# setup control params
mkdir /config/usb_gadget/g1/functions/uvc.0/control/header/h
symlink /config/usb_gadget/g1/functions/uvc.0/control/header/h /config/usb_gadget/g1/functions/uvc.0/control/class/fs/h
symlink /config/usb_gadget/g1/functions/uvc.0/control/header/h /config/usb_gadget/g1/functions/uvc.0/control/class/ss/h
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m
# advertise 360p resolution for webcam encoded as mjpeg
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wHeight 360
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wWidth 640
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxVideoFrameBufferSize 460800
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwDefaultFrameInterval 333333
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwFrameInterval "166666
333333
416666
666666"
# advertise 480p resolution for webcam encoded as mjpeg
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wHeight 480
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wWidth 640
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxVideoFrameBufferSize 614400
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwDefaultFrameInterval 333333
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwFrameInterval "166666
333333
416666
666666"
# advertise 720p resolution for webcam encoded as mjpeg
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight 720
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wWidth 1280
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize 1843200
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwDefaultFrameInterval 333333
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval "166666
333333
416666
666666"
# advertise 1080p resolution for webcam encoded as mjpeg
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight 1080
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth 1920
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize 4147200
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwDefaultFrameInterval 333333
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval "166666
333333
416666
666666"
# TODO: Add uncompressed streams
# setup streaming params
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/header/h
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/m
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/fs/h
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs/h
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss/h
# remove write permissions for 'others'
chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/header/h/bcdUVC
chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/header/h/dwClockFrequency
chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bSourceID
chmod 664 /config/usb_gadget/g1/functions/uvc.0/function_name
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_interval
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/bmCapabilities
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwDefaultFrameInterval
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxBitRate
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMinBitRate
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/bmCapabilities
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwDefaultFrameInterval
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwFrameInterval
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxBitRate
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxVideoFrameBufferSize
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMinBitRate
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wHeight
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wWidth
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/bmCapabilities
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwDefaultFrameInterval
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwFrameInterval
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxBitRate
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxVideoFrameBufferSize
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMinBitRate
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wHeight
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wWidth
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bmCapabilities
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwDefaultFrameInterval
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxBitRate
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMinBitRate
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wWidth
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bDefaultFrameIndex
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmaControls
# chown file/folder permission
chown system system /config/usb_gadget/
chown system system /config/usb_gadget/g1
chown system system /config/usb_gadget/g1/UDC
chown system system /config/usb_gadget/g1/bDeviceClass
chown system system /config/usb_gadget/g1/bDeviceProtocol
chown system system /config/usb_gadget/g1/bDeviceSubClass
chown system system /config/usb_gadget/g1/bMaxPacketSize0
chown system system /config/usb_gadget/g1/bcdDevice
chown system system /config/usb_gadget/g1/bcdUSB
chown system system /config/usb_gadget/g1/configs
chown system system /config/usb_gadget/g1/configs/b.1
chown system system /config/usb_gadget/g1/configs/b.1/MaxPower
chown system system /config/usb_gadget/g1/configs/b.1/bmAttributes
chown system system /config/usb_gadget/g1/configs/b.1/strings
chown system system /config/usb_gadget/g1/functions
chown system system /config/usb_gadget/g1/functions/accessory.gs2
chown system system /config/usb_gadget/g1/functions/acm.gs6
chown system system /config/usb_gadget/g1/functions/acm.gs6/port_num
chown system system /config/usb_gadget/g1/functions/acm.uwb0
chown system system /config/usb_gadget/g1/functions/acm.uwb0/port_num
chown system system /config/usb_gadget/g1/functions/audio_source.gs3
chown system system /config/usb_gadget/g1/functions/dm.gs7
chown system system /config/usb_gadget/g1/functions/ffs.adb
chown system system /config/usb_gadget/g1/functions/ffs.mtp
chown system system /config/usb_gadget/g1/functions/ffs.ptp
chown system system /config/usb_gadget/g1/functions/midi.gs5
chown system system /config/usb_gadget/g1/functions/midi.gs5/buflen
chown system system /config/usb_gadget/g1/functions/midi.gs5/id
chown system system /config/usb_gadget/g1/functions/midi.gs5/in_ports
chown system system /config/usb_gadget/g1/functions/midi.gs5/index
chown system system /config/usb_gadget/g1/functions/midi.gs5/out_ports
chown system system /config/usb_gadget/g1/functions/midi.gs5/qlen
chown system system /config/usb_gadget/g1/functions/mtp.gs0
chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc
chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP
chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/compatible_id
chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/sub_compatible_id
chown system system /config/usb_gadget/g1/functions/ncm.gs9
chown system system /config/usb_gadget/g1/functions/ncm.gs9/dev_addr
chown system system /config/usb_gadget/g1/functions/ncm.gs9/host_addr
chown system system /config/usb_gadget/g1/functions/ncm.gs9/ifname
chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc
chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm
chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm/compatible_id
chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm/sub_compatible_id
chown system system /config/usb_gadget/g1/functions/ncm.gs9/qmult
chown system system /config/usb_gadget/g1/functions/ptp.gs1
chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc
chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP
chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP/compatible_id
chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP/sub_compatible_id
chown system system /config/usb_gadget/g1/functions/rndis.gs4
chown system system /config/usb_gadget/g1/functions/rndis.gs4/class
chown system system /config/usb_gadget/g1/functions/rndis.gs4/dev_addr
chown system system /config/usb_gadget/g1/functions/rndis.gs4/host_addr
chown system system /config/usb_gadget/g1/functions/rndis.gs4/ifname
chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc
chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis
chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis/compatible_id
chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis/sub_compatible_id
chown system system /config/usb_gadget/g1/functions/rndis.gs4/protocol
chown system system /config/usb_gadget/g1/functions/rndis.gs4/qmult
chown system system /config/usb_gadget/g1/functions/rndis.gs4/subclass
chown system system /config/usb_gadget/g1/functions/uvc.0
chown system system /config/usb_gadget/g1/functions/uvc.0/control
chown system system /config/usb_gadget/g1/functions/uvc.0/control/bInterfaceNumber
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/fs
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/fs/h
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/ss
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/ss/h
chown system system /config/usb_gadget/g1/functions/uvc.0/control/header
chown system system /config/usb_gadget/g1/functions/uvc.0/control/header/h
chown system system /config/usb_gadget/g1/functions/uvc.0/control/header/h/bcdUVC
chown system system /config/usb_gadget/g1/functions/uvc.0/control/header/h/dwClockFrequency
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/bmControls
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/bSourceID
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/bUnitID
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/iProcessing
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/wMaxMultiplier
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/bAssocTerminal
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/bmControls
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/bTerminalID
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/iTerminal
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wObjectiveFocalLengthMax
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wObjectiveFocalLengthMin
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wOcularFocalLength
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wTerminalType
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bAssocTerminal
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bSourceID
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bTerminalID
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/iTerminal
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/wTerminalType
chown system system /config/usb_gadget/g1/functions/uvc.0/function_name
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming_interval
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/bInterfaceNumber
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/fs
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/fs/h
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs/h
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss/h
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default/bColorPrimaries
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default/bMatrixCoefficients
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default/bTransferCharacteristics
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bmInfo
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bStillCaptureMethod
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bTerminalLink
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bTriggerSupport
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bTriggerUsage
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/m
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/bFrameIndex
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/bmCapabilities
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwDefaultFrameInterval
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxBitRate
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMinBitRate
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/bFrameIndex
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/bmCapabilities
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwDefaultFrameInterval
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwFrameInterval
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxBitRate
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxVideoFrameBufferSize
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMinBitRate
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wHeight
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wWidth
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/bFrameIndex
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/bmCapabilities
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwDefaultFrameInterval
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwFrameInterval
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxBitRate
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxVideoFrameBufferSize
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMinBitRate
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wHeight
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wWidth
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bFrameIndex
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bmCapabilities
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwDefaultFrameInterval
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxBitRate
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMinBitRate
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wWidth
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bAspectRatioX
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bAspectRatioY
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bDefaultFrameIndex
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bFormatIndex
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmaControls
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmFlags
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmInterlaceFlags
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed
chown system system /config/usb_gadget/g1/idProduct
chown system system /config/usb_gadget/g1/idVendor
chown system system /config/usb_gadget/g1/max_speed
chown system system /config/usb_gadget/g1/os_desc
chown system system /config/usb_gadget/g1/os_desc/b.1
chown system system /config/usb_gadget/g1/os_desc/b_vendor_code
chown system system /config/usb_gadget/g1/os_desc/qw_sign
chown system system /config/usb_gadget/g1/os_desc/use
chown system system /config/usb_gadget/g1/strings
chown system system /config/usb_gadget/g1/strings/0x409
chown system system /config/usb_gadget/g1/strings/0x409/manufacturer
chown system system /config/usb_gadget/g1/strings/0x409/product
chown system system /config/usb_gadget/g1/strings/0x409/serialnumber
setprop vendor.usb.functions.ready 1
on boot
write /config/usb_gadget/g1/bcdDevice 0x0510
# Use USB Gadget HAL
setprop sys.usb.configfs 2
# Enable in-kernel media-presence polling for SD cards
write /sys/module/block/parameters/events_dfl_poll_msecs 2000
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idProduct 0x4EE7
write /config/usb_gadget/g1/idVendor 0x18D1
on property:vendor.usb.config=*
start usbd
on property:persist.vendor.usb.usbradio.config=*
start usbd
on charger
mkdir /config/usb_gadget/g1
mkdir /config/usb_gadget/g1/strings/0x409
mkdir /config/usb_gadget/g1/configs/b.1
write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
write /config/usb_gadget/g1/configs/b.1/MaxPower 0x384
write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
write /config/usb_gadget/g1/bcdDevice 0x0510
mkdir /config/usb_gadget/g1/functions/midi.gs5
symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
setprop sys.usb.controller "11110000.dwc3"
setprop sys.usb.configfs 1
on property:ro.bootmode=charger
setprop sys.usb.config charger
on property:sys.usb.config=charger && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x18d1
write /config/usb_gadget/g1/idProduct 0x4eea
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}
write /sys/class/typec/port0/device/update_sdp_enum_timeout 0x1
setprop sys.usb.state ${sys.usb.config}
on property:vendor.usb.contaminantdisable=true
exec /vendor/bin/hw/disable_contaminant_detection.sh
on property:ro.bootmode=usbuwb
setprop persist.vendor.usb.usbradio.config uwb_acm
|