1# Copyright (c) 2011-2016, 2018 The Linux Foundation. All rights reserved.
2#
3# Redistribution and use in source and binary forms, with or without
4# modification, are permitted provided that the following conditions are met:
5#     * Redistributions of source code must retain the above copyright
6#       notice, this list of conditions and the following disclaimer.
7#     * Redistributions in binary form must reproduce the above copyright
8#       notice, this list of conditions and the following disclaimer in the
9#       documentation and/or other materials provided with the distribution.
10#     * Neither the name of The Linux Foundation nor
11#       the names of its contributors may be used to endorse or promote
12#       products derived from this software without specific prior written
13#       permission.
14#
15# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18# NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
19# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
22# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
23# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
24# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
25# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26#
27
28# controller name can be overridden from boot command line
29on init
30    setprop sys.usb.controller ${ro.boot.usbcontroller}
31
32on property:ro.boot.usbcontroller=*
33    setprop sys.usb.controller ${ro.boot.usbcontroller}
34
35on charger
36    mkdir /dev/usb-ffs 0770 shell shell
37    mkdir /dev/usb-ffs/adb 0770 shell shell
38    mount configfs none /config
39    mkdir /config/usb_gadget/g1 0770 shell shell
40    mkdir /config/usb_gadget/g1/strings/0x409 0770 shell shell
41    write /config/usb_gadget/g1/bcdUSB 0x0200
42    write /config/usb_gadget/g1/os_desc/use 1
43    write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
44    write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
45    write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
46    mkdir /config/usb_gadget/g1/functions/mass_storage.0
47    mkdir /config/usb_gadget/g1/functions/ffs.adb
48    mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell
49    mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell
50    write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
51    symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
52    mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
53    write /sys/class/android_usb/android0/f_ffs/aliases adb
54    enable vendor.qcom-usb-sh
55    start vendor.qcom-usb-sh
56    setprop sys.usb.config mass_storage
57
58on boot
59    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
60    mkdir /dev/usb-ffs 0770 shell shell
61    mkdir /dev/usb-ffs/adb 0770 shell shell
62    mount configfs none /config
63    mkdir /config/usb_gadget/g1 0770 shell shell
64    mkdir /config/usb_gadget/g1/strings/0x409 0770 shell shell
65    write /config/usb_gadget/g1/bcdUSB 0x0200
66    write /config/usb_gadget/g1/os_desc/use 1
67    write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
68    write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
69    write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
70    mkdir /config/usb_gadget/g1/functions/mass_storage.0
71    mkdir /config/usb_gadget/g1/functions/mtp.gs0
72    mkdir /config/usb_gadget/g1/functions/ptp.gs1
73    mkdir /config/usb_gadget/g1/functions/accessory.gs2
74    mkdir /config/usb_gadget/g1/functions/audio_source.gs3
75    mkdir /config/usb_gadget/g1/functions/midi.gs5
76    mkdir /config/usb_gadget/g1/functions/ffs.adb
77    mkdir /config/usb_gadget/g1/functions/diag.diag
78    mkdir /config/usb_gadget/g1/functions/diag.diag_mdm
79    mkdir /config/usb_gadget/g1/functions/cser.dun.0
80    mkdir /config/usb_gadget/g1/functions/cser.nmea.1
81    mkdir /config/usb_gadget/g1/functions/cser.dun.2
82    mkdir /config/usb_gadget/g1/functions/gsi.rmnet
83    mkdir /config/usb_gadget/g1/functions/gsi.rndis
84    mkdir /config/usb_gadget/g1/functions/gsi.dpl
85    mkdir /config/usb_gadget/g1/functions/qdss.qdss
86    mkdir /config/usb_gadget/g1/functions/qdss.qdss_mdm
87    mkdir /config/usb_gadget/g1/functions/rndis_bam.rndis
88    mkdir /config/usb_gadget/g1/functions/rndis.rndis
89    mkdir /config/usb_gadget/g1/functions/rmnet_bam.rmnet
90    mkdir /config/usb_gadget/g1/functions/rmnet_bam.dpl
91    mkdir /config/usb_gadget/g1/functions/rmnet_bam.rmnet_bam_dmux
92    mkdir /config/usb_gadget/g1/functions/rmnet_bam.dpl_bam_dmux
93    mkdir /config/usb_gadget/g1/functions/ncm.0
94    mkdir /config/usb_gadget/g1/functions/ccid.ccid
95    mkdir /config/usb_gadget/g1/functions/uac2.0
96    mkdir /config/usb_gadget/g1/functions/uvc.0
97    mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell
98    mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell
99    write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
100    write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
101    symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
102    mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
103    write /sys/class/android_usb/android0/f_ffs/aliases adb
104
105on load_persist_props_action
106    enable vendor.qcom-usb-sh
107
108service vendor.qcom-usb-sh /vendor/bin/init.qcom.usb.sh
109    class core
110    user root
111    oneshot
112    disabled
113
114on property:persist.vendor.usb.config=*
115    setprop persist.sys.usb.config ${persist.vendor.usb.config}
116
117on boot && property:ro.boot.usbconfigfs=true
118        setprop sys.usb.configfs 1
119
120# Following are the parameters required for usb functionality. They provide configurable options like
121# product_id/vendor id and allows specifying required functions:
122#
123# Required parameters:
124#
125# /sys/class/android_usb/android0/enable: Enables/disables usb composition
126# Value: 0 (disable), 1 (enable)
127#
128# /sys/class/android_usb/android0/idVendor: Stores Vendor ID
129# Value: 05c6 (Vendor id for Qualcomm Inc)
130#
131# /sys/class/android_usb/android0/idProduct: Stores Product id corresponding to usb composition
132# Value: 0x9xxx for composite interface, 0xFxxx for single interface
133#
134# /sys/class/android_usb/android0/f_diag/clients: Stores name of clients representing a diag interface.
135# Value: Passed one per interface. e.g. diag[,diag_mdm, diag_qsc, diag_mdm2]
136#
137# /sys/class/android_usb/android0/functions: Stores name of the function drivers used in usb composition.
138# Value: Passed one per function driver. e.g. diag[,adb]
139#
140#Optional parameters:
141#
142# /sys/class/android_usb/android0/f_serial/transports: Stores type of underlying transports used to
143# communicate to serial interface.
144# Value: Passed one per interface. One value represents control and data transport together.
145# e.g. smd[,sdio,tty,hsic]
146# Only required if serial interface is present.
147#
148# /sys/class/android_usb/android0/f_serial/transport_names: Stores name of the underlying transports
149# used to communicate to serial interface. This is used to distinguish between more than one interface
150# using same transport type.
151# Value: Passed one per interface. One value represents control and data transport together.
152# e.g. serial_hsic[,serial_hsusb]
153# Only required for transport type hsic, optional for other transport types.
154#
155# /sys/class/android_usb/android0/f_rmnet/transports: Stores type of underlying transports used to
156# communicate to rmnet interface.
157# Value: Passed two per interface as control, data transport type pair.
158# e.g. smd,bam[,hsuart,hsuart]
159# Only required if rmnet interface is present.
160#
161# /sys/class/android_usb/android0/f_rmnet/transport_names: Stores name of the underlying transports
162# used to communicate to rmnet interface. This is used to distinguish between more than one interface
163# using same transport type.
164# Value: Passed one per interface. One value represents control and data transport together.
165# e.g. rmnet_hsic[,rmnet_hsusb]
166# Only required for transport type hsic, optional for other transport types.
167
168# USB compositions
169on property:sys.usb.config=diag,serial_tty,serial_smd && property:sys.usb.configfs=0
170    write /sys/class/android_usb/android0/enable 0
171    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
172    write /sys/class/android_usb/android0/idVendor 05C6
173    write /sys/class/android_usb/android0/idProduct 9002
174    write /sys/class/android_usb/android0/f_diag/clients diag
175    write /sys/class/android_usb/android0/f_serial/transports tty,smd
176    write /sys/class/android_usb/android0/functions diag,serial
177    write /sys/class/android_usb/android0/enable 1
178    setprop sys.usb.state ${sys.usb.config}
179
180on property:sys.usb.config=diag,serial_tty,serial_smd,adb && property:sys.usb.configfs=0
181    write /sys/class/android_usb/android0/enable 0
182    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
183    write /sys/class/android_usb/android0/idVendor 05C6
184    write /sys/class/android_usb/android0/idProduct 9020
185    write /sys/class/android_usb/android0/f_diag/clients diag
186    write /sys/class/android_usb/android0/f_serial/transports smd,tty
187    write /sys/class/android_usb/android0/functions diag,adb,serial
188    write /sys/class/android_usb/android0/enable 1
189    start adbd
190    setprop sys.usb.state ${sys.usb.config}
191
192on property:sys.usb.config=diag,adb && property:sys.usb.configfs=0
193    write /sys/class/android_usb/android0/enable 0
194    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
195    write /sys/class/android_usb/android0/idVendor 05C6
196    write /sys/class/android_usb/android0/idProduct 901D
197    write /sys/class/android_usb/android0/f_diag/clients diag
198    write /sys/class/android_usb/android0/functions diag,adb
199    write /sys/class/android_usb/android0/enable 1
200    start adbd
201    setprop sys.usb.state ${sys.usb.config}
202
203on property:sys.usb.config=diag && property:sys.usb.configfs=0
204    write /sys/class/android_usb/android0/enable 0
205    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
206    write /sys/class/android_usb/android0/idVendor 05C6
207    write /sys/class/android_usb/android0/idProduct 900E
208    write /sys/class/android_usb/android0/f_diag/clients diag
209    write /sys/class/android_usb/android0/functions diag
210    write /sys/class/android_usb/android0/enable 1
211    setprop sys.usb.state ${sys.usb.config}
212
213on property:sys.usb.config=diag,serial_smd,rmnet_bam,adb && property:sys.usb.configfs=0
214    write /sys/class/android_usb/android0/enable 0
215    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
216    write /sys/class/android_usb/android0/idVendor 05C6
217    write /sys/class/android_usb/android0/idProduct 9091
218    write /sys/class/android_usb/android0/f_diag/clients diag
219    write /sys/class/android_usb/android0/f_serial/transports smd
220    write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
221    write /sys/class/android_usb/android0/functions diag,serial,rmnet,adb
222    write /sys/class/android_usb/android0/enable 1
223    start adbd
224    setprop sys.usb.state ${sys.usb.config}
225
226on property:sys.usb.config=diag,serial_smd,rmnet_qti_bam,adb && property:sys.usb.configfs=0
227    write /sys/class/android_usb/android0/enable 0
228    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
229    write /sys/class/android_usb/android0/idVendor 05C6
230    write /sys/class/android_usb/android0/idProduct 9091
231    write /sys/class/android_usb/android0/f_diag/clients diag
232    write /sys/class/android_usb/android0/f_serial/transports smd
233    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam
234    write /sys/class/android_usb/android0/functions diag,serial,rmnet,adb
235    write /sys/class/android_usb/android0/enable 1
236    start adbd
237    setprop sys.usb.state ${sys.usb.config}
238
239on property:sys.usb.config=diag,serial_smd,rmnet_bam && property:sys.usb.configfs=0
240    write /sys/class/android_usb/android0/enable 0
241    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
242    write /sys/class/android_usb/android0/idVendor 05C6
243    write /sys/class/android_usb/android0/idProduct 9092
244    write /sys/class/android_usb/android0/f_diag/clients diag
245    write /sys/class/android_usb/android0/f_serial/transports smd
246    write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
247    write /sys/class/android_usb/android0/functions diag,serial,rmnet
248    write /sys/class/android_usb/android0/enable 1
249    setprop sys.usb.state ${sys.usb.config}
250
251on property:sys.usb.config=diag,serial_smd,rmnet_qti_bam && property:sys.usb.configfs=0
252    write /sys/class/android_usb/android0/enable 0
253    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
254    write /sys/class/android_usb/android0/idVendor 05C6
255    write /sys/class/android_usb/android0/idProduct 9092
256    write /sys/class/android_usb/android0/f_diag/clients diag
257    write /sys/class/android_usb/android0/f_serial/transports smd
258    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam
259    write /sys/class/android_usb/android0/functions diag,serial,rmnet
260    write /sys/class/android_usb/android0/enable 1
261    setprop sys.usb.state ${sys.usb.config}
262
263on property:sys.usb.config=diag,serial_cdev,serial_tty,rmnet_ipa,mass_storage,adb && property:sys.usb.configfs=0
264    write /sys/class/android_usb/android0/enable 0
265    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
266    write /sys/class/android_usb/android0/idVendor 05C6
267    write /sys/class/android_usb/android0/idProduct 9025
268    write /sys/class/android_usb/android0/f_diag/clients diag
269    write /sys/class/android_usb/android0/f_serial/transports char_bridge,tty
270    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa
271    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
272    write /sys/class/android_usb/android0/enable 1
273    start adbd
274    setprop sys.usb.state ${sys.usb.config}
275
276on property:sys.usb.config=diag,serial_cdev,serial_tty,rmnet_ipa,mass_storage && property:sys.usb.configfs=0
277    write /sys/class/android_usb/android0/enable 0
278    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
279    write /sys/class/android_usb/android0/idVendor 05C6
280    write /sys/class/android_usb/android0/idProduct 9026
281    write /sys/class/android_usb/android0/f_diag/clients diag
282    write /sys/class/android_usb/android0/f_serial/transports char_bridge,tty
283    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa
284    write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
285    write /sys/class/android_usb/android0/enable 1
286    setprop sys.usb.state ${sys.usb.config}
287
288on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_bam,mass_storage,adb && property:sys.usb.configfs=0
289    write /sys/class/android_usb/android0/enable 0
290    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
291    write /sys/class/android_usb/android0/idVendor 05C6
292    write /sys/class/android_usb/android0/idProduct 9025
293    write /sys/class/android_usb/android0/f_diag/clients diag
294    write /sys/class/android_usb/android0/f_serial/transports smd,tty
295    write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
296    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
297    write /sys/class/android_usb/android0/enable 1
298    start adbd
299    setprop sys.usb.state ${sys.usb.config}
300
301on property:sys.usb.config=diag,acm_smd,acm_tty,rmnet_bam,mass_storage,adb && property:sys.usb.configfs=0
302    write /sys/class/android_usb/android0/enable 0
303    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
304    write /sys/class/android_usb/android0/idVendor 05C6
305    write /sys/class/android_usb/android0/idProduct 903D
306    write /sys/class/android_usb/android0/f_diag/clients diag
307    write /sys/class/android_usb/android0/f_acm/acm_transports smd,tty
308    write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
309    write /sys/class/android_usb/android0/functions diag,adb,acm,rmnet,mass_storage
310    write /sys/class/android_usb/android0/enable 1
311    start adbd
312    setprop sys.usb.state ${sys.usb.config}
313
314on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_bam,mass_storage && property:sys.usb.configfs=0
315    write /sys/class/android_usb/android0/enable 0
316    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
317    write /sys/class/android_usb/android0/idVendor 05C6
318    write /sys/class/android_usb/android0/idProduct 9026
319    write /sys/class/android_usb/android0/f_diag/clients diag
320    write /sys/class/android_usb/android0/f_serial/transports smd,tty
321    write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
322    write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
323    write /sys/class/android_usb/android0/enable 1
324    setprop sys.usb.state ${sys.usb.config}
325
326on property:sys.usb.config=diag,acm_smd,acm_tty,rmnet_bam,mass_storage && property:sys.usb.configfs=0
327    write /sys/class/android_usb/android0/enable 0
328    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
329    write /sys/class/android_usb/android0/idVendor 05C6
330    write /sys/class/android_usb/android0/idProduct 903E
331    write /sys/class/android_usb/android0/f_diag/clients diag
332    write /sys/class/android_usb/android0/f_acm/acm_transports smd,tty
333    write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
334    write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
335    write /sys/class/android_usb/android0/enable 1
336    setprop sys.usb.state ${sys.usb.config}
337
338on property:sys.usb.config=diag,diag_mdm,serial_sdio,serial_smd,rmnet_smd_sdio,mass_storage,adb && property:sys.usb.configfs=0
339    write /sys/class/android_usb/android0/enable 0
340    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
341    write /sys/class/android_usb/android0/idVendor 05C6
342    write /sys/class/android_usb/android0/idProduct 9037
343    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
344    write /sys/class/android_usb/android0/f_serial/transports sdio,smd
345    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet_smd_sdio,mass_storage
346    write /sys/class/android_usb/android0/enable 1
347    start adbd
348    setprop sys.usb.state ${sys.usb.config}
349
350on property:sys.usb.config=diag,diag_mdm,acm_sdio,acm_smd,rmnet_smd_sdio,mass_storage,adb && property:sys.usb.configfs=0
351    write /sys/class/android_usb/android0/enable 0
352    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
353    write /sys/class/android_usb/android0/idVendor 05C6
354    write /sys/class/android_usb/android0/idProduct 903B
355    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
356    write /sys/class/android_usb/android0/f_acm/acm_transports sdio,smd
357    write /sys/class/android_usb/android0/functions diag,adb,acm,rmnet_smd_sdio,mass_storage
358    write /sys/class/android_usb/android0/enable 1
359    start adbd
360    setprop sys.usb.state ${sys.usb.config}
361
362on property:sys.usb.config=diag,diag_mdm,serial_sdio,serial_smd,rmnet_smd_sdio,mass_storage && property:sys.usb.configfs=0
363    write /sys/class/android_usb/android0/enable 0
364    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
365    write /sys/class/android_usb/android0/idVendor 05C6
366    write /sys/class/android_usb/android0/idProduct 9038
367    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
368    write /sys/class/android_usb/android0/f_serial/transports sdio,smd
369    write /sys/class/android_usb/android0/functions diag,serial,rmnet_smd_sdio,mass_storage
370    write /sys/class/android_usb/android0/enable 1
371    setprop sys.usb.state ${sys.usb.config}
372
373on property:sys.usb.config=diag,diag_mdm,acm_sdio,acm_smd,rmnet_smd_sdio,mass_storage && property:sys.usb.configfs=0
374    write /sys/class/android_usb/android0/enable 0
375    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
376    write /sys/class/android_usb/android0/idVendor 05C6
377    write /sys/class/android_usb/android0/idProduct 903C
378    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
379    write /sys/class/android_usb/android0/f_acm/acm_transports sdio,smd
380    write /sys/class/android_usb/android0/functions diag,acm,rmnet_smd_sdio,mass_storage
381    write /sys/class/android_usb/android0/enable 1
382    setprop sys.usb.state ${sys.usb.config}
383
384on property:sys.usb.config=diag,diag_mdm,serial_sdio,serial_tty,rmnet_sdio,mass_storage,adb && property:sys.usb.configfs=0
385    write /sys/class/android_usb/android0/enable 0
386    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
387    write /sys/class/android_usb/android0/idVendor 05C6
388    write /sys/class/android_usb/android0/idProduct 9031
389    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
390    write /sys/class/android_usb/android0/f_serial/transports sdio,tty
391    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet_sdio,mass_storage
392    write /sys/class/android_usb/android0/enable 1
393    start adbd
394    setprop sys.usb.state ${sys.usb.config}
395
396on property:sys.usb.config=diag,diag_mdm,acm_sdio,acm_tty,rmnet_sdio,mass_storage,adb && property:sys.usb.configfs=0
397    write /sys/class/android_usb/android0/enable 0
398    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
399    write /sys/class/android_usb/android0/idVendor 05C6
400    write /sys/class/android_usb/android0/idProduct 903B
401    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
402    write /sys/class/android_usb/android0/f_acm/acm_transports sdio,tty
403    write /sys/class/android_usb/android0/functions diag,adb,acm,rmnet_sdio,mass_storage
404    write /sys/class/android_usb/android0/enable 1
405    start adbd
406    setprop sys.usb.state ${sys.usb.config}
407
408on property:sys.usb.config=diag,diag_mdm,serial_sdio,serial_tty,rmnet_sdio,mass_storage && property:sys.usb.configfs=0
409    write /sys/class/android_usb/android0/enable 0
410    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
411    write /sys/class/android_usb/android0/idVendor 05C6
412    write /sys/class/android_usb/android0/idProduct 9032
413    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
414    write /sys/class/android_usb/android0/f_serial/transports sdio,tty
415    write /sys/class/android_usb/android0/functions diag,serial,rmnet_sdio,mass_storage
416    write /sys/class/android_usb/android0/enable 1
417    setprop sys.usb.state ${sys.usb.config}
418
419on property:sys.usb.config=diag,diag_mdm,acm_sdio,acm_tty,rmnet_sdio,mass_storage && property:sys.usb.configfs=0
420    write /sys/class/android_usb/android0/enable 0
421    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
422    write /sys/class/android_usb/android0/idVendor 05C6
423    write /sys/class/android_usb/android0/idProduct 903C
424    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
425    write /sys/class/android_usb/android0/f_acm/acm_transports sdio,tty
426    write /sys/class/android_usb/android0/functions diag,acm,rmnet_sdio,mass_storage
427    write /sys/class/android_usb/android0/enable 1
428    setprop sys.usb.state ${sys.usb.config}
429
430on property:sys.usb.config=diag,serial_tty,serial_tty,rmnet_smd,mass_storage,adb && property:sys.usb.configfs=0
431    write /sys/class/android_usb/android0/enable 0
432    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
433    write /sys/class/android_usb/android0/idVendor 05C6
434    write /sys/class/android_usb/android0/idProduct 9025
435    write /sys/class/android_usb/android0/f_diag/clients diag
436    write /sys/class/android_usb/android0/f_serial/transports tty,tty
437    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet_smd,mass_storage
438    write /sys/class/android_usb/android0/enable 1
439    start adbd
440    start vendor.port-bridge
441    setprop sys.usb.state ${sys.usb.config}
442
443on property:sys.usb.config=diag,acm_tty,acm_tty,rmnet_smd,mass_storage,adb && property:sys.usb.configfs=0
444    write /sys/class/android_usb/android0/enable 0
445    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
446    write /sys/class/android_usb/android0/idVendor 05C6
447    write /sys/class/android_usb/android0/idProduct 903D
448    write /sys/class/android_usb/android0/f_diag/clients diag
449    write /sys/class/android_usb/android0/f_acm/acm_transports tty,tty
450    write /sys/class/android_usb/android0/functions diag,adb,acm,rmnet_smd,mass_storage
451    write /sys/class/android_usb/android0/enable 1
452    start adbd
453    start vendor.port-bridge
454    setprop sys.usb.state ${sys.usb.config}
455
456on property:sys.usb.config=diag,serial_tty,serial_tty,rmnet_smd,mass_storage && property:sys.usb.configfs=0
457    write /sys/class/android_usb/android0/enable 0
458    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
459    write /sys/class/android_usb/android0/idVendor 05C6
460    write /sys/class/android_usb/android0/idProduct 9026
461    write /sys/class/android_usb/android0/f_diag/clients diag
462    write /sys/class/android_usb/android0/f_serial/transports tty,tty
463    write /sys/class/android_usb/android0/functions diag,serial,rmnet_smd,mass_storage
464    write /sys/class/android_usb/android0/enable 1
465    start vendor.port-bridge
466    setprop sys.usb.state ${sys.usb.config}
467
468on property:sys.usb.config=diag,acm_tty,acm_tty,rmnet_smd,mass_storage && property:sys.usb.configfs=0
469    write /sys/class/android_usb/android0/enable 0
470    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
471    write /sys/class/android_usb/android0/idVendor 05C6
472    write /sys/class/android_usb/android0/idProduct 903E
473    write /sys/class/android_usb/android0/f_diag/clients diag
474    write /sys/class/android_usb/android0/f_acm/acm_transports tty,tty
475    write /sys/class/android_usb/android0/functions diag,serial,rmnet_smd,mass_storage
476    write /sys/class/android_usb/android0/enable 1
477    setprop sys.usb.state ${sys.usb.config}
478
479on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_smd,mass_storage,adb && property:sys.usb.configfs=0
480    write /sys/class/android_usb/android0/enable 0
481    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
482    write /sys/class/android_usb/android0/idVendor 05C6
483    write /sys/class/android_usb/android0/idProduct 9025
484    write /sys/class/android_usb/android0/f_diag/clients diag
485    write /sys/class/android_usb/android0/f_serial/transports smd,tty
486    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet_smd,mass_storage
487    write /sys/class/android_usb/android0/enable 1
488    start adbd
489    setprop sys.usb.state ${sys.usb.config}
490
491on property:sys.usb.config=diag,acm_smd,acm_tty,rmnet_smd,mass_storage,adb && property:sys.usb.configfs=0
492    write /sys/class/android_usb/android0/enable 0
493    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
494    write /sys/class/android_usb/android0/idVendor 05C6
495    write /sys/class/android_usb/android0/idProduct 903D
496    write /sys/class/android_usb/android0/f_diag/clients diag
497    write /sys/class/android_usb/android0/f_acm/acm_transports smd,tty
498    write /sys/class/android_usb/android0/functions diag,adb,acm,rmnet_smd,mass_storage
499    write /sys/class/android_usb/android0/enable 1
500    start adbd
501    start vendor.port-bridge
502    setprop sys.usb.state ${sys.usb.config}
503
504on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_smd,mass_storage && property:sys.usb.configfs=0
505    write /sys/class/android_usb/android0/enable 0
506    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
507    write /sys/class/android_usb/android0/idVendor 05C6
508    write /sys/class/android_usb/android0/idProduct 9026
509    write /sys/class/android_usb/android0/f_diag/clients diag
510    write /sys/class/android_usb/android0/f_serial/transports smd,tty
511    write /sys/class/android_usb/android0/functions diag,serial,rmnet_smd,mass_storage
512    write /sys/class/android_usb/android0/enable 1
513    setprop sys.usb.state ${sys.usb.config}
514
515on property:sys.usb.config=diag,acm_smd,acm_tty,rmnet_smd,mass_storage && property:sys.usb.configfs=0
516    write /sys/class/android_usb/android0/enable 0
517    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
518    write /sys/class/android_usb/android0/idVendor 05C6
519    write /sys/class/android_usb/android0/idProduct 903E
520    write /sys/class/android_usb/android0/f_diag/clients diag
521    write /sys/class/android_usb/android0/f_acm/acm_transports smd,tty
522    write /sys/class/android_usb/android0/functions diag,serial,rmnet_smd,mass_storage
523    write /sys/class/android_usb/android0/enable 1
524    setprop sys.usb.state ${sys.usb.config}
525
526# RmNet using USB BAM to IPA BAM
527on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_ipa,mass_storage,adb && property:sys.usb.configfs=0
528    write /sys/class/android_usb/android0/enable 0
529    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
530    write /sys/class/android_usb/android0/idVendor 05C6
531    write /sys/class/android_usb/android0/idProduct 9025
532    write /sys/class/android_usb/android0/f_diag/clients diag
533    write /sys/class/android_usb/android0/f_serial/transports smd,tty
534    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa
535    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
536    write /sys/class/android_usb/android0/enable 1
537    start adbd
538    setprop sys.usb.state ${sys.usb.config}
539
540on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_ipa,mass_storage && property:sys.usb.configfs=0
541    write /sys/class/android_usb/android0/enable 0
542    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
543    write /sys/class/android_usb/android0/idVendor 05C6
544    write /sys/class/android_usb/android0/idProduct 9026
545    write /sys/class/android_usb/android0/f_diag/clients diag
546    write /sys/class/android_usb/android0/f_serial/transports smd,tty
547    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa
548    write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
549    write /sys/class/android_usb/android0/enable 1
550    setprop sys.usb.state ${sys.usb.config}
551
552on property:sys.usb.config=diag,serial_smd,rmnet_ipa,adb && property:sys.usb.configfs=0
553    write /sys/class/android_usb/android0/enable 0
554    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
555    write /sys/class/android_usb/android0/idVendor 05C6
556    write /sys/class/android_usb/android0/idProduct 9091
557    write /sys/class/android_usb/android0/f_diag/clients diag
558    write /sys/class/android_usb/android0/f_serial/transports smd
559    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa
560    write /sys/class/android_usb/android0/functions diag,serial,rmnet,adb
561    write /sys/class/android_usb/android0/enable 1
562    start adbd
563    setprop sys.usb.state ${sys.usb.config}
564
565on property:sys.usb.config=diag,serial_smd,rmnet_ipa && property:sys.usb.configfs=0
566    write /sys/class/android_usb/android0/enable 0
567    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
568    write /sys/class/android_usb/android0/idVendor 05C6
569    write /sys/class/android_usb/android0/idProduct 9092
570    write /sys/class/android_usb/android0/f_diag/clients diag
571    write /sys/class/android_usb/android0/f_serial/transports smd
572    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa
573    write /sys/class/android_usb/android0/functions diag,serial,rmnet
574    write /sys/class/android_usb/android0/enable 1
575    setprop sys.usb.state ${sys.usb.config}
576
577# Fusion 3 composition
578on property:sys.usb.config=diag,serial_hsic,serial_tty,rmnet_hsic,mass_storage,adb && property:sys.usb.configfs=0
579    write /sys/class/android_usb/android0/enable 0
580    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
581    write /sys/class/android_usb/android0/idVendor 05C6
582    write /sys/class/android_usb/android0/idProduct 9025
583    write /sys/class/android_usb/android0/f_diag/clients diag
584    write /sys/class/android_usb/android0/f_serial/transports hsic,tty
585    write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic
586    write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
587    write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic
588    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
589    write /sys/module/mdm_bridge/parameters/rx_rmnet_buffer_size 16384
590    write /sys/module/mdm_bridge/parameters/max_rx_urbs 20
591    write /sys/module/g_android/parameters/ghsic_data_rx_req_size 16384
592    write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size 20
593    write /sys/class/android_usb/android0/enable 1
594    start adbd
595    setprop sys.usb.state ${sys.usb.config}
596
597# Fusion 3 composition with diag_mdm and adb
598on property:sys.usb.config=diag,diag_mdm,serial_hsic,serial_tty,rmnet_hsic,mass_storage,adb && property:sys.usb.configfs=0
599    write /sys/class/android_usb/android0/enable 0
600    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
601    write /sys/class/android_usb/android0/idVendor 05C6
602    write /sys/class/android_usb/android0/idProduct 9031
603    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
604    write /sys/class/android_usb/android0/f_serial/transports hsic,tty
605    write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic
606    write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
607    write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic
608    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
609    write /sys/module/mdm_bridge/parameters/rx_rmnet_buffer_size 16384
610    write /sys/module/mdm_bridge/parameters/max_rx_urbs 20
611    write /sys/module/g_android/parameters/ghsic_data_rx_req_size 16384
612    write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size 20
613    write /sys/class/android_usb/android0/enable 1
614    start adbd
615    setprop sys.usb.state ${sys.usb.config}
616
617# Fusion 3 composition with diag_mdm
618on property:sys.usb.config=diag,diag_mdm,serial_hsic,serial_tty,rmnet_hsic,mass_storage && property:sys.usb.configfs=0
619    write /sys/class/android_usb/android0/enable 0
620    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
621    write /sys/class/android_usb/android0/idVendor 05C6
622    write /sys/class/android_usb/android0/idProduct 9032
623    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
624    write /sys/class/android_usb/android0/f_serial/transports hsic,tty
625    write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic
626    write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
627    write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic
628    write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
629    write /sys/module/mdm_bridge/parameters/rx_rmnet_buffer_size 16384
630    write /sys/module/mdm_bridge/parameters/max_rx_urbs 20
631    write /sys/module/g_android/parameters/ghsic_data_rx_req_size 16384
632    write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size 20
633    write /sys/class/android_usb/android0/enable 1
634    setprop sys.usb.state ${sys.usb.config}
635
636# Fusion 3 DSDA composition with adb
637on property:sys.usb.config=diag,diag_mdm,diag_qsc,serial_hsic,serial_hsuart,rmnet_hsic,rmnet_hsuart,mass_storage,adb && property:sys.usb.configfs=0
638    write /sys/class/android_usb/android0/enable 0
639    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
640    write /sys/class/android_usb/android0/idVendor 05C6
641    write /sys/class/android_usb/android0/idProduct 9065
642    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc
643    write /sys/class/android_usb/android0/f_serial/transports hsic,hsuart
644    write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic,serial_hsuart
645    write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic,hsuart,hsuart
646    write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic,rmnet_hsuart
647    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
648    write /sys/module/mdm_bridge/parameters/rx_rmnet_buffer_size 16384
649    write /sys/module/mdm_bridge/parameters/max_rx_urbs 20
650    write /sys/module/g_android/parameters/ghsic_data_rx_req_size 16384
651    write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size 20
652    write /sys/class/android_usb/android0/enable 1
653    start adbd
654    setprop sys.usb.state ${sys.usb.config}
655
656# Fusion 3 DSDA composition without adb
657on property:sys.usb.config=diag,diag_mdm,diag_qsc,serial_hsic,serial_hsuart,rmnet_hsic,rmnet_hsuart,mass_storage && property:sys.usb.configfs=0
658    write /sys/class/android_usb/android0/enable 0
659    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
660    write /sys/class/android_usb/android0/idVendor 05C6
661    write /sys/class/android_usb/android0/idProduct 9066
662    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc
663    write /sys/class/android_usb/android0/f_serial/transports hsic,hsuart
664    write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic,serial_hsuart
665    write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic,hsuart,hsuart
666    write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic,rmnet_hsuart
667    write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
668    write /sys/module/mdm_bridge/parameters/rx_rmnet_buffer_size 16384
669    write /sys/module/mdm_bridge/parameters/max_rx_urbs 20
670    write /sys/module/g_android/parameters/ghsic_data_rx_req_size 16384
671    write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size 20
672    write /sys/class/android_usb/android0/enable 1
673    setprop sys.usb.state ${sys.usb.config}
674
675# Fusion 3 DSDA2 composition with adb
676on property:sys.usb.config=diag,diag_mdm,diag_mdm2,serial_hsic,serial_hsusb,rmnet_hsic,rmnet_hsusb,mass_storage,adb && property:sys.usb.configfs=0
677    write /sys/class/android_usb/android0/enable 0
678    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
679    write /sys/class/android_usb/android0/idVendor 05C6
680    write /sys/class/android_usb/android0/idProduct 9065
681    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_mdm2
682    write /sys/class/android_usb/android0/f_serial/transports hsic,hsic
683    write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic,serial_hsusb
684    write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic,hsic,hsic
685    write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic,rmnet_hsusb
686    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
687    write /sys/module/mdm_bridge/parameters/rx_rmnet_buffer_size 16384
688    write /sys/module/mdm_bridge/parameters/max_rx_urbs 20
689    write /sys/module/g_android/parameters/ghsic_data_rx_req_size 16384
690    write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size 20
691    write /sys/class/android_usb/android0/enable 1
692    start adbd
693    setprop sys.usb.state ${sys.usb.config}
694
695# Fusion 3 DSDA2 composition without adb
696on property:sys.usb.config=diag,diag_mdm,diag_mdm2,serial_hsic,serial_hsusb,rmnet_hsic,rmnet_hsusb,mass_storage && property:sys.usb.configfs=0
697    write /sys/class/android_usb/android0/enable 0
698    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
699    write /sys/class/android_usb/android0/idVendor 05C6
700    write /sys/class/android_usb/android0/idProduct 9066
701    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_mdm2
702    write /sys/class/android_usb/android0/f_serial/transports hsic,hsic
703    write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic,serial_hsusb
704    write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic,hsic,hsic
705    write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic,rmnet_hsusb
706    write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
707    write /sys/module/mdm_bridge/parameters/rx_rmnet_buffer_size 16384
708    write /sys/module/mdm_bridge/parameters/max_rx_urbs 20
709    write /sys/module/g_android/parameters/ghsic_data_rx_req_size 16384
710    write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size 20
711    write /sys/class/android_usb/android0/enable 1
712    setprop sys.usb.state ${sys.usb.config}
713
714# Fusion PCIe composition with diag_mdm and adb
715# Serial & RmNet bridged in userspace with tty and qti/ether
716on property:sys.usb.config=diag,diag_mdm,serial_tty,rmnet_qti_ether,mass_storage,adb && property:sys.usb.configfs=0
717    write /sys/class/android_usb/android0/enable 0
718    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
719    write /sys/class/android_usb/android0/idVendor 05C6
720    write /sys/class/android_usb/android0/idProduct 9035
721    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
722    write /sys/class/android_usb/android0/f_serial/transports tty
723    write /sys/class/android_usb/android0/f_rmnet/transports qti,ether
724    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
725    write /sys/class/android_usb/android0/enable 1
726    start adbd
727    setprop sys.usb.state ${sys.usb.config}
728
729# Fusion PCIe composition with diag_mdm
730# Serial & RmNet bridged in userspace with tty and qti/ether
731on property:sys.usb.config=diag,diag_mdm,serial_hsic,rmnet_hsic,mass_storage && property:sys.usb.configfs=0
732    write /sys/class/android_usb/android0/enable 0
733    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
734    write /sys/class/android_usb/android0/idVendor 05C6
735    write /sys/class/android_usb/android0/idProduct 9036
736    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
737    write /sys/class/android_usb/android0/f_serial/transports tty
738    write /sys/class/android_usb/android0/f_rmnet/transports qti,ether
739    write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
740    write /sys/class/android_usb/android0/enable 1
741    setprop sys.usb.state ${sys.usb.config}
742
743# Fusion HSIC/PCIe Hybrid composition with diag_mdm and adb
744# RmNet is bridged over PCIe using qti,ether ctrl/data transports
745on property:sys.usb.config=diag,diag_mdm,serial_hsic,rmnet_qti_ether,mass_storage,adb && property:sys.usb.configfs=0
746    write /sys/class/android_usb/android0/enable 0
747    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
748    write /sys/class/android_usb/android0/idVendor 05C6
749    write /sys/class/android_usb/android0/idProduct 9035
750    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
751    write /sys/class/android_usb/android0/f_serial/transports hsic
752    write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic
753    write /sys/class/android_usb/android0/f_rmnet/transports qti,ether
754    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
755    write /sys/class/android_usb/android0/enable 1
756    start adbd
757    setprop sys.usb.state ${sys.usb.config}
758
759# Fusion HSIC/PCIe Hybrid composition with diag_mdm
760# RmNet is bridged over PCIe using qti,ether ctrl/data transports
761on property:sys.usb.config=diag,diag_mdm,serial_hsic,rmnet_hsic,mass_storage && property:sys.usb.configfs=0
762    write /sys/class/android_usb/android0/enable 0
763    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
764    write /sys/class/android_usb/android0/idVendor 05C6
765    write /sys/class/android_usb/android0/idProduct 9036
766    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
767    write /sys/class/android_usb/android0/f_serial/transports hsic
768    write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic
769    write /sys/class/android_usb/android0/f_rmnet/transports qti,ether
770    write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
771    write /sys/class/android_usb/android0/enable 1
772    setprop sys.usb.state ${sys.usb.config}
773
774# Fusion PCIe composition with diag_mdm
775# Serial & RmNet bridged in userspace with port bridge and qti/ether
776on property:sys.usb.config=diag,diag_mdm,serial_cdev,rmnet_qti_ether,mass_storage && property:sys.usb.configfs=0
777    write /sys/class/android_usb/android0/enable 0
778    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
779    write /sys/class/android_usb/android0/idVendor 05C6
780    write /sys/class/android_usb/android0/idProduct 9036
781    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
782    write /sys/class/android_usb/android0/f_serial/transports char_bridge
783    write /sys/class/android_usb/android0/f_rmnet/transports qti,ether
784    write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
785    write /sys/class/android_usb/android0/enable 1
786    setprop sys.usb.state ${sys.usb.config}
787
788on property:sys.usb.config=diag,diag_mdm,serial_cdev,rmnet_qti_ether,mass_storage,adb && property:sys.usb.configfs=0
789    write /sys/class/android_usb/android0/enable 0
790    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
791    write /sys/class/android_usb/android0/idVendor 05C6
792    write /sys/class/android_usb/android0/idProduct 9035
793    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
794    write /sys/class/android_usb/android0/f_serial/transports char_bridge
795    write /sys/class/android_usb/android0/f_rmnet/transports qti,ether
796    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
797    write /sys/class/android_usb/android0/enable 1
798    start adbd
799    setprop sys.usb.state ${sys.usb.config}
800
801# Fusion 2.2 composition with diag_qsc and adb
802on property:sys.usb.config=diag,diag_qsc,serial_smd,serial_tty,serial_hsuart,rmnet_hsuart,mass_storage,adb && property:sys.usb.configfs=0
803    write /sys/class/android_usb/android0/enable 0
804    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
805    write /sys/class/android_usb/android0/idVendor 05C6
806    write /sys/class/android_usb/android0/idProduct 9053
807    write /sys/class/android_usb/android0/f_diag/clients diag,diag_qsc
808    write /sys/class/android_usb/android0/f_serial/transports smd,tty,hsuart
809    write /sys/class/android_usb/android0/f_rmnet/transports smd,bam,hsuart,hsuart
810    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
811    write /sys/class/android_usb/android0/enable 1
812    start adbd
813    setprop sys.usb.state ${sys.usb.config}
814
815# Fusion 2.2 composition with diag_qsc
816on property:sys.usb.config=diag,diag_qsc,serial_smd,serial_tty,serial_hsuart,rmnet_hsuart,mass_storage && property:sys.usb.configfs=0
817    write /sys/class/android_usb/android0/enable 0
818    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
819    write /sys/class/android_usb/android0/idVendor 05C6
820    write /sys/class/android_usb/android0/idProduct 9054
821    write /sys/class/android_usb/android0/f_diag/clients diag,diag_qsc
822    write /sys/class/android_usb/android0/f_serial/transports smd,tty,hsuart
823    write /sys/class/android_usb/android0/f_rmnet/transports smd,bam,hsuart,hsuart
824    write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
825    write /sys/class/android_usb/android0/enable 1
826    setprop sys.usb.state ${sys.usb.config}
827
828on property:vendor.usb.tethering=true
829    write /sys/class/net/rndis0/queues/rx-0/rps_cpus ${vendor.usb.rps_mask}
830
831on property:sys.usb.config=rndis
832    setprop sys.usb.config rndis,${persist.vendor.usb.config.extra}
833
834on property:sys.usb.config=rndis,none && property:sys.usb.configfs=0
835    write /sys/class/android_usb/android0/enable 0
836    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
837    write /sys/class/android_usb/android0/idVendor 05C6
838    write /sys/class/android_usb/android0/idProduct F00E
839    write /sys/class/android_usb/android0/f_rndis/wceis 1
840    write /sys/class/android_usb/android0/functions rndis
841    write /sys/class/android_usb/android0/enable 1
842    setprop sys.usb.state rndis
843
844on property:sys.usb.config=rndis,adb && property:sys.usb.configfs=0
845    setprop sys.usb.config rndis,${persist.vendor.usb.config.extra},adb
846
847on property:sys.usb.config=rndis,none,adb && property:sys.usb.configfs=0
848    write /sys/class/android_usb/android0/enable 0
849    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
850    write /sys/class/android_usb/android0/idVendor 05C6
851    write /sys/class/android_usb/android0/idProduct 9024
852    write /sys/class/android_usb/android0/f_rndis/wceis 1
853    write /sys/class/android_usb/android0/functions rndis,adb
854    write /sys/class/android_usb/android0/enable 1
855    start adbd
856    setprop sys.usb.state rndis,adb
857
858on property:sys.usb.config=rndis,diag && property:sys.usb.configfs=0
859    write /sys/class/android_usb/android0/enable 0
860    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
861    write /sys/class/android_usb/android0/idVendor 05C6
862    write /sys/class/android_usb/android0/idProduct 902C
863    write /sys/class/android_usb/android0/f_rndis/wceis 1
864    write /sys/class/android_usb/android0/f_diag/clients diag
865    write /sys/class/android_usb/android0/functions rndis,diag
866    write /sys/class/android_usb/android0/enable 1
867    setprop sys.usb.state rndis
868
869on property:sys.usb.config=rndis,diag,adb && property:sys.usb.configfs=0
870    write /sys/class/android_usb/android0/enable 0
871    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
872    write /sys/class/android_usb/android0/idVendor 05C6
873    write /sys/class/android_usb/android0/idProduct 902D
874    write /sys/class/android_usb/android0/f_rndis/wceis 1
875    write /sys/class/android_usb/android0/f_diag/clients diag
876    write /sys/class/android_usb/android0/functions rndis,diag,adb
877    write /sys/class/android_usb/android0/enable 1
878    start adbd
879    setprop sys.usb.state rndis,adb
880
881# DPL is implemented using QDSS
882on property:sys.usb.config=rndis,diag,dpl && property:sys.usb.configfs=0
883    write /sys/class/android_usb/android0/enable 0
884    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
885    write /sys/class/android_usb/android0/idVendor 05C6
886    write /sys/class/android_usb/android0/idProduct 90BF
887    write /sys/class/android_usb/android0/f_rndis/wceis 1
888    write /sys/class/android_usb/android0/f_diag/clients diag
889    write /sys/class/android_usb/android0/f_qdss/debug_intf 0
890    write /sys/class/android_usb/android0/f_qdss/transports qti,bam2bam_ipa
891    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
892    write /sys/class/android_usb/android0/functions rndis,diag,qdss
893    write /sys/class/android_usb/android0/enable 1
894    setprop sys.usb.state rndis
895
896# DPL is implemented using QDSS
897on property:sys.usb.config=rndis,diag,dpl,adb && property:sys.usb.configfs=0
898    write /sys/class/android_usb/android0/enable 0
899    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
900    write /sys/class/android_usb/android0/idVendor 05C6
901    write /sys/class/android_usb/android0/idProduct 90C0
902    write /sys/class/android_usb/android0/f_rndis/wceis 1
903    write /sys/class/android_usb/android0/f_diag/clients diag
904    write /sys/class/android_usb/android0/f_qdss/debug_intf 0
905    write /sys/class/android_usb/android0/f_qdss/transports qti,bam2bam_ipa
906    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
907    write /sys/class/android_usb/android0/functions rndis,diag,qdss,adb
908    write /sys/class/android_usb/android0/enable 1
909    start adbd
910    setprop sys.usb.state rndis,adb
911
912on property:sys.usb.config=rndis,serial_smd && property:sys.usb.configfs=0
913    write /sys/class/android_usb/android0/enable 0
914    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
915    write /sys/class/android_usb/android0/idVendor 05C6
916    write /sys/class/android_usb/android0/idProduct 90B3
917    write /sys/class/android_usb/android0/f_rndis/wceis 1
918    write /sys/class/android_usb/android0/f_serial/transports smd
919    write /sys/class/android_usb/android0/functions rndis,serial
920    write /sys/class/android_usb/android0/enable 1
921    setprop sys.usb.state rndis
922
923on property:sys.usb.config=rndis,serial_smd,adb && property:sys.usb.configfs=0
924    write /sys/class/android_usb/android0/enable 0
925    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
926    write /sys/class/android_usb/android0/idVendor 05C6
927    write /sys/class/android_usb/android0/idProduct 90B4
928    write /sys/class/android_usb/android0/f_rndis/wceis 1
929    write /sys/class/android_usb/android0/f_serial/transports smd
930    write /sys/class/android_usb/android0/functions rndis,serial,adb
931    write /sys/class/android_usb/android0/enable 1
932    start adbd
933    setprop sys.usb.state rndis,adb
934
935on property:sys.usb.config=rndis,serial_smd,diag && property:sys.usb.configfs=0
936    write /sys/class/android_usb/android0/enable 0
937    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
938    write /sys/class/android_usb/android0/idVendor 05C6
939    write /sys/class/android_usb/android0/idProduct 90B5
940    write /sys/class/android_usb/android0/f_rndis/wceis 1
941    write /sys/class/android_usb/android0/f_diag/clients diag
942    write /sys/class/android_usb/android0/f_serial/transports smd
943    write /sys/class/android_usb/android0/functions rndis,serial,diag
944    write /sys/class/android_usb/android0/enable 1
945    setprop sys.usb.state rndis
946
947on property:sys.usb.config=rndis,serial_smd,diag,adb && property:sys.usb.configfs=0
948    write /sys/class/android_usb/android0/enable 0
949    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
950    write /sys/class/android_usb/android0/idVendor 05C6
951    write /sys/class/android_usb/android0/idProduct 90B6
952    write /sys/class/android_usb/android0/f_rndis/wceis 1
953    write /sys/class/android_usb/android0/f_diag/clients diag
954    write /sys/class/android_usb/android0/f_serial/transports smd
955    write /sys/class/android_usb/android0/functions rndis,serial,diag,adb
956    write /sys/class/android_usb/android0/enable 1
957    start adbd
958    setprop sys.usb.state rndis,adb
959
960on property:sys.usb.config=rndis,serial_cdev,diag && property:sys.usb.configfs=0
961    write /sys/class/android_usb/android0/enable 0
962    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
963    write /sys/class/android_usb/android0/idVendor 05C6
964    write /sys/class/android_usb/android0/idProduct 90B5
965    write /sys/class/android_usb/android0/f_rndis/wceis 1
966    write /sys/class/android_usb/android0/f_diag/clients diag
967    write /sys/class/android_usb/android0/f_serial/transports char_bridge
968    write /sys/class/android_usb/android0/functions rndis,serial,diag
969    write /sys/class/android_usb/android0/enable 1
970    setprop sys.usb.state rndis
971
972on property:sys.usb.config=rndis,serial_cdev,diag,adb && property:sys.usb.configfs=0
973    write /sys/class/android_usb/android0/enable 0
974    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
975    write /sys/class/android_usb/android0/idVendor 05C6
976    write /sys/class/android_usb/android0/idProduct 90B6
977    write /sys/class/android_usb/android0/f_rndis/wceis 1
978    write /sys/class/android_usb/android0/f_diag/clients diag
979    write /sys/class/android_usb/android0/f_serial/transports char_bridge
980    write /sys/class/android_usb/android0/functions rndis,serial,diag,adb
981    write /sys/class/android_usb/android0/enable 1
982    start adbd
983    setprop sys.usb.state rndis,adb
984
985on property:sys.usb.config=rndis,diag,diag_mdm && property:sys.usb.configfs=0
986    write /sys/class/android_usb/android0/enable 0
987    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
988    write /sys/class/android_usb/android0/idVendor 05C6
989    write /sys/class/android_usb/android0/idProduct 9041
990    write /sys/class/android_usb/android0/f_rndis/wceis 1
991    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
992    write /sys/class/android_usb/android0/functions rndis,diag
993    write /sys/class/android_usb/android0/enable 1
994    setprop sys.usb.state rndis
995
996on property:sys.usb.config=rndis,diag,diag_mdm,adb && property:sys.usb.configfs=0
997    write /sys/class/android_usb/android0/enable 0
998    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
999    write /sys/class/android_usb/android0/idVendor 05C6
1000    write /sys/class/android_usb/android0/idProduct 9042
1001    write /sys/class/android_usb/android0/f_rndis/wceis 1
1002    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
1003    write /sys/class/android_usb/android0/functions rndis,diag,adb
1004    write /sys/class/android_usb/android0/enable 1
1005    start adbd
1006    setprop sys.usb.state rndis,adb
1007
1008on property:sys.usb.config=rndis,diag,diag_mdm,diag_qsc && property:sys.usb.configfs=0
1009    write /sys/class/android_usb/android0/enable 0
1010    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1011    write /sys/class/android_usb/android0/idVendor 05C6
1012    write /sys/class/android_usb/android0/idProduct 9086
1013    write /sys/class/android_usb/android0/f_rndis/wceis 1
1014    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc
1015    write /sys/class/android_usb/android0/functions rndis,diag
1016    write /sys/class/android_usb/android0/enable 1
1017    setprop sys.usb.state rndis
1018
1019on property:sys.usb.config=rndis,diag,diag_mdm,diag_qsc,adb && property:sys.usb.configfs=0
1020    write /sys/class/android_usb/android0/enable 0
1021    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1022    write /sys/class/android_usb/android0/idVendor 05C6
1023    write /sys/class/android_usb/android0/idProduct 9087
1024    write /sys/class/android_usb/android0/f_rndis/wceis 1
1025    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc
1026    write /sys/class/android_usb/android0/functions rndis,diag,adb
1027    write /sys/class/android_usb/android0/enable 1
1028    start adbd
1029    setprop sys.usb.state rndis,adb
1030
1031on property:sys.usb.config=ptp && property:sys.usb.configfs=0
1032    write /sys/class/android_usb/android0/enable 0
1033    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1034    write /sys/class/android_usb/android0/idVendor 05C6
1035    write /sys/class/android_usb/android0/idProduct 904D
1036    write /sys/class/android_usb/android0/functions ptp
1037    write /sys/class/android_usb/android0/enable 1
1038    setprop sys.usb.state ${sys.usb.config}
1039
1040on property:sys.usb.config=ptp,adb && property:sys.usb.configfs=0
1041    write /sys/class/android_usb/android0/enable 0
1042    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1043    write /sys/class/android_usb/android0/idVendor 05C6
1044    write /sys/class/android_usb/android0/idProduct 904E
1045    write /sys/class/android_usb/android0/functions ptp,adb
1046    write /sys/class/android_usb/android0/enable 1
1047    start adbd
1048    setprop sys.usb.state ${sys.usb.config}
1049
1050on property:sys.usb.config=mtp && property:sys.usb.configfs=0
1051    write /sys/class/android_usb/android0/enable 0
1052    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1053    write /sys/class/android_usb/android0/idVendor 05C6
1054    write /sys/class/android_usb/android0/idProduct F003
1055    write /sys/class/android_usb/android0/functions mtp
1056    write /sys/class/android_usb/android0/enable 1
1057    setprop sys.usb.state ${sys.usb.config}
1058
1059on property:sys.usb.config=mtp,adb && property:sys.usb.configfs=0
1060    write /sys/class/android_usb/android0/enable 0
1061    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1062    write /sys/class/android_usb/android0/idVendor 05C6
1063    write /sys/class/android_usb/android0/idProduct 9039
1064    write /sys/class/android_usb/android0/functions mtp,adb
1065    write /sys/class/android_usb/android0/enable 1
1066    start adbd
1067    setprop sys.usb.state ${sys.usb.config}
1068
1069on property:sys.usb.config=mtp,diag && property:sys.usb.configfs=0
1070    write /sys/class/android_usb/android0/enable 0
1071    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1072    write /sys/class/android_usb/android0/idVendor 05C6
1073    write /sys/class/android_usb/android0/idProduct 901B
1074    write /sys/class/android_usb/android0/f_diag/clients diag
1075    write /sys/class/android_usb/android0/functions mtp,diag
1076    write /sys/class/android_usb/android0/enable 1
1077    setprop sys.usb.state ${sys.usb.config}
1078
1079on property:sys.usb.config=mtp,diag,adb && property:sys.usb.configfs=0
1080    write /sys/class/android_usb/android0/enable 0
1081    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1082    write /sys/class/android_usb/android0/idVendor 05C6
1083    write /sys/class/android_usb/android0/idProduct 903A
1084    write /sys/class/android_usb/android0/f_diag/clients diag
1085    write /sys/class/android_usb/android0/functions mtp,diag,adb
1086    write /sys/class/android_usb/android0/enable 1
1087    start adbd
1088    setprop sys.usb.state ${sys.usb.config}
1089
1090on property:sys.usb.config=mtp,diag,diag_mdm && property:sys.usb.configfs=0
1091    write /sys/class/android_usb/android0/enable 0
1092    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1093    write /sys/class/android_usb/android0/idVendor 05C6
1094    write /sys/class/android_usb/android0/idProduct 9040
1095    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
1096    write /sys/class/android_usb/android0/functions mtp,diag
1097    write /sys/class/android_usb/android0/enable 1
1098    setprop sys.usb.state ${sys.usb.config}
1099
1100on property:sys.usb.config=mtp,diag,diag_mdm,adb && property:sys.usb.configfs=0
1101    write /sys/class/android_usb/android0/enable 0
1102    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1103    write /sys/class/android_usb/android0/idVendor 05C6
1104    write /sys/class/android_usb/android0/idProduct 903F
1105    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
1106    write /sys/class/android_usb/android0/functions mtp,diag,adb
1107    write /sys/class/android_usb/android0/enable 1
1108    start adbd
1109    setprop sys.usb.state ${sys.usb.config}
1110
1111on property:sys.usb.config=mtp,diag,diag_mdm,diag_qsc && property:sys.usb.configfs=0
1112    write /sys/class/android_usb/android0/enable 0
1113    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1114    write /sys/class/android_usb/android0/idVendor 05C6
1115    write /sys/class/android_usb/android0/idProduct 9088
1116    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc
1117    write /sys/class/android_usb/android0/functions mtp,diag
1118    write /sys/class/android_usb/android0/enable 1
1119    setprop sys.usb.state ${sys.usb.config}
1120
1121on property:sys.usb.config=mtp,diag,diag_mdm,diag_qsc,adb && property:sys.usb.configfs=0
1122    write /sys/class/android_usb/android0/enable 0
1123    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1124    write /sys/class/android_usb/android0/idVendor 05C6
1125    write /sys/class/android_usb/android0/idProduct 9089
1126    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc
1127    write /sys/class/android_usb/android0/functions mtp,diag,adb
1128    write /sys/class/android_usb/android0/enable 1
1129    start adbd
1130    setprop sys.usb.state ${sys.usb.config}
1131
1132on property:sys.usb.config=diag,diag_mdm,ccid && property:sys.usb.configfs=0
1133    write /sys/class/android_usb/android0/enable 0
1134    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1135    write /sys/class/android_usb/android0/idVendor 05C6
1136    write /sys/class/android_usb/android0/idProduct 9045
1137    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
1138    write /sys/class/android_usb/android0/functions diag,ccid
1139    write /sys/class/android_usb/android0/enable 1
1140    setprop sys.usb.state ${sys.usb.config}
1141
1142on property:sys.usb.config=diag,diag_mdm,ccid,adb && property:sys.usb.configfs=0
1143    write /sys/class/android_usb/android0/enable 0
1144    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1145    write /sys/class/android_usb/android0/idVendor 05C6
1146    write /sys/class/android_usb/android0/idProduct 9044
1147    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
1148    write /sys/class/android_usb/android0/functions diag,adb,ccid
1149    write /sys/class/android_usb/android0/enable 1
1150    start adbd
1151    setprop sys.usb.state ${sys.usb.config}
1152
1153on property:sys.usb.config=mass_storage,adb && property:sys.usb.configfs=0
1154    write /sys/class/android_usb/android0/enable 0
1155    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1156    write /sys/class/android_usb/android0/idVendor 05C6
1157    write /sys/class/android_usb/android0/idProduct 9015
1158    write /sys/class/android_usb/android0/functions adb,mass_storage
1159    write /sys/class/android_usb/android0/enable 1
1160    start adbd
1161    setprop sys.usb.state ${sys.usb.config}
1162
1163#Mass-storage only composition
1164on property:sys.usb.config=mass_storage && property:sys.usb.configfs=0
1165    write /sys/class/android_usb/android0/enable 0
1166    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1167    write /sys/class/android_usb/android0/idVendor 05C6
1168    write /sys/class/android_usb/android0/idProduct F000
1169    write /sys/class/android_usb/android0/functions mass_storage
1170    write /sys/class/android_usb/android0/enable 1
1171    setprop sys.usb.state ${sys.usb.config}
1172
1173on property:sys.usb.config=diag,qdss && property:sys.usb.configfs=0
1174    write /sys/class/android_usb/android0/enable 0
1175    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1176    write /sys/class/android_usb/android0/idVendor 05C6
1177    write /sys/class/android_usb/android0/idProduct 904A
1178    write /sys/class/android_usb/android0/f_diag/clients diag
1179    write /sys/class/android_usb/android0/f_qdss/debug_intf 1
1180    write /sys/class/android_usb/android0/f_qdss/transports bam
1181    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
1182    write /sys/class/android_usb/android0/functions diag,qdss
1183    write /sys/class/android_usb/android0/enable 1
1184    setprop sys.usb.state ${sys.usb.config}
1185
1186on property:sys.usb.config=diag,qdss,adb && property:sys.usb.configfs=0
1187    write /sys/class/android_usb/android0/enable 0
1188    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1189    write /sys/class/android_usb/android0/idVendor 05C6
1190    write /sys/class/android_usb/android0/idProduct 9060
1191    write /sys/class/android_usb/android0/f_diag/clients diag
1192    write /sys/class/android_usb/android0/f_qdss/debug_intf 1
1193    write /sys/class/android_usb/android0/f_qdss/transports bam
1194    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
1195    write /sys/class/android_usb/android0/functions diag,qdss,adb
1196    write /sys/class/android_usb/android0/enable 1
1197    start adbd
1198    setprop sys.usb.state ${sys.usb.config}
1199
1200on property:sys.usb.config=diag,diag_mdm,qdss && property:sys.usb.configfs=0
1201    write /sys/class/android_usb/android0/enable 0
1202    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1203    write /sys/class/android_usb/android0/idVendor 05C6
1204    write /sys/class/android_usb/android0/idProduct 9099
1205    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
1206    write /sys/class/android_usb/android0/f_qdss/debug_intf 1
1207    write /sys/class/android_usb/android0/f_qdss/transports bam
1208    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
1209    write /sys/class/android_usb/android0/functions diag,qdss
1210    write /sys/class/android_usb/android0/enable 1
1211    setprop sys.usb.state ${sys.usb.config}
1212
1213on property:sys.usb.config=diag,diag_mdm,qdss,adb && property:sys.usb.configfs=0
1214    write /sys/class/android_usb/android0/enable 0
1215    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1216    write /sys/class/android_usb/android0/idVendor 05C6
1217    write /sys/class/android_usb/android0/idProduct 9098
1218    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
1219    write /sys/class/android_usb/android0/f_qdss/debug_intf 1
1220    write /sys/class/android_usb/android0/f_qdss/transports bam
1221    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
1222    write /sys/class/android_usb/android0/functions diag,qdss,adb
1223    write /sys/class/android_usb/android0/enable 1
1224    start adbd
1225    setprop sys.usb.state ${sys.usb.config}
1226
1227on property:sys.usb.config=diag,qdss,rmnet_bam && property:sys.usb.configfs=0
1228    write /sys/class/android_usb/android0/enable 0
1229    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1230    write /sys/class/android_usb/android0/idVendor 05C6
1231    write /sys/class/android_usb/android0/idProduct 9083
1232    write /sys/class/android_usb/android0/f_diag/clients diag
1233    write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
1234    write /sys/class/android_usb/android0/f_qdss/debug_intf 1
1235    write /sys/class/android_usb/android0/f_qdss/transports bam
1236    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
1237    write /sys/class/android_usb/android0/functions diag,qdss,rmnet
1238    write /sys/class/android_usb/android0/enable 1
1239    setprop sys.usb.state ${sys.usb.config}
1240
1241on property:sys.usb.config=diag,qdss,rmnet_qti_bam && property:sys.usb.configfs=0
1242    write /sys/class/android_usb/android0/enable 0
1243    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1244    write /sys/class/android_usb/android0/idVendor 05C6
1245    write /sys/class/android_usb/android0/idProduct 9083
1246    write /sys/class/android_usb/android0/f_diag/clients diag
1247    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam
1248    write /sys/class/android_usb/android0/f_qdss/debug_intf 1
1249    write /sys/class/android_usb/android0/f_qdss/transports bam
1250    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
1251    write /sys/class/android_usb/android0/functions diag,qdss,rmnet
1252    write /sys/class/android_usb/android0/enable 1
1253    setprop sys.usb.state ${sys.usb.config}
1254
1255on property:sys.usb.config=diag,qdss,rmnet_bam,adb && property:sys.usb.configfs=0
1256    write /sys/class/android_usb/android0/enable 0
1257    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1258    write /sys/class/android_usb/android0/idVendor 05C6
1259    write /sys/class/android_usb/android0/idProduct 9084
1260    write /sys/class/android_usb/android0/f_diag/clients diag
1261    write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
1262    write /sys/class/android_usb/android0/f_qdss/debug_intf 1
1263    write /sys/class/android_usb/android0/f_qdss/transports bam
1264    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
1265    write /sys/class/android_usb/android0/functions diag,qdss,adb,rmnet
1266    write /sys/module/dwc3/parameters/tx_fifo_resize_enable 1
1267    write /sys/class/android_usb/android0/enable 1
1268    start adbd
1269    setprop sys.usb.state ${sys.usb.config}
1270
1271on property:sys.usb.config=diag,qdss,rmnet_qti_bam,adb && property:sys.usb.configfs=0
1272    write /sys/class/android_usb/android0/enable 0
1273    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1274    write /sys/class/android_usb/android0/idVendor 05C6
1275    write /sys/class/android_usb/android0/idProduct 9084
1276    write /sys/class/android_usb/android0/f_diag/clients diag
1277    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam
1278    write /sys/class/android_usb/android0/f_qdss/debug_intf 1
1279    write /sys/class/android_usb/android0/f_qdss/transports bam
1280    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
1281    write /sys/class/android_usb/android0/functions diag,qdss,adb,rmnet
1282    write /sys/module/dwc3/parameters/tx_fifo_resize_enable 1
1283    write /sys/class/android_usb/android0/enable 1
1284    start adbd
1285    setprop sys.usb.state ${sys.usb.config}
1286
1287on property:sys.usb.config=diag,qdss,rmnet_ipa && property:sys.usb.configfs=0
1288    write /sys/class/android_usb/android0/enable 0
1289    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1290    write /sys/class/android_usb/android0/idVendor 05C6
1291    write /sys/class/android_usb/android0/idProduct 9083
1292    write /sys/class/android_usb/android0/f_diag/clients diag
1293    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa
1294    write /sys/class/android_usb/android0/f_qdss/debug_intf 1
1295    write /sys/class/android_usb/android0/f_qdss/transports bam
1296    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
1297    write /sys/class/android_usb/android0/functions diag,qdss,rmnet
1298    write /sys/class/android_usb/android0/enable 1
1299    setprop sys.usb.state ${sys.usb.config}
1300
1301on property:sys.usb.config=diag,qdss,rmnet_ipa,adb && property:sys.usb.configfs=0
1302    write /sys/class/android_usb/android0/enable 0
1303    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1304    write /sys/class/android_usb/android0/idVendor 05C6
1305    write /sys/class/android_usb/android0/idProduct 9084
1306    write /sys/class/android_usb/android0/f_diag/clients diag
1307    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa
1308    write /sys/class/android_usb/android0/f_qdss/debug_intf 1
1309    write /sys/class/android_usb/android0/f_qdss/transports bam
1310    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
1311    write /sys/class/android_usb/android0/functions diag,qdss,adb,rmnet
1312    write /sys/module/dwc3/parameters/tx_fifo_resize_enable 1
1313    write /sys/class/android_usb/android0/enable 1
1314    start adbd
1315    setprop sys.usb.state ${sys.usb.config}
1316
1317on property:sys.usb.config=diag,diag_mdm,qdss,rmnet_hsic && property:sys.usb.configfs=0
1318    write /sys/class/android_usb/android0/enable 0
1319    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1320    write /sys/class/android_usb/android0/idVendor 05C6
1321    write /sys/class/android_usb/android0/idProduct 909B
1322    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
1323    write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
1324    write /sys/class/android_usb/android0/f_qdss/debug_intf 1
1325    write /sys/class/android_usb/android0/f_qdss/transports bam
1326    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
1327    write /sys/class/android_usb/android0/functions diag,qdss,rmnet
1328    write /sys/class/android_usb/android0/enable 1
1329    setprop sys.usb.state ${sys.usb.config}
1330
1331on property:sys.usb.config=diag,diag_mdm,qdss,rmnet_hsic,adb && property:sys.usb.configfs=0
1332    write /sys/class/android_usb/android0/enable 0
1333    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1334    write /sys/class/android_usb/android0/idVendor 05C6
1335    write /sys/class/android_usb/android0/idProduct 909A
1336    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
1337    write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
1338    write /sys/class/android_usb/android0/f_qdss/debug_intf 1
1339    write /sys/class/android_usb/android0/f_qdss/transports bam
1340    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
1341    write /sys/class/android_usb/android0/functions diag,qdss,adb,rmnet
1342    write /sys/module/dwc3/parameters/tx_fifo_resize_enable 1
1343    write /sys/class/android_usb/android0/enable 1
1344    start adbd
1345    setprop sys.usb.state ${sys.usb.config}
1346
1347on property:sys.usb.config=diag,diag_mdm,qdss_apq,qdss_mdm,rmnet_hsic && property:sys.usb.configfs=0
1348    write /sys/class/android_usb/android0/enable 0
1349    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1350    write /sys/class/android_usb/android0/idVendor 05C6
1351    write /sys/class/android_usb/android0/idProduct 90A3
1352    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
1353    write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
1354    write /sys/class/android_usb/android0/f_qdss/debug_intf 0
1355    write /sys/class/android_usb/android0/f_qdss/transports bam,hsic
1356    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam,qdss_hsic
1357    write /sys/class/android_usb/android0/functions diag,qdss,rmnet
1358    write /sys/class/android_usb/android0/enable 1
1359    setprop sys.usb.state ${sys.usb.config}
1360
1361on property:sys.usb.config=diag,diag_mdm,qdss_apq,qdss_mdm,rmnet_hsic,adb && property:sys.usb.configfs=0
1362    write /sys/class/android_usb/android0/enable 0
1363    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1364    write /sys/class/android_usb/android0/idVendor 05C6
1365    write /sys/class/android_usb/android0/idProduct 90A2
1366    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
1367    write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
1368    write /sys/class/android_usb/android0/f_qdss/debug_intf 0
1369    write /sys/class/android_usb/android0/f_qdss/transports bam,hsic
1370    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam,qdss_hsic
1371    write /sys/class/android_usb/android0/functions diag,qdss,adb,rmnet
1372    write /sys/module/dwc3/parameters/tx_fifo_resize_enable 1
1373    write /sys/class/android_usb/android0/enable 1
1374    start adbd
1375    setprop sys.usb.state ${sys.usb.config}
1376
1377on property:sys.usb.config=rndis,diag,qdss && property:sys.usb.configfs=0
1378    write /sys/class/android_usb/android0/enable 0
1379    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1380    write /sys/class/android_usb/android0/idVendor 05C6
1381    write /sys/class/android_usb/android0/idProduct 9081
1382    write /sys/class/android_usb/android0/f_rndis/wceis 1
1383    write /sys/class/android_usb/android0/f_diag/clients diag
1384    write /sys/class/android_usb/android0/f_qdss/debug_intf 1
1385    write /sys/class/android_usb/android0/f_qdss/transports bam
1386    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
1387    write /sys/class/android_usb/android0/functions rndis,diag,qdss
1388    write /sys/class/android_usb/android0/enable 1
1389    setprop sys.usb.state ${sys.usb.config}
1390
1391on property:sys.usb.config=rndis,diag,qdss,adb && property:sys.usb.configfs=0
1392    write /sys/class/android_usb/android0/enable 0
1393    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1394    write /sys/class/android_usb/android0/idVendor 05C6
1395    write /sys/class/android_usb/android0/idProduct 9082
1396    write /sys/class/android_usb/android0/f_rndis/wceis 1
1397    write /sys/class/android_usb/android0/f_diag/clients diag
1398    write /sys/class/android_usb/android0/f_qdss/debug_intf 1
1399    write /sys/class/android_usb/android0/f_qdss/transports bam
1400    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
1401    write /sys/class/android_usb/android0/functions rndis,diag,qdss,adb
1402    write /sys/module/dwc3/parameters/tx_fifo_resize_enable 1
1403    write /sys/class/android_usb/android0/enable 1
1404    start adbd
1405    setprop sys.usb.state ${sys.usb.config}
1406
1407# same as 9025, plus data packet logging (DPL) using QDSS
1408on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_ipa,mass_storage,dpl,adb && property:sys.usb.configfs=0
1409    write /sys/class/android_usb/android0/enable 0
1410    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1411    write /sys/class/android_usb/android0/idVendor 05C6
1412    write /sys/class/android_usb/android0/idProduct 90AD
1413    write /sys/class/android_usb/android0/f_diag/clients diag
1414    write /sys/class/android_usb/android0/f_serial/transports smd,tty
1415# DPL is implemented using QDSS
1416    write /sys/class/android_usb/android0/f_qdss/debug_intf 0
1417    write /sys/class/android_usb/android0/f_qdss/transports qti,bam2bam_ipa
1418    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
1419    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa
1420    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage,qdss
1421    write /sys/class/android_usb/android0/enable 1
1422    start adbd
1423    setprop sys.usb.state ${sys.usb.config}
1424
1425# same as 9026, plus data packet logging (DPL)
1426on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_ipa,mass_storage,dpl && property:sys.usb.configfs=0
1427    write /sys/class/android_usb/android0/enable 0
1428    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1429    write /sys/class/android_usb/android0/idVendor 05C6
1430    write /sys/class/android_usb/android0/idProduct 90B0
1431    write /sys/class/android_usb/android0/f_diag/clients diag
1432    write /sys/class/android_usb/android0/f_serial/transports smd,tty
1433# DPL is implemented using QDSS
1434    write /sys/class/android_usb/android0/f_qdss/debug_intf 0
1435    write /sys/class/android_usb/android0/f_qdss/transports qti,bam2bam_ipa
1436    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
1437    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa
1438    write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage,qdss
1439    write /sys/class/android_usb/android0/enable 1
1440    setprop sys.usb.state ${sys.usb.config}
1441
1442on property:sys.usb.config=diag,serial_cdev,serial_tty,rmnet_ipa,mass_storage,dpl,adb && property:sys.usb.configfs=0
1443    write /sys/class/android_usb/android0/enable 0
1444    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1445    write /sys/class/android_usb/android0/idVendor 05C6
1446    write /sys/class/android_usb/android0/idProduct 90AD
1447    write /sys/class/android_usb/android0/f_diag/clients diag
1448    write /sys/class/android_usb/android0/f_serial/transports char_bridge,tty
1449# DPL is implemented using QDSS
1450    write /sys/class/android_usb/android0/f_qdss/debug_intf 0
1451    write /sys/class/android_usb/android0/f_qdss/transports qti,bam2bam_ipa
1452    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
1453    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa
1454    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage,qdss
1455    write /sys/class/android_usb/android0/enable 1
1456    start adbd
1457    setprop sys.usb.state ${sys.usb.config}
1458
1459on property:sys.usb.config=diag,serial_cdev,serial_tty,rmnet_ipa,mass_storage,dpl && property:sys.usb.configfs=0
1460    write /sys/class/android_usb/android0/enable 0
1461    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1462    write /sys/class/android_usb/android0/idVendor 05C6
1463    write /sys/class/android_usb/android0/idProduct 90B0
1464    write /sys/class/android_usb/android0/f_diag/clients diag
1465    write /sys/class/android_usb/android0/f_serial/transports char_bridge,tty
1466# DPL is implemented using QDSS
1467    write /sys/class/android_usb/android0/f_qdss/debug_intf 0
1468    write /sys/class/android_usb/android0/f_qdss/transports qti,bam2bam_ipa
1469    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
1470    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa
1471    write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage,qdss
1472    write /sys/class/android_usb/android0/enable 1
1473    setprop sys.usb.state ${sys.usb.config}
1474
1475on property:sys.usb.config=ncm && property:sys.usb.configfs=0
1476    write /sys/class/android_usb/android0/enable 0
1477    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1478    write /sys/class/android_usb/android0/idVendor 0525
1479    write /sys/class/android_usb/android0/idProduct A4A1
1480    write /sys/class/android_usb/android0/functions ncm
1481    write /sys/class/android_usb/android0/enable 1
1482    setprop sys.usb.state ${sys.usb.config}
1483
1484on property:sys.usb.config=ncm,adb && property:sys.usb.configfs=0
1485    write /sys/class/android_usb/android0/enable 0
1486    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1487    write /sys/class/android_usb/android0/idVendor 05C6
1488    write /sys/class/android_usb/android0/idProduct 908C
1489    write /sys/class/android_usb/android0/functions ncm,adb
1490    write /sys/class/android_usb/android0/enable 1
1491    start adbd
1492    setprop sys.usb.state ${sys.usb.config}
1493
1494on property:sys.usb.config=charging && property:sys.usb.configfs=0
1495    write /sys/class/android_usb/android0/enable 0
1496    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1497    write /sys/class/android_usb/android0/idVendor 05C6
1498    write /sys/class/android_usb/android0/idProduct F006
1499    write /sys/class/android_usb/android0/functions charging
1500    write /sys/class/android_usb/android0/enable 1
1501    setprop sys.usb.state ${sys.usb.config}
1502
1503on property:sys.usb.config=diag,serial_smd,rmnet_qti_bam,dpl_qti_bam_dmux && property:sys.usb.configfs=0
1504    write /sys/class/android_usb/android0/enable 0
1505    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1506    write /sys/class/android_usb/android0/idVendor 05C6
1507    write /sys/class/android_usb/android0/idProduct 90B7
1508    write /sys/class/android_usb/android0/f_diag/clients diag
1509    write /sys/class/android_usb/android0/f_serial/transports smd
1510    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam
1511    write /sys/class/android_usb/android0/f_qdss/transports qti,bam_dmux
1512    write /sys/class/android_usb/android0/functions diag,serial,rmnet,qdss
1513    write /sys/class/android_usb/android0/enable 1
1514    setprop sys.usb.state ${sys.usb.config}
1515
1516on property:sys.usb.config=diag,serial_smd,rmnet_qti_bam,dpl_qti_bam_dmux,adb && property:sys.usb.configfs=0
1517    write /sys/class/android_usb/android0/enable 0
1518    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1519    write /sys/class/android_usb/android0/idVendor 05C6
1520    write /sys/class/android_usb/android0/idProduct 90B8
1521    write /sys/class/android_usb/android0/f_diag/clients diag
1522    write /sys/class/android_usb/android0/f_serial/transports smd
1523    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam
1524    write /sys/class/android_usb/android0/f_qdss/transports qti,bam_dmux
1525    write /sys/class/android_usb/android0/functions diag,serial,rmnet,qdss,adb
1526    write /sys/class/android_usb/android0/enable 1
1527    start adbd
1528    setprop sys.usb.state ${sys.usb.config}
1529
1530on property:sys.usb.config=diag,diag_cnss,serial_smd,serial_tty,rmnet_bam,mass_storage,adb && property:sys.usb.configfs=0
1531    write /sys/class/android_usb/android0/enable 0
1532    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1533    write /sys/class/android_usb/android0/idVendor 05C6
1534    write /sys/class/android_usb/android0/idProduct 90B2
1535    write /sys/class/android_usb/android0/f_diag/clients diag,diag_cnss
1536    write /sys/class/android_usb/android0/f_serial/transports smd,tty
1537    write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
1538    write /sys/class/android_usb/android0/functions diag,diag_cnss,adb,serial,rmnet,mass_storage
1539    write /sys/class/android_usb/android0/enable 1
1540    start adbd
1541    setprop sys.usb.state ${sys.usb.config}
1542
1543on property:sys.usb.config=diag,diag_cnss,serial_smd,serial_tty,rmnet_bam,mass_storage && property:sys.usb.configfs=0
1544    write /sys/class/android_usb/android0/enable 0
1545    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1546    write /sys/class/android_usb/android0/idVendor 05C6
1547    write /sys/class/android_usb/android0/idProduct 90B3
1548    write /sys/class/android_usb/android0/f_diag/clients diag,diag_cnss
1549    write /sys/class/android_usb/android0/f_serial/transports smd,tty
1550    write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
1551    write /sys/class/android_usb/android0/functions diag,diag_cnss,serial,rmnet,mass_storage
1552    write /sys/class/android_usb/android0/enable 1
1553    setprop sys.usb.state ${sys.usb.config}
1554
1555on property:sys.usb.config=midi && property:sys.usb.configfs=0
1556     write /sys/class/android_usb/android0/enable 0
1557     write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1558     write /sys/class/android_usb/android0/idVendor 05C6
1559     write /sys/class/android_usb/android0/idProduct 90BA
1560     write /sys/class/android_usb/android0/functions midi
1561     write /sys/class/android_usb/android0/enable 1
1562     setprop sys.usb.state ${sys.usb.config}
1563
1564on property:sys.usb.config=midi,adb && property:sys.usb.configfs=0
1565     write /sys/class/android_usb/android0/enable 0
1566     write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1567     write /sys/class/android_usb/android0/idVendor 05C6
1568     write /sys/class/android_usb/android0/idProduct 90BB
1569     write /sys/class/android_usb/android0/functions midi,adb
1570     write /sys/class/android_usb/android0/enable 1
1571     start adbd
1572     setprop sys.usb.state ${sys.usb.config}
1573
1574on property:sys.usb.config=diag,serial_smd,rmnet_ipa,dpl && property:sys.usb.configfs=0
1575    write /sys/class/android_usb/android0/enable 0
1576    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1577    write /sys/class/android_usb/android0/idVendor 05C6
1578    write /sys/class/android_usb/android0/idProduct 90B7
1579    write /sys/class/android_usb/android0/f_diag/clients diag
1580    write /sys/class/android_usb/android0/f_serial/transports smd
1581# DPL is implemented using QDSS
1582    write /sys/class/android_usb/android0/f_qdss/debug_intf 0
1583    write /sys/class/android_usb/android0/f_qdss/transports qti,bam2bam_ipa
1584    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
1585    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa
1586    write /sys/class/android_usb/android0/functions diag,serial,rmnet,qdss
1587    write /sys/class/android_usb/android0/enable 1
1588    setprop sys.usb.state ${sys.usb.config}
1589
1590on property:sys.usb.config=diag,serial_smd,rmnet_ipa,dpl,adb && property:sys.usb.configfs=0
1591    write /sys/class/android_usb/android0/enable 0
1592    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
1593    write /sys/class/android_usb/android0/idVendor 05C6
1594    write /sys/class/android_usb/android0/idProduct 90B8
1595    write /sys/class/android_usb/android0/f_diag/clients diag
1596    write /sys/class/android_usb/android0/f_serial/transports smd
1597# DPL is implemented using QDSS
1598    write /sys/class/android_usb/android0/f_qdss/debug_intf 0
1599    write /sys/class/android_usb/android0/f_qdss/transports qti,bam2bam_ipa
1600    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
1601    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa
1602    write /sys/class/android_usb/android0/functions diag,serial,rmnet,qdss,adb
1603    write /sys/class/android_usb/android0/enable 1
1604    start adbd
1605    setprop sys.usb.state ${sys.usb.config}
1606
1607on property:sys.usb.config=diag,diag_mdm,serial_tty,rmnet_qti_ether,dpl_ether,mass_storage,adb
1608    write /sys/class/android_usb/android0/enable 0
1609    write /sys/class/android_usb/android0/idVendor 05C6
1610    write /sys/class/android_usb/android0/idProduct 90AE
1611    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
1612    write /sys/class/android_usb/android0/f_serial/transports tty
1613    write /sys/class/android_usb/android0/f_rmnet/transports qti,ether
1614    write /sys/class/android_usb/android0/f_qdss/debug_intf 0
1615    write /sys/class/android_usb/android0/f_qdss/transports qti,ether
1616    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_dpl
1617    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,qdss,mass_storage
1618    write /sys/class/android_usb/android0/enable 1
1619    start adbd
1620    setprop sys.usb.state ${sys.usb.config}
1621
1622on property:sys.usb.config=diag,diag_mdm,serial_tty,rmnet_qti_ether,dpl_ether,mass_storage
1623    write /sys/class/android_usb/android0/enable 0
1624    write /sys/class/android_usb/android0/idVendor 05C6
1625    write /sys/class/android_usb/android0/idProduct 90AF
1626    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
1627    write /sys/class/android_usb/android0/f_serial/transports tty
1628    write /sys/class/android_usb/android0/f_rmnet/transports qti,ether
1629    write /sys/class/android_usb/android0/f_qdss/debug_intf 0
1630    write /sys/class/android_usb/android0/f_qdss/transports qti,ether
1631    write /sys/class/android_usb/android0/f_qdss/transport_names qdss_dpl
1632    write /sys/class/android_usb/android0/functions diag,serial,rmnet,qdss,mass_storage
1633    write /sys/class/android_usb/android0/enable 1
1634    setprop sys.usb.state ${sys.usb.config}
1635
1636on property:sys.usb.config=diag,adb,uac2
1637    write /sys/class/android_usb/android0/enable 0
1638    write /sys/class/android_usb/android0/idVendor 05C6
1639    write /sys/class/android_usb/android0/idProduct 90CA
1640    write /sys/class/android_usb/android0/f_diag/clients diag
1641    write /sys/class/android_usb/android0/functions diag,adb,uac2_func
1642    write /sys/class/android_usb/android0/enable 1
1643    start adbd
1644    setprop sys.usb.state ${sys.usb.config}
1645
1646on property:sys.usb.config=diag,adb,video && property:sys.usb.configfs=0
1647    write /sys/class/android_usb/android0/enable 0
1648    write /sys/class/android_usb/android0/idVendor 05C6
1649    write /sys/class/android_usb/android0/idProduct 90CB
1650    write /sys/class/android_usb/android0/f_diag/clients diag
1651    write /sys/class/android_usb/android0/functions diag,adb,video
1652    write /sys/class/android_usb/android0/enable 1
1653    start adbd
1654    setprop sys.usb.state ${sys.usb.config}
1655
1656on property:sys.usb.config=diag,adb,uac2,video && property:sys.usb.configfs=0
1657    write /sys/class/android_usb/android0/enable 0
1658    write /sys/class/android_usb/android0/idVendor 05C6
1659    write /sys/class/android_usb/android0/idProduct 90CC
1660    write /sys/class/android_usb/android0/f_diag/clients diag
1661    write /sys/class/android_usb/android0/functions diag,adb,uac2_func,video
1662    write /sys/class/android_usb/android0/enable 1
1663    start adbd
1664    setprop sys.usb.state ${sys.usb.config}
1665
1666