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