LRX21M.vC1O-0
[GitHub/mt8127/ttab-system.git] / ramdisk / init.mt8127usb.rc
1 on init
2 # Workarunod for USB unknow device issue
3 # USB would switch correct function when set properity sys.usb.config
4 # update usb vid 0E8D to 1BBB by SCDTABLET.(lilin.liu@jrdcom.com), PR1005181 05/18/2015
5 setprop sys.usb.vid 1BBB
6 write /sys/class/android_usb/android0/iSerial $ro.serialno
7 write /sys/class/android_usb/android0/idVendor $sys.usb.vid
8
9 on post-fs-data
10 chown system system /sys/class/android_usb/android0/f_mass_storage/lun/file
11 chmod 0660 /sys/class/android_usb/android0/f_mass_storage/lun/file
12 chown system system /sys/class/android_usb/android0/f_rndis/ethaddr
13 chmod 0660 /sys/class/android_usb/android0/f_rndis/ethaddr
14
15 write /sys/class/android_usb/android0/f_rndis/wceis 1
16 write /sys/class/android_usb/android0/f_rndis/manufacturer MediaTek
17 write /sys/class/android_usb/android0/f_rndis/vendorID $sys.usb.vid
18
19 # Used to set USB configuration at boot and to switch the configuration
20 # when changing the default configuration
21 on property:persist.sys.usb.config=*
22 setprop sys.usb.config $persist.sys.usb.config
23
24 # Used to disable USB when switching states
25 on property:sys.usb.config=none
26 stop adbd
27 write /sys/class/android_usb/android0/enable 0
28 write /sys/class/android_usb/android0/bDeviceClass 0
29 setprop sys.usb.state $sys.usb.config
30
31 #1.acm
32 on property:sys.usb.config=acm
33 write /sys/class/android_usb/android0/enable 0
34 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
35 write /sys/class/android_usb/android0/idProduct 2007
36 write /sys/class/android_usb/android0/f_acm/instances 1
37 write /sys/class/android_usb/android0/functions ${sys.usb.config}
38 write /sys/class/android_usb/android0/bDeviceClass 02
39 write /sys/class/android_usb/android0/enable 1
40 setprop sys.usb.state ${sys.usb.config}
41
42 #2.adb
43 on property:sys.usb.config=adb
44 write /sys/class/android_usb/android0/enable 0
45 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
46 write /sys/class/android_usb/android0/idProduct 201C
47 write /sys/class/android_usb/android0/functions ${sys.usb.config}
48 write /sys/class/android_usb/android0/enable 1
49 start adbd
50 setprop sys.usb.state ${sys.usb.config}
51
52 #3.adb,acm
53 on property:sys.usb.config=adb,acm
54 write /sys/class/android_usb/android0/enable 0
55 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
56 write /sys/class/android_usb/android0/idProduct 200E
57 write /sys/class/android_usb/android0/f_acm/instances 1
58 write /sys/class/android_usb/android0/functions ${sys.usb.config}
59 write /sys/class/android_usb/android0/enable 1
60 start adbd
61 setprop sys.usb.state ${sys.usb.config}
62
63 #4.mass_storage
64 on property:sys.usb.config=mass_storage
65 write /sys/class/android_usb/android0/enable 0
66 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
67 write /sys/class/android_usb/android0/idProduct 2002
68 write /sys/class/android_usb/android0/functions ${sys.usb.config}
69 write /sys/class/android_usb/android0/enable 1
70 setprop sys.usb.state ${sys.usb.config}
71
72 #5.mass_storage,adb
73 on property:sys.usb.config=mass_storage,adb
74 write /sys/class/android_usb/android0/enable 0
75 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
76 write /sys/class/android_usb/android0/idProduct 2003
77 write /sys/class/android_usb/android0/functions ${sys.usb.config}
78 write /sys/class/android_usb/android0/enable 1
79 start adbd
80 setprop sys.usb.state ${sys.usb.config}
81
82 #6.mtp
83 on property:sys.usb.config=mtp
84 write /sys/class/android_usb/android0/enable 0
85 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
86 write /sys/class/android_usb/android0/idProduct 2008
87 write /sys/class/android_usb/android0/functions ${sys.usb.config}
88 write /sys/class/android_usb/android0/enable 1
89 setprop sys.usb.state ${sys.usb.config}
90
91 #7.mtp,acm
92 on property:sys.usb.config=mtp,acm
93 write /sys/class/android_usb/android0/enable 0
94 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
95 write /sys/class/android_usb/android0/idProduct 2012
96 write /sys/class/android_usb/android0/f_acm/instances 1
97 write /sys/class/android_usb/android0/functions ${sys.usb.config}
98 write /sys/class/android_usb/android0/enable 1
99 setprop sys.usb.state ${sys.usb.config}
100
101 #8.mtp,adb
102 on property:sys.usb.config=mtp,adb
103 write /sys/class/android_usb/android0/enable 0
104 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
105 write /sys/class/android_usb/android0/idProduct 201D
106 write /sys/class/android_usb/android0/functions mtp,adb
107 write /sys/class/android_usb/android0/enable 1
108 start adbd
109 setprop sys.usb.state ${sys.usb.config}
110
111 #9.mtp,adb,acm
112 on property:sys.usb.config=mtp,adb,acm
113 write /sys/class/android_usb/android0/enable 0
114 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
115 write /sys/class/android_usb/android0/idProduct 200A
116 write /sys/class/android_usb/android0/f_acm/instances 1
117 write /sys/class/android_usb/android0/functions ${sys.usb.config}
118 write /sys/class/android_usb/android0/enable 1
119 start adbd
120 setprop sys.usb.state ${sys.usb.config}
121
122 #10.mtp,mass_storage
123 on property:sys.usb.config=mtp,mass_storage
124 write /sys/class/android_usb/android0/enable 0
125 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
126 write /sys/class/android_usb/android0/idProduct 2016
127 write /sys/class/android_usb/android0/functions ${sys.usb.config}
128 write /sys/class/android_usb/android0/enable 1
129 setprop sys.usb.state ${sys.usb.config}
130
131 #11.mtp,mass_storage,adb
132 on property:sys.usb.config=mtp,mass_storage,adb
133 write /sys/class/android_usb/android0/enable 0
134 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
135 write /sys/class/android_usb/android0/idProduct 2017
136 write /sys/class/android_usb/android0/functions ${sys.usb.config}
137 write /sys/class/android_usb/android0/enable 1
138 start adbd
139 setprop sys.usb.state ${sys.usb.config}
140
141 #12.ptp
142 on property:sys.usb.config=ptp
143 write /sys/class/android_usb/android0/enable 0
144 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
145 write /sys/class/android_usb/android0/idProduct 200B
146 write /sys/class/android_usb/android0/functions ${sys.usb.config}
147 write /sys/class/android_usb/android0/enable 1
148 setprop sys.usb.state ${sys.usb.config}
149
150 #13.ptp,acm
151 on property:sys.usb.config=ptp,acm
152 write /sys/class/android_usb/android0/enable 0
153 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
154 write /sys/class/android_usb/android0/idProduct 2013
155 write /sys/class/android_usb/android0/f_acm/instances 1
156 write /sys/class/android_usb/android0/functions ${sys.usb.config}
157 write /sys/class/android_usb/android0/enable 1
158 setprop sys.usb.state ${sys.usb.config}
159
160 #14.ptp,adb
161 on property:sys.usb.config=ptp,adb
162 write /sys/class/android_usb/android0/enable 0
163 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
164 write /sys/class/android_usb/android0/idProduct 200C
165 write /sys/class/android_usb/android0/functions ${sys.usb.config}
166 write /sys/class/android_usb/android0/enable 1
167 start adbd
168 setprop sys.usb.state ${sys.usb.config}
169
170 #15.ptp,adb,acm
171 on property:sys.usb.config=ptp,adb,acm
172 write /sys/class/android_usb/android0/enable 0
173 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
174 write /sys/class/android_usb/android0/idProduct 200D
175 write /sys/class/android_usb/android0/f_acm/instances 1
176 write /sys/class/android_usb/android0/functions ${sys.usb.config}
177 write /sys/class/android_usb/android0/enable 1
178 start adbd
179 setprop sys.usb.state ${sys.usb.config}
180
181 #16.ptp,mass_storage
182 on property:sys.usb.config=ptp,mass_storage
183 write /sys/class/android_usb/android0/enable 0
184 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
185 write /sys/class/android_usb/android0/idProduct 2015
186 write /sys/class/android_usb/android0/functions ${sys.usb.config}
187 write /sys/class/android_usb/android0/enable 1
188 setprop sys.usb.state ${sys.usb.config}
189
190 #17.ptp,mass_storage,adb
191 on property:sys.usb.config=ptp,mass_storage,adb
192 write /sys/class/android_usb/android0/enable 0
193 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
194 write /sys/class/android_usb/android0/idProduct 2014
195 write /sys/class/android_usb/android0/functions ${sys.usb.config}
196 write /sys/class/android_usb/android0/enable 1
197 start adbd
198 setprop sys.usb.state ${sys.usb.config}
199
200 #18.rndis
201 on property:sys.usb.config=rndis
202 write /sys/class/android_usb/android0/enable 0
203 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
204 write /sys/class/android_usb/android0/idProduct 2004
205 write /sys/class/android_usb/android0/functions ${sys.usb.config}
206 write /sys/class/android_usb/android0/bDeviceClass 224
207 write /sys/class/android_usb/android0/enable 1
208 setprop sys.usb.state ${sys.usb.config}
209
210 #19.rndis,acm
211 on property:sys.usb.config=rndis,acm
212 write /sys/class/android_usb/android0/enable 0
213 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
214 write /sys/class/android_usb/android0/idProduct 2011
215 write /sys/class/android_usb/android0/f_acm/instances 1
216 write /sys/class/android_usb/android0/functions ${sys.usb.config}
217 write /sys/class/android_usb/android0/enable 1
218 setprop sys.usb.state ${sys.usb.config}
219
220 #20.rndis,adb
221 on property:sys.usb.config=rndis,adb
222 write /sys/class/android_usb/android0/enable 0
223 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
224 write /sys/class/android_usb/android0/idProduct 2005
225 write /sys/class/android_usb/android0/functions ${sys.usb.config}
226 write /sys/class/android_usb/android0/enable 1
227 start adbd
228 setprop sys.usb.state ${sys.usb.config}
229
230 #21.rndis,adb,acm
231 on property:sys.usb.config=rndis,adb,acm
232 write /sys/class/android_usb/android0/enable 0
233 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
234 write /sys/class/android_usb/android0/idProduct 2010
235 write /sys/class/android_usb/android0/f_acm/instances 1
236 write /sys/class/android_usb/android0/functions ${sys.usb.config}
237 write /sys/class/android_usb/android0/enable 1
238 start adbd
239 setprop sys.usb.state ${sys.usb.config}
240
241 #22.mass_storage,acm
242 on property:sys.usb.config=mass_storage,acm
243 write /sys/class/android_usb/android0/enable 0
244 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
245 write /sys/class/android_usb/android0/idProduct 200F
246 write /sys/class/android_usb/android0/f_acm/instances 1
247 write /sys/class/android_usb/android0/functions ${sys.usb.config}
248 write /sys/class/android_usb/android0/enable 1
249 setprop sys.usb.state ${sys.usb.config}
250
251 #23.mass_storage,adb,acm
252 on property:sys.usb.config=mass_storage,adb,acm
253 write /sys/class/android_usb/android0/enable 0
254 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
255 write /sys/class/android_usb/android0/idProduct 2006
256 write /sys/class/android_usb/android0/f_acm/instances 1
257 write /sys/class/android_usb/android0/functions ${sys.usb.config}
258 write /sys/class/android_usb/android0/enable 1
259 start adbd
260 setprop sys.usb.state ${sys.usb.config}
261
262 #24.mtp,mass_storage,acm
263 on property:sys.usb.config=mtp,mass_storage,acm
264 write /sys/class/android_usb/android0/enable 0
265 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
266 write /sys/class/android_usb/android0/idProduct 2018
267 write /sys/class/android_usb/android0/f_acm/instances 1
268 write /sys/class/android_usb/android0/functions ${sys.usb.config}
269 write /sys/class/android_usb/android0/enable 1
270 setprop sys.usb.state ${sys.usb.config}
271
272 #25.mtp,mass_storage,adb,acm
273 on property:sys.usb.config=mtp,mass_storage,adb,acm
274 write /sys/class/android_usb/android0/enable 0
275 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
276 write /sys/class/android_usb/android0/idProduct 2019
277 write /sys/class/android_usb/android0/f_acm/instances 1
278 write /sys/class/android_usb/android0/functions ${sys.usb.config}
279 write /sys/class/android_usb/android0/enable 1
280 start adbd
281 setprop sys.usb.state ${sys.usb.config}
282
283 #26.ptp,mass_storage,acm
284 on property:sys.usb.config=ptp,mass_storage,acm
285 write /sys/class/android_usb/android0/enable 0
286 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
287 write /sys/class/android_usb/android0/idProduct 201A
288 write /sys/class/android_usb/android0/f_acm/instances 1
289 write /sys/class/android_usb/android0/functions ${sys.usb.config}
290 write /sys/class/android_usb/android0/enable 1
291 setprop sys.usb.state ${sys.usb.config}
292
293 #27.ptp,mass_storage,adb,acm
294 on property:sys.usb.config=ptp,mass_storage,adb,acm
295 write /sys/class/android_usb/android0/enable 0
296 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
297 write /sys/class/android_usb/android0/idProduct 201B
298 write /sys/class/android_usb/android0/f_acm/instances 1
299 write /sys/class/android_usb/android0/functions ${sys.usb.config}
300 write /sys/class/android_usb/android0/enable 1
301 start adbd
302 setprop sys.usb.state ${sys.usb.config}
303
304 # duplicate of init.usb.rc
305
306 #28. USB accessory configuration
307 #on property:sys.usb.config=accessory
308 # write /sys/class/android_usb/android0/enable 0
309 # write /sys/class/android_usb/android0/idVendor 18d1
310 # write /sys/class/android_usb/android0/idProduct 2d00
311 # write /sys/class/android_usb/android0/functions ${sys.usb.config}
312 # write /sys/class/android_usb/android0/enable 1
313 # setprop sys.usb.state ${sys.usb.config}
314
315 #39. USB accessory configuration, with adb
316 #on property:sys.usb.config=accessory,adb
317 # write /sys/class/android_usb/android0/enable 0
318 # write /sys/class/android_usb/android0/idVendor 18d1
319 # write /sys/class/android_usb/android0/idProduct 2d01
320 # write /sys/class/android_usb/android0/functions ${sys.usb.config}
321 # write /sys/class/android_usb/android0/enable 1
322 # start adbd
323 # setprop sys.usb.state ${sys.usb.config}
324
325 #30. audio accessory configuration
326 #on property:sys.usb.config=audio_source
327 # write /sys/class/android_usb/android0/enable 0
328 # write /sys/class/android_usb/android0/idVendor 18d1
329 # write /sys/class/android_usb/android0/idProduct 2d02
330 # write /sys/class/android_usb/android0/functions ${sys.usb.config}
331 # write /sys/class/android_usb/android0/enable 1
332 # setprop sys.usb.state ${sys.usb.config}
333
334 #31. audio accessory configuration, with adb
335 #on property:sys.usb.config=audio_source,adb
336 # write /sys/class/android_usb/android0/enable 0
337 # write /sys/class/android_usb/android0/idVendor 18d1
338 # write /sys/class/android_usb/android0/idProduct 2d03
339 # write /sys/class/android_usb/android0/functions ${sys.usb.config}
340 # write /sys/class/android_usb/android0/enable 1
341 # start adbd
342 # setprop sys.usb.state ${sys.usb.config}
343
344 #32. USB and audio accessory configuration
345 #on property:sys.usb.config=accessory,audio_source
346 # write /sys/class/android_usb/android0/enable 0
347 # write /sys/class/android_usb/android0/idVendor 18d1
348 # write /sys/class/android_usb/android0/idProduct 2d04
349 # write /sys/class/android_usb/android0/functions ${sys.usb.config}
350 # write /sys/class/android_usb/android0/enable 1
351 # setprop sys.usb.state ${sys.usb.config}
352
353 #33. USB and audio accessory configuration, with adb
354 #on property:sys.usb.config=accessory,audio_source,adb
355 # write /sys/class/android_usb/android0/enable 0
356 # write /sys/class/android_usb/android0/idVendor 18d1
357 # write /sys/class/android_usb/android0/idProduct 2d05
358 # write /sys/class/android_usb/android0/functions ${sys.usb.config}
359 # write /sys/class/android_usb/android0/enable 1
360 # start adbd
361 # setprop sys.usb.state ${sys.usb.config}
362
363 #34.USB Charging Only configuration
364 on property:sys.usb.config=charging
365 setprop sys.usb.state ${sys.usb.config}
366 setprop sys.usb.charging yes
367
368 on property:sys.usb.charging=yes
369 write /sys/devices/platform/mt_usb/cmode 2
370
371 on property:sys.usb.charging=no
372 write /sys/devices/platform/mt_usb/cmode 1
373
374 #35.USB BICR configuration(mass_storage)
375 on property:sys.usb.config=bicr
376 write /sys/class/android_usb/android0/enable 0
377 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
378 write /sys/class/android_usb/android0/idProduct 2002
379 write /sys/class/android_usb/android0/functions mass_storage
380 write /sys/class/android_usb/android0/f_mass_storage/bicr 1
381 write /sys/class/android_usb/android0/f_mass_storage/lun/file "/dev/block/loop0"
382 write /sys/class/android_usb/android0/enable 1
383 setprop sys.usb.state ${sys.usb.config}
384
385 #36.USB BICR configuration(mass_storage+adb)
386 on property:sys.usb.config=bicr,adb
387 write /sys/class/android_usb/android0/enable 0
388 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
389 write /sys/class/android_usb/android0/idProduct 2003
390 write /sys/class/android_usb/android0/functions mass_storage,adb
391 write /sys/class/android_usb/android0/f_mass_storage/bicr 1
392 write /sys/class/android_usb/android0/f_mass_storage/lun/file "/dev/block/loop0"
393 write /sys/class/android_usb/android0/enable 1
394 start adbd
395 setprop sys.usb.state ${sys.usb.config}
396
397 #37.USB BICR configuration(mass_storage+adb+acm)
398 on property:sys.usb.config=bicr,adb,acm
399 write /sys/class/android_usb/android0/enable 0
400 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
401 write /sys/class/android_usb/android0/idProduct 2006
402 write /sys/class/android_usb/android0/f_acm/instances 1
403 write /sys/class/android_usb/android0/functions mass_storage,adb,acm
404 write /sys/class/android_usb/android0/f_mass_storage/bicr 1
405 write /sys/class/android_usb/android0/f_mass_storage/lun/file "/dev/block/loop0"
406 write /sys/class/android_usb/android0/enable 1
407 start adbd
408 setprop sys.usb.state ${sys.usb.config}
409
410 #38.USB BICR configuration(mass_storage+acm)
411 on property:sys.usb.config=bicr,acm
412 write /sys/class/android_usb/android0/enable 0
413 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
414 write /sys/class/android_usb/android0/idProduct 200F
415 write /sys/class/android_usb/android0/f_acm/instances 1
416 write /sys/class/android_usb/android0/functions mass_storage,acm
417 write /sys/class/android_usb/android0/f_mass_storage/bicr 1
418 write /sys/class/android_usb/android0/f_mass_storage/lun/file "/dev/block/loop0"
419 write /sys/class/android_usb/android0/enable 1
420 setprop sys.usb.state ${sys.usb.config}
421
422 #39.eem
423 on property:sys.usb.config=eem
424 write /sys/class/android_usb/android0/enable 0
425 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
426 write /sys/class/android_usb/android0/idProduct 2026
427 write /sys/class/android_usb/android0/functions ${sys.usb.config}
428 write /sys/class/android_usb/android0/bDeviceClass 224
429 write /sys/class/android_usb/android0/enable 1
430 setprop sys.usb.state ${sys.usb.config}
431
432 #40.eem,acm
433 on property:sys.usb.config=eem,acm
434 write /sys/class/android_usb/android0/enable 0
435 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
436 write /sys/class/android_usb/android0/idProduct 2027
437 write /sys/class/android_usb/android0/f_acm/instances 1
438 write /sys/class/android_usb/android0/functions ${sys.usb.config}
439 write /sys/class/android_usb/android0/enable 1
440 setprop sys.usb.state ${sys.usb.config}
441
442 #41.eem,adb
443 on property:sys.usb.config=eem,adb
444 write /sys/class/android_usb/android0/enable 0
445 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
446 write /sys/class/android_usb/android0/idProduct 2028
447 write /sys/class/android_usb/android0/functions ${sys.usb.config}
448 write /sys/class/android_usb/android0/enable 1
449 start adbd
450 setprop sys.usb.state ${sys.usb.config}
451
452 #42.eem,adb,acm
453 on property:sys.usb.config=eem,adb,acm
454 write /sys/class/android_usb/android0/enable 0
455 write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
456 write /sys/class/android_usb/android0/idProduct 2030
457 write /sys/class/android_usb/android0/f_acm/instances 1
458 write /sys/class/android_usb/android0/functions ${sys.usb.config}
459 write /sys/class/android_usb/android0/enable 1
460 start adbd
461 setprop sys.usb.state ${sys.usb.config}
462
463 on property:sys.usb.bicr=yes
464 write /sys/class/android_usb/android0/f_mass_storage/bicr 1
465 write /sys/class/android_usb/android0/f_mass_storage/lun/file "/dev/block/loop0"
466
467 on property:sys.usb.bicr=no
468 write /sys/class/android_usb/android0/f_mass_storage/bicr 0
469 write /sys/class/android_usb/android0/f_mass_storage/lun/file "0"
470
471 on property:mediatek.usb.port.mode=usb
472 write /sys/devices/platform/mt_usb/portmode 0
473
474 on property:mediatek.usb.port.mode=uart
475 write /sys/devices/platform/mt_usb/portmode 1