blob: 02d34ba7f689b4a09eba7d8c6c956229db9eb574 [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
Paul Crowley68258e82019-10-28 07:55:03 -070012 mkdir /data/adb 0700 root root encryption=Require
Tom Cherry2270dbb2015-09-03 16:14:51 -070013
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
Nikita Ioffec796f912019-12-10 19:16:15 +000022# Set default value on sys.usb.configfs early in boot sequence. It will be
23# overridden in `on boot` action of init.hardware.rc.
24on init
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070025 setprop sys.usb.configfs 0
26
Mike Lockwood4f5d5172012-04-04 11:26:59 -070027# Used to disable USB when switching states
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070028on property:sys.usb.config=none && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070029 stop adbd
30 write /sys/class/android_usb/android0/enable 0
31 write /sys/class/android_usb/android0/bDeviceClass 0
32 setprop sys.usb.state ${sys.usb.config}
33
34# adb only USB configuration
Badhri Jagan Sridharan97b536f2014-09-05 11:10:09 -070035# This is the fallback configuration if the
36# USB manager fails to set a standard configuration
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070037on property:sys.usb.config=adb && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070038 write /sys/class/android_usb/android0/enable 0
39 write /sys/class/android_usb/android0/idVendor 18d1
Badhri Jagan Sridharan97b536f2014-09-05 11:10:09 -070040 write /sys/class/android_usb/android0/idProduct 4EE7
Mike Lockwood4f5d5172012-04-04 11:26:59 -070041 write /sys/class/android_usb/android0/functions ${sys.usb.config}
42 write /sys/class/android_usb/android0/enable 1
43 start adbd
44 setprop sys.usb.state ${sys.usb.config}
45
46# USB accessory configuration
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070047on property:sys.usb.config=accessory && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070048 write /sys/class/android_usb/android0/enable 0
49 write /sys/class/android_usb/android0/idVendor 18d1
50 write /sys/class/android_usb/android0/idProduct 2d00
51 write /sys/class/android_usb/android0/functions ${sys.usb.config}
52 write /sys/class/android_usb/android0/enable 1
53 setprop sys.usb.state ${sys.usb.config}
54
55# USB accessory configuration, with adb
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070056on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070057 write /sys/class/android_usb/android0/enable 0
58 write /sys/class/android_usb/android0/idVendor 18d1
59 write /sys/class/android_usb/android0/idProduct 2d01
60 write /sys/class/android_usb/android0/functions ${sys.usb.config}
61 write /sys/class/android_usb/android0/enable 1
62 start adbd
63 setprop sys.usb.state ${sys.usb.config}
64
65# audio accessory configuration
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070066on property:sys.usb.config=audio_source && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070067 write /sys/class/android_usb/android0/enable 0
68 write /sys/class/android_usb/android0/idVendor 18d1
69 write /sys/class/android_usb/android0/idProduct 2d02
70 write /sys/class/android_usb/android0/functions ${sys.usb.config}
71 write /sys/class/android_usb/android0/enable 1
72 setprop sys.usb.state ${sys.usb.config}
73
74# audio accessory configuration, with adb
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070075on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070076 write /sys/class/android_usb/android0/enable 0
77 write /sys/class/android_usb/android0/idVendor 18d1
78 write /sys/class/android_usb/android0/idProduct 2d03
79 write /sys/class/android_usb/android0/functions ${sys.usb.config}
80 write /sys/class/android_usb/android0/enable 1
81 start adbd
82 setprop sys.usb.state ${sys.usb.config}
83
84# USB and audio accessory configuration
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070085on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070086 write /sys/class/android_usb/android0/enable 0
87 write /sys/class/android_usb/android0/idVendor 18d1
88 write /sys/class/android_usb/android0/idProduct 2d04
89 write /sys/class/android_usb/android0/functions ${sys.usb.config}
90 write /sys/class/android_usb/android0/enable 1
91 setprop sys.usb.state ${sys.usb.config}
92
93# USB and audio accessory configuration, with adb
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070094on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070095 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 2d05
98 write /sys/class/android_usb/android0/functions ${sys.usb.config}
99 write /sys/class/android_usb/android0/enable 1
100 start adbd
101 setprop sys.usb.state ${sys.usb.config}
102
103# Used to set USB configuration at boot and to switch the configuration
104# when changing the default configuration
Badhri Jagan Sridharan05e04a12016-08-01 14:45:18 -0700105on boot && property:persist.sys.usb.config=*
Mike Lockwood4f5d5172012-04-04 11:26:59 -0700106 setprop sys.usb.config ${persist.sys.usb.config}
Tim Kilbourn8c12fdf2015-08-12 09:36:00 -0700107
108#
109# USB type C
110#
111
112# USB mode changes
113on property:sys.usb.typec.mode=dfp
114 write /sys/class/dual_role_usb/otg_default/mode ${sys.usb.typec.mode}
115 setprop sys.usb.typec.state ${sys.usb.typec.mode}
116
117on property:sys.usb.typec.mode=ufp
118 write /sys/class/dual_role_usb/otg_default/mode ${sys.usb.typec.mode}
119 setprop sys.usb.typec.state ${sys.usb.typec.mode}
120
121# USB data role changes
122on property:sys.usb.typec.data_role=device
Vincent Palatin3b7995b2015-09-03 13:50:27 -0700123 write /sys/class/dual_role_usb/otg_default/data_role ${sys.usb.typec.data_role}
Tim Kilbourn8c12fdf2015-08-12 09:36:00 -0700124 setprop sys.usb.typec.state ${sys.usb.typec.data_role}
125
126on property:sys.usb.typec.data_role=host
Vincent Palatin3b7995b2015-09-03 13:50:27 -0700127 write /sys/class/dual_role_usb/otg_default/data_role ${sys.usb.typec.data_role}
Tim Kilbourn8c12fdf2015-08-12 09:36:00 -0700128 setprop sys.usb.typec.state ${sys.usb.typec.data_role}
129
130# USB power role changes
131on property:sys.usb.typec.power_role=source
Vincent Palatin3b7995b2015-09-03 13:50:27 -0700132 write /sys/class/dual_role_usb/otg_default/power_role ${sys.usb.typec.power_role}
Tim Kilbourn8c12fdf2015-08-12 09:36:00 -0700133 setprop sys.usb.typec.state ${sys.usb.typec.power_role}
134
135on property:sys.usb.typec.power_role=sink
Vincent Palatin3b7995b2015-09-03 13:50:27 -0700136 write /sys/class/dual_role_usb/otg_default/power_role ${sys.usb.typec.power_role}
Tim Kilbourn8c12fdf2015-08-12 09:36:00 -0700137 setprop sys.usb.typec.state ${sys.usb.typec.power_role}
Nikita Ioffec796f912019-12-10 19:16:15 +0000138
139on userspace-reboot-requested
140 setprop sys.usb.config ""
141 setprop sys.usb.configfs ""
142 setprop sys.usb.state ""