init.usb.rc revision b40193e50a0b6128cb33436807413aae8f2e3354
1# 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 11 mkdir /data/misc/adb 02750 system shell 12 mkdir /data/adb 0700 root root 13 14# adbd is controlled via property triggers in init.<platform>.usb.rc 15service adbd /system/bin/adbd --root_seclabel=u:r:su:s0 16 class core 17 socket adbd stream 660 system system 18 disabled 19 seclabel u:r:adbd:s0 20 21on boot 22 setprop sys.usb.configfs 0 23 24# Used to disable USB when switching states 25on property:sys.usb.config=none && property:sys.usb.configfs=0 26 stop adbd 27 write /sys/class/android_usb/android0/enable 0 28 write /sys/class/android_usb/android0/bDeviceClass 0 29 setprop sys.usb.state ${sys.usb.config} 30 31# adb only USB configuration 32# This is the fallback configuration if the 33# USB manager fails to set a standard configuration 34on property:sys.usb.config=adb && property:sys.usb.configfs=0 35 write /sys/class/android_usb/android0/enable 0 36 write /sys/class/android_usb/android0/idVendor 18d1 37 write /sys/class/android_usb/android0/idProduct 4EE7 38 write /sys/class/android_usb/android0/functions ${sys.usb.config} 39 write /sys/class/android_usb/android0/enable 1 40 start adbd 41 setprop sys.usb.state ${sys.usb.config} 42 43# USB accessory configuration 44on property:sys.usb.config=accessory && property:sys.usb.configfs=0 45 write /sys/class/android_usb/android0/enable 0 46 write /sys/class/android_usb/android0/idVendor 18d1 47 write /sys/class/android_usb/android0/idProduct 2d00 48 write /sys/class/android_usb/android0/functions ${sys.usb.config} 49 write /sys/class/android_usb/android0/enable 1 50 setprop sys.usb.state ${sys.usb.config} 51 52# USB accessory configuration, with adb 53on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=0 54 write /sys/class/android_usb/android0/enable 0 55 write /sys/class/android_usb/android0/idVendor 18d1 56 write /sys/class/android_usb/android0/idProduct 2d01 57 write /sys/class/android_usb/android0/functions ${sys.usb.config} 58 write /sys/class/android_usb/android0/enable 1 59 start adbd 60 setprop sys.usb.state ${sys.usb.config} 61 62# audio accessory configuration 63on property:sys.usb.config=audio_source && property:sys.usb.configfs=0 64 write /sys/class/android_usb/android0/enable 0 65 write /sys/class/android_usb/android0/idVendor 18d1 66 write /sys/class/android_usb/android0/idProduct 2d02 67 write /sys/class/android_usb/android0/functions ${sys.usb.config} 68 write /sys/class/android_usb/android0/enable 1 69 setprop sys.usb.state ${sys.usb.config} 70 71# audio accessory configuration, with adb 72on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=0 73 write /sys/class/android_usb/android0/enable 0 74 write /sys/class/android_usb/android0/idVendor 18d1 75 write /sys/class/android_usb/android0/idProduct 2d03 76 write /sys/class/android_usb/android0/functions ${sys.usb.config} 77 write /sys/class/android_usb/android0/enable 1 78 start adbd 79 setprop sys.usb.state ${sys.usb.config} 80 81# USB and audio accessory configuration 82on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=0 83 write /sys/class/android_usb/android0/enable 0 84 write /sys/class/android_usb/android0/idVendor 18d1 85 write /sys/class/android_usb/android0/idProduct 2d04 86 write /sys/class/android_usb/android0/functions ${sys.usb.config} 87 write /sys/class/android_usb/android0/enable 1 88 setprop sys.usb.state ${sys.usb.config} 89 90# USB and audio accessory configuration, with adb 91on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=0 92 write /sys/class/android_usb/android0/enable 0 93 write /sys/class/android_usb/android0/idVendor 18d1 94 write /sys/class/android_usb/android0/idProduct 2d05 95 write /sys/class/android_usb/android0/functions ${sys.usb.config} 96 write /sys/class/android_usb/android0/enable 1 97 start adbd 98 setprop sys.usb.state ${sys.usb.config} 99 100# Used to set USB configuration at boot and to switch the configuration 101# when changing the default configuration 102on boot && property:persist.sys.usb.config=* 103 setprop sys.usb.config ${persist.sys.usb.config} 104 105# 106# USB type C 107# 108 109# USB mode changes 110on property:sys.usb.typec.mode=dfp 111 write /sys/class/dual_role_usb/otg_default/mode ${sys.usb.typec.mode} 112 setprop sys.usb.typec.state ${sys.usb.typec.mode} 113 114on property:sys.usb.typec.mode=ufp 115 write /sys/class/dual_role_usb/otg_default/mode ${sys.usb.typec.mode} 116 setprop sys.usb.typec.state ${sys.usb.typec.mode} 117 118# USB data role changes 119on property:sys.usb.typec.data_role=device 120 write /sys/class/dual_role_usb/otg_default/data_role ${sys.usb.typec.data_role} 121 setprop sys.usb.typec.state ${sys.usb.typec.data_role} 122 123on property:sys.usb.typec.data_role=host 124 write /sys/class/dual_role_usb/otg_default/data_role ${sys.usb.typec.data_role} 125 setprop sys.usb.typec.state ${sys.usb.typec.data_role} 126 127# USB power role changes 128on property:sys.usb.typec.power_role=source 129 write /sys/class/dual_role_usb/otg_default/power_role ${sys.usb.typec.power_role} 130 setprop sys.usb.typec.state ${sys.usb.typec.power_role} 131 132on property:sys.usb.typec.power_role=sink 133 write /sys/class/dual_role_usb/otg_default/power_role ${sys.usb.typec.power_role} 134 setprop sys.usb.typec.state ${sys.usb.typec.power_role} 135