blob: ebd37f1efa7e421790d576469dc88f9285b4a8d2 [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001#!/bin/sh
2# usb_init script
3
4#wait for telephony ready
5#sleep 5
6#Enable USB configurations
7echo 0 > /sys/class/android_usb/android0/enable
8echo 2ecc > /sys/class/android_usb/android0/idVendor
9echo 3012 > /sys/class/android_usb/android0/idProduct
10echo 0100 > /sys/class/android_usb/android0/bcdDevice
11echo Asrmicro > /sys/class/android_usb/android0/iManufacturer
12
13atdl_mode=`cat /proc/cmdline | grep "LDTA="`
14if [ -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
37else
38 echo 123456789ABCD > /sys/class/android_usb/android0/iSerial
39fi
40
41# iProduct will displayed on Windows
42echo 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
45echo rndis,acm,marvell_diag,marvell_debug,adb > /sys/class/android_usb/android0/functions
46echo rndis,acm,marvell_diag,marvell_debug,adb > /sys/class/android_usb/android0/win7
47echo rndis,acm,marvell_diag,marvell_debug,adb > /sys/class/android_usb/android0/win8
48
49#PIPE mode use rndis, router mode use ncm
50pipemode=`cat /proc/cmdline | grep "PIPE=1"`
51if [ -n "$pipemode" ]; then
52 echo rndis,acm,marvell_diag,marvell_debug > /sys/class/android_usb/android0/olinux
53else
54 echo ncm,acm,marvell_diag,marvell_debug > /sys/class/android_usb/android0/olinux
55fi
56
57echo ncm > /sys/class/android_usb/android0/apple
58
59#below items are for enumeraton stage2
60echo rndis,acm,marvell_diag,marvell_debug > /sys/class/android_usb/android0/win7_s2
61echo rndis,acm,marvell_diag,marvell_debug > /sys/class/android_usb/android0/win8_s2
62echo rndis,acm,marvell_diag,marvell_debug > /sys/class/android_usb/android0/olinux_s2
63echo ncm > /sys/class/android_usb/android0/apple_s2
64echo win7 > /sys/class/android_usb/android0/os
65echo 239 > /sys/class/android_usb/android0/bDeviceClass
66echo Asrmicro > /sys/class/android_usb/android0/f_rndis/manufacturer
67echo 0bb4 > /sys/class/android_usb/android0/f_rndis/vendorID
68echo 1 > /sys/class/android_usb/android0/f_rndis/wceis
69echo 1 > /sys/class/android_usb/android0/f_acm/instances
70echo 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
81if grep -q "CPLOG=1" /proc/cmdline && [ ! -e "/NVM/sulog_auto_enable" ]
82then
83 /bin/sulog &
84fi
85