blob: b30d6d02c58e86f2dcb247cc2a6e385254f2f16e [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
Steven Moreland7d533322023-05-03 01:05:57 +000021 user root
Tom Cherry2270dbb2015-09-03 16:14:51 -070022
Josh Gao552f3b42021-03-22 16:36:17 -070023on property:vendor.sys.usb.adb.disabled=*
24 setprop sys.usb.adb.disabled ${vendor.sys.usb.adb.disabled}
25
Nikita Ioffec796f912019-12-10 19:16:15 +000026# Set default value on sys.usb.configfs early in boot sequence. It will be
27# overridden in `on boot` action of init.hardware.rc.
28on init
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070029 setprop sys.usb.configfs 0
30
Mike Lockwood4f5d5172012-04-04 11:26:59 -070031# Used to disable USB when switching states
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070032on property:sys.usb.config=none && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070033 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# adb only USB configuration
Badhri Jagan Sridharan97b536f2014-09-05 11:10:09 -070039# This is the fallback configuration if the
40# USB manager fails to set a standard configuration
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070041on property:sys.usb.config=adb && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070042 write /sys/class/android_usb/android0/enable 0
43 write /sys/class/android_usb/android0/idVendor 18d1
Badhri Jagan Sridharan97b536f2014-09-05 11:10:09 -070044 write /sys/class/android_usb/android0/idProduct 4EE7
Mike Lockwood4f5d5172012-04-04 11:26:59 -070045 write /sys/class/android_usb/android0/functions ${sys.usb.config}
46 write /sys/class/android_usb/android0/enable 1
47 start adbd
48 setprop sys.usb.state ${sys.usb.config}
49
50# USB accessory configuration
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070051on property:sys.usb.config=accessory && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070052 write /sys/class/android_usb/android0/enable 0
53 write /sys/class/android_usb/android0/idVendor 18d1
54 write /sys/class/android_usb/android0/idProduct 2d00
55 write /sys/class/android_usb/android0/functions ${sys.usb.config}
56 write /sys/class/android_usb/android0/enable 1
57 setprop sys.usb.state ${sys.usb.config}
58
59# USB accessory configuration, with adb
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070060on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070061 write /sys/class/android_usb/android0/enable 0
62 write /sys/class/android_usb/android0/idVendor 18d1
63 write /sys/class/android_usb/android0/idProduct 2d01
64 write /sys/class/android_usb/android0/functions ${sys.usb.config}
65 write /sys/class/android_usb/android0/enable 1
66 start adbd
67 setprop sys.usb.state ${sys.usb.config}
68
69# audio accessory configuration
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070070on property:sys.usb.config=audio_source && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070071 write /sys/class/android_usb/android0/enable 0
72 write /sys/class/android_usb/android0/idVendor 18d1
73 write /sys/class/android_usb/android0/idProduct 2d02
74 write /sys/class/android_usb/android0/functions ${sys.usb.config}
75 write /sys/class/android_usb/android0/enable 1
76 setprop sys.usb.state ${sys.usb.config}
77
78# audio accessory configuration, with adb
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070079on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070080 write /sys/class/android_usb/android0/enable 0
81 write /sys/class/android_usb/android0/idVendor 18d1
82 write /sys/class/android_usb/android0/idProduct 2d03
83 write /sys/class/android_usb/android0/functions ${sys.usb.config}
84 write /sys/class/android_usb/android0/enable 1
85 start adbd
86 setprop sys.usb.state ${sys.usb.config}
87
88# USB and audio accessory configuration
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070089on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070090 write /sys/class/android_usb/android0/enable 0
91 write /sys/class/android_usb/android0/idVendor 18d1
92 write /sys/class/android_usb/android0/idProduct 2d04
93 write /sys/class/android_usb/android0/functions ${sys.usb.config}
94 write /sys/class/android_usb/android0/enable 1
95 setprop sys.usb.state ${sys.usb.config}
96
97# USB and audio accessory configuration, with adb
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070098on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070099 write /sys/class/android_usb/android0/enable 0
100 write /sys/class/android_usb/android0/idVendor 18d1
101 write /sys/class/android_usb/android0/idProduct 2d05
102 write /sys/class/android_usb/android0/functions ${sys.usb.config}
103 write /sys/class/android_usb/android0/enable 1
104 start adbd
105 setprop sys.usb.state ${sys.usb.config}
106
107# Used to set USB configuration at boot and to switch the configuration
108# when changing the default configuration
Badhri Jagan Sridharan05e04a12016-08-01 14:45:18 -0700109on boot && property:persist.sys.usb.config=*
Mike Lockwood4f5d5172012-04-04 11:26:59 -0700110 setprop sys.usb.config ${persist.sys.usb.config}
Tim Kilbourn8c12fdf2015-08-12 09:36:00 -0700111
112#
113# USB type C
114#
115
116# USB mode changes
117on property:sys.usb.typec.mode=dfp
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
121on property:sys.usb.typec.mode=ufp
122 write /sys/class/dual_role_usb/otg_default/mode ${sys.usb.typec.mode}
123 setprop sys.usb.typec.state ${sys.usb.typec.mode}
124
125# USB data role changes
126on property:sys.usb.typec.data_role=device
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
130on property:sys.usb.typec.data_role=host
Vincent Palatin3b7995b2015-09-03 13:50:27 -0700131 write /sys/class/dual_role_usb/otg_default/data_role ${sys.usb.typec.data_role}
Tim Kilbourn8c12fdf2015-08-12 09:36:00 -0700132 setprop sys.usb.typec.state ${sys.usb.typec.data_role}
133
134# USB power role changes
135on property:sys.usb.typec.power_role=source
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}
138
139on property:sys.usb.typec.power_role=sink
Vincent Palatin3b7995b2015-09-03 13:50:27 -0700140 write /sys/class/dual_role_usb/otg_default/power_role ${sys.usb.typec.power_role}
Tim Kilbourn8c12fdf2015-08-12 09:36:00 -0700141 setprop sys.usb.typec.state ${sys.usb.typec.power_role}