blob: 0730ccecfd0b35fee5c211f408bbba945d937953 [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
Josh Gao552f3b42021-03-22 16:36:17 -070022on property:vendor.sys.usb.adb.disabled=*
23 setprop sys.usb.adb.disabled ${vendor.sys.usb.adb.disabled}
24
Nikita Ioffec796f912019-12-10 19:16:15 +000025# Set default value on sys.usb.configfs early in boot sequence. It will be
26# overridden in `on boot` action of init.hardware.rc.
27on init
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070028 setprop sys.usb.configfs 0
29
Mike Lockwood4f5d5172012-04-04 11:26:59 -070030# Used to disable USB when switching states
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070031on property:sys.usb.config=none && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070032 stop adbd
33 write /sys/class/android_usb/android0/enable 0
34 write /sys/class/android_usb/android0/bDeviceClass 0
35 setprop sys.usb.state ${sys.usb.config}
36
37# adb only USB configuration
Badhri Jagan Sridharan97b536f2014-09-05 11:10:09 -070038# This is the fallback configuration if the
39# USB manager fails to set a standard configuration
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070040on property:sys.usb.config=adb && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070041 write /sys/class/android_usb/android0/enable 0
42 write /sys/class/android_usb/android0/idVendor 18d1
Badhri Jagan Sridharan97b536f2014-09-05 11:10:09 -070043 write /sys/class/android_usb/android0/idProduct 4EE7
Mike Lockwood4f5d5172012-04-04 11:26:59 -070044 write /sys/class/android_usb/android0/functions ${sys.usb.config}
45 write /sys/class/android_usb/android0/enable 1
46 start adbd
47 setprop sys.usb.state ${sys.usb.config}
48
49# USB accessory configuration
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070050on property:sys.usb.config=accessory && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070051 write /sys/class/android_usb/android0/enable 0
52 write /sys/class/android_usb/android0/idVendor 18d1
53 write /sys/class/android_usb/android0/idProduct 2d00
54 write /sys/class/android_usb/android0/functions ${sys.usb.config}
55 write /sys/class/android_usb/android0/enable 1
56 setprop sys.usb.state ${sys.usb.config}
57
58# USB accessory configuration, with adb
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070059on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070060 write /sys/class/android_usb/android0/enable 0
61 write /sys/class/android_usb/android0/idVendor 18d1
62 write /sys/class/android_usb/android0/idProduct 2d01
63 write /sys/class/android_usb/android0/functions ${sys.usb.config}
64 write /sys/class/android_usb/android0/enable 1
65 start adbd
66 setprop sys.usb.state ${sys.usb.config}
67
68# audio accessory configuration
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070069on property:sys.usb.config=audio_source && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070070 write /sys/class/android_usb/android0/enable 0
71 write /sys/class/android_usb/android0/idVendor 18d1
72 write /sys/class/android_usb/android0/idProduct 2d02
73 write /sys/class/android_usb/android0/functions ${sys.usb.config}
74 write /sys/class/android_usb/android0/enable 1
75 setprop sys.usb.state ${sys.usb.config}
76
77# audio accessory configuration, with adb
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070078on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070079 write /sys/class/android_usb/android0/enable 0
80 write /sys/class/android_usb/android0/idVendor 18d1
81 write /sys/class/android_usb/android0/idProduct 2d03
82 write /sys/class/android_usb/android0/functions ${sys.usb.config}
83 write /sys/class/android_usb/android0/enable 1
84 start adbd
85 setprop sys.usb.state ${sys.usb.config}
86
87# USB and audio accessory configuration
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070088on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070089 write /sys/class/android_usb/android0/enable 0
90 write /sys/class/android_usb/android0/idVendor 18d1
91 write /sys/class/android_usb/android0/idProduct 2d04
92 write /sys/class/android_usb/android0/functions ${sys.usb.config}
93 write /sys/class/android_usb/android0/enable 1
94 setprop sys.usb.state ${sys.usb.config}
95
96# USB and audio accessory configuration, with adb
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070097on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070098 write /sys/class/android_usb/android0/enable 0
99 write /sys/class/android_usb/android0/idVendor 18d1
100 write /sys/class/android_usb/android0/idProduct 2d05
101 write /sys/class/android_usb/android0/functions ${sys.usb.config}
102 write /sys/class/android_usb/android0/enable 1
103 start adbd
104 setprop sys.usb.state ${sys.usb.config}
105
106# Used to set USB configuration at boot and to switch the configuration
107# when changing the default configuration
Badhri Jagan Sridharan05e04a12016-08-01 14:45:18 -0700108on boot && property:persist.sys.usb.config=*
Mike Lockwood4f5d5172012-04-04 11:26:59 -0700109 setprop sys.usb.config ${persist.sys.usb.config}
Tim Kilbourn8c12fdf2015-08-12 09:36:00 -0700110
111#
112# USB type C
113#
114
115# USB mode changes
116on property:sys.usb.typec.mode=dfp
117 write /sys/class/dual_role_usb/otg_default/mode ${sys.usb.typec.mode}
118 setprop sys.usb.typec.state ${sys.usb.typec.mode}
119
120on property:sys.usb.typec.mode=ufp
121 write /sys/class/dual_role_usb/otg_default/mode ${sys.usb.typec.mode}
122 setprop sys.usb.typec.state ${sys.usb.typec.mode}
123
124# USB data role changes
125on property:sys.usb.typec.data_role=device
Vincent Palatin3b7995b2015-09-03 13:50:27 -0700126 write /sys/class/dual_role_usb/otg_default/data_role ${sys.usb.typec.data_role}
Tim Kilbourn8c12fdf2015-08-12 09:36:00 -0700127 setprop sys.usb.typec.state ${sys.usb.typec.data_role}
128
129on property:sys.usb.typec.data_role=host
Vincent Palatin3b7995b2015-09-03 13:50:27 -0700130 write /sys/class/dual_role_usb/otg_default/data_role ${sys.usb.typec.data_role}
Tim Kilbourn8c12fdf2015-08-12 09:36:00 -0700131 setprop sys.usb.typec.state ${sys.usb.typec.data_role}
132
133# USB power role changes
134on property:sys.usb.typec.power_role=source
Vincent Palatin3b7995b2015-09-03 13:50:27 -0700135 write /sys/class/dual_role_usb/otg_default/power_role ${sys.usb.typec.power_role}
Tim Kilbourn8c12fdf2015-08-12 09:36:00 -0700136 setprop sys.usb.typec.state ${sys.usb.typec.power_role}
137
138on property:sys.usb.typec.power_role=sink
Vincent Palatin3b7995b2015-09-03 13:50:27 -0700139 write /sys/class/dual_role_usb/otg_default/power_role ${sys.usb.typec.power_role}
Tim Kilbourn8c12fdf2015-08-12 09:36:00 -0700140 setprop sys.usb.typec.state ${sys.usb.typec.power_role}
Nikita Ioffec796f912019-12-10 19:16:15 +0000141
142on userspace-reboot-requested
143 setprop sys.usb.config ""
Nikita Ioffec796f912019-12-10 19:16:15 +0000144 setprop sys.usb.state ""