xref: /aosp_15_r20/system/core/rootdir/init.usb.rc (revision 00c7fec1bb09f3284aad6a6f96d2f63dfc3650ad)
1*00c7fec1SAndroid Build Coastguard Worker# Copyright (C) 2012 The Android Open Source Project
2*00c7fec1SAndroid Build Coastguard Worker#
3*00c7fec1SAndroid Build Coastguard Worker# USB configuration common for all android devices
4*00c7fec1SAndroid Build Coastguard Worker#
5*00c7fec1SAndroid Build Coastguard Worker
6*00c7fec1SAndroid Build Coastguard Workeron post-fs-data
7*00c7fec1SAndroid Build Coastguard Worker    chown system system /sys/class/android_usb/android0/f_mass_storage/lun/file
8*00c7fec1SAndroid Build Coastguard Worker    chmod 0660 /sys/class/android_usb/android0/f_mass_storage/lun/file
9*00c7fec1SAndroid Build Coastguard Worker    chown system system /sys/class/android_usb/android0/f_rndis/ethaddr
10*00c7fec1SAndroid Build Coastguard Worker    chmod 0660 /sys/class/android_usb/android0/f_rndis/ethaddr
11*00c7fec1SAndroid Build Coastguard Worker    mkdir /data/misc/adb 02750 system shell
12*00c7fec1SAndroid Build Coastguard Worker    mkdir /data/adb 0700 root root encryption=Require
13*00c7fec1SAndroid Build Coastguard Worker
14*00c7fec1SAndroid Build Coastguard Worker# adbd is controlled via property triggers in init.<platform>.usb.rc
15*00c7fec1SAndroid Build Coastguard Workerservice adbd /system/bin/adbd --root_seclabel=u:r:su:s0
16*00c7fec1SAndroid Build Coastguard Worker    class core
17*00c7fec1SAndroid Build Coastguard Worker    socket adbd seqpacket 660 system system
18*00c7fec1SAndroid Build Coastguard Worker    disabled
19*00c7fec1SAndroid Build Coastguard Worker    updatable
20*00c7fec1SAndroid Build Coastguard Worker    seclabel u:r:adbd:s0
21*00c7fec1SAndroid Build Coastguard Worker    user root
22*00c7fec1SAndroid Build Coastguard Worker
23*00c7fec1SAndroid Build Coastguard Workeron property:vendor.sys.usb.adb.disabled=*
24*00c7fec1SAndroid Build Coastguard Worker    setprop sys.usb.adb.disabled ${vendor.sys.usb.adb.disabled}
25*00c7fec1SAndroid Build Coastguard Worker
26*00c7fec1SAndroid Build Coastguard Worker# Set default value on sys.usb.configfs early in boot sequence. It will be
27*00c7fec1SAndroid Build Coastguard Worker# overridden in `on boot` action of init.hardware.rc.
28*00c7fec1SAndroid Build Coastguard Workeron init
29*00c7fec1SAndroid Build Coastguard Worker    setprop sys.usb.configfs 0
30*00c7fec1SAndroid Build Coastguard Worker
31*00c7fec1SAndroid Build Coastguard Worker# Used to disable USB when switching states
32*00c7fec1SAndroid Build Coastguard Workeron property:sys.usb.config=none && property:sys.usb.configfs=0
33*00c7fec1SAndroid Build Coastguard Worker    stop adbd
34*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/enable 0
35*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/bDeviceClass 0
36*00c7fec1SAndroid Build Coastguard Worker    setprop sys.usb.state ${sys.usb.config}
37*00c7fec1SAndroid Build Coastguard Worker
38*00c7fec1SAndroid Build Coastguard Worker# adb only USB configuration
39*00c7fec1SAndroid Build Coastguard Worker# This is the fallback configuration if the
40*00c7fec1SAndroid Build Coastguard Worker# USB manager fails to set a standard configuration
41*00c7fec1SAndroid Build Coastguard Workeron property:sys.usb.config=adb && property:sys.usb.configfs=0
42*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/enable 0
43*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/idVendor 18d1
44*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/idProduct 4EE7
45*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/functions ${sys.usb.config}
46*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/enable 1
47*00c7fec1SAndroid Build Coastguard Worker    start adbd
48*00c7fec1SAndroid Build Coastguard Worker    setprop sys.usb.state ${sys.usb.config}
49*00c7fec1SAndroid Build Coastguard Worker
50*00c7fec1SAndroid Build Coastguard Worker# USB accessory configuration
51*00c7fec1SAndroid Build Coastguard Workeron property:sys.usb.config=accessory && property:sys.usb.configfs=0
52*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/enable 0
53*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/idVendor 18d1
54*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/idProduct 2d00
55*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/functions ${sys.usb.config}
56*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/enable 1
57*00c7fec1SAndroid Build Coastguard Worker    setprop sys.usb.state ${sys.usb.config}
58*00c7fec1SAndroid Build Coastguard Worker
59*00c7fec1SAndroid Build Coastguard Worker# USB accessory configuration, with adb
60*00c7fec1SAndroid Build Coastguard Workeron property:sys.usb.config=accessory,adb && property:sys.usb.configfs=0
61*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/enable 0
62*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/idVendor 18d1
63*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/idProduct 2d01
64*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/functions ${sys.usb.config}
65*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/enable 1
66*00c7fec1SAndroid Build Coastguard Worker    start adbd
67*00c7fec1SAndroid Build Coastguard Worker    setprop sys.usb.state ${sys.usb.config}
68*00c7fec1SAndroid Build Coastguard Worker
69*00c7fec1SAndroid Build Coastguard Worker# audio accessory configuration
70*00c7fec1SAndroid Build Coastguard Workeron property:sys.usb.config=audio_source && property:sys.usb.configfs=0
71*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/enable 0
72*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/idVendor 18d1
73*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/idProduct 2d02
74*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/functions ${sys.usb.config}
75*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/enable 1
76*00c7fec1SAndroid Build Coastguard Worker    setprop sys.usb.state ${sys.usb.config}
77*00c7fec1SAndroid Build Coastguard Worker
78*00c7fec1SAndroid Build Coastguard Worker# audio accessory configuration, with adb
79*00c7fec1SAndroid Build Coastguard Workeron property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=0
80*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/enable 0
81*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/idVendor 18d1
82*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/idProduct 2d03
83*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/functions ${sys.usb.config}
84*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/enable 1
85*00c7fec1SAndroid Build Coastguard Worker    start adbd
86*00c7fec1SAndroid Build Coastguard Worker    setprop sys.usb.state ${sys.usb.config}
87*00c7fec1SAndroid Build Coastguard Worker
88*00c7fec1SAndroid Build Coastguard Worker# USB and audio accessory configuration
89*00c7fec1SAndroid Build Coastguard Workeron property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=0
90*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/enable 0
91*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/idVendor 18d1
92*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/idProduct 2d04
93*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/functions ${sys.usb.config}
94*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/enable 1
95*00c7fec1SAndroid Build Coastguard Worker    setprop sys.usb.state ${sys.usb.config}
96*00c7fec1SAndroid Build Coastguard Worker
97*00c7fec1SAndroid Build Coastguard Worker# USB and audio accessory configuration, with adb
98*00c7fec1SAndroid Build Coastguard Workeron property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=0
99*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/enable 0
100*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/idVendor 18d1
101*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/idProduct 2d05
102*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/functions ${sys.usb.config}
103*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/android_usb/android0/enable 1
104*00c7fec1SAndroid Build Coastguard Worker    start adbd
105*00c7fec1SAndroid Build Coastguard Worker    setprop sys.usb.state ${sys.usb.config}
106*00c7fec1SAndroid Build Coastguard Worker
107*00c7fec1SAndroid Build Coastguard Worker# Used to set USB configuration at boot and to switch the configuration
108*00c7fec1SAndroid Build Coastguard Worker# when changing the default configuration
109*00c7fec1SAndroid Build Coastguard Workeron boot && property:persist.sys.usb.config=*
110*00c7fec1SAndroid Build Coastguard Worker    setprop sys.usb.config ${persist.sys.usb.config}
111*00c7fec1SAndroid Build Coastguard Worker
112*00c7fec1SAndroid Build Coastguard Worker#
113*00c7fec1SAndroid Build Coastguard Worker# USB type C
114*00c7fec1SAndroid Build Coastguard Worker#
115*00c7fec1SAndroid Build Coastguard Worker
116*00c7fec1SAndroid Build Coastguard Worker# USB mode changes
117*00c7fec1SAndroid Build Coastguard Workeron property:sys.usb.typec.mode=dfp
118*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/dual_role_usb/otg_default/mode ${sys.usb.typec.mode}
119*00c7fec1SAndroid Build Coastguard Worker    setprop sys.usb.typec.state ${sys.usb.typec.mode}
120*00c7fec1SAndroid Build Coastguard Worker
121*00c7fec1SAndroid Build Coastguard Workeron property:sys.usb.typec.mode=ufp
122*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/dual_role_usb/otg_default/mode ${sys.usb.typec.mode}
123*00c7fec1SAndroid Build Coastguard Worker    setprop sys.usb.typec.state ${sys.usb.typec.mode}
124*00c7fec1SAndroid Build Coastguard Worker
125*00c7fec1SAndroid Build Coastguard Worker# USB data role changes
126*00c7fec1SAndroid Build Coastguard Workeron property:sys.usb.typec.data_role=device
127*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/dual_role_usb/otg_default/data_role ${sys.usb.typec.data_role}
128*00c7fec1SAndroid Build Coastguard Worker    setprop sys.usb.typec.state ${sys.usb.typec.data_role}
129*00c7fec1SAndroid Build Coastguard Worker
130*00c7fec1SAndroid Build Coastguard Workeron property:sys.usb.typec.data_role=host
131*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/dual_role_usb/otg_default/data_role ${sys.usb.typec.data_role}
132*00c7fec1SAndroid Build Coastguard Worker    setprop sys.usb.typec.state ${sys.usb.typec.data_role}
133*00c7fec1SAndroid Build Coastguard Worker
134*00c7fec1SAndroid Build Coastguard Worker# USB power role changes
135*00c7fec1SAndroid Build Coastguard Workeron property:sys.usb.typec.power_role=source
136*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/dual_role_usb/otg_default/power_role ${sys.usb.typec.power_role}
137*00c7fec1SAndroid Build Coastguard Worker    setprop sys.usb.typec.state ${sys.usb.typec.power_role}
138*00c7fec1SAndroid Build Coastguard Worker
139*00c7fec1SAndroid Build Coastguard Workeron property:sys.usb.typec.power_role=sink
140*00c7fec1SAndroid Build Coastguard Worker    write /sys/class/dual_role_usb/otg_default/power_role ${sys.usb.typec.power_role}
141*00c7fec1SAndroid Build Coastguard Worker    setprop sys.usb.typec.state ${sys.usb.typec.power_role}
142