[Feature][T108][task-view-1550] GSW base code update v1453 --0

Only Configure: No
Affected branch: GSW_V1453
Affected module: ALL
Is it affected on IC: only ASR
Self-test: yes
Doc Update: no

Change-Id: I5a5f64351d29a8e070735aaf5f0748a0f4c5f77e
diff --git a/package/base-files/files/etc/sysctl.conf b/package/base-files/files/etc/sysctl.conf
index 10e10b3..1ac364e 100644
--- a/package/base-files/files/etc/sysctl.conf
+++ b/package/base-files/files/etc/sysctl.conf
@@ -16,3 +16,4 @@
 net.ipv6.conf.ccinet13.accept_ra = 2
 net.ipv6.conf.ccinet14.accept_ra = 2
 net.ipv6.conf.ccinet15.accept_ra = 2
+net.ipv4.ip_local_reserved_ports = 54002-54059,50700,50818,30509,30609,30490
diff --git a/package/base-files/profile-files/asr1806/FACT301/base-files/sbin/prod_usb_init b/package/base-files/profile-files/asr1806/FACT301/base-files/sbin/prod_usb_init
index 43eea64..e9db27a 100755
--- a/package/base-files/profile-files/asr1806/FACT301/base-files/sbin/prod_usb_init
+++ b/package/base-files/profile-files/asr1806/FACT301/base-files/sbin/prod_usb_init
@@ -286,7 +286,15 @@
 		echo 123456789ABCD > /sys/class/android_usb/android0/iSerial
 	fi
 else
-	echo 123456789ABCD > /sys/class/android_usb/android0/iSerial
+	# echo 123456789ABCD > /sys/class/android_usb/android0/iSerial
+	gsw_uuid_test > /tmp/usb_mrd_sn3
+	MRD_SNUM=`awk -F ' ' '{print $3}' /tmp/usb_mrd_sn3`
+	if [ -n "$MRD_SNUM" ]; then
+		echo "USB_MRD_SN: $MRD_SNUM" > /dev/kmsg
+		echo $MRD_SNUM > /sys/class/android_usb/android0/iSerial
+	else
+		echo 123456789ABCD > /sys/class/android_usb/android0/iSerial
+	fi
 fi
 
 # iProduct will displayed on Windows
@@ -325,3 +333,5 @@
 then
 	/bin/sulog &
 fi
