Add basic change for v1453

Change-Id: I9497a61bbc3717f66413794a4e7dee0347c0bc33
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 8cf63a9..43eea64 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
@@ -1,12 +1,263 @@
 #!/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=`getprop persist.mbtk.usb_pid`
+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 3012 > /sys/class/android_usb/android0/idProduct
+echo $PID > /sys/class/android_usb/android0/idProduct
 echo 0100 > /sys/class/android_usb/android0/bcdDevice
 echo Asrmicro > /sys/class/android_usb/android0/iManufacturer
 
@@ -42,23 +293,23 @@
 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 rndis,acm,marvell_diag,marvell_debug,adb > /sys/class/android_usb/android0/functions
-echo rndis,acm,marvell_diag,marvell_debug,adb > /sys/class/android_usb/android0/win7
-echo rndis,acm,marvell_diag,marvell_debug,adb > /sys/class/android_usb/android0/win8
-echo rndis,acm,marvell_diag,marvell_debug > /sys/class/android_usb/android0/olinux
+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 rndis,acm,marvell_diag,marvell_debug > /sys/class/android_usb/android0/win7_s2
-echo rndis,acm,marvell_diag,marvell_debug > /sys/class/android_usb/android0/win8_s2
-echo rndis,acm,marvell_diag,marvell_debug > /sys/class/android_usb/android0/olinux_s2
+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 1 > /sys/class/android_usb/android0/f_acm/instances 
+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
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 3cdcc53..9e0a144 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
@@ -1,12 +1,263 @@
 #!/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=`getprop persist.mbtk.usb_pid`
+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 3012 > /sys/class/android_usb/android0/idProduct
+echo $PID > /sys/class/android_usb/android0/idProduct
 echo 0100 > /sys/class/android_usb/android0/bcdDevice
 echo Asrmicro > /sys/class/android_usb/android0/iManufacturer
 
@@ -42,23 +293,23 @@
 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 rndis,acm,marvell_diag,marvell_debug,adb > /sys/class/android_usb/android0/functions
