Home | History | Annotate | Download | only in fugu
      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 
     15 on 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 
     23 on 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 
     29 on 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
     36 on 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
     43 on 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
     55 on property:persist.sys.usb.config=*
     56     setprop sys.usb.config ${persist.sys.usb.config}
     57 
     58 # USB vBus status changed to normal
     59 on property:sys.usb.vbus=normal
     60    write /sys/class/usb_otg/otg0/a_bus_drop 0
     61 
     62 # USB vBus status changed to warning
     63 on property:sys.usb.vbus=warning
     64    write /sys/class/usb_otg/otg0/a_bus_drop 0
     65 
     66 # USB vBus status changed to critical
     67 on property:sys.usb.vbus=critical
     68    write /sys/class/usb_otg/otg0/a_bus_drop 1
     69