# Copyright 2014 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. on init mkdir /dev/bus mkdir /dev/bus/usb mkdir /dev/bus/usb/001 # set usb serial number write /sys/class/android_usb/android0/iSerial ${ro.serialno} on fs mkdir /dev/usb-ffs 0770 shell shell mkdir /dev/usb-ffs/adb 0770 shell shell mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000 write /sys/class/android_usb/android0/f_ffs/aliases adb 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 # Used to disable USB when switching states on property:sys.usb.config=none 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 on property:sys.usb.config=adb 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/bus/pci/devices/0000:00:02.3/sdis 0 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 property:persist.sys.usb.config=* setprop sys.usb.config ${persist.sys.usb.config} # USB vBus status changed to normal on property:sys.usb.vbus=normal write /sys/class/usb_otg/otg0/a_bus_drop 0 # USB vBus status changed to warning on property:sys.usb.vbus=warning write /sys/class/usb_otg/otg0/a_bus_drop 0 # USB vBus status changed to critical on property:sys.usb.vbus=critical write /sys/class/usb_otg/otg0/a_bus_drop 1