-echo rndis,acm,marvell_diag,marvell_debug,adb > /sys/class/android_usb/android0/win7
-echo rndis,acm,marvell_diag,marvell_debug,adb > /sys/class/android_usb/android0/win8
-echo rndis,acm,marvell_diag,marvell_debug > /sys/class/android_usb/android0/olinux
+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 rndis,acm,marvell_diag,marvell_debug > /sys/class/android_usb/android0/win7_s2
-echo rndis,acm,marvell_diag,marvell_debug > /sys/class/android_usb/android0/win8_s2
-echo rndis,acm,marvell_diag,marvell_debug > /sys/class/android_usb/android0/olinux_s2
+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 1 > /sys/class/android_usb/android0/f_acm/instances 
+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
diff --git a/package/mbtk-rootfs/Makefile b/package/mbtk-rootfs/Makefile
new file mode 100755
index 0000000..01c14ea
--- /dev/null
+++ b/package/mbtk-rootfs/Makefile
@@ -0,0 +1,87 @@
+#
+# Copyright (C) 2007-2021 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/kernel.mk
+include $(INCLUDE_DIR)/version.mk
+include $(INCLUDE_DIR)/feeds.mk
+
+PKG_NAME:=mbtk-rootfs
+PKG_VERSION:=1.0
+PKG_RELEASE:=1
+
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
+SVC_SOURCE_DIR:=$(TOPDIR)/mbtk/rootfs
+PKG_SOURCE_DIR:=$(SVC_SOURCE_DIR) $(STAGING_DIR)/usr/include $(STAGING_DIR)/usr/lib
+ROOTFS_DIR:=$(BUILD_DIR)/root-mmp
+
+PKG_BUILD_PARALLEL:=0
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/mbtk-rootfs
+  SECTION:=mbtk-rootfs
+  CATEGORY:=service
+  TITLE:=MBTK rootfs solution
+  DEPENDS:= +liblog +libubox +libubus +audio_if +libjson-c +zlib +libopenssl +libblobmsg-json
+endef
+
+define Package/$(PKG_NAME)/extra_provides
+    echo "libdnet.so.1"; \
+	echo "cfg80211.ko";
+endef
+
+define Package/mbtk-rootfs/description
+  mbtk-rootfs
+endef
+
+define Build/Compile
+	@echo "Do nothing."
+endef
+
+define Build/Clean
+	@echo "Do nothing."
+endef
+
+define Build/InstallDev
+	@echo "InstallDev-1 $(1)"
+	@echo "InstallDev-2 $(PKG_BUILD_DIR)"
+	@echo "InstallDev-3 $(PKG_SOURCE_DIR)"
+	@echo "InstallDev-4 $(SVC_SOURCE_DIR)"
+	@echo "InstallDev-5 $(STAGING_DIR)"
+	@echo "InstallDev-6 $(ROOTFS_DIR)"
+	$(INSTALL_DIR) $(ROOTFS_DIR)/lib
+	$(INSTALL_DIR) $(ROOTFS_DIR)/bin
+	$(INSTALL_DIR) $(ROOTFS_DIR)/etc
+	$(INSTALL_DIR) $(ROOTFS_DIR)/usr
+	
+	$(CP) -rf $(PKG_BUILD_DIR)/ipkg-asr*/$(PKG_NAME)/* $(ROOTFS_DIR)/
+	#$(CP) -rf $(PKG_BUILD_DIR)/ipkg-asr1806/$(PKG_NAME)/lib/* $(ROOTFS_DIR)/lib/
+	#$(CP) -rf $(PKG_BUILD_DIR)/ipkg-asr1806/$(PKG_NAME)/bin/* $(ROOTFS_DIR)/bin/
+	#$(CP) -rf $(PKG_BUILD_DIR)/ipkg-asr1806/$(PKG_NAME)/etc/* $(ROOTFS_DIR)/etc/
+endef
+
+define Package/mbtk-rootfs/install
+	@echo "install-1 $(1)"
+	@echo "install-2 $(PKG_BUILD_DIR)"
+	@echo "install-3 $(PKG_SOURCE_DIR)"
+	@echo "install-4 $(SVC_SOURCE_DIR)"
+	@echo "install-5 $(STAGING_DIR)"
+	$(INSTALL_DIR) $(1)/lib
+	$(INSTALL_DIR) $(1)/bin
+	$(INSTALL_DIR) $(1)/etc
+	$(INSTALL_DIR) $(1)/usr
+	
+	$(CP) -rf $(SVC_SOURCE_DIR)/* $(1)/
+	#$(CP) -rf $(SVC_SOURCE_DIR)/lib/* $(1)/lib/
+	#$(CP) -rf $(SVC_SOURCE_DIR)/bin/* $(1)/bin/
+	#$(CP) -rf $(SVC_SOURCE_DIR)/etc/* $(1)/etc/
+endef
+
+$(eval $(call BuildPackage,mbtk-rootfs))
diff --git a/package/network/services/lte-telephony/files/tel-asr4unify-sdtim.config b/package/network/services/lte-telephony/files/tel-asr4unify-sdtim.config
old mode 100644
new mode 100755
index bf4388a..59cbc97
--- a/package/network/services/lte-telephony/files/tel-asr4unify-sdtim.config
+++ b/package/network/services/lte-telephony/files/tel-asr4unify-sdtim.config
@@ -106,8 +106,22 @@
 # Need support Async mode in AT cmd server
 CONFIG_AT_CMD_ASYNC_MODE=n
 CONFIG_UNIFY_TELE=y
-CONFIG_ADDITIONAL_MODEM_DEVICE=n
-CONFIG_UART2_AT=n
+# Change by liubin
+#CONFIG_ADDITIONAL_MODEM_DEVICE=n
+CONFIG_ADDITIONAL_MODEM_DEVICE=y
+
+# Change by liubin
+# CONFIG_UART2_AT=n
+CONFIG_UART2_AT=y
 CONFIG_SMS_CUST_DEFINE=y
 CONFIG_MSG_CUST_SAVE_ME=y
 
+# MBTK AT Support
+CONFIG_MBTK_AT_SUPPORT=y
+
+# MBTK pty At support
+CONFIG_MBTK_PTY_AT_SUPPORT=n
+
+CONFIG_MBTK_YX_AT_SUPPORT=n
+
+CONFIG_MBTK_DATA_MODE_SUPPORT=n
diff --git a/package/network/services/lte-telephony/files/tel-asr4unify.config b/package/network/services/lte-telephony/files/tel-asr4unify.config
old mode 100644
new mode 100755
index 3bd0365..eb19d81
--- a/package/network/services/lte-telephony/files/tel-asr4unify.config
+++ b/package/network/services/lte-telephony/files/tel-asr4unify.config
@@ -106,8 +106,22 @@
 # Need support Async mode in AT cmd server
 CONFIG_AT_CMD_ASYNC_MODE=n
 CONFIG_UNIFY_TELE=y
-CONFIG_ADDITIONAL_MODEM_DEVICE=n
-CONFIG_UART2_AT=n
+# Change by liubin
+#CONFIG_ADDITIONAL_MODEM_DEVICE=n
+CONFIG_ADDITIONAL_MODEM_DEVICE=y
+
+# Change by liubin
+# CONFIG_UART2_AT=n
+CONFIG_UART2_AT=y
 CONFIG_SMS_CUST_DEFINE=y
 CONFIG_MSG_CUST_SAVE_ME=y
 
+# MBTK AT Support
+CONFIG_MBTK_AT_SUPPORT=y
+
+# MBTK pty At support
+CONFIG_MBTK_PTY_AT_SUPPORT=n
+
+CONFIG_MBTK_YX_AT_SUPPORT=n
+
+CONFIG_MBTK_DATA_MODE_SUPPORT=n
diff --git a/package/network/services/lte-telephony/files/telinit b/package/network/services/lte-telephony/files/telinit
index 1635127..9483d76 100755
--- a/package/network/services/lte-telephony/files/telinit
+++ b/package/network/services/lte-telephony/files/telinit
@@ -34,6 +34,14 @@
 #Set UCI file "cmdline" from /proc/cmdline
 cmdline2uci
 
+# Add by liubin for open/close dump.
+RDUP_MODE=`getprop persist.mbtk.dump 2> /dev/null`
+if [ "$RDUP_MODE" == "1" ];then
+    echo 0xF > /proc/sys/kernel/print-fatal-signals
+else
+    echo 0xE > /proc/sys/kernel/print-fatal-signals
+fi
+
 #Set default properties
 setprop sys.default.loglevel 8
 setprop sys.cp_load.loglevel 8
@@ -44,6 +52,8 @@
 setprop ril.telephony.properties 0
 setprop persist.radio.sim1.auto_answer false
 setprop persist.radio.fastdorm.timeout 0
+setprop persist.mbtk.dev_ttymodem0 custom
+setprop persist.mbtk.dev_ttyS1 custom
 
 #log option: 0-none 1-logcat 2-kmsg
 setprop sys.log.option 1
@@ -62,10 +72,12 @@
 grep -q p403 /etc/mversion && [ -d /tmp/root ] && mount_root done
 grep -q p503 /etc/mversion && [ -d /tmp/root ] && mount_root done
 #do not start telephony in ramdump mode
+# Add by liubin
 if [ "$PRODMODE" != "5" -a "$NOCP" != "1" ]; then
 	/bin/cp_load
 	/bin/nvmproxy &
 	(while ! /bin/atcmdsrv;           do echo "Restarting atcmdsrv...";               done) &
+	/etc/init.d/mbtk_boot_eary &
 else
 	setprop sys.log.option 0
 	/bin/atcmdsrv -A &
@@ -108,4 +120,9 @@
 else
 	######### PROD mode ########
 	/sbin/prod_usb_init &
+	# add by mbtk
+	/bin/rild &
+	[ -e "/usr/bin/audio_if" ] && {
+		/usr/bin/audio_if &
+		}
 fi
diff --git a/package/utils/adbd/adbd.init b/package/utils/adbd/adbd.init
old mode 100644
new mode 100755
index 54d8dbb..64211a1
--- a/package/utils/adbd/adbd.init
+++ b/package/utils/adbd/adbd.init
@@ -1,7 +1,8 @@
 #!/bin/sh /etc/rc.common
 # Copyright (C) 2006-2011 OpenWrt.org
 
-START=80
+# Change by liubin
+START=10
 STOP=99
 
 USE_PROCD=1