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 Huawei 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 chown root system /sys/class/dual_role_usb/otg_default/mode 25 chmod 664 /sys/class/dual_role_usb/otg_default/mode 26 write /sys/module/dwc3/boot_finished 1 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/class/android_usb/android0/f_ffs/aliases adb 33 write /sys/module/g_android/parameters/mtp_rx_req_len 131072 34 write /sys/module/g_android/parameters/mtp_tx_reqs 32 35 setprop sys.usb.ffs.max_write 262144 36 setprop sys.usb.ffs.max_read 262144 37 setprop sys.usb.mtp.device_type 3 38 39 on charger 40 setprop persist.sys.usb.config charging 41 42 # MTP 43 on property:sys.usb.config=mtp 44 stop adbd 45 write /sys/class/android_usb/android0/enable 0 46 write /sys/class/android_usb/android0/idVendor 18D1 47 write /sys/class/android_usb/android0/idProduct 4EE1 48 write /sys/class/android_usb/android0/bDeviceClass 0 49 write /sys/class/android_usb/android0/bDeviceSubClass 0 50 write /sys/class/android_usb/android0/bDeviceProtocol 0 51 write /sys/class/android_usb/android0/functions mtp 52 write /sys/class/android_usb/android0/enable 1 53 setprop sys.usb.state ${sys.usb.config} 54 55 on property:sys.usb.config=mtp,adb 56 write /sys/class/android_usb/android0/enable 0 57 write /sys/class/android_usb/android0/idVendor 18D1 58 write /sys/class/android_usb/android0/idProduct 4EE2 59 write /sys/class/android_usb/android0/bDeviceClass 0 60 write /sys/class/android_usb/android0/bDeviceSubClass 0 61 write /sys/class/android_usb/android0/bDeviceProtocol 0 62 write /sys/class/android_usb/android0/functions mtp,adb 63 write /sys/class/android_usb/android0/enable 1 64 start adbd 65 setprop sys.usb.state ${sys.usb.config} 66 67 # rndis 68 on property:sys.usb.config=rndis 69 stop adbd 70 write /sys/class/android_usb/android0/enable 0 71 write /sys/class/android_usb/android0/idVendor 18D1 72 write /sys/class/android_usb/android0/idProduct 4EE3 73 write /sys/class/android_usb/android0/bDeviceClass 239 74 write /sys/class/android_usb/android0/bDeviceSubClass 2 75 write /sys/class/android_usb/android0/bDeviceProtocol 1 76 write /sys/class/android_usb/android0/functions rndis 77 write /sys/class/android_usb/android0/enable 1 78 setprop sys.usb.state ${sys.usb.config} 79 80 on property:sys.usb.config=rndis,adb 81 write /sys/class/android_usb/android0/enable 0 82 write /sys/class/android_usb/android0/idVendor 18D1 83 write /sys/class/android_usb/android0/idProduct 4EE4 84 write /sys/class/android_usb/android0/bDeviceClass 239 85 write /sys/class/android_usb/android0/bDeviceSubClass 2 86 write /sys/class/android_usb/android0/bDeviceProtocol 1 87 write /sys/class/android_usb/android0/functions rndis,adb 88 write /sys/class/android_usb/android0/enable 1 89 start adbd 90 setprop sys.usb.state ${sys.usb.config} 91 92 # PTP 93 on property:sys.usb.config=ptp 94 stop adbd 95 write /sys/class/android_usb/android0/enable 0 96 write /sys/class/android_usb/android0/idVendor 18D1 97 write /sys/class/android_usb/android0/idProduct 4EE5 98 write /sys/class/android_usb/android0/bDeviceClass 0 99 write /sys/class/android_usb/android0/bDeviceSubClass 0 100 write /sys/class/android_usb/android0/bDeviceProtocol 0 101 write /sys/class/android_usb/android0/functions ptp 102 write /sys/class/android_usb/android0/enable 1 103 setprop sys.usb.state ${sys.usb.config} 104 105 on property:sys.usb.config=ptp,adb 106 write /sys/class/android_usb/android0/enable 0 107 write /sys/class/android_usb/android0/idVendor 18D1 108 write /sys/class/android_usb/android0/idProduct 4EE6 109 write /sys/class/android_usb/android0/bDeviceClass 0 110 write /sys/class/android_usb/android0/bDeviceSubClass 0 111 write /sys/class/android_usb/android0/bDeviceProtocol 0 112 write /sys/class/android_usb/android0/functions ptp,adb 113 write /sys/class/android_usb/android0/enable 1 114 start adbd 115 setprop sys.usb.state ${sys.usb.config} 116 117 # diag 118 on property:sys.usb.config=diag 119 stop adbd 120 write /sys/class/android_usb/android0/enable 0 121 write /sys/class/android_usb/android0/idVendor 05c6 122 write /sys/class/android_usb/android0/idProduct 9060 123 write /sys/class/android_usb/android0/f_diag/clients diag 124 write /sys/class/android_usb/android0/functions diag,mtp,adb 125 write /sys/class/android_usb/android0/enable 1 126 start adbd 127 setprop sys.usb.state ${sys.usb.config} 128 129 # USB midi configuration 130 on property:sys.usb.config=midi 131 write /sys/class/android_usb/android0/enable 0 132 write /sys/class/android_usb/android0/idVendor 18d1 133 write /sys/class/android_usb/android0/idProduct 4ee8 134 write /sys/class/android_usb/android0/functions ${sys.usb.config} 135 write /sys/class/android_usb/android0/enable 1 136 start adbd 137 setprop sys.usb.state ${sys.usb.config} 138 139 # USB midi configuration, with adb 140 on property:sys.usb.config=midi,adb 141 write /sys/class/android_usb/android0/enable 0 142 write /sys/class/android_usb/android0/idVendor 18d1 143 write /sys/class/android_usb/android0/idProduct 4ee9 144 write /sys/class/android_usb/android0/functions ${sys.usb.config} 145 write /sys/class/android_usb/android0/enable 1 146 start adbd 147 setprop sys.usb.state ${sys.usb.config} 148 149 # USB charging configuration 150 on property:sys.usb.config=charging 151 stop adbd 152 write /sys/class/android_usb/android0/enable 0 153 write /sys/class/android_usb/android0/idVendor 18d1 154 write /sys/class/android_usb/android0/idProduct 4eea 155 write /sys/class/android_usb/android0/functions charging 156 write /sys/class/android_usb/android0/enable 1 157 setprop sys.usb.state ${sys.usb.config} 158 159 # QDSS - Qualcomm Debug Subsystem 160 on property:sys.usb.config=diag,qdss,adb 161 write /sys/class/android_usb/android0/enable 0 162 write /sys/class/android_usb/android0/idVendor 05C6 163 write /sys/class/android_usb/android0/idProduct 9060 164 write /sys/class/android_usb/android0/f_diag/clients diag 165 write /sys/class/android_usb/android0/functions diag,qdss,adb 166 write /sys/class/android_usb/android0/enable 1 167 start adbd 168 setprop sys.usb.state ${sys.usb.config} 169 170 # USB factory configuration 171 on property:sys.usb.config=manufacture,adb 172 stop adbd 173 write /sys/class/android_usb/android0/enable 0 174 write /sys/class/android_usb/android0/idVendor 12d1 175 write /sys/class/android_usb/android0/idProduct 1035 176 write /sys/class/android_usb/android0/f_diag/clients diag 177 write /sys/class/android_usb/android0/f_serial/transports smd,smd 178 write /sys/class/android_usb/android0/functions serial,mass_storage,adb,diag 179 write /sys/class/android_usb/android0/enable 1 180 start adbd 181 setprop sys.usb.state ${sys.usb.config} 182 183 # RmNet using USB BAM to IPA BAM 184 on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_ipa,mass_storage,adb 185 stop adbd 186 write /sys/class/android_usb/android0/enable 0 187 write /sys/class/android_usb/android0/idVendor 05C6 188 write /sys/class/android_usb/android0/idProduct 9025 189 write /sys/class/android_usb/android0/f_diag/clients diag 190 write /sys/class/android_usb/android0/f_serial/transports smd,tty 191 write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa 192 write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage 193 write /sys/class/android_usb/android0/enable 1 194 start adbd 195 setprop sys.usb.state ${sys.usb.config} 196 197 on property:sys.usb.config=diag,serial_smd,rmnet_ipa,adb 198 stop adbd 199 write /sys/class/android_usb/android0/enable 0 200 write /sys/class/android_usb/android0/idVendor 05C6 201 write /sys/class/android_usb/android0/idProduct 9091 202 write /sys/class/android_usb/android0/f_diag/clients diag 203 write /sys/class/android_usb/android0/f_serial/transports smd 204 write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa 205 write /sys/class/android_usb/android0/functions diag,serial,rmnet,adb 206 write /sys/class/android_usb/android0/enable 1 207 start adbd 208 setprop sys.usb.state ${sys.usb.config} 209 210 # rndis with serial 211 on property:sys.usb.config=rndis,serial 212 stop adbd 213 write /sys/class/android_usb/android0/enable 0 214 write /sys/class/android_usb/android0/idVendor 12d1 215 write /sys/class/android_usb/android0/idProduct 105d 216 write /sys/class/android_usb/android0/f_diag/clients diag 217 write /sys/class/android_usb/android0/f_serial/transports smd 218 write /sys/class/android_usb/android0/functions rndis,serial,diag 219 write /sys/class/android_usb/android0/enable 1 220 setprop sys.usb.state ${sys.usb.config} 221 222 # rndis with serial and adb 223 on property:sys.usb.config=rndis,serial,adb 224 stop adbd 225 write /sys/class/android_usb/android0/enable 0 226 write /sys/class/android_usb/android0/idVendor 12d1 227 write /sys/class/android_usb/android0/idProduct 105d 228 write /sys/class/android_usb/android0/f_diag/clients diag 229 write /sys/class/android_usb/android0/f_serial/transports smd 230 write /sys/class/android_usb/android0/functions rndis,serial,diag,adb 231 write /sys/class/android_usb/android0/enable 1 232 start adbd 233 setprop sys.usb.state ${sys.usb.config} 234 235