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