blob: 688d9ad0825f8c33e2f6df1a0e3ae523426770e0 [file] [log] [blame]
Mike Lockwood4f5d5172012-04-04 11:26:59 -07001# 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
Tom Cherry2270dbb2015-09-03 16:14:51 -070011 mkdir /data/misc/adb 02750 system shell
12 mkdir /data/adb 0700 root root
13
14# adbd is controlled via property triggers in init.<platform>.usb.rc
Bowgo Tsai7b9a4d52017-07-28 20:29:15 +080015service adbd /system/bin/adbd --root_seclabel=u:r:su:s0
Tom Cherry2270dbb2015-09-03 16:14:51 -070016 class core
Michael Groover7eeda6b2019-04-25 18:33:35 -070017 socket adbd seqpacket 660 system system
Tom Cherry2270dbb2015-09-03 16:14:51 -070018 disabled
Josh Gao594f70f2019-08-15 14:05:12 -070019 updatable
Tom Cherry2270dbb2015-09-03 16:14:51 -070020 seclabel u:r:adbd:s0
21
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070022on boot
23 setprop sys.usb.configfs 0
24
Mike Lockwood4f5d5172012-04-04 11:26:59 -070025# Used to disable USB when switching states
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070026on property:sys.usb.config=none && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070027 stop adbd
28 write /sys/class/android_usb/android0/enable 0
29 write /sys/class/android_usb/android0/bDeviceClass 0
30 setprop sys.usb.state ${sys.usb.config}
31
32# adb only USB configuration
Badhri Jagan Sridharan97b536f2014-09-05 11:10:09 -070033# This is the fallback configuration if the
34# USB manager fails to set a standard configuration
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070035on property:sys.usb.config=adb && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070036 write /sys/class/android_usb/android0/enable 0
37 write /sys/class/android_usb/android0/idVendor 18d1
Badhri Jagan Sridharan97b536f2014-09-05 11:10:09 -070038 write /sys/class/android_usb/android0/idProduct 4EE7
Mike Lockwood4f5d5172012-04-04 11:26:59 -070039 write /sys/class/android_usb/android0/functions ${sys.usb.config}
40 write /sys/class/android_usb/android0/enable 1
41 start adbd
42 setprop sys.usb.state ${sys.usb.config}
43
44# USB accessory configuration
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070045on property:sys.usb.config=accessory && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070046 write /sys/class/android_usb/android0/enable 0
47 write /sys/class/android_usb/android0/idVendor 18d1
48 write /sys/class/android_usb/android0/idProduct 2d00
49 write /sys/class/android_usb/android0/functions ${sys.usb.config}
50 write /sys/class/android_usb/android0/enable 1
51 setprop sys.usb.state ${sys.usb.config}
52
53# USB accessory configuration, with adb
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070054on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070055 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 2d01
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# audio accessory configuration
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070064on property:sys.usb.config=audio_source && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070065 write /sys/class/android_usb/android0/enable 0
66 write /sys/class/android_usb/android0/idVendor 18d1
67 write /sys/class/android_usb/android0/idProduct 2d02
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# audio accessory configuration, with adb
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070073on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070074 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 2d03
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# USB and audio accessory configuration
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070083on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070084 write /sys/class/android_usb/android0/enable 0
85 write /sys/class/android_usb/android0/idVendor 18d1
86 write /sys/class/android_usb/android0/idProduct 2d04
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# USB and audio accessory configuration, with adb
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070092on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070093 write /sys/class/android_usb/android0/enable 0
94 write /sys/class/android_usb/android0/idVendor 18d1
95 write /sys/class/android_usb/android0/idProduct 2d05
96 write /sys/class/android_usb/android0/functions ${sys.usb.config}
97 write /sys/class/android_usb/android0/enable 1
98 start adbd
99 setprop sys.usb.state ${sys.usb.config}
100
101# Used to set USB configuration at boot and to switch the configuration
102# when changing the default configuration
Badhri Jagan Sridharan05e04a12016-08-01 14:45:18 -0700103on boot && property:persist.sys.usb.config=*
Mike Lockwood4f5d5172012-04-04 11:26:59 -0700104 setprop sys.usb.config ${persist.sys.usb.config}
Tim Kilbourn8c12fdf2015-08-12 09:36:00 -0700105
106#
107# USB type C
108#
109
110# USB mode changes
111on property:sys.usb.typec.mode=dfp
112 write /sys/class/dual_role_usb/otg_default/mode ${sys.usb.typec.mode}
113 setprop sys.usb.typec.state ${sys.usb.typec.mode}
114
115on property:sys.usb.typec.mode=ufp
116 write /sys/class/dual_role_usb/otg_default/mode ${sys.usb.typec.mode}
117 setprop sys.usb.typec.state ${sys.usb.typec.mode}
118
119# USB data role changes
120on property:sys.usb.typec.data_role=device
Vincent Palatin3b7995b2015-09-03 13:50:27 -0700121 write /sys/class/dual_role_usb/otg_default/data_role ${sys.usb.typec.data_role}
Tim Kilbourn8c12fdf2015-08-12 09:36:00 -0700122 setprop sys.usb.typec.state ${sys.usb.typec.data_role}
123
124on property:sys.usb.typec.data_role=host
Vincent Palatin3b7995b2015-09-03 13:50:27 -0700125 write /sys/class/dual_role_usb/otg_default/data_role ${sys.usb.typec.data_role}
Tim Kilbourn8c12fdf2015-08-12 09:36:00 -0700126 setprop sys.usb.typec.state ${sys.usb.typec.data_role}
127
128# USB power role changes
129on property:sys.usb.typec.power_role=source
Vincent Palatin3b7995b2015-09-03 13:50:27 -0700130 write /sys/class/dual_role_usb/otg_default/power_role ${sys.usb.typec.power_role}
Tim Kilbourn8c12fdf2015-08-12 09:36:00 -0700131 setprop sys.usb.typec.state ${sys.usb.typec.power_role}
132
133on property:sys.usb.typec.power_role=sink
Vincent Palatin3b7995b2015-09-03 13:50:27 -0700134 write /sys/class/dual_role_usb/otg_default/power_role ${sys.usb.typec.power_role}
Tim Kilbourn8c12fdf2015-08-12 09:36:00 -0700135 setprop sys.usb.typec.state ${sys.usb.typec.power_role}