b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame^] | 1 | #!/bin/sh |
| 2 | # usb_init script |
| 3 | |
| 4 | #wait for telephony ready |
| 5 | #sleep 5 |
| 6 | #Enable USB configurations |
| 7 | echo 0 > /sys/class/android_usb/android0/enable |
| 8 | echo 2ecc > /sys/class/android_usb/android0/idVendor |
| 9 | echo 3012 > /sys/class/android_usb/android0/idProduct |
| 10 | echo 0100 > /sys/class/android_usb/android0/bcdDevice |
| 11 | echo Asrmicro > /sys/class/android_usb/android0/iManufacturer |
| 12 | |
| 13 | atdl_mode=`cat /proc/cmdline | grep "LDTA="` |
| 14 | if [ -n "$atdl_mode" ]; then |
| 15 | echo "!!!ATDL mode" > /dev/kmsg |
| 16 | #wait for atcmd ready |
| 17 | loop_atcmdsrv=0 |
| 18 | while [ $loop_atcmdsrv -le 20 ] |
| 19 | do |
| 20 | if [ -e /tmp/atcmdsrv_ok ]; then |
| 21 | break |
| 22 | else |
| 23 | loop_atcmdsrv=$((loop_atcmdsrv+1)) |
| 24 | sleep 1 |
| 25 | fi |
| 26 | done |
| 27 | |
| 28 | serial_atcmd AT*MRD_SN=R > /tmp/usb_mrd_sn1 |
| 29 | sed -n '/MRD_SN/p' /tmp/usb_mrd_sn1 > /tmp/usb_mrd_sn2 |
| 30 | MRD_SNUM=`awk -F ',' '{print $3}' /tmp/usb_mrd_sn2` |
| 31 | if [ -n "$MRD_SNUM" ]; then |
| 32 | echo "USB_MRD_SN: $MRD_SNUM" > /dev/kmsg |
| 33 | echo $MRD_SNUM > /sys/class/android_usb/android0/iSerial |
| 34 | else |
| 35 | echo 123456789ABCD > /sys/class/android_usb/android0/iSerial |
| 36 | fi |
| 37 | else |
| 38 | echo 123456789ABCD > /sys/class/android_usb/android0/iSerial |
| 39 | fi |
| 40 | |
| 41 | # iProduct will displayed on Windows |
| 42 | echo Asrmicro > /sys/class/android_usb/android0/iProduct |
| 43 | # store function in node functions if os detect is not compiled, |
| 44 | # otherwise the functions are stored in win7/win8/apple |
| 45 | echo rndis,acm,marvell_diag,marvell_debug,adb > /sys/class/android_usb/android0/functions |
| 46 | echo rndis,acm,marvell_diag,marvell_debug,adb > /sys/class/android_usb/android0/win7 |
| 47 | echo rndis,acm,marvell_diag,marvell_debug,adb > /sys/class/android_usb/android0/win8 |
| 48 | |
| 49 | #PIPE mode use rndis, router mode use ncm |
| 50 | pipemode=`cat /proc/cmdline | grep "PIPE=1"` |
| 51 | if [ -n "$pipemode" ]; then |
| 52 | echo rndis,acm,marvell_diag,marvell_debug > /sys/class/android_usb/android0/olinux |
| 53 | else |
| 54 | echo ncm,acm,marvell_diag,marvell_debug > /sys/class/android_usb/android0/olinux |
| 55 | fi |
| 56 | |
| 57 | echo ncm > /sys/class/android_usb/android0/apple |
| 58 | |
| 59 | #below items are for enumeraton stage2 |
| 60 | echo rndis,acm,marvell_diag,marvell_debug > /sys/class/android_usb/android0/win7_s2 |
| 61 | echo rndis,acm,marvell_diag,marvell_debug > /sys/class/android_usb/android0/win8_s2 |
| 62 | echo rndis,acm,marvell_diag,marvell_debug > /sys/class/android_usb/android0/olinux_s2 |
| 63 | echo ncm > /sys/class/android_usb/android0/apple_s2 |
| 64 | echo win7 > /sys/class/android_usb/android0/os |
| 65 | echo 239 > /sys/class/android_usb/android0/bDeviceClass |
| 66 | echo Asrmicro > /sys/class/android_usb/android0/f_rndis/manufacturer |
| 67 | echo 0bb4 > /sys/class/android_usb/android0/f_rndis/vendorID |
| 68 | echo 1 > /sys/class/android_usb/android0/f_rndis/wceis |
| 69 | echo 1 > /sys/class/android_usb/android0/f_acm/instances |
| 70 | echo 1 > /sys/class/android_usb/android0/enable |
| 71 | |
| 72 | #start mbim early to connect with PC, otherwise AT com port will |
| 73 | #be blocked for tens of seconds |
| 74 | [ -e /sys/class/android_usb/android0/win8 ] && { |
| 75 | mbim_enabled=`cat /sys/class/android_usb/android0/win8 | grep mbim` |
| 76 | if [ -n "$mbim_enabled" ]; then |
| 77 | /bin/mbim & |
| 78 | fi |
| 79 | } |
| 80 | |
| 81 | if grep -q "CPLOG=1" /proc/cmdline && [ ! -e "/NVM/sulog_auto_enable" ] |
| 82 | then |
| 83 | /bin/sulog & |
| 84 | fi |
| 85 | |