| # 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} |