1 # Copyright 2015 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 write /sys/class/android_usb/android0/f_rndis/manufacturer LGE 17 write /sys/class/android_usb/android0/f_rndis/vendorID 18D1 18 write /sys/class/android_usb/android0/f_rndis/wceis 1 19 20 on boot 21 write /sys/class/android_usb/android0/iSerial ${ro.serialno} 22 write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer} 23 write /sys/class/android_usb/android0/iProduct ${ro.product.model} 24 25 chown root system /sys/class/dual_role_usb/otg_default/mode 26 chmod 664 /sys/class/dual_role_usb/otg_default/mode 27 28 on post-fs 29 mkdir /dev/usb-ffs 0770 shell shell 30 mkdir /dev/usb-ffs/adb 0770 shell shell 31 mount functionfs adb /dev/usb-ffs/adb noatime uid=2000,gid=2000,no_disconnect=1 32 write /sys/module/g_android/parameters/mtp_rx_req_len 131072 33 write /sys/module/g_android/parameters/mtp_tx_reqs 32 34 setprop sys.usb.ffs.max_write 262144 35 setprop sys.usb.ffs.max_read 262144 36 setprop sys.usb.mtp.device_type 3 37 write /sys/class/android_usb/android0/f_ffs/aliases adb 38 39 on post-fs-data 40 write /sys/module/rndis_ipa/parameters/min_cpu_freq 1036800 41 write /sys/class/android_usb/android0/f_rndis_qc/rndis_transports BAM2BAM_IPA 42 43 # MTP 44 on property:sys.usb.config=mtp 45 stop adbd 46 write /sys/class/android_usb/android0/enable 0 47 write /sys/class/android_usb/android0/idVendor 18D1 48 write /sys/class/android_usb/android0/idProduct 4EE1 49 write /sys/class/android_usb/android0/bDeviceClass 0 50 write /sys/class/android_usb/android0/bDeviceSubClass 0 51 write /sys/class/android_usb/android0/bDeviceProtocol 0 52 write /sys/class/android_usb/android0/functions mtp 53 write /sys/class/android_usb/android0/enable 1 54 setprop sys.usb.state ${sys.usb.config} 55 56 on property:sys.usb.config=mtp,adb 57 write /sys/class/android_usb/android0/enable 0 58 write /sys/class/android_usb/android0/idVendor 18D1 59 write /sys/class/android_usb/android0/idProduct 4EE2 60 write /sys/class/android_usb/android0/bDeviceClass 0 61 write /sys/class/android_usb/android0/bDeviceSubClass 0 62 write /sys/class/android_usb/android0/bDeviceProtocol 0 63 write /sys/class/android_usb/android0/functions mtp,adb 64 write /sys/class/android_usb/android0/enable 1 65 start adbd 66 setprop sys.usb.state ${sys.usb.config} 67 68 # rndis 69 on property:sys.usb.config=rndis 70 stop adbd 71 write /sys/class/android_usb/android0/enable 0 72 write /sys/class/android_usb/android0/idVendor 18D1 73 write /sys/class/android_usb/android0/idProduct 4EE3 74 write /sys/class/android_usb/android0/bDeviceClass 239 75 write /sys/class/android_usb/android0/bDeviceSubClass 2 76 write /sys/class/android_usb/android0/bDeviceProtocol 1 77 write /sys/class/android_usb/android0/functions rndis 78 write /sys/class/android_usb/android0/enable 1 79 setprop sys.usb.state ${sys.usb.config} 80 81 on property:sys.usb.config=rndis,adb 82 write /sys/class/android_usb/android0/enable 0 83 write /sys/class/android_usb/android0/idVendor 18D1 84 write /sys/class/android_usb/android0/idProduct 4EE4 85 write /sys/class/android_usb/android0/bDeviceClass 239 86 write /sys/class/android_usb/android0/bDeviceSubClass 2 87 write /sys/class/android_usb/android0/bDeviceProtocol 1 88 write /sys/class/android_usb/android0/functions rndis,adb 89 write /sys/class/android_usb/android0/enable 1 90 start adbd 91 setprop sys.usb.state ${sys.usb.config} 92 93 # PTP 94 on property:sys.usb.config=ptp 95 stop adbd 96 write /sys/class/android_usb/android0/enable 0 97 write /sys/class/android_usb/android0/idVendor 18D1 98 write /sys/class/android_usb/android0/idProduct 4EE5 99 write /sys/class/android_usb/android0/bDeviceClass 0 100 write /sys/class/android_usb/android0/bDeviceSubClass 0 101 write /sys/class/android_usb/android0/bDeviceProtocol 0 102 write /sys/class/android_usb/android0/functions ptp 103 write /sys/class/android_usb/android0/enable 1 104 setprop sys.usb.state ${sys.usb.config} 105 106 on property:sys.usb.config=ptp,adb 107 write /sys/class/android_usb/android0/enable 0 108 write /sys/class/android_usb/android0/idVendor 18D1 109 write /sys/class/android_usb/android0/idProduct 4EE6 110 write /sys/class/android_usb/android0/bDeviceClass 0 111 write /sys/class/android_usb/android0/bDeviceSubClass 0 112 write /sys/class/android_usb/android0/bDeviceProtocol 0 113 write /sys/class/android_usb/android0/functions ptp,adb 114 write /sys/class/android_usb/android0/enable 1 115 start adbd 116 setprop sys.usb.state ${sys.usb.config} 117 118 # diag 119 on property:sys.usb.config=diag 120 stop adbd 121 write /sys/class/android_usb/android0/enable 0 122 write /sys/class/android_usb/android0/idVendor 05C6 123 write /sys/class/android_usb/android0/idProduct 903D 124 write /sys/class/android_usb/android0/bDeviceClass 0 125 write /sys/class/android_usb/android0/bDeviceSubClass 0 126 write /sys/class/android_usb/android0/bDeviceProtocol 0 127 write /sys/class/android_usb/android0/f_diag/clients diag 128 write /sys/class/android_usb/android0/f_acm/acm_transports smd,tty 129 write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa 130 write /sys/class/android_usb/android0/functions diag,adb,acm,rmnet 131 write /sys/class/android_usb/android0/enable 1 132 start adbd 133 setprop sys.usb.state ${sys.usb.config} 134 135 on property:sys.usb.config=diag,adb 136 stop adbd 137 write /sys/class/android_usb/android0/enable 0 138 write /sys/class/android_usb/android0/idVendor 05C6 139 write /sys/class/android_usb/android0/idProduct 903D 140 write /sys/class/android_usb/android0/bDeviceClass 0 141 write /sys/class/android_usb/android0/bDeviceSubClass 0 142 write /sys/class/android_usb/android0/bDeviceProtocol 0 143 write /sys/class/android_usb/android0/f_diag/clients diag 144 write /sys/class/android_usb/android0/f_acm/acm_transports smd,tty 145 write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa 146 write /sys/class/android_usb/android0/functions diag,adb,acm,rmnet 147 write /sys/class/android_usb/android0/enable 1 148 start adbd 149 setprop sys.usb.state ${sys.usb.config} 150 151 # USB midi configuration 152 on property:sys.usb.config=midi 153 stop adbd 154 write /sys/class/android_usb/android0/enable 0 155 write /sys/class/android_usb/android0/idVendor 18D1 156 write /sys/class/android_usb/android0/idProduct 4EE8 157 write /sys/class/android_usb/android0/functions ${sys.usb.config} 158 write /sys/class/android_usb/android0/enable 1 159 setprop sys.usb.state ${sys.usb.config} 160 161 # USB midi configuration, with adb 162 on property:sys.usb.config=midi,adb 163 write /sys/class/android_usb/android0/enable 0 164 write /sys/class/android_usb/android0/idVendor 18D1 165 write /sys/class/android_usb/android0/idProduct 4EE9 166 write /sys/class/android_usb/android0/functions ${sys.usb.config} 167 write /sys/class/android_usb/android0/enable 1 168 start adbd 169 setprop sys.usb.state ${sys.usb.config} 170