• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2015 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15on init
16    write /sys/class/android_usb/android0/f_rndis/manufacturer Huawei
17    write /sys/class/android_usb/android0/f_rndis/vendorID 18D1
18    write /sys/class/android_usb/android0/f_rndis/wceis 1
19
20on boot
21    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
22    write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer}
23    write /sys/class/android_usb/android0/iProduct ${ro.product.model}
24    chown root system /sys/class/dual_role_usb/otg_default/mode
25    chmod 664 /sys/class/dual_role_usb/otg_default/mode
26    write /sys/module/dwc3/boot_finished 1
27
28on post-fs
29    mkdir /dev/usb-ffs 0775 shell shell
30    mkdir /dev/usb-ffs/adb 0770 shell shell
31    mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
32    mkdir /dev/usb-ffs/mtp 0770 mtp mtp
33    mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
34    write /sys/class/android_usb/android0/f_ffs/aliases adb,mtp
35    setprop sys.usb.ffs.max_write 262144
36    setprop sys.usb.ffs.max_read 262144
37    setprop sys.usb.mtp.device_type 3
38
39on charger
40    setprop persist.sys.usb.config charging
41
42# MTP
43on property:sys.usb.config=mtp
44    stop adbd
45    write /sys/class/android_usb/android0/enable 0
46    write /sys/class/android_usb/android0/idVendor 18D1
47    write /sys/class/android_usb/android0/idProduct 4EE1
48    write /sys/class/android_usb/android0/bDeviceClass 0
49    write /sys/class/android_usb/android0/bDeviceSubClass 0
50    write /sys/class/android_usb/android0/bDeviceProtocol 0
51    write /sys/class/android_usb/android0/functions mtp
52    write /sys/class/android_usb/android0/enable 1
53    setprop sys.usb.state ${sys.usb.config}
54
55on property:sys.usb.config=mtp,adb
56    write /sys/class/android_usb/android0/enable 0
57    write /sys/class/android_usb/android0/idVendor 18D1
58    write /sys/class/android_usb/android0/idProduct 4EE2
59    write /sys/class/android_usb/android0/bDeviceClass 0
60    write /sys/class/android_usb/android0/bDeviceSubClass 0
61    write /sys/class/android_usb/android0/bDeviceProtocol 0
62    write /sys/class/android_usb/android0/functions mtp,adb
63    write /sys/class/android_usb/android0/enable 1
64    start adbd
65    setprop sys.usb.state ${sys.usb.config}
66
67# rndis
68on property:sys.usb.config=rndis
69    stop adbd
70    write /sys/class/android_usb/android0/enable 0
71    write /sys/class/android_usb/android0/idVendor 18D1
72    write /sys/class/android_usb/android0/idProduct 4EE3
73    write /sys/class/android_usb/android0/bDeviceClass 239
74    write /sys/class/android_usb/android0/bDeviceSubClass 2
75    write /sys/class/android_usb/android0/bDeviceProtocol 1
76    write /sys/class/android_usb/android0/functions rndis
77    write /sys/class/android_usb/android0/enable 1
78    setprop sys.usb.state ${sys.usb.config}
79
80on property:sys.usb.config=rndis,adb
81    write /sys/class/android_usb/android0/enable 0
82    write /sys/class/android_usb/android0/idVendor 18D1
83    write /sys/class/android_usb/android0/idProduct 4EE4
84    write /sys/class/android_usb/android0/bDeviceClass 239
85    write /sys/class/android_usb/android0/bDeviceSubClass 2
86    write /sys/class/android_usb/android0/bDeviceProtocol 1
87    write /sys/class/android_usb/android0/functions rndis,adb
88    write /sys/class/android_usb/android0/enable 1
89    start adbd
90    setprop sys.usb.state ${sys.usb.config}
91
92# PTP
93on property:sys.usb.config=ptp
94    stop adbd
95    write /sys/class/android_usb/android0/enable 0
96    write /sys/class/android_usb/android0/idVendor 18D1
97    write /sys/class/android_usb/android0/idProduct 4EE5
98    write /sys/class/android_usb/android0/bDeviceClass 0
99    write /sys/class/android_usb/android0/bDeviceSubClass 0
100    write /sys/class/android_usb/android0/bDeviceProtocol 0
101    write /sys/class/android_usb/android0/functions mtp
102    write /sys/class/android_usb/android0/enable 1
103    setprop sys.usb.state ${sys.usb.config}
104
105on property:sys.usb.config=ptp,adb
106    write /sys/class/android_usb/android0/enable 0
107    write /sys/class/android_usb/android0/idVendor 18D1
108    write /sys/class/android_usb/android0/idProduct 4EE6
109    write /sys/class/android_usb/android0/bDeviceClass 0
110    write /sys/class/android_usb/android0/bDeviceSubClass 0
111    write /sys/class/android_usb/android0/bDeviceProtocol 0
112    write /sys/class/android_usb/android0/functions mtp,adb
113    write /sys/class/android_usb/android0/enable 1
114    start adbd
115    setprop sys.usb.state ${sys.usb.config}
116
117# diag
118on property:sys.usb.config=diag
119    stop adbd
120    write /sys/class/android_usb/android0/enable 0
121    write /sys/class/android_usb/android0/idVendor 05c6
122    write /sys/class/android_usb/android0/idProduct 9060
123    write /sys/class/android_usb/android0/f_diag/clients diag
124    write /sys/class/android_usb/android0/functions diag,mtp,adb
125    write /sys/class/android_usb/android0/enable 1
126    start adbd
127    setprop sys.usb.state ${sys.usb.config}
128
129# USB midi configuration
130on property:sys.usb.config=midi
131    write /sys/class/android_usb/android0/enable 0
132    write /sys/class/android_usb/android0/idVendor 18d1
133    write /sys/class/android_usb/android0/idProduct 4ee8
134    write /sys/class/android_usb/android0/functions ${sys.usb.config}
135    write /sys/class/android_usb/android0/enable 1
136    start adbd
137    setprop sys.usb.state ${sys.usb.config}
138
139# USB midi configuration, with adb
140on property:sys.usb.config=midi,adb
141    write /sys/class/android_usb/android0/enable 0
142    write /sys/class/android_usb/android0/idVendor 18d1
143    write /sys/class/android_usb/android0/idProduct 4ee9
144    write /sys/class/android_usb/android0/functions ${sys.usb.config}
145    write /sys/class/android_usb/android0/enable 1
146    start adbd
147    setprop sys.usb.state ${sys.usb.config}
148
149# USB charging configuration
150on property:sys.usb.config=charging
151    stop adbd
152    write /sys/class/android_usb/android0/enable 0
153    write /sys/class/android_usb/android0/idVendor 18d1
154    write /sys/class/android_usb/android0/idProduct 4eea
155    write /sys/class/android_usb/android0/functions charging
156    write /sys/class/android_usb/android0/enable 1
157    setprop sys.usb.state ${sys.usb.config}
158
159# QDSS - Qualcomm Debug Subsystem
160on property:sys.usb.config=diag,qdss,adb
161    write /sys/class/android_usb/android0/enable 0
162    write /sys/class/android_usb/android0/idVendor 05C6
163    write /sys/class/android_usb/android0/idProduct 9060
164    write /sys/class/android_usb/android0/f_diag/clients diag
165    write /sys/class/android_usb/android0/functions diag,qdss,adb
166    write /sys/class/android_usb/android0/enable 1
167    start adbd
168    setprop sys.usb.state ${sys.usb.config}
169
170# USB factory configuration
171on property:sys.usb.config=manufacture,adb
172    stop adbd
173    write /sys/class/android_usb/android0/enable 0
174    write /sys/class/android_usb/android0/idVendor 12d1
175    write /sys/class/android_usb/android0/idProduct 1035
176    write /sys/class/android_usb/android0/f_diag/clients  diag
177    write /sys/class/android_usb/android0/f_serial/transports smd,smd
178    write /sys/class/android_usb/android0/functions serial,mass_storage,adb,diag
179    write /sys/class/android_usb/android0/enable 1
180    start adbd
181    setprop sys.usb.state ${sys.usb.config}
182
183# RmNet using USB BAM to IPA BAM
184on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_ipa,mass_storage,adb
185    stop adbd
186    write /sys/class/android_usb/android0/enable 0
187    write /sys/class/android_usb/android0/idVendor 05C6
188    write /sys/class/android_usb/android0/idProduct 9025
189    write /sys/class/android_usb/android0/f_diag/clients diag
190    write /sys/class/android_usb/android0/f_serial/transports smd,tty
191    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa
192    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
193    write /sys/class/android_usb/android0/enable 1
194    start adbd
195    setprop sys.usb.state ${sys.usb.config}
196
197on property:sys.usb.config=diag,serial_smd,rmnet_ipa,adb
198    stop adbd
199    write /sys/class/android_usb/android0/enable 0
200    write /sys/class/android_usb/android0/idVendor 05C6
201    write /sys/class/android_usb/android0/idProduct 9091
202    write /sys/class/android_usb/android0/f_diag/clients diag
203    write /sys/class/android_usb/android0/f_serial/transports smd
204    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa
205    write /sys/class/android_usb/android0/functions diag,serial,rmnet,adb
206    write /sys/class/android_usb/android0/enable 1
207    start adbd
208    setprop sys.usb.state ${sys.usb.config}
209
210# rndis with serial
211on property:sys.usb.config=rndis,serial
212    stop adbd
213    write /sys/class/android_usb/android0/enable 0
214    write /sys/class/android_usb/android0/idVendor 12d1
215    write /sys/class/android_usb/android0/idProduct 105d
216    write /sys/class/android_usb/android0/f_diag/clients diag
217    write /sys/class/android_usb/android0/f_serial/transports smd
218    write /sys/class/android_usb/android0/functions rndis,serial,diag
219    write /sys/class/android_usb/android0/enable 1
220    setprop sys.usb.state ${sys.usb.config}
221
222# rndis with serial and adb
223on property:sys.usb.config=rndis,serial,adb
224    stop adbd
225    write /sys/class/android_usb/android0/enable 0
226    write /sys/class/android_usb/android0/idVendor 12d1
227    write /sys/class/android_usb/android0/idProduct 105d
228    write /sys/class/android_usb/android0/f_diag/clients diag
229    write /sys/class/android_usb/android0/f_serial/transports smd
230    write /sys/class/android_usb/android0/functions rndis,serial,diag,adb
231    write /sys/class/android_usb/android0/enable 1
232    start adbd
233    setprop sys.usb.state ${sys.usb.config}
234
235