1# Copyright 2014 The Android Open Source Project 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15on init 16 mkdir /dev/bus 17 mkdir /dev/bus/usb 18 mkdir /dev/bus/usb/001 19 20 # set usb serial number 21 write /sys/class/android_usb/android0/iSerial ${ro.serialno} 22 23on fs 24 mkdir /dev/usb-ffs 0770 shell shell 25 mkdir /dev/usb-ffs/adb 0770 shell shell 26 mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000 27 write /sys/class/android_usb/android0/f_ffs/aliases adb 28 29on post-fs-data 30 chown system system /sys/class/android_usb/android0/f_mass_storage/lun/file 31 chmod 0660 /sys/class/android_usb/android0/f_mass_storage/lun/file 32 chown system system /sys/class/android_usb/android0/f_rndis/ethaddr 33 chmod 0660 /sys/class/android_usb/android0/f_rndis/ethaddr 34 35# Used to disable USB when switching states 36on property:sys.usb.config=none 37 stop adbd 38 write /sys/class/android_usb/android0/enable 0 39 write /sys/class/android_usb/android0/bDeviceClass 0 40 setprop sys.usb.state ${sys.usb.config} 41 42# adb only 43on property:sys.usb.config=adb 44 write /sys/class/android_usb/android0/enable 0 45 write /sys/class/android_usb/android0/idVendor 18d1 46 write /sys/class/android_usb/android0/idProduct 4ee7 47 write /sys/class/android_usb/android0/functions ${sys.usb.config} 48 write /sys/bus/pci/devices/0000:00:02.3/sdis 0 49 write /sys/class/android_usb/android0/enable 1 50 start adbd 51 setprop sys.usb.state ${sys.usb.config} 52 53# Used to set USB configuration at boot and to switch the configuration 54# when changing the default configuration 55on property:persist.sys.usb.config=* 56 setprop sys.usb.config ${persist.sys.usb.config} 57 58# USB vBus status changed to normal 59on property:sys.usb.vbus=normal 60 write /sys/class/usb_otg/otg0/a_bus_drop 0 61 62# USB vBus status changed to warning 63on property:sys.usb.vbus=warning 64 write /sys/class/usb_otg/otg0/a_bus_drop 0 65 66# USB vBus status changed to critical 67on property:sys.usb.vbus=critical 68 write /sys/class/usb_otg/otg0/a_bus_drop 1 69