05e04a134e
persist.sys.usb.config stores the usb functions which need to be enabled when the phone boots up. When the phone is actually booted, setting this would also activate the following action trigger on sys.usb.config From init.usb.rc: Used to set USB configuration at boot and to switch the configuration when changing the default configuration on property:persist.sys.usb.config=* setprop sys.usb.config ${persist.sys.usb.config} sys.usb.config is anyways set to the actual functions by UsbDeviceManager once it is set to none. Therefore add "on boot" condition to the above action trigger so that persist.sys.usb.config does not race with sys.usb.config. BUG: 30440213 Change-Id: I3333d0b8334fb627469c7faad250bf3151bb1ebf
138 lines
5.6 KiB
Text
138 lines
5.6 KiB
Text
# Copyright (C) 2012 The Android Open Source Project
|
|
#
|
|
# USB configuration common for all android devices
|
|
#
|
|
|
|
on post-fs-data
|
|
chown system system /sys/class/android_usb/android0/f_mass_storage/lun/file
|
|
chmod 0660 /sys/class/android_usb/android0/f_mass_storage/lun/file
|
|
chown system system /sys/class/android_usb/android0/f_rndis/ethaddr
|
|
chmod 0660 /sys/class/android_usb/android0/f_rndis/ethaddr
|
|
mkdir /data/misc/adb 02750 system shell
|
|
mkdir /data/adb 0700 root root
|
|
|
|
# adbd is controlled via property triggers in init.<platform>.usb.rc
|
|
service adbd /sbin/adbd --root_seclabel=u:r:su:s0
|
|
class core
|
|
socket adbd stream 660 system system
|
|
disabled
|
|
seclabel u:r:adbd:s0
|
|
|
|
# adbd on at boot in emulator
|
|
on property:ro.kernel.qemu=1
|
|
start adbd
|
|
|
|
on boot
|
|
setprop sys.usb.configfs 0
|
|
|
|
# Used to disable USB when switching states
|
|
on property:sys.usb.config=none && property:sys.usb.configfs=0
|
|
stop adbd
|
|
write /sys/class/android_usb/android0/enable 0
|
|
write /sys/class/android_usb/android0/bDeviceClass 0
|
|
setprop sys.usb.state ${sys.usb.config}
|
|
|
|
# adb only USB configuration
|
|
# This is the fallback configuration if the
|
|
# USB manager fails to set a standard configuration
|
|
on property:sys.usb.config=adb && property:sys.usb.configfs=0
|
|
write /sys/class/android_usb/android0/enable 0
|
|
write /sys/class/android_usb/android0/idVendor 18d1
|
|
write /sys/class/android_usb/android0/idProduct 4EE7
|
|
write /sys/class/android_usb/android0/functions ${sys.usb.config}
|
|
write /sys/class/android_usb/android0/enable 1
|
|
start adbd
|
|
setprop sys.usb.state ${sys.usb.config}
|
|
|
|
# USB accessory configuration
|
|
on property:sys.usb.config=accessory && property:sys.usb.configfs=0
|
|
write /sys/class/android_usb/android0/enable 0
|
|
write /sys/class/android_usb/android0/idVendor 18d1
|
|
write /sys/class/android_usb/android0/idProduct 2d00
|
|
write /sys/class/android_usb/android0/functions ${sys.usb.config}
|
|
write /sys/class/android_usb/android0/enable 1
|
|
setprop sys.usb.state ${sys.usb.config}
|
|
|
|
# USB accessory configuration, with adb
|
|
on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=0
|
|
write /sys/class/android_usb/android0/enable 0
|
|
write /sys/class/android_usb/android0/idVendor 18d1
|
|
write /sys/class/android_usb/android0/idProduct 2d01
|
|
write /sys/class/android_usb/android0/functions ${sys.usb.config}
|
|
write /sys/class/android_usb/android0/enable 1
|
|
start adbd
|
|
setprop sys.usb.state ${sys.usb.config}
|
|
|
|
# audio accessory configuration
|
|
on property:sys.usb.config=audio_source && property:sys.usb.configfs=0
|
|
write /sys/class/android_usb/android0/enable 0
|
|
write /sys/class/android_usb/android0/idVendor 18d1
|
|
write /sys/class/android_usb/android0/idProduct 2d02
|
|
write /sys/class/android_usb/android0/functions ${sys.usb.config}
|
|
write /sys/class/android_usb/android0/enable 1
|
|
setprop sys.usb.state ${sys.usb.config}
|
|
|
|
# audio accessory configuration, with adb
|
|
on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=0
|
|
write /sys/class/android_usb/android0/enable 0
|
|
write /sys/class/android_usb/android0/idVendor 18d1
|
|
write /sys/class/android_usb/android0/idProduct 2d03
|
|
write /sys/class/android_usb/android0/functions ${sys.usb.config}
|
|
write /sys/class/android_usb/android0/enable 1
|
|
start adbd
|
|
setprop sys.usb.state ${sys.usb.config}
|
|
|
|
# USB and audio accessory configuration
|
|
on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=0
|
|
write /sys/class/android_usb/android0/enable 0
|
|
write /sys/class/android_usb/android0/idVendor 18d1
|
|
write /sys/class/android_usb/android0/idProduct 2d04
|
|
write /sys/class/android_usb/android0/functions ${sys.usb.config}
|
|
write /sys/class/android_usb/android0/enable 1
|
|
setprop sys.usb.state ${sys.usb.config}
|
|
|
|
# USB and audio accessory configuration, with adb
|
|
on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=0
|
|
write /sys/class/android_usb/android0/enable 0
|
|
write /sys/class/android_usb/android0/idVendor 18d1
|
|
write /sys/class/android_usb/android0/idProduct 2d05
|
|
write /sys/class/android_usb/android0/functions ${sys.usb.config}
|
|
write /sys/class/android_usb/android0/enable 1
|
|
start adbd
|
|
setprop sys.usb.state ${sys.usb.config}
|
|
|
|
# Used to set USB configuration at boot and to switch the configuration
|
|
# when changing the default configuration
|
|
on boot && property:persist.sys.usb.config=*
|
|
setprop sys.usb.config ${persist.sys.usb.config}
|
|
|
|
#
|
|
# USB type C
|
|
#
|
|
|
|
# USB mode changes
|
|
on property:sys.usb.typec.mode=dfp
|
|
write /sys/class/dual_role_usb/otg_default/mode ${sys.usb.typec.mode}
|
|
setprop sys.usb.typec.state ${sys.usb.typec.mode}
|
|
|
|
on property:sys.usb.typec.mode=ufp
|
|
write /sys/class/dual_role_usb/otg_default/mode ${sys.usb.typec.mode}
|
|
setprop sys.usb.typec.state ${sys.usb.typec.mode}
|
|
|
|
# USB data role changes
|
|
on property:sys.usb.typec.data_role=device
|
|
write /sys/class/dual_role_usb/otg_default/data_role ${sys.usb.typec.data_role}
|
|
setprop sys.usb.typec.state ${sys.usb.typec.data_role}
|
|
|
|
on property:sys.usb.typec.data_role=host
|
|
write /sys/class/dual_role_usb/otg_default/data_role ${sys.usb.typec.data_role}
|
|
setprop sys.usb.typec.state ${sys.usb.typec.data_role}
|
|
|
|
# USB power role changes
|
|
on property:sys.usb.typec.power_role=source
|
|
write /sys/class/dual_role_usb/otg_default/power_role ${sys.usb.typec.power_role}
|
|
setprop sys.usb.typec.state ${sys.usb.typec.power_role}
|
|
|
|
on property:sys.usb.typec.power_role=sink
|
|
write /sys/class/dual_role_usb/otg_default/power_role ${sys.usb.typec.power_role}
|
|
setprop sys.usb.typec.state ${sys.usb.typec.power_role}
|