+
+/bin/lynq_bus_hound_monitor > /dev/null &
\ No newline at end of file
diff --git a/package/base-files/profile-files/asr1806/FACT301/base-files/sbin/tmp_usb_init b/package/base-files/profile-files/asr1806/FACT301/base-files/sbin/tmp_usb_init
new file mode 100755
index 0000000..16250f1
--- /dev/null
+++ b/package/base-files/profile-files/asr1806/FACT301/base-files/sbin/tmp_usb_init
@@ -0,0 +1,335 @@
+#!/bin/sh
+# usb_init script
+
+# Add by liubin for usb default config.
+PID=3300
+DEV_LIST=rndis,acm,marvell_modem,adb,marvell_diag,marvell_debug
+ACM_NUM=2
+
+USB_CONF=$1
+if [ -n $USB_CONF ];then
+	case "$USB_CONF" in
+		3300)
+			PID=$USB_CONF
+			DEV_LIST=rndis,acm,marvell_modem,adb,marvell_diag,marvell_debug
+			ACM_NUM=2
+			;;
+		3301)
+			PID=$USB_CONF
+			DEV_LIST=acm,marvell_modem,adb,marvell_diag,marvell_debug
+			ACM_NUM=2
+			;;
+		3302)
+			PID=$USB_CONF
+			DEV_LIST=rndis,acm,marvell_modem,adb,marvell_diag,marvell_debug
+			ACM_NUM=1
+			;;
+		3303)
+			PID=$USB_CONF
+			DEV_LIST=rndis,acm,adb,marvell_diag,marvell_debug
+			ACM_NUM=2
+			;;
+		3304)
+			PID=$USB_CONF
+			DEV_LIST=rndis,acm,marvell_modem,marvell_diag,marvell_debug
+			ACM_NUM=2
+			;;
+		3305)
+			PID=$USB_CONF
+			DEV_LIST=rndis,acm,marvell_modem,adb
+			ACM_NUM=2
+			;;
+		3306)
+			PID=$USB_CONF
+			DEV_LIST=acm,marvell_modem,adb,marvell_diag,marvell_debug
+			ACM_NUM=1
+			;;
+		3307)
+			PID=$USB_CONF
+			DEV_LIST=acm,adb,marvell_diag,marvell_debug
+			ACM_NUM=2
+			;;
+		3308)
+			PID=$USB_CONF
+			DEV_LIST=acm,marvell_modem,marvell_diag,marvell_debug
+			ACM_NUM=2
+			;;
+		3309)
+			PID=$USB_CONF
+			DEV_LIST=acm,marvell_modem,adb
+			ACM_NUM=2
+			;;
+		330a | 330A)
+			PID=$USB_CONF
+			DEV_LIST=rndis,marvell_modem,adb,marvell_diag,marvell_debug
+			ACM_NUM=1
+			;;
+		330b | 330B)
+			PID=$USB_CONF
+			DEV_LIST=rndis,acm,adb,marvell_diag,marvell_debug
+			ACM_NUM=1
+			;;
+		330c | 330C)
+			PID=$USB_CONF
+			DEV_LIST=rndis,acm,marvell_modem,marvell_diag,marvell_debug
+			ACM_NUM=1
+			;;
+		330d | 330D)
+			PID=$USB_CONF
+			DEV_LIST=rndis,acm,marvell_modem,adb
+			ACM_NUM=1
+			;;
+		330e | 330E)
+			PID=$USB_CONF
+			DEV_LIST=rndis,acm,marvell_diag,marvell_debug
+			ACM_NUM=2
+			;;
+		330f | 330F)
+			PID=$USB_CONF
+			DEV_LIST=rndis,acm,adb
+			ACM_NUM=2
+			;;
+		3310)
+			PID=$USB_CONF
+			DEV_LIST=rndis,acm
+			ACM_NUM=2
+			;;
+		3311)
+			PID=$USB_CONF
+			DEV_LIST=rndis,acm,marvell_modem
+			ACM_NUM=1
+			;;
+		3312)
+			PID=$USB_CONF
+			DEV_LIST=rndis,acm,adb
+			ACM_NUM=1
+			;;
+		3313)
+			PID=$USB_CONF
+			DEV_LIST=rndis,acm,marvell_diag,marvell_debug
+			ACM_NUM=1
+			;;
+		3314)
+			PID=$USB_CONF
+			DEV_LIST=rndis,marvell_modem,adb
+			ACM_NUM=1
+			;;
+		3315)
+			PID=$USB_CONF
+			DEV_LIST=rndis,marvell_modem,marvell_diag,marvell_debug
+			ACM_NUM=1
+			;;
+		3316)
+			PID=$USB_CONF
+			DEV_LIST=rndis,adb,marvell_diag,marvell_debug
+			ACM_NUM=1
+			;;
+		3317)
+			PID=$USB_CONF
+			DEV_LIST=acm,marvell_modem
+			ACM_NUM=2
+			;;
+		3318)
+			PID=$USB_CONF
+			DEV_LIST=acm,adb
+			ACM_NUM=2
+			;;
+		3319)
+			PID=$USB_CONF
+			DEV_LIST=acm,marvell_diag,marvell_debug
+			ACM_NUM=2
+			;;
+		331a | 331A)
+			PID=$USB_CONF
+			DEV_LIST=acm,marvell_modem,adb
+			ACM_NUM=1
+			;;
+		331b | 331B)
+			PID=$USB_CONF
+			DEV_LIST=acm,marvell_modem,marvell_diag,marvell_debug
+			ACM_NUM=1
+			;;
+		331c | 331C)
+			PID=$USB_CONF
+			DEV_LIST=acm,adb,marvell_diag,marvell_debug
+			ACM_NUM=1
+			;;
+		331d | 331D)
+			PID=$USB_CONF
+			DEV_LIST=marvell_modem,adb,marvell_diag,marvell_debug
+			ACM_NUM=1
+			;;
+		331e | 331E)
+			PID=$USB_CONF
+			DEV_LIST=rndis,acm
+			ACM_NUM=1
+			;;
+		331f | 331F)
+			PID=$USB_CONF
+			DEV_LIST=rndis,marvell_modem
+			ACM_NUM=1
+			;;
+		3320)
+			PID=$USB_CONF
+			DEV_LIST=rndis,adb
+			ACM_NUM=1
+			;;
+		3321)
+			PID=$USB_CONF
+			DEV_LIST=rndis,marvell_diag,marvell_debug
+			ACM_NUM=1
+			;;
+		3322)
+			PID=$USB_CONF
+			DEV_LIST=acm
+			ACM_NUM=2
+			;;
+		3323)
+			PID=$USB_CONF
+			DEV_LIST=acm,marvell_modem
+			ACM_NUM=1
+			;;
+		3324)
+			PID=$USB_CONF
+			DEV_LIST=acm,adb
+			ACM_NUM=1
+			;;
+		3325)
+			PID=$USB_CONF
+			DEV_LIST=acm,marvell_diag,marvell_debug
+			ACM_NUM=1
+			;;
+		3326)
+			PID=$USB_CONF
+			DEV_LIST=marvell_modem,adb
+			ACM_NUM=1
+			;;
+		3327)
+			PID=$USB_CONF
+			DEV_LIST=marvell_modem,marvell_diag,marvell_debug
+			ACM_NUM=1
+			;;
+		3328)
+			PID=$USB_CONF
+			DEV_LIST=adb,marvell_diag,marvell_debug
+			ACM_NUM=1
+			;;
+		3329)
+			PID=$USB_CONF
+			DEV_LIST=rndis
+			ACM_NUM=1
+			;;
+		332a | 332A)
+			PID=$USB_CONF
+			DEV_LIST=acm
+			ACM_NUM=1
+			;;
+		332b | 332B)
+			PID=$USB_CONF
+			DEV_LIST=marvell_modem
+			ACM_NUM=1
+			;;
+		332c | 332C)
+			PID=$USB_CONF
+			DEV_LIST=adb
+			ACM_NUM=1
+			;;
+		332d | 332D)
+			PID=$USB_CONF
+			DEV_LIST=marvell_diag,marvell_debug
+			ACM_NUM=1
+			;;
+		*)
+			echo "PID error:$USB_CONF"
+			;;
+	esac
+else
+	echo "No found persist.mbtk.usb_pid"
+fi
+
+echo "PID : $PID"
+echo "DEV_LIST : $DEV_LIST"
+echo "ACM_NUM : $ACM_NUM"
+# End by liubin
+
+#wait for telephony ready
+#sleep 5
+#Enable USB configurations
+echo 0 > /sys/class/android_usb/android0/enable
+echo 2ecc > /sys/class/android_usb/android0/idVendor
+echo $PID > /sys/class/android_usb/android0/idProduct
+echo 0100 > /sys/class/android_usb/android0/bcdDevice
+echo Asrmicro > /sys/class/android_usb/android0/iManufacturer
+
+atdl_mode=`cat /proc/cmdline | grep "LDTA="`
+if [ -n "$atdl_mode" ]; then
+	echo "!!!ATDL mode" > /dev/kmsg
+	#wait for atcmd ready
+	loop_atcmdsrv=0
+	while [ $loop_atcmdsrv -le 20 ]
+	do
+		if [ -e /tmp/atcmdsrv_ok ]; then
+			break
+		else
+			loop_atcmdsrv=$((loop_atcmdsrv+1))
+			sleep 1
+		fi
+	done
+
+	serial_atcmd AT*MRD_SN=R > /tmp/usb_mrd_sn1
+	sed -n '/MRD_SN/p' /tmp/usb_mrd_sn1 > /tmp/usb_mrd_sn2
+	MRD_SNUM=`awk -F ',' '{print $3}' /tmp/usb_mrd_sn2`
+	if [ -n "$MRD_SNUM" ]; then
+		echo "USB_MRD_SN: $MRD_SNUM" > /dev/kmsg
+		echo $MRD_SNUM > /sys/class/android_usb/android0/iSerial
+	else
+		echo 123456789ABCD > /sys/class/android_usb/android0/iSerial
+	fi
+else
+	# echo 123456789ABCD > /sys/class/android_usb/android0/iSerial
+	gsw_uuid_test > /tmp/usb_mrd_sn3
+	MRD_SNUM=`awk -F ' ' '{print $3}' /tmp/usb_mrd_sn3`
+	if [ -n "$MRD_SNUM" ]; then
+		echo "USB_MRD_SN: $MRD_SNUM" > /dev/kmsg
+		echo $MRD_SNUM > /sys/class/android_usb/android0/iSerial
+	else
+		echo 123456789ABCD > /sys/class/android_usb/android0/iSerial
+	fi
+fi
+
+# iProduct will displayed on Windows
+echo Asrmicro > /sys/class/android_usb/android0/iProduct
+# store function in node functions if os detect is not compiled, 
+# otherwise the functions are stored in win7/win8/apple
+echo $DEV_LIST > /sys/class/android_usb/android0/functions
+echo $DEV_LIST > /sys/class/android_usb/android0/win7
+echo $DEV_LIST > /sys/class/android_usb/android0/win8
+echo $DEV_LIST > /sys/class/android_usb/android0/olinux
+echo ecm > /sys/class/android_usb/android0/apple
+
+#below items are for enumeraton stage2
+echo $DEV_LIST > /sys/class/android_usb/android0/win7_s2
+echo $DEV_LIST > /sys/class/android_usb/android0/win8_s2
+echo $DEV_LIST > /sys/class/android_usb/android0/olinux_s2
+echo ecm > /sys/class/android_usb/android0/apple_s2
+echo win7 > /sys/class/android_usb/android0/os
+echo 239 > /sys/class/android_usb/android0/bDeviceClass
+echo Asrmicro > /sys/class/android_usb/android0/f_rndis/manufacturer
+echo 0bb4 > /sys/class/android_usb/android0/f_rndis/vendorID
+echo 1 > /sys/class/android_usb/android0/f_rndis/wceis
+echo $ACM_NUM > /sys/class/android_usb/android0/f_acm/instances 
+echo 1 > /sys/class/android_usb/android0/enable
+
+#start mbim early to connect with PC, otherwise AT com port will
+#be blocked for tens of seconds
+# [ -e /sys/class/android_usb/android0/win8 ] && {
+# 	mbim_enabled=`cat /sys/class/android_usb/android0/win8 | grep mbim`
+# 	if [ -n "$mbim_enabled" ]; then
+# 		/bin/mbim &
+# 	fi
+# }
+
+# if cat /proc/cmdline | grep "CPLOG=1" > /dev/null
+# then
+# 	/bin/sulog &
+# fi
diff --git a/package/base-files/profile-files/asr1806/FACT301/base-files/sbin/usb_init b/package/base-files/profile-files/asr1806/FACT301/base-files/sbin/usb_init
index 9e0a144..c6b7f74 100755
--- a/package/base-files/profile-files/asr1806/FACT301/base-files/sbin/usb_init
+++ b/package/base-files/profile-files/asr1806/FACT301/base-files/sbin/usb_init
@@ -286,7 +286,15 @@
 		echo 123456789ABCD > /sys/class/android_usb/android0/iSerial
 	fi
 else
-	echo 123456789ABCD > /sys/class/android_usb/android0/iSerial
+	# echo 123456789ABCD > /sys/class/android_usb/android0/iSerial
+	gsw_uuid_test > /tmp/usb_mrd_sn3
+	MRD_SNUM=`awk -F ' ' '{print $3}' /tmp/usb_mrd_sn3`
+	if [ -n "$MRD_SNUM" ]; then
+		echo "USB_MRD_SN: $MRD_SNUM" > /dev/kmsg
+		echo $MRD_SNUM > /sys/class/android_usb/android0/iSerial
+	else
+		echo 123456789ABCD > /sys/class/android_usb/android0/iSerial
+	fi
 fi
 
 # iProduct will displayed on Windows
@@ -326,4 +334,5 @@
 	/bin/sulog &
 fi
 
+/bin/lynq_bus_hound_monitor > /dev/null &
 
diff --git a/package/network/config/firewall/files/firewall.config b/package/network/config/firewall/files/firewall.config
index c027b5e..05ad5fd 100755
--- a/package/network/config/firewall/files/firewall.config
+++ b/package/network/config/firewall/files/firewall.config
@@ -3,6 +3,7 @@
 	option input		ACCEPT
 	option output		ACCEPT
 	option forward		REJECT
+	option enabled		'0'
 # Uncomment this line to disable ipv6 rules
 #	option disable_ipv6	1
 
diff --git a/package/utils/zip/Makefile b/package/utils/zip/Makefile
new file mode 100644
index 0000000..72429ad
--- /dev/null
+++ b/package/utils/zip/Makefile
@@ -0,0 +1,48 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=zip
+PKG_VERSION:=3.0
+PKG_RELEASE:=1
+
+PKG_SOURCE:=zip-3.0.tar.gz
+PKG_HASH:=f0e8bb1f9b7eb0b01285495a2699df3a4b766784c1765a8f1aeedf63c0806369
+PKG_BUILD_DIR:=$(BUILD_DIR)/zip30
+
+PKG_MAINTAINER:=lynq
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=LICENSE
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/zip
+	SECTION:=utils
+	CATEGORY:=Utilities
+	TITLE:=ZIP compression utility
+	URL:=http://infozip.sourceforge.net/
+	DEPENDS:=+libbz2 +zlib
+endef
+
+define Package/zip/description
+	ZIP is a compression and file packaging/archive utility.
+endef
+
+define Build/Configure
+	$(MAKE) -C $(PKG_BUILD_DIR) -f unix/Makefile generic \
+	CC="$(TARGET_CC)" \
+	CPP="$(TARGET_CXX)" \
+	CFLAGS="$(TARGET_CFLAGS)" \
+	LFLAGS1="$(TARGET_LDFLAGS)"
+endef
+
+define Build/Compile
+	$(MAKE) -C $(PKG_BUILD_DIR) -f unix/Makefile generic \
+	prefix="$(PKG_INSTALL_DIR)/usr" \
+	install
+endef
+
+define Package/zip/install
+	$(INSTALL_DIR) $(1)/usr/bin
+	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/zip $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,zip))