blob: dad9d7b179132014c1d1f415a47fa67085ead1bb [file] [log] [blame]
Patrick Tjinea3b3cd2015-03-31 10:38:39 -07001# 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}
Badhri Jagan Sridharan136795c2017-01-24 12:23:10 -080024 chown root system /sys/class/dual_role_usb/otg_default/mode
25 chmod 664 /sys/class/dual_role_usb/otg_default/mode
Badhri Jagan Sridharan1673cf02017-02-02 16:20:04 -080026 write /sys/module/dwc3/boot_finished 1
Patrick Tjinea3b3cd2015-03-31 10:38:39 -070027
28on post-fs
Jerry Zhangdf6f8f92017-09-06 16:06:13 -070029 mkdir /dev/usb-ffs 0770 shell shell
Patrick Tjinea3b3cd2015-03-31 10:38:39 -070030 mkdir /dev/usb-ffs/adb 0770 shell shell
Jerry Zhangfe23b722017-04-28 12:14:59 -070031 mount functionfs adb /dev/usb-ffs/adb noatime uid=2000,gid=2000,no_disconnect=1
Jerry Zhangdf6f8f92017-09-06 16:06:13 -070032 write /sys/class/android_usb/android0/f_ffs/aliases adb
33 write /sys/module/g_android/parameters/mtp_rx_req_len 131072
34 write /sys/module/g_android/parameters/mtp_tx_reqs 32
Jerry Zhang6d34dd02016-12-19 17:41:17 -080035 setprop sys.usb.ffs.max_write 262144
36 setprop sys.usb.ffs.max_read 262144
37 setprop sys.usb.mtp.device_type 3
Patrick Tjinea3b3cd2015-03-31 10:38:39 -070038
Wei Li71070432015-08-05 17:20:12 -040039on charger
40 setprop persist.sys.usb.config charging
41
Patrick Tjinea3b3cd2015-03-31 10:38:39 -070042# 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
Jerry Zhangdf6f8f92017-09-06 16:06:13 -0700101 write /sys/class/android_usb/android0/functions ptp
Patrick Tjinea3b3cd2015-03-31 10:38:39 -0700102 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
Jerry Zhangdf6f8f92017-09-06 16:06:13 -0700112 write /sys/class/android_usb/android0/functions ptp,adb
Patrick Tjinea3b3cd2015-03-31 10:38:39 -0700113 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
Wei Li71070432015-08-05 17:20:12 -0400149# 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
Badhri Jagan Sridharanb7f98872015-09-14 10:27:36 -0700154 write /sys/class/android_usb/android0/idProduct 4eea
Wei Li71070432015-08-05 17:20:12 -0400155 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
Patrick Tjinea3b3cd2015-03-31 10:38:39 -0700159# 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}
Zhihui Wu55d19af2015-05-13 23:52:37 -0700169
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
Zhihui Wu384b2222015-05-19 13:42:18 -0700183# RmNet using USB BAM to IPA BAM
184on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_ipa,mass_storage,adb
Zhihui Wu55d19af2015-05-13 23:52:37 -0700185 stop adbd
186 write /sys/class/android_usb/android0/enable 0
187 write /sys/class/android_usb/android0/idVendor 05C6
Zhihui Wu384b2222015-05-19 13:42:18 -0700188 write /sys/class/android_usb/android0/idProduct 9025
Zhihui Wu55d19af2015-05-13 23:52:37 -0700189 write /sys/class/android_usb/android0/f_diag/clients diag
Zhihui Wu384b2222015-05-19 13:42:18 -0700190 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
Zhihui Wu55d19af2015-05-13 23:52:37 -0700193 write /sys/class/android_usb/android0/enable 1
194 start adbd
195 setprop sys.usb.state ${sys.usb.config}
Wei Li92df9e62015-08-12 15:35:07 -0400196
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