1 # Copyright (C) 2012 The Android Open Source Project 2 # 3 # USB configuration common for all android devices 4 # 5 6 on 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 15 service 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 21 # adbd on at boot in emulator 22 on property:ro.kernel.qemu=1 23 start adbd 24 25 on boot 26 setprop sys.usb.configfs 0 27 28 # Used to disable USB when switching states 29 on property:sys.usb.config=none && property:sys.usb.configfs=0 30 stop adbd 31 write /sys/class/android_usb/android0/enable 0 32 write /sys/class/android_usb/android0/bDeviceClass 0 33 setprop sys.usb.state ${sys.usb.config} 34 35 # adb only USB configuration 36 # This is the fallback configuration if the 37 # USB manager fails to set a standard configuration 38 on property:sys.usb.config=adb && property:sys.usb.configfs=0 39 write /sys/class/android_usb/android0/enable 0 40 write /sys/class/android_usb/android0/idVendor 18d1 41 write /sys/class/android_usb/android0/idProduct 4EE7 42 write /sys/class/android_usb/android0/functions ${sys.usb.config} 43 write /sys/class/android_usb/android0/enable 1 44 start adbd 45 setprop sys.usb.state ${sys.usb.config} 46 47 # USB accessory configuration 48 on property:sys.usb.config=accessory && property:sys.usb.configfs=0 49 write /sys/class/android_usb/android0/enable 0 50 write /sys/class/android_usb/android0/idVendor 18d1 51 write /sys/class/android_usb/android0/idProduct 2d00 52 write /sys/class/android_usb/android0/functions ${sys.usb.config} 53 write /sys/class/android_usb/android0/enable 1 54 setprop sys.usb.state ${sys.usb.config} 55 56 # USB accessory configuration, with adb 57 on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=0 58 write /sys/class/android_usb/android0/enable 0 59 write /sys/class/android_usb/android0/idVendor 18d1 60 write /sys/class/android_usb/android0/idProduct 2d01 61 write /sys/class/android_usb/android0/functions ${sys.usb.config} 62 write /sys/class/android_usb/android0/enable 1 63 start adbd 64 setprop sys.usb.state ${sys.usb.config} 65 66 # audio accessory configuration 67 on property:sys.usb.config=audio_source && property:sys.usb.configfs=0 68 write /sys/class/android_usb/android0/enable 0 69 write /sys/class/android_usb/android0/idVendor 18d1 70 write /sys/class/android_usb/android0/idProduct 2d02 71 write /sys/class/android_usb/android0/functions ${sys.usb.config} 72 write /sys/class/android_usb/android0/enable 1 73 setprop sys.usb.state ${sys.usb.config} 74 75 # audio accessory configuration, with adb 76 on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=0 77 write /sys/class/android_usb/android0/enable 0 78 write /sys/class/android_usb/android0/idVendor 18d1 79 write /sys/class/android_usb/android0/idProduct 2d03 80 write /sys/class/android_usb/android0/functions ${sys.usb.config} 81 write /sys/class/android_usb/android0/enable 1 82 start adbd 83 setprop sys.usb.state ${sys.usb.config} 84 85 # USB and audio accessory configuration 86 on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=0 87 write /sys/class/android_usb/android0/enable 0 88 write /sys/class/android_usb/android0/idVendor 18d1 89 write /sys/class/android_usb/android0/idProduct 2d04 90 write /sys/class/android_usb/android0/functions ${sys.usb.config} 91 write /sys/class/android_usb/android0/enable 1 92 setprop sys.usb.state ${sys.usb.config} 93 94 # USB and audio accessory configuration, with adb 95 on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=0 96 write /sys/class/android_usb/android0/enable 0 97 write /sys/class/android_usb/android0/idVendor 18d1 98 write /sys/class/android_usb/android0/idProduct 2d05 99 write /sys/class/android_usb/android0/functions ${sys.usb.config} 100 write /sys/class/android_usb/android0/enable 1 101 start adbd 102 setprop sys.usb.state ${sys.usb.config} 103 104 # Used to set USB configuration at boot and to switch the configuration 105 # when changing the default configuration 106 on boot && property:persist.sys.usb.config=* 107 setprop sys.usb.config ${persist.sys.usb.config} 108 109 # 110 # USB type C 111 # 112 113 # USB mode changes 114 on property:sys.usb.typec.mode=dfp 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 on property:sys.usb.typec.mode=ufp 119 write /sys/class/dual_role_usb/otg_default/mode ${sys.usb.typec.mode} 120 setprop sys.usb.typec.state ${sys.usb.typec.mode} 121 122 # USB data role changes 123 on property:sys.usb.typec.data_role=device 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 on property:sys.usb.typec.data_role=host 128 write /sys/class/dual_role_usb/otg_default/data_role ${sys.usb.typec.data_role} 129 setprop sys.usb.typec.state ${sys.usb.typec.data_role} 130 131 # USB power role changes 132 on property:sys.usb.typec.power_role=source 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 136 on property:sys.usb.typec.power_role=sink 137 write /sys/class/dual_role_usb/otg_default/power_role ${sys.usb.typec.power_role} 138 setprop sys.usb.typec.state ${sys.usb.typec.power_role} 139