• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2012 The Android Open Source Project
2#
3# USB configuration common for all android devices
4#
5
6on post-fs-data
7    chown system system /sys/class/android_usb/android0/f_mass_storage/lun/file
8    chmod 0660 /sys/class/android_usb/android0/f_mass_storage/lun/file
9    chown system system /sys/class/android_usb/android0/f_rndis/ethaddr
10    chmod 0660 /sys/class/android_usb/android0/f_rndis/ethaddr
11
12on boot
13    setprop sys.usb.configfs 0
14
15# Used to disable USB when switching states
16on property:sys.usb.config=none && property:sys.usb.configfs=0
17    stop adbd
18    write /sys/class/android_usb/android0/enable 0
19    write /sys/class/android_usb/android0/bDeviceClass 0
20    setprop sys.usb.state ${sys.usb.config}
21
22# adb only USB configuration
23# This is the fallback configuration if the
24# USB manager fails to set a standard configuration
25on property:sys.usb.config=adb && property:sys.usb.configfs=0
26    write /sys/class/android_usb/android0/enable 0
27    write /sys/class/android_usb/android0/idVendor 18d1
28    write /sys/class/android_usb/android0/idProduct 4EE7
29    write /sys/class/android_usb/android0/functions ${sys.usb.config}
30    write /sys/class/android_usb/android0/enable 1
31    start adbd
32    setprop sys.usb.state ${sys.usb.config}
33
34# USB accessory configuration
35on property:sys.usb.config=accessory && property:sys.usb.configfs=0
36    write /sys/class/android_usb/android0/enable 0
37    write /sys/class/android_usb/android0/idVendor 18d1
38    write /sys/class/android_usb/android0/idProduct 2d00
39    write /sys/class/android_usb/android0/functions ${sys.usb.config}
40    write /sys/class/android_usb/android0/enable 1
41    setprop sys.usb.state ${sys.usb.config}
42
43# USB accessory configuration, with adb
44on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=0
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 2d01
48    write /sys/class/android_usb/android0/functions ${sys.usb.config}
49    write /sys/class/android_usb/android0/enable 1
50    start adbd
51    setprop sys.usb.state ${sys.usb.config}
52
53# audio accessory configuration
54on property:sys.usb.config=audio_source && property:sys.usb.configfs=0
55    write /sys/class/android_usb/android0/enable 0
56    write /sys/class/android_usb/android0/idVendor 18d1
57    write /sys/class/android_usb/android0/idProduct 2d02
58    write /sys/class/android_usb/android0/functions ${sys.usb.config}
59    write /sys/class/android_usb/android0/enable 1
60    setprop sys.usb.state ${sys.usb.config}
61
62# audio accessory configuration, with adb
63on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=0
64    write /sys/class/android_usb/android0/enable 0
65    write /sys/class/android_usb/android0/idVendor 18d1
66    write /sys/class/android_usb/android0/idProduct 2d03
67    write /sys/class/android_usb/android0/functions ${sys.usb.config}
68    write /sys/class/android_usb/android0/enable 1
69    start adbd
70    setprop sys.usb.state ${sys.usb.config}
71
72# USB and audio accessory configuration
73on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=0
74    write /sys/class/android_usb/android0/enable 0
75    write /sys/class/android_usb/android0/idVendor 18d1
76    write /sys/class/android_usb/android0/idProduct 2d04
77    write /sys/class/android_usb/android0/functions ${sys.usb.config}
78    write /sys/class/android_usb/android0/enable 1
79    setprop sys.usb.state ${sys.usb.config}
80
81# USB and audio accessory configuration, with adb
82on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=0
83    write /sys/class/android_usb/android0/enable 0
84    write /sys/class/android_usb/android0/idVendor 18d1
85    write /sys/class/android_usb/android0/idProduct 2d05
86    write /sys/class/android_usb/android0/functions ${sys.usb.config}
87    write /sys/class/android_usb/android0/enable 1
88    start adbd
89    setprop sys.usb.state ${sys.usb.config}
90
91# Used to set USB configuration at boot and to switch the configuration
92# when changing the default configuration
93on property:persist.sys.usb.config=*
94    setprop sys.usb.config ${persist.sys.usb.config}
95
96#
97# USB type C
98#
99
100# USB mode changes
101on property:sys.usb.typec.mode=dfp
102    write /sys/class/dual_role_usb/otg_default/mode ${sys.usb.typec.mode}
103    setprop sys.usb.typec.state ${sys.usb.typec.mode}
104
105on property:sys.usb.typec.mode=ufp
106    write /sys/class/dual_role_usb/otg_default/mode ${sys.usb.typec.mode}
107    setprop sys.usb.typec.state ${sys.usb.typec.mode}
108
109# USB data role changes
110on property:sys.usb.typec.data_role=device
111    write /sys/class/dual_role_usb/otg_default/data_role ${sys.usb.typec.data_role}
112    setprop sys.usb.typec.state ${sys.usb.typec.data_role}
113
114on property:sys.usb.typec.data_role=host
115    write /sys/class/dual_role_usb/otg_default/data_role ${sys.usb.typec.data_role}
116    setprop sys.usb.typec.state ${sys.usb.typec.data_role}
117
118# USB power role changes
119on property:sys.usb.typec.power_role=source
120    write /sys/class/dual_role_usb/otg_default/power_role ${sys.usb.typec.power_role}
121    setprop sys.usb.typec.state ${sys.usb.typec.power_role}
122
123on property:sys.usb.typec.power_role=sink
124    write /sys/class/dual_role_usb/otg_default/power_role ${sys.usb.typec.power_role}
125    setprop sys.usb.typec.state ${sys.usb.typec.power_role}
126