# Copyright (c) 2011-2012, The Linux Foundation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of The Linux Foundation nor # the names of its contributors may be used to endorse or promote # products derived from this software without specific prior written # permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # on boot write /sys/class/android_usb/android0/iSerial ${ro.serialno} write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer} write /sys/class/android_usb/android0/iProduct ${ro.product.model} 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 write /sys/class/android_usb/android0/f_rndis_qc/rndis_transports "BAM2BAM_IPA" write /sys/module/g_android/parameters/mtp_tx_req_len 131072 write /sys/module/g_android/parameters/mtp_rx_req_len 131072 # Following are the parameters required for usb functionality. They provide configurable options like # product_id/vendor id and allows specifying required functions: # # Required parameters: # # /sys/class/android_usb/android0/enable: Enables/disables usb composition # Value: 0 (disable), 1 (enable) # # /sys/class/android_usb/android0/idVendor: Stores Vendor ID # Value: 05c6 (Vendor id for Qualcomm Inc) # # /sys/class/android_usb/android0/idProduct: Stores Product id corresponding to usb composition # Value: 0x9xxx for composite interface, 0xFxxx for single interface # # /sys/class/android_usb/android0/f_diag/clients: Stores name of clients representing a diag interface. # Value: Passed one per interface. e.g. diag[,diag_mdm, diag_qsc, diag_mdm2] # # /sys/class/android_usb/android0/functions: Stores name of the function drivers used in usb composition. # Value: Passed one per function driver. e.g. diag[,adb] # #Optional parameters: # # /sys/class/android_usb/android0/f_serial/transports: Stores type of underlying transports used to # communicate to serial interface. # Value: Passed one per interface. One value represents control and data transport together. # e.g. smd[,sdio,tty,hsic] # Only required if serial interface is present. # # /sys/class/android_usb/android0/f_serial/transport_names: Stores name of the underlying transports # used to communicate to serial interface. This is used to distinguish between more than one interface # using same transport type. # Value: Passed one per interface. One value represents control and data transport together. # e.g. serial_hsic[,serial_hsusb] # Only required for transport type hsic, optional for other transport types. # # /sys/class/android_usb/android0/f_rmnet/transports: Stores type of underlying transports used to # communicate to rmnet interface. # Value: Passed two per interface as control, data transport type pair. # e.g. smd,bam[,hsuart,hsuart] # Only required if rmnet interface is present. # # /sys/class/android_usb/android0/f_rmnet/transport_names: Stores name of the underlying transports # used to communicate to rmnet interface. This is used to distinguish between more than one interface # using same transport type. # Value: Passed one per interface. One value represents control and data transport together. # e.g. rmnet_hsic[,rmnet_hsusb] # Only required for transport type hsic, optional for other transport types. # USB compositions on property:sys.usb.config=diag write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct 900E write /sys/class/android_usb/android0/f_diag/clients diag write /sys/class/android_usb/android0/functions diag write /sys/class/android_usb/android0/enable 1 setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=diag,adb write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct 901D write /sys/class/android_usb/android0/f_diag/clients diag write /sys/class/android_usb/android0/functions diag,adb write /sys/class/android_usb/android0/enable 1 start adbd setprop sys.usb.state ${sys.usb.config} on property:sys.usb.tethering=true write /sys/class/net/rndis0/queues/rx-0/rps_cpus 0 on property:sys.usb.config=rndis write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 2717 write /sys/class/android_usb/android0/idProduct ff80 write /sys/class/android_usb/android0/functions rndis write /sys/class/android_usb/android0/enable 1 setprop sys.usb.state rndis on property:sys.usb.config=rndis,adb write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 2717 write /sys/class/android_usb/android0/idProduct ff88 write /sys/class/android_usb/android0/functions rndis,adb write /sys/class/android_usb/android0/enable 1 start adbd setprop sys.usb.state rndis,adb on property:sys.usb.config=rndis,diag write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct 902C write /sys/class/android_usb/android0/f_rndis/wceis 1 write /sys/class/android_usb/android0/f_diag/clients diag write /sys/class/android_usb/android0/functions rndis,diag write /sys/class/android_usb/android0/enable 1 setprop sys.usb.state rndis on property:sys.usb.config=rndis,diag,adb write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct 902D write /sys/class/android_usb/android0/f_rndis/wceis 1 write /sys/class/android_usb/android0/f_diag/clients diag write /sys/class/android_usb/android0/functions rndis,diag,adb write /sys/class/android_usb/android0/enable 1 start adbd setprop sys.usb.state rndis,adb on property:sys.usb.config=rndis,diag,dpl write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct 90BF write /sys/class/android_usb/android0/f_rndis/wceis 1 write /sys/class/android_usb/android0/f_diag/clients diag write /sys/class/android_usb/android0/f_qdss/debug_intf 0 write /sys/class/android_usb/android0/f_qdss/transports qti,bam2bam_ipa write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam write /sys/class/android_usb/android0/functions rndis,diag,qdss write /sys/class/android_usb/android0/enable 1 setprop sys.usb.state rndis on property:sys.usb.config=rndis,diag,dpl,adb write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct 90C0 write /sys/class/android_usb/android0/f_rndis/wceis 1 write /sys/class/android_usb/android0/f_diag/clients diag write /sys/class/android_usb/android0/f_qdss/debug_intf 0 write /sys/class/android_usb/android0/f_qdss/transports qti,bam2bam_ipa write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam write /sys/class/android_usb/android0/functions rndis,diag,qdss,adb write /sys/class/android_usb/android0/enable 1 start adbd setprop sys.usb.state rndis,adb on property:sys.usb.config=rndis,serial_smd write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct 90B3 write /sys/class/android_usb/android0/f_serial/transports smd write /sys/class/android_usb/android0/functions rndis,serial write /sys/class/android_usb/android0/enable 1 setprop sys.usb.state rndis on property:sys.usb.config=rndis,serial_smd,adb write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct 90B4 write /sys/class/android_usb/android0/f_serial/transports smd write /sys/class/android_usb/android0/functions rndis,serial,adb write /sys/class/android_usb/android0/enable 1 start adbd setprop sys.usb.state rndis,adb on property:sys.usb.config=ptp write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 2717 write /sys/class/android_usb/android0/idProduct ff10 write /sys/class/android_usb/android0/functions ptp write /sys/class/android_usb/android0/enable 1 setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=ptp,adb write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 2717 write /sys/class/android_usb/android0/idProduct ff18 write /sys/class/android_usb/android0/functions ptp,adb write /sys/class/android_usb/android0/enable 1 start adbd setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=mtp write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 2717 write /sys/class/android_usb/android0/idProduct ff60 write /sys/class/android_usb/android0/functions mtp write /sys/class/android_usb/android0/enable 1 setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=mtp,adb write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 2717 write /sys/class/android_usb/android0/idProduct ff68 write /sys/class/android_usb/android0/functions mtp,adb write /sys/class/android_usb/android0/enable 1 start adbd setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=mtp,diag write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct 901B write /sys/class/android_usb/android0/f_diag/clients diag write /sys/class/android_usb/android0/functions mtp,diag write /sys/class/android_usb/android0/enable 1 setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=mtp,diag,adb write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct 903A write /sys/class/android_usb/android0/f_diag/clients diag write /sys/class/android_usb/android0/functions mtp,diag,adb write /sys/class/android_usb/android0/enable 1 start adbd setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=mtp,diag,diag_mdm write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct 9040 write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm write /sys/class/android_usb/android0/functions mtp,diag write /sys/class/android_usb/android0/enable 1 setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=mtp,diag,diag_mdm,adb write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct 903F write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm write /sys/class/android_usb/android0/functions mtp,diag,adb write /sys/class/android_usb/android0/enable 1 start adbd setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=mtp,diag,diag_mdm,diag_qsc write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct 9088 write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc write /sys/class/android_usb/android0/functions mtp,diag write /sys/class/android_usb/android0/enable 1 setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=mtp,diag,diag_mdm,diag_qsc,adb write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct 9089 write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc write /sys/class/android_usb/android0/functions mtp,diag,adb write /sys/class/android_usb/android0/enable 1 start adbd setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=mass_storage write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct F000 write /sys/class/android_usb/android0/functions mass_storage write /sys/class/android_usb/android0/enable 1 setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=mass_storage,adb write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct 9015 write /sys/class/android_usb/android0/functions adb,mass_storage write /sys/class/android_usb/android0/enable 1 start adbd setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=ncm write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 0525 write /sys/class/android_usb/android0/idProduct A4A1 write /sys/class/android_usb/android0/functions ncm write /sys/class/android_usb/android0/enable 1 setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=ncm,adb write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct 908C write /sys/class/android_usb/android0/functions ncm,adb write /sys/class/android_usb/android0/enable 1 start adbd setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=charging write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct F006 write /sys/class/android_usb/android0/functions charging write /sys/class/android_usb/android0/enable 1 setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=midi write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct 90BA write /sys/class/android_usb/android0/functions midi write /sys/class/android_usb/android0/enable 1 setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=midi,adb write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct 90BB write /sys/class/android_usb/android0/functions midi,adb write /sys/class/android_usb/android0/enable 1 start adbd setprop sys.usb.state ${sys.usb.config}