[Feature][ZXW-33]merge ZXW 0428 version

Change-Id: I11f167edfea428d9fab198ff00ff1364932d1b0b
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/include/nand-config-default.inc b/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/include/nand-config-default.inc
index 4810c68..439b293 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/include/nand-config-default.inc
+++ b/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/include/nand-config-default.inc
@@ -4,13 +4,7 @@
 UBI_IMAGE_SEQ  = "1024"
 
 #rootfs ubi参数配置
-MKUBIFS_ARGS = "-m ${PAGESIZE} -e ${UBI_LEB_SIZE} -c 58 -x zlib -F"
+#MKUBIFS_ARGS = "-m ${PAGESIZE} -e ${UBI_LEB_SIZE} -c 122 -x zlib -F"
 UBINIZE_ARGS = "-m ${PAGESIZE} -p ${ERASEBLOCK} -s ${PAGESIZE} -Q ${UBI_IMAGE_SEQ}"
 #userdata ubi参数配置
-USERDATA_MKUBIFS_ARGS   = "-m 4096 -e 253952 -c 1330 -x zlib"
-USERDATA_UBINIZE_ARGS = "-m 4096 -p 0x40000 -s 4096"
-USERDATA_UBI_VOL_SIZE      = "322MiB"
-#imagefs ubi参数配置
-IMAGEFS_MKUBIFS_ARGS = "-m ${PAGESIZE} -e ${UBI_LEB_SIZE} -c 193 -x zlib -F"
-IMAGEFS_UBINIZE_ARGS = "-m ${PAGESIZE} -p ${ERASEBLOCK} -s ${PAGESIZE} -Q ${UBI_IMAGE_SEQ}"
-
+USERDATA_UBINIZE_ARGS = "${UBINIZE_ARGS}"
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/include/userdata-ubi-default.cfg b/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/include/userdata-ubi-default.cfg
new file mode 100644
index 0000000..fd39afd
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/include/userdata-ubi-default.cfg
@@ -0,0 +1,13 @@
+[etc_rw]
+mode=ubi
+vol_id=0
+vol_size=16MiB
+vol_type=dynamic
+vol_name=etc_rw
+[vol_userdata]
+mode=ubi
+vol_id=1
+vol_size=1MiB
+vol_type=dynamic
+vol_name=vol_userdata
+vol_flags=autoresize
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/vehicle_dc.conf b/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/vehicle_dc.conf
index e0e28cd..7e27354 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/vehicle_dc.conf
+++ b/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/vehicle_dc.conf
@@ -24,13 +24,13 @@
 # PREFERRED_PROVIDER_udev             = "systemd"
 # PREFERRED_PROVIDER_udev-utils       = "systemd"
 # DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
-# VIRTUAL-RUNTIME_initscripts         = ""
+# VIRTUAL-RUNTIME_initscripts         = "systemd-compat-units"
 # DEFAULT_DISTRO_FEATURES           += "systemd"
 # DISTRO_FEATURES_append              = " systemd"
 # DISTRO_FEATURES_remove              = "sysvinit"
 
 KERNEL_DEVICETREE = " \
-        zx297520v3-vehicle_dc.dtb     \
+	zx297520v3-vehicle_dc.dtb     \
 "
 
 # storage type: nand or emmc
@@ -48,6 +48,7 @@
 
 #userdata文件系统类型
 USERDATA_FSTYPE       = "ubi"
+USERDATA_UBINIZE_CFG  = "userdata-ubi-default.cfg"
 
 #userdata ext4 文件系统大小
 USERDATA_EXT4SIZE = "194018"
@@ -61,7 +62,7 @@
 #是否支持MMI LCD功能
 #DISTRO_FEATURES += "MMI_LCD"
 #语音控制
-#DISTRO_FEATURES += "voice_alsa"
+DISTRO_FEATURES += "voice_alsa"
 
 #CUSTOM_MACRO在各个产品不变的宏放到cpe-base.inc文件,变化的宏放在产品发布文件。
 CUSTOM_MACRO  += " -D_GNU_SOURCE "
@@ -99,7 +100,7 @@
 CFLAGS_append  = " -Wl,-z,noexecstack"
 SECURITY_PIE_CFLAGS = " -pie -fPIE"
 SECURITY_STACK_PROTECTOR = " -fstack-protector-all"
-#CUSTOM_MACRO += " -D_USE_CODEC_AK4940 "
+CUSTOM_MACRO += " -D_USE_CODEC_TI3100 "
 
 CUSTOM_MACRO += "${@bb.utils.contains('DISTRO_FEATURES', 'voice_alsa', '-D_USE_VOICE_ALSA', '', d)}"
 #wifi 配置
@@ -109,7 +110,10 @@
 CONFIG_WIFI_FUNCTION = "ap"
 #wificfg       = "${@bb.utils.contains('CONFIG_WIFI_FUNCTION', 'ap', bb.utils.contains('CONFIG_WIFI_MODULE', 'esp8089', 'lib32-hostapd-2.6', '', d), '', d)}"
 
-CONFIG_RIL_CAP_SUPPORT="yes"
+#BL接口支持("BL"),RIL接口支持("RIL")
+CONFIG_TEL_API_SUPPORT = "BL"
+
+CUSTOM_MACRO  		+= "${@bb.utils.contains('CONFIG_TEL_API_SUPPORT', 'BL', '-D_USE_BL', '', d)}"
 
 # app and libs 配置
 #normal的版本应用及库
@@ -121,22 +125,28 @@
 	libsoftap \
 	libatutils \
 	libsqlite \
-	libbinder \
-	libril \
+	libscipc \
+	libsctel \
+	libbsp \
+	libtinyalsa\
+	libvoice \
+	libmedia \
+	libdebug-info \
         liblynq-uci \
         liblynq-shm \
         liblynq-log \
         libapn \
         libpal \
         libvendor-ril \
-        liblynq-call \
+        liblynq-call \	
 	"
+zxic_lib += "${@bb.utils.contains('CONFIG_TEL_API_SUPPORT', 'RIL', 'libbinder libril', 'libtelsvr', d)}"
 
 #zxic自研应用	
 zxic_app_open += "\
 	nvserver cfg-tool adb \	
 	at-ctl \
-	zxiceap-demo \
+	atchn-test \
 	zxic-mainctrl \
 	zxic-script \
 	zxic-hotplug \
@@ -146,17 +156,35 @@
 	zxic-ndp \
 	rtc-service \
 	fluxstat \	
-	zxic-audio-ctrl \        
 	dhcp6 \
+	fscheck \
 	nv-rpc-daemon \
 	zlog-agent \
-	rild \
+	cc-demo \
+	sim-demo \
+	i2ctest \
+	spitest \
+	uarttest \
+	bsp-test \
+	zxic-debug \
+	crc \
+	crc-modem \
+	crc-mcu \
+	voiceipc-mainctrl \
+	fsmonitor \
+	ethtest \
+	sc-at-test \
+	dialtest \
+	sc-nw-mgr-test \
         lynq-ril-service \
         uci \
         gdb \
         mobiletek-tester-rdit \
 	"
 
+zxic_app_open += "${@bb.utils.contains('CONFIG_TEL_API_SUPPORT', 'RIL', 'rild', '', d)}"
+zxic_app_open += "${@bb.utils.contains('CONFIG_TEL_API_SUPPORT', 'BL', 'tel-svr', '', d)}"
+
 #开源应用及库	
 meta_app_open += "\
 	dropbear \
@@ -171,6 +199,8 @@
 	python3 \
 	lrzsz \
 	sqlcipher \
+	iperf3 \
+	tcpdump \
 	"
 
 #normal的版本应用及库
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/vehicle_dc_4Gb.conf b/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/vehicle_dc_4Gb.conf
new file mode 100755
index 0000000..282736a
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/vehicle_dc_4Gb.conf
@@ -0,0 +1,219 @@
+require conf/distro/include/cpe-base.inc
+
+DISTRO          = "vehicle_dc_4Gb"
+DISTRO_NAME     = "zxic Distro vehicle_dc_4Gb"
+DISTRO_VERSION  = "1.0"
+SDK_VENDOR      = "-zxic"
+MAINTAINER      = "zxic Community Team <xxx@xxx>"
+TARGET_VENDOR   = "-zxic"
+
+PREFERRED_PROVIDER_virtual/kernel  = "linux-zxic"
+PREFERRED_VERSION_linux-zxic      = "5.10.156"
+PREFERRED_VERSION_busybox      = "1.33.1"
+
+TCLIBC = "glibc"
+VIRTUAL-RUNTIME_dev_manager   = "busybox-mdev"
+VIRTUAL-RUNTIME_login_manager = "busybox"
+VIRTUAL-RUNTIME_init_manager  = "busybox"
+VIRTUAL-RUNTIME_initscripts   = "initscripts"
+
+# #
+# # Use systemd for system initialization
+# #
+# VIRTUAL-RUNTIME_init_manager        = "systemd"
+# PREFERRED_PROVIDER_udev             = "systemd"
+# PREFERRED_PROVIDER_udev-utils       = "systemd"
+# DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
+# VIRTUAL-RUNTIME_initscripts         = ""
+# DEFAULT_DISTRO_FEATURES           += "systemd"
+# DISTRO_FEATURES_append              = " systemd"
+# DISTRO_FEATURES_remove              = "sysvinit"
+
+KERNEL_DEVICETREE = " \
+	zx297520v3-vehicle_dc_4Gb.dtb     \
+"
+
+# storage type: nand or emmc
+STRORAGE_TYPE = "nand"
+require conf/distro/include/${STRORAGE_CONF}.inc
+
+#rootfs文件系统类型
+IMAGE_FSTYPES  = "squashfs"
+#IMAGE_FSTYPES  = "cpio.gz"
+
+
+#rootfs文件系统squashfs参数配置,压缩方式和块大小可以更改
+ROOTFS_SQUASHFS_ARGS = "-nopad -noappend -root-owned -comp xz -Xpreset 9 -Xe -Xlc 0 -Xlp 2 -Xpb 2  -b 256k -p '/dev d 755 0 0' -p '/dev/console c 600 0 0 5 1' -processors 1"
+ROOTFS_SQUASHFS_ARGS += " ${@bb.utils.contains("DISTRO_FEATURES", "selinux", "-xattrs", "", d)} "
+
+#userdata文件系统类型
+USERDATA_FSTYPE       = "ubi"
+USERDATA_UBINIZE_CFG  = "userdata-ubi-default.cfg"
+
+#userdata ext4 文件系统大小
+USERDATA_EXT4SIZE = "194018"
+
+#
+# system initialization
+#
+DISTRO_FEATURES_append = " sysvinit "
+
+
+#是否支持MMI LCD功能
+#DISTRO_FEATURES += "MMI_LCD"
+#语音控制
+DISTRO_FEATURES += "voice_alsa"
+
+#cap_oem.img
+DISTRO_FEATURES += " oemfs "
+
+#CUSTOM_MACRO在各个产品不变的宏放到cpe-base.inc文件,变化的宏放在产品发布文件。
+CUSTOM_MACRO  += " -D_GNU_SOURCE "
+
+#产品linux kernel配置,主要区分cpe、v2x、mdl,fpga文件在./meta-zxic/recipes-kernel/linux/files目录下
+#BOOT_CTL:版本的启动方式,normal/recovery,如:linux-5_4-fpga-normal.defconfig
+LINUX_BASE_CONFIG = "linux-5_10-${DISTRO}-${BOOT_CTL}-defconfig"
+
+#型号机linux kernel配置,主要区分mdlxx、mdlyy等型号机,文件在./meta-zxic-custom/recipes-kernel/linux/files目录下
+#BOOT_CTL:版本的启动方式,normal/recovery,如:linux-5_4-mdl-normal.cfg
+LINUX_CONFIG = "linux-5_10-${DISTRO}-${BOOT_CTL}.cfg"
+
+#busybox 配置 文件在./meta-zxic/recipes-core/busybox/files目录下
+BUSYBOX_CONFIG = "${DISTRO}-${BOOT_CTL}-busybox.cfg"
+
+##############################################################################
+# custom macro for lib and app
+CUSTOM_MACRO  		+= " -DAPP_OS_LINUX=1 "
+CUSTOM_MACRO	 	+= " -DAPP_OS_TYPE=APP_OS_LINUX "
+
+ENABLE_TESTBENCH_TTY  =  "no"
+##testbench macro for mode,notty=0 single=1 uchm=2
+CUSTOM_MACRO += " -DTTY_MODE_NO=0 "
+CUSTOM_MACRO += " -DTTY_MODE_SINGLE=1 "
+CUSTOM_MACRO += " -DTTY_MODE_MUX=2 "
+CUSTOM_MACRO += " -DUSE_UBIFS "
+CUSTOM_MACRO += " -DUSE_CAP_SUPPORT "
+CUSTOM_MACRO += "${@bb.utils.contains('ENABLE_TESTBENCH_TTY', 'yes', '-DTESTBENCH_TTY_MODE=TTY_MODE_SINGLE', '-DTESTBENCH_TTY_MODE=TTY_MODE_NO', d)}"
+CONFIG_MMI_LCD = "${@bb.utils.contains("DISTRO_FEATURES", "MMI_LCD", "yes","no", d)}"
+CUSTOM_MACRO += "${@bb.utils.contains('CONFIG_MMI_LCD', 'yes', '', '-DDISABLE_LCD', d)}"
+USE_ZXIC_WEBUI = "no"
+CONFIG_USE_WEBUI_SSL="yes"
+CONFIG_USE_WEBUI_SECURITY="yes"
+#security compile options
+CFLAGS_append  = " -Wl,-z,noexecstack"
+SECURITY_PIE_CFLAGS = " -pie -fPIE"
+SECURITY_STACK_PROTECTOR = " -fstack-protector-all"
+CUSTOM_MACRO += " -D_USE_CODEC_TI3100 "
+
+CUSTOM_MACRO += "${@bb.utils.contains('DISTRO_FEATURES', 'voice_alsa', '-D_USE_VOICE_ALSA', '', d)}"
+#wifi 配置
+#"mt7916" "" "" ""
+CONFIG_WIFI_MODULE = "mt7916"
+#"apsta" "sta" "ap"
+CONFIG_WIFI_FUNCTION = "ap"
+#wificfg       = "${@bb.utils.contains('CONFIG_WIFI_FUNCTION', 'ap', bb.utils.contains('CONFIG_WIFI_MODULE', 'esp8089', 'lib32-hostapd-2.6', '', d), '', d)}"
+
+#BL接口支持("BL"),RIL接口支持("RIL")
+CONFIG_TEL_API_SUPPORT = "BL"
+
+CUSTOM_MACRO  		+= "${@bb.utils.contains('CONFIG_TEL_API_SUPPORT', 'BL', '-D_USE_BL', '', d)}"
+
+# app and libs 配置
+#normal的版本应用及库
+zxic_lib += "\
+	libnvram \
+	libatchn \
+	libsofttimer \
+	libzxic-pbm \	
+	libsoftap \
+	libatutils \
+	libsqlite \
+	libscipc \
+	libsctel \
+	libbsp \
+	libtinyalsa\
+	libvoice \
+	libmedia \
+	libdebug-info \	
+	"
+
+zxic_lib += "${@bb.utils.contains('CONFIG_TEL_API_SUPPORT', 'RIL', 'libbinder libril', 'libtelsvr', d)}"
+
+#zxic自研应用	
+zxic_app_open += "\
+	nvserver cfg-tool adb \	
+	at-ctl \
+	atchn-test \
+	zxic-mainctrl \
+	zxic-script \
+	zxic-hotplug \
+	sntp \
+	zxic-ipv6-slaac \    
+	zxic-ipv6-addr-conver \		
+	zxic-ndp \
+	rtc-service \
+	fluxstat \	
+	zxic-audio-ctrl \        
+	dhcp6 \
+	fscheck \
+	nv-rpc-daemon \
+	zlog-agent \
+	cc-demo \
+	sim-demo \
+	i2ctest \
+	spitest \
+	uarttest \
+	zxic-debug \
+	crc \
+	crc-modem \
+	crc-mcu \
+	fsmonitor \
+	ethtest \
+	dialtest \
+	sc-at-test \
+	sc-nw-mgr-test \
+	"
+
+zxic_app_open += "${@bb.utils.contains('CONFIG_TEL_API_SUPPORT', 'RIL', 'rild', '', d)}"
+zxic_app_open += "${@bb.utils.contains('CONFIG_TEL_API_SUPPORT', 'BL', 'tel-svr', '', d)}"
+
+#开源应用及库	
+meta_app_open += "\
+	dropbear \
+	e2fsprogs \
+	iptables \
+	dnsmasq \	
+	dhcp6 \
+	radvd \	
+	iproute2 \
+	busybox-syslog \
+	ethtool \
+	sqlcipher \
+	iperf3 \
+	tcpdump \
+	python3 \
+	"
+
+#normal的版本应用及库
+zxic_app += "\
+	${zxic_lib}	\
+	${zxic_app_open} \
+	${meta_app_open} \
+	"
+
+#zxic自研recovery版本的应用
+zxic_app_open_recovery += "\
+	"
+#recovery版本的开源应用及库
+meta_app_open_recovery += "\
+	"
+#recovery的版本应用及库
+zxic_app_recovery += "\
+	${zxic_app_open_recovery} \
+	${meta_app_open_recovery} "
+
+IMAGE_INSTALL +="\
+	${@bb.utils.contains("BOOT_CTL", "recovery", "${zxic_app_recovery}", "${zxic_app}", d)} \ 
+	"
+
+PACKAGE_EXCLUDE = "eudev"
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/busybox/busybox/vehicle_dc_4Gb-normal-busybox.cfg b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/busybox/busybox/vehicle_dc_4Gb-normal-busybox.cfg
new file mode 120000
index 0000000..3943994
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/busybox/busybox/vehicle_dc_4Gb-normal-busybox.cfg
@@ -0,0 +1 @@
+vehicle_dc-normal-busybox.cfg
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/rootfs_mksqushfs_demo.sh b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/rootfs_mksqushfs_demo.sh
new file mode 100755
index 0000000..7be5cd5
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/rootfs_mksqushfs_demo.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+MKSQUASHFS_ARGS="-nopad -noappend -root-owned -comp xz -Xpreset 9 -Xe -Xlc 0 -Xlp 2 -Xpb 2  -b 256k -processors 1"
+UBI_ARGS="-m 0x1000 -p 0x40000 -s 0x1000 -Q 1024"
+
+CURR_DIR=`pwd`
+ALLBINS_TOOLS=$CURR_DIR/../../../../../../allbins/tools
+#export PATH=$CURR_DIR:$PATH
+export PATH=$ALLBINS_TOOLS/squashfskit:$ALLBINS_TOOLS/mtd-utils:$PATH
+
+#echo $CURR_DIR
+#echo $MKSQUASHFS_ARGS
+
+mkdir -p ./rootfs_dir
+echo mksquashfs4 ./rootfs_dir  rootfs.out  ${MKSQUASHFS_ARGS} -p \'/dev d 755 0 0\' -p \'/dev/console c 600 0 0 5 1\'
+mksquashfs4 ./rootfs_dir  rootfs.out ${MKSQUASHFS_ARGS} -p '/dev d 755 0 0' -p '/dev/console c 600 0 0 5 1'
+if [ $? -ne 0 ]; then
+    echo "mksquashfs error"
+    exit -1
+fi
+
+./ubinize-static.sh  vol_rootfs ap_rootfs.bin rootfs.out  "$UBI_ARGS"
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/ubinize-cfg.sh b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/ubinize-cfg.sh
index 05a7907..31b9b64 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/ubinize-cfg.sh
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/ubinize-cfg.sh
@@ -1,2 +1,19 @@
 #!/bin/bash
 
+outfile=$1
+cfg_file_name=$2
+ubinize_para=$3
+
+echo "outfile:$outfile"
+echo "ubinize_para:$ubinize_para"
+
+cat $cfg_file_name
+
+ubinize  -o $outfile $ubinize_para $cfg_file_name
+if [ $? -ne 0 ]; then
+    echo "ubinize error"
+    exit -2
+else
+    echo "ubinize ok"
+fi
+
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/mdl/fs/normal/userdatafs/.gitignore b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/mdl/fs/normal/userdatafs/.gitignore
deleted file mode 100644
index e69de29..0000000
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/mdl/fs/normal/userdatafs/.gitignore
+++ /dev/null
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc/init.d/fscheck.sh b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc/init.d/fscheck.sh
index 7c17cbe..0303769 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc/init.d/fscheck.sh
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc/init.d/fscheck.sh
@@ -1,8 +1,8 @@
 #!/bin/sh
 
-sh  /sbin/to_mnt_ubifs.sh   /mnt/userdata  capuserdata
-#fscheck normal
+#sh  /sbin/to_mnt_ubifs.sh   /mnt/userdata  capuserdata
+fscheck -f /etc_ro/fscheck/userdata.ini
 mkdir -p /mnt/userdata/cache
 mkdir -p /mnt/userdata/var/run
 mkdir -p /mnt/userdata/var/log
-mkdir -p /mnt/userdata/etc_rw
+#mkdir -p /mnt/userdata/etc_rw
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc/rc.local b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc/rc.local
index 81e92f4..3888a98 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc/rc.local
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc/rc.local
@@ -39,3 +39,4 @@
 
 ln -sf "/etc/zoneinfo/Asia/Shanghai" /etc/localtime
 
+echo mem > /sys/power/autosleep
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc/resolv.conf b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc/resolv.conf
new file mode 120000
index 0000000..e9d7747
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc/resolv.conf
@@ -0,0 +1 @@
+/etc_rw/resolv.conf
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/default/default_parameter_sys b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/default/default_parameter_sys
index 98524e0..7b1aa27 100644
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/default/default_parameter_sys
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/default/default_parameter_sys
@@ -322,7 +322,7 @@
 ###²¨ÌØÂÊ×ÔÊÊÓ¦¿ª¹Ø###
 self_adaption_port=
 ###ijЩ¶Ë¿Ú²»ÐèÒªÏòÓ¦ÓÃÉϱ¨¶Ë¿Ú×¼±¸ºÃÏûÏ¢###
-notify_forbiden_ports=/dev/ttyS0
+notify_forbiden_ports=
 
 ######USB¶Ë¿ÚÅäÖÃEND#######
 
@@ -391,4 +391,9 @@
 not_supp_hmac_md5_96=0
 not_supp_des_ede3_cbc=0
 not_supp_aes_cbc=0
-#for volte end
\ No newline at end of file
+#for volte end
+
+DEBUG_INFO_FILE_PATH=/mnt/userdata
+DEBUG_INFO_FILE_NUM=2
+DEBUG_INFO_FILE_TOTAL_SIZE=1
+#debug info end
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/default/default_parameter_user b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/default/default_parameter_user
index 9942191..833ed8d 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/default/default_parameter_user
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/default/default_parameter_user
@@ -131,6 +131,8 @@
 ipv4_fake_subnet=192.0.0.0
 ipv6_fake_subnet=2016::1
 lan_ipaddr=192.168.0.1
+webv6_enable=1
+lan_ipv6addr=fe80::1
 lan_name=br0
 lan_netmask=255.255.255.0
 LanEnable=1
@@ -179,14 +181,14 @@
 ppp_name=ppp0
 pppoe_password=
 pppoe_username=
-ps_ext1=usblan0
-ps_ext2=usblan0
-ps_ext3=usblan0
-ps_ext4=usblan0
-ps_ext5=usblan0
-ps_ext6=usblan0
-ps_ext7=usblan0
-ps_ext8=usblan0
+ps_ext1=zvnet1
+ps_ext2=zvnet2
+ps_ext3=zvnet3
+ps_ext4=zvnet4
+ps_ext5=zvnet5
+ps_ext6=zvnet6
+ps_ext7=zvnet7
+ps_ext8=zvnet8
 pswan=wan
 pswan_mode=pdp
 pswan_priority=1
@@ -472,3 +474,8 @@
 at_atq=
 at_at_d=
 quick_dial=1
+#for zlog_agent
+zlog_num=10
+zlog_size=100
+zlog_path=/mnt/userdata/zcat
+rule_file=/mnt/userdata/all_3.rule
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/fscheck/userdata.ini b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/fscheck/userdata.ini
new file mode 100755
index 0000000..c838d13
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/fscheck/userdata.ini
@@ -0,0 +1,22 @@
+[FS1]
+patition_name=capuserdata
+ubi_vol_name=etc_rw
+ubi_need_attach=1
+mount_point=/etc_rw
+image_file=/etc_ro/ap_userdata.bin
+fs_type=ubifs
+mount_opt=rw
+file= /etc_rw/nv/main/cfg \
+      /etc_rw/nv/backup/cfg \
+      /etc_rw/nv/main/ro \
+      /etc_rw/nv/backup/ro
+
+[FS2]
+patition_name=capuserdata
+ubi_vol_name=vol_userdata
+ubi_need_attach=0
+mount_point=/mnt/userdata
+image_file=/etc_ro/ap_userdata.bin
+fs_type=ubifs
+mount_opt=rw
+file=/cache/testfile
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/logrule/all_3.rule b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/logrule/all_3.rule
new file mode 100755
index 0000000..c4d2c1e
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/logrule/all_3.rule
Binary files differ
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/logrule/medium_2.rule b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/logrule/medium_2.rule
new file mode 100755
index 0000000..0c613e1
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/logrule/medium_2.rule
Binary files differ
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/logrule/simple_1.rule b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/logrule/simple_1.rule
new file mode 100755
index 0000000..74e69ab
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/logrule/simple_1.rule
Binary files differ
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_rw b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_rw
deleted file mode 120000
index 3302aee..0000000
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_rw
+++ /dev/null
@@ -1 +0,0 @@
-/mnt/userdata/etc_rw
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/userdatafs/.gitignore b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_rw/.gitignore
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/userdatafs/.gitignore
rename to cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_rw/.gitignore
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/userdatafs/.gitignore b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/.gitignore
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/userdatafs/.gitignore
rename to cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/.gitignore
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc/init.d/fscheck.sh b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc/init.d/fscheck.sh
deleted file mode 100755
index c9ad168..0000000
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc/init.d/fscheck.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-echo "ubiattach userdata mtd16"
-ubiattach /dev/ubi_ctrl -m 15
-if [ $? -ne 0 ]; then
-  echo "ubiattach userdata fail"
-  exit -1
-fi
-mount -t ubifs  ubi1_0 /mnt/userdata
-if [ $? -ne 0 ]; then
-  echo "mount userdata fail"
-  exit -1
-fi
-mkdir -p /mnt/userdata/cache
-mkdir -p /mnt/userdata/var/run
-mkdir -p /mnt/userdata/etc_rw
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc/rc.local b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc/rc.local
deleted file mode 100755
index 8eead24..0000000
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc/rc.local
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-echo "Starting rc.local..."
-
-ota-upgrade -u system
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc_rw b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc_rw
deleted file mode 120000
index 3302aee..0000000
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc_rw
+++ /dev/null
@@ -1 +0,0 @@
-/mnt/userdata/etc_rw
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/oem/CHARGING.bmp b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/oem/CHARGING.bmp
new file mode 100644
index 0000000..8b49fae
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/oem/CHARGING.bmp
Binary files differ
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/oem/LOGO.bmp b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/oem/LOGO.bmp
new file mode 100644
index 0000000..5762972
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/oem/LOGO.bmp
Binary files differ
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/oem/NOBAT.bmp b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/oem/NOBAT.bmp
new file mode 100644
index 0000000..b7d36df
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/oem/NOBAT.bmp
Binary files differ
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/cache b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/cache
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/cache
rename to cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/cache
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/TZ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/TZ
new file mode 120000
index 0000000..4de4a0d
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/TZ
@@ -0,0 +1 @@
+/etc_rw/TZ
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/dropbear/dropbear_rsa_host_key b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/dropbear/dropbear_rsa_host_key
new file mode 100644
index 0000000..30443c9
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/dropbear/dropbear_rsa_host_key
Binary files differ
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc/hostname b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/hostname
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc/hostname
rename to cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/hostname
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/enter_amt.sh b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/enter_amt.sh
new file mode 100755
index 0000000..01d0f74
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/enter_amt.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+
+#/etc/init.d/mdev start
+#sh /etc/init.d/fscheck.sh
+#/etc/init.d/nvserver start
+#nv set ver_mode=0
+#/etc/init.d/zxic_usbCfgMng start
+#sh /etc/init.d/zcatlog_config.sh
+#/etc/init.d/zxic-amt start
+#exit 0
+
+# check amt mode begin
+cmdline=$(cat /proc/cmdline)
+result=$(echo $cmdline | grep "bootmode=")
+if [[ "$result" != "" ]]; then
+	bootmode=${cmdline##*bootmode=}
+	bootmode=${bootmode%% *}
+else
+	bootmode="0"
+fi
+if [[ $bootmode == "amt" ]]; then
+	/etc/init.d/mdev start
+	sh /etc/init.d/fscheck.sh
+	/etc/init.d/nvserver start
+	/etc/init.d/nv-rpc-daemon start
+	nv set ver_mode=0
+	/etc/init.d/zxic_usbCfgMng start
+	sh /etc/init.d/zcatlog_config.sh
+	/etc/init.d/zxic-amt start
+	exit 0
+fi
+# check amt mode end
+
+exit 1
+
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc/init.d/first.sh b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/first.sh
similarity index 89%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc/init.d/first.sh
rename to cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/first.sh
index 48c33eb..70b19dd 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc/init.d/first.sh
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/first.sh
@@ -44,11 +44,16 @@
 mkdir -p /tmp/run
 
 #软锁panic
-#echo 1 > /proc/sys/kernel/softlockup_panic
+echo 1 > /proc/sys/kernel/softlockup_panic
 #内存耗尽oom panic
 echo 1 > /proc/sys/vm/panic_on_oom
 #警告panic
 #echo 1 > /proc/sys/kernel/panic_on_warn
 echo 0 > /proc/sys/kernel/hung_task_timeout_secs
 
+echo "mount configfs..."
+mount none /sys/kernel/config  -t configfs
 
+
+echo "ifconfig lo up"
+ifconfig lo 127.0.0.1 up
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/fscheck.sh b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/fscheck.sh
new file mode 100755
index 0000000..0303769
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/fscheck.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+#sh  /sbin/to_mnt_ubifs.sh   /mnt/userdata  capuserdata
+fscheck -f /etc_ro/fscheck/userdata.ini
+mkdir -p /mnt/userdata/cache
+mkdir -p /mnt/userdata/var/run
+mkdir -p /mnt/userdata/var/log
+#mkdir -p /mnt/userdata/etc_rw
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/functions b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/functions
new file mode 100755
index 0000000..01ad1ed
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/functions
@@ -0,0 +1,91 @@
+# -*-Shell-script-*-
+#
+# functions     This file contains functions to be used by most or all
+#               shell scripts in the /etc/init.d directory.
+#
+
+NORMAL="\\033[0;39m"         # Standard console grey
+SUCCESS="\\033[1;32m"        # Success is green
+WARNING="\\033[1;33m"        # Warnings are yellow
+FAILURE="\\033[1;31m"        # Failures are red
+INFO="\\033[1;36m"           # Information is light cyan
+BRACKET="\\033[1;34m"        # Brackets are blue
+
+# NOTE: The pidofproc () doesn't support the process which is a script unless
+#       the pidof supports "-x" option. If you want to use it for such a
+#       process:
+#       1) If there is no "pidof -x", replace the "pidof $1" with another
+#          command like(for core-image-minimal):
+#            ps | awk '/'"$1"'/ {print $1}'
+#       Or
+#       2) If there is "pidof -x", replace "pidof" with "pidof -x".
+#
+# pidofproc - print the pid of a process
+# $1: the name of the process
+pidofproc () {
+
+	# pidof output null when no program is running, so no "2>/dev/null".
+	pid=`pidof $1`
+	status=$?
+	case $status in
+	0)
+		echo $pid
+		return 0
+		;;
+	127)
+		echo "ERROR: command pidof not found" >&2
+		exit 127
+		;;
+	*)
+		return $status
+		;;
+	esac
+}
+
+machine_id() { # return the machine ID
+	awk 'BEGIN { FS=": " } /Hardware/ \
+		{ gsub(" ", "_", $2); print tolower($2) } ' </proc/cpuinfo
+}
+
+killproc() { # kill the named process(es)
+	pid=`pidofproc $1` && kill $pid
+}
+
+status() {
+    local pid
+    if [ "$#" = 0 ]; then
+        echo "Usage: status {program}"
+        return 1
+    fi
+    pid=`pidofproc $1`
+    if [ -n "$pid" ]; then
+        echo "$1 (pid $pid) is running..."
+        return 0
+    else
+        echo "$1 is stopped"
+    fi
+    return 3
+}
+
+success() {
+    echo -n -e "${BRACKET}[${SUCCESS}  OK  ${BRACKET}]${NORMAL}"
+    return 0
+}
+
+failure() {
+    local rc=$*
+    echo -n -e "${BRACKET}[${FAILURE} FAIL ${BRACKET}]${NORMAL}"
+    return $rc
+}
+
+warning() {
+    local rc=$*
+    echo -n -e "${BRACKET}[${WARNING} WARN ${BRACKET}]${NORMAL}"
+    return $rc
+}
+
+passed() {
+    local rc=$*
+    echo -n -e "${BRACKET}[${SUCCESS} PASS ${BRACKET}]${NORMAL}"
+    return $rc
+}
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/gpsd b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/gpsd
new file mode 100755
index 0000000..a4a9df9
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/gpsd
@@ -0,0 +1,160 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides:          gpsd
+# Required-Start:    $remote_fs $syslog $network
+# Should-Start:      bluetooth dbus udev
+# Required-Stop:     $remote_fs $syslog $network
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# X-Start-Before:    ntp
+# Short-Description: GPS (Global Positioning System) daemon start/stop script
+# Description:       Start/Stop script for the gpsd service daemon,
+#                    which is able to monitor one or more GPS devices
+#                    connected to a host computer, making all data on
+#                    the location and movements of the sensors available
+#                    to be queried on TCP port 2947.
+### END INIT INFO
+
+# Author: Bernd Zeimetz <bzed@debian.org>
+#
+# Please remove the "Author" lines above and replace them
+# with your own name if you copy and modify this script.
+
+# Do NOT "set -e"
+
+# PATH should only include /usr/* if it runs after the mountnfs.sh script
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC="GPS (Global Positioning System) daemon"
+NAME=gpsd
+DAEMON=/usr/sbin/$NAME
+PIDFILE=/var/run/$NAME.pid
+SCRIPTNAME=/etc/init.d/$NAME
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+# Read configuration variable file if it is present
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
+if [ -z "$GPSD_SOCKET" ] && [ -z "$DEVICES" ]; then
+	GPSD_SOCKET=/var/run/gpsd.sock
+fi
+
+if [ -n "$GPSD_SOCKET" ]; then
+        GPSD_OPTIONS="$GPSD_OPTIONS -F $GPSD_SOCKET"
+fi
+
+# Load the VERBOSE setting and other rcS variables
+. /etc/lib/init/vars.sh
+
+# Define LSB log_* functions.
+# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
+. /etc/lib/lsb/init-functions
+
+#
+# Function that starts the daemon/service
+#
+do_start()
+{
+	# Return
+	#   0 if daemon has been started
+	#   1 if daemon was already running
+	#   2 if daemon could not be started
+	start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
+		|| return 1
+	start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
+		$GPSD_OPTIONS -P $PIDFILE $DEVICES \
+		|| return 2
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop()
+{
+	# Return
+	#   0 if daemon has been stopped
+	#   1 if daemon was already stopped
+	#   2 if daemon could not be stopped
+	#   other if a failure occurred
+	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
+	RETVAL="$?"
+	[ "$RETVAL" = 2 ] && return 2
+	# Many daemons don't delete their pidfiles when they exit.
+	rm -f $PIDFILE
+	return "$RETVAL"
+}
+
+#
+# Function that sends a SIGHUP to the daemon/service
+#
+do_reload() {
+	#
+	# If the daemon can reload its configuration without
+	# restarting (for example, when it is sent a SIGHUP),
+	# then implement that here.
+	#
+	start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
+	return 0
+}
+
+case "$1" in
+  start)
+        if [ "$START_DAEMON" = "true" ]; then
+		[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
+		do_start
+		case "$?" in
+			0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+			2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+		esac
+	else
+		[ "$VERBOSE" != no ] && \
+			log_daemon_msg "Not starting $DESC" "$NAME" && \
+			log_end_msg 0
+	fi
+	;;
+  stop)
+	[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
+	do_stop
+	case "$?" in
+		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+	esac
+	;;
+  status)
+       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
+       ;;
+  reload|force-reload)
+	log_daemon_msg "Reloading $DESC" "$NAME"
+	do_reload
+	log_end_msg $?
+	;;
+  restart)
+	#
+	# If the "reload" option is implemented then remove the
+	# 'force-reload' alias
+	#
+	log_daemon_msg "Restarting $DESC" "$NAME"
+	do_stop
+	case "$?" in
+	  0|1)
+		do_start
+		case "$?" in
+			0) log_end_msg 0 ;;
+			1) log_end_msg 1 ;; # Old process is still running
+			*) log_end_msg 1 ;; # Failed to start
+		esac
+		;;
+	  *)
+	 	# Failed to stop
+		log_end_msg 1
+		;;
+	esac
+	;;
+  *)
+	echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
+	exit 3
+	;;
+esac
+
+:
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc/init.d/rcS b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/rcS
similarity index 83%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc/init.d/rcS
rename to cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/rcS
index 7dbc3f6..e7959fe 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc/init.d/rcS
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/rcS
@@ -6,6 +6,11 @@
 
 .  /etc/init.d/first.sh
 
+sh /etc/init.d/enter_amt.sh
+if [ $? -eq 0 ]; then
+    echo "enter into amt mode"
+    exit 0
+fi
 
 for i in /etc/rcS.d/S??* ;do
 
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/zcatlog_config.sh b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/zcatlog_config.sh
new file mode 100755
index 0000000..064dd2b
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/init.d/zcatlog_config.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# 0 for usb, 1 for net
+if [ -e /proc/sys/zcatkern/log_com_mode ]; then
+  zcat_com_mode=`nv get zcat_mode`
+  if [ "$zcat_com_mode" == "net" ]; then
+    echo 1 > /proc/sys/zcatkern/log_com_mode
+  else
+    echo 0 > /proc/sys/zcatkern/log_com_mode
+  fi
+#  sh /etc/zcatlog_monitor.sh &
+fi
+
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc/inittab b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/inittab
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc/inittab
rename to cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/inittab
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/lib/init/vars.sh b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/lib/init/vars.sh
new file mode 100755
index 0000000..9707a1e
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/lib/init/vars.sh
@@ -0,0 +1,22 @@
+#
+# Set rcS vars
+#
+ 
+[ -f /etc/default/rcS ] && . /etc/default/rcS || true
+ 
+# check for bootoption 'noswap' and do not activate swap
+# partitions/files when it is set.
+if [ -r /proc/cmdline ] && grep -qw 'noswap' /proc/cmdline ; then
+    NOSWAP=yes
+else
+    NOSWAP=no
+fi
+ 
+# Accept the same 'quiet' option as the kernel
+if [ ! -e /proc/cmdline ] || egrep -qw 'quiet' /proc/cmdline ; then
+    VERBOSE="no"
+fi
+ 
+# But allow both rcS and the kernel options 'quiet' to be overrided
+# when INIT_VERBOSE=yes is used as well.
+[ "$INIT_VERBOSE" ] && VERBOSE="$INIT_VERBOSE" || true
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/lib/lsb/init-functions b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/lib/lsb/init-functions
new file mode 100755
index 0000000..96f0189
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/lib/lsb/init-functions
@@ -0,0 +1,380 @@
+# /lib/lsb/init-functions for Debian -*- shell-script -*-
+#
+#Copyright (c) 2002-08 Chris Lawrence
+#All rights reserved.
+#
+#Redistribution and use in source and binary forms, with or without
+#modification, are permitted provided that the following conditions
+#are met:
+#1. Redistributions of source code must retain the above copyright
+#   notice, this list of conditions and the following disclaimer.
+#2. Redistributions in binary form must reproduce the above copyright
+#   notice, this list of conditions and the following disclaimer in the
+#   documentation and/or other materials provided with the distribution.
+#3. Neither the name of the author nor the names of other contributors
+#   may be used to endorse or promote products derived from this software
+#   without specific prior written permission.
+#
+#THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+#IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+#WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+#ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+#LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+#CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+#SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+#BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+#WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+#OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+#EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ 
+start_daemon () {
+    local force nice pidfile exec i args
+    force=0
+    nice=0
+    pidfile=/dev/null
+ 
+    OPTIND=1
+    while getopts fn:p: opt ; do
+        case "$opt" in
+            f)  force=1;;
+            n)  nice="$OPTARG";;
+            p)  pidfile="$OPTARG";;
+        esac
+    done
+    
+    shift $(($OPTIND - 1))
+    if [ "$1" = '--' ]; then
+        shift
+    fi
+ 
+    exec="$1"; shift
+ 
+    args="--start --nicelevel $nice --quiet --oknodo"
+    if [ $force = 1 ]; then
+        /sbin/start-stop-daemon $args --chdir "$PWD" --startas $exec --pidfile /dev/null -- "$@"
+    elif [ $pidfile ]; then
+        /sbin/start-stop-daemon $args --chdir "$PWD" --exec $exec --oknodo --pidfile "$pidfile" -- "$@"
+    else
+        /sbin/start-stop-daemon $args --chdir "$PWD" --exec $exec -- "$@"
+    fi
+}
+ 
+pidofproc () {
+    local pidfile line i pids= status specified pid
+    pidfile=
+    specified=
+    
+    OPTIND=1
+    while getopts p: opt ; do
+        case "$opt" in
+            p)  pidfile="$OPTARG"; specified=1;;
+        esac
+    done
+    shift $(($OPTIND - 1))
+ 
+    base=${1##*/}
+    if [ ! "$specified" ]; then
+        pidfile="/var/run/$base.pid"
+    fi
+ 
+    if [ -n "${pidfile:-}" -a -r "$pidfile" ]; then
+        read pid < "$pidfile"
+        if [ -n "${pid:-}" ]; then
+            if $(kill -0 "${pid:-}" 2> /dev/null); then
+                echo "$pid"
+                return 0
+            elif ps "${pid:-}" >/dev/null 2>&1; then
+                echo "$pid"
+                return 0 # program is running, but not owned by this user
+            else
+                return 1 # program is dead and /var/run pid file exists
+            fi
+        fi
+    fi
+    if [ "$specified" = 1 ]; then
+        if [ -e "$pidfile" -a ! -r "$pidfile" ]; then
+            return 4 # pidfile exists, but unreadable, return unknown
+        else
+            return 3 # pidfile specified, but contains no PID to test
+        fi
+    fi
+    if [ -x /bin/pidof ]; then
+        status="0"
+        /bin/pidof -o %PPID -x $1 || status="$?"
+        if [ "$status" = 1 ]; then
+            return 3 # program is not running
+        fi
+        return 0
+    fi
+    return 4 # Unable to determine status
+}
+ 
+# start-stop-daemon uses the same algorithm as "pidofproc" above.
+killproc () {
+    local pidfile sig status base i name_param is_term_sig
+    pidfile=
+    name_param=
+    is_term_sig=no
+ 
+    OPTIND=1
+    while getopts p: opt ; do
+        case "$opt" in
+            p)  pidfile="$OPTARG";;
+        esac
+    done
+    shift $(($OPTIND - 1))
+ 
+    base=${1##*/}
+    if [ ! $pidfile ]; then
+        name_param="--name $base --pidfile /var/run/$base.pid"
+    else
+        name_param="--pidfile $pidfile"
+    fi
+ 
+    sig=$(echo ${2:-} | sed -e 's/^-\(.*\)/\1/')
+    sig=$(echo $sig | sed -e 's/^SIG\(.*\)/\1/')
+    if [ -z "$sig" -o "$sig" = 15 -o "$sig" = TERM ]; then
+        is_term_sig=yes
+    fi
+    status=0
+    if [ ! "$is_term_sig" = yes ]; then
+        if [ -n "$sig" ]; then
+            /sbin/start-stop-daemon --stop --signal "$sig" --quiet $name_param || status="$?"
+        else
+            /sbin/start-stop-daemon --stop --quiet $name_param || status="$?"
+        fi
+    else
+        /sbin/start-stop-daemon --stop --quiet --oknodo $name_param || status="$?"
+    fi
+    if [ "$status" = 1 ]; then
+        if [ -n "$sig" ]; then
+            return 0
+        fi
+        return 3 # program is not running
+    fi
+ 
+    if [ "$status" = 0 -a "$is_term_sig" = yes -a "$pidfile" ]; then
+        pidofproc -p "$pidfile" "$1" >/dev/null || rm -f "$pidfile"
+    fi
+    return 0
+}
+ 
+# Return LSB status
+status_of_proc () {
+    local pidfile daemon name status
+ 
+    pidfile=
+    OPTIND=1
+    while getopts p: opt ; do
+        case "$opt" in
+            p)  pidfile="$OPTARG";;
+        esac
+    done
+    shift $(($OPTIND - 1))
+ 
+    if [ -n "$pidfile" ]; then
+        pidfile="-p $pidfile"
+    fi
+    daemon="$1"
+    name="$2"
+ 
+    status="0"
+    pidofproc $pidfile $daemon >/dev/null || status="$?"
+    if [ "$status" = 0 ]; then
+        log_success_msg "$name is running"
+        return 0
+    elif [ "$status" = 4 ]; then
+        log_failure_msg "could not access PID file for $name"
+        return $status
+    else
+        log_failure_msg "$name is not running"
+        return $status
+    fi
+}
+ 
+log_use_fancy_output () {
+    TPUT=/usr/bin/tput
+    EXPR=/usr/bin/expr
+    if [ -t 1 ] && [ "x${TERM:-}" != "x" ] && [ "x${TERM:-}" != "xdumb" ] && [ -x $TPUT ] && [ -x $EXPR ] && $TPUT hpa 60 >/dev/null 2>&1 && $TPUT setaf 1 >/dev/null 2>&1; then
+        [ -z $FANCYTTY ] && FANCYTTY=1 || true
+    else
+        FANCYTTY=0
+    fi
+    case "$FANCYTTY" in
+        1|Y|yes|true)   true;;
+        *)              false;;
+    esac
+}
+ 
+log_success_msg () {
+    if [ -n "${1:-}" ]; then
+        log_begin_msg $@
+    fi
+    log_end_msg 0
+}
+ 
+log_failure_msg () {
+    if [ -n "${1:-}" ]; then
+        log_begin_msg $@ "..."
+    fi
+    log_end_msg 1 || true
+}
+ 
+log_warning_msg () {
+    if [ -n "${1:-}" ]; then
+        log_begin_msg $@ "..."
+    fi
+    log_end_msg 255 || true
+}
+ 
+#
+# NON-LSB HELPER FUNCTIONS
+#
+# int get_lsb_header_val (char *scriptpathname, char *key)
+get_lsb_header_val () {
+        if [ ! -f "$1" ] || [ -z "${2:-}" ]; then
+                return 1
+        fi
+        LSB_S="### BEGIN INIT INFO"
+        LSB_E="### END INIT INFO"
+        sed -n "/$LSB_S/,/$LSB_E/ s/# $2: \(.*\)/\1/p" $1
+}
+ 
+# int log_begin_message (char *message)
+log_begin_msg () {
+    if [ -z "${1:-}" ]; then
+        return 1
+    fi
+    echo -n "$@"
+}
+ 
+# Sample usage:
+# log_daemon_msg "Starting GNOME Login Manager" "gdm"
+#
+# On Debian, would output "Starting GNOME Login Manager: gdm"
+# On Ubuntu, would output " * Starting GNOME Login Manager..."
+#
+# If the second argument is omitted, logging suitable for use with
+# log_progress_msg() is used:
+#
+# log_daemon_msg "Starting remote filesystem services"
+#
+# On Debian, would output "Starting remote filesystem services:"
+# On Ubuntu, would output " * Starting remote filesystem services..."
+ 
+log_daemon_msg () {
+    if [ -z "${1:-}" ]; then
+        return 1
+    fi
+    log_daemon_msg_pre "$@"
+ 
+    if [ -z "${2:-}" ]; then
+        echo -n "$1:"
+        return
+    fi
+    
+    echo -n "$1: $2"
+    log_daemon_msg_post "$@"
+}
+ 
+# #319739
+#
+# Per policy docs:
+#
+#     log_daemon_msg "Starting remote file system services"
+#     log_progress_msg "nfsd"; start-stop-daemon --start --quiet nfsd
+#     log_progress_msg "mountd"; start-stop-daemon --start --quiet mountd
+#     log_progress_msg "ugidd"; start-stop-daemon --start --quiet ugidd
+#     log_end_msg 0
+#
+# You could also do something fancy with log_end_msg here based on the
+# return values of start-stop-daemon; this is left as an exercise for
+# the reader...
+#
+# On Ubuntu, one would expect log_progress_msg to be a no-op.
+log_progress_msg () {
+    if [ -z "${1:-}" ]; then
+        return 1
+    fi
+    echo -n " $@"
+}
+ 
+ 
+# int log_end_message (int exitstatus)
+log_end_msg () {
+    # If no arguments were passed, return
+    if [ -z "${1:-}" ]; then
+        return 1
+    fi
+ 
+    retval=$1
+ 
+    log_end_msg_pre "$@"
+ 
+    # Only do the fancy stuff if we have an appropriate terminal
+    # and if /usr is already mounted
+    if log_use_fancy_output; then
+        RED=`$TPUT setaf 1`
+        YELLOW=`$TPUT setaf 3`
+        NORMAL=`$TPUT op`
+    else
+        RED=''
+        YELLOW=''
+        NORMAL=''
+    fi
+ 
+    if [ $1 -eq 0 ]; then
+        echo "."
+    elif [ $1 -eq 255 ]; then
+        /bin/echo -e " ${YELLOW}(warning).${NORMAL}"
+    else
+        /bin/echo -e " ${RED}failed!${NORMAL}"
+    fi
+    log_end_msg_post "$@"
+    return $retval
+}
+ 
+log_action_msg () {
+    echo "$@."
+}
+ 
+log_action_begin_msg () {
+    echo -n "$@..."
+}
+ 
+log_action_cont_msg () {
+    echo -n "$@..."
+}
+ 
+log_action_end_msg () {
+    log_action_end_msg_pre "$@"
+    if [ -z "${2:-}" ]; then
+        end="."
+    else
+        end=" ($2)."
+    fi
+ 
+    if [ $1 -eq 0 ]; then
+        echo "done${end}"
+    else
+        if log_use_fancy_output; then
+            RED=`$TPUT setaf 1`
+            NORMAL=`$TPUT op`
+            /bin/echo -e "${RED}failed${end}${NORMAL}"
+        else
+            echo "failed${end}"
+        fi
+    fi
+    log_action_end_msg_post "$@"
+}
+ 
+# Hooks for /etc/lsb-base-logging.sh
+log_daemon_msg_pre () { :; }
+log_daemon_msg_post () { :; }
+log_end_msg_pre () { :; }
+log_end_msg_post () { :; }
+log_action_end_msg_pre () { :; }
+log_action_end_msg_post () { :; }
+ 
+FANCYTTY=
+[ -e /etc/lsb-base-logging.sh ] && . /etc/lsb-base-logging.sh || true
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/lib/lsb/init-functions-2 b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/lib/lsb/init-functions-2
new file mode 100755
index 0000000..40513ab
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/lib/lsb/init-functions-2
@@ -0,0 +1,502 @@
+# -*-Shell-script-*-
+#
+# functions This file contains functions to be used by most or all  # ×¢ÊÍ £º¸Ã½Å±¾¼¸ºõ±» /etc/init.d/ ϵÄËùÓнű¾Ëùµ÷Óã¬ÒòΪËü°üº¬ÁË´óÁ¿µÄ
+#  shell scripts in the /etc/init.d directory.        # µÄ»ù´¡º¯Êý¡£Í¬Ê±Ò²±» /etc/rc.d/rc.sysinit £¬ÀýÈç success¡¢action¡¢failure µÈº¯Êý
+#
+ 
+TEXTDOMAIN=initscripts    # ÉèÖà TEXTDOMAIN ±äÁ¿
+ 
+ 
+##########################################################################################################################################################
+# Make sure umask is sane     # È·±£ root Óû§µÄ umask ÊÇÕýÈ·µÄ 022 £¨Ò²¾ÍÊÇ rwxr-xr-x£©
+umask 022
+ 
+# Set up a default search path.           # ÉèÖÃĬÈ쵀 PATH ±äÁ¿
+PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin"  # ĬÈÏΪ /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
+export PATH         # µ¼³öΪ»·¾³±äÁ¿
+ 
+# Get a sane screen width    # ÉèÖÃÕýÈ·µÄÆÁÄ»¿í¶È
+[ -z "${COLUMNS:-}" ] && COLUMNS=80     # Èç¹û COLUMNS ±äÁ¿µÄֵΪ¿Õ£¬ÔòÉèÖÃΪ 80 £¨ÁУ©
+ 
+[ -z "${CONSOLETYPE:-}" ] && CONSOLETYPE="`/sbin/consoletype`"    # Èç¹û CONSOLETYPE Ϊ¿ÕÔòÉèÖà CONSOLETYPE Ϊ /sbin/consoletype ÃüÁî·µ»ØµÄÖµ
+                                                                                                             # Ò»°ãÊÇ vt »òÕß pty ¡¢serial
+##########################################################################################################################################################
+if [ -f /etc/sysconfig/i18n -a -z "${NOLOCALE:-}" ] ; then      # Èç¹û´æÔÚ /etc/sysconfig/i18n ÇÒ NOLOCALE ±äÁ¿µÄֵΪ¿Õ£¬Ôò
+      . /etc/sysconfig/i18n       # Ö´ÐÐ /etc/sysconfig/i18n Îļþ£¬È¡µÃ LANG ±äÁ¿µÄÖµ
+      if [ "$CONSOLETYPE" != "pty" ]; then        # Èç¹ûµ±Ç° console ÀàÐͲ»ÊÇ pty£¨Ô¶³ÌµÇ¼£©£¬¶øÊÇ vt »òÕß serial £¬Ôò
+          case "${LANG:-}" in                                                                                                    # ¸ù¾Ý LANG µÄÖµ×÷³öÑ¡Ôñ
+              ja_JP*|ko_KR*|zh_CN*|zh_TW*|bn_*|bd_*|pa_*|hi_*|ta_*|gu_*)    # Èç¹û LANG ÊÇ ÈÕÎÄ¡¢ÖÐÎļòÌå¡¢ÖÐÎÄ·±Ìå¡¢º«Îĵȣ¬Ôò
+                   export LC_MESSAGES=en_US                                                                                                # °Ñ LC_MESSAGES ÉèÖÃΪ en_US
+                   export LANG                                                                                                                       # ͬʱµ¼³öΪ»·¾³±äÁ¿
+                   ;;
+              *)
+                   export LANG                                                                                                                # Èç¹ûÊÇÆäËûÀàÐ͵ÄÓïÑÔ£¬ÔòÖ±½Óµ¼³ö LANG
+               ;    ;
+         esac
+      else                                                                                                                    # Èç¹ûµ±Ç° consle ÊÇ pty                                                   
+       [ -n "$LC_MESSAGES" ] && export LC_MESSAGES        # ÇÒÈç¹û LC_MESSAGES ²»Îª¿Õ£¬ÔòÖ±½Óµ¼³ö LC_MESSAGES 
+       export LANG
+  fi
+fi
+##########################################################################################################################################################
+ 
+# ÏÂÃæÊÇÉèÖà success¡¢failure¡¢passed¡¢warning 4ÖÖÇé¿öϵÄ×ÖÌåÑÕÉ«µÄ
+ 
+# Read in our configuration
+if [ -z "${BOOTUP:-}" ]; then      # Ê×ÏÈÈç¹û BOOTUP ±äÁ¿Îª¿Õ£¬Ôò
+  if [ -f /etc/sysconfig/init ]; then       # Èç¹û´æÔÚ /etc/sysconfig/init Îļþ£¬Ö´ÐÐ /etc/sysconfig/init Îļþ
+      . /etc/sysconfig/init
+  else                 # ·ñÔòÎÒÃǾÍÊÖ¹¤ÉèÖÃ
+    # This all seem confusing? Look in /etc/sysconfig/init,
+    # or in /usr/doc/initscripts-*/sysconfig.txt
+    BOOTUP=color           # µÚÒ»ÉèÖà BOOTUP ±äÁ¿£¬Ä¬ÈϾÍÊÇ color 
+    RES_COL=60             # µÚ¶þÉèÖÃÉèÖÃÔÚÆÁÄ»µÄµÚ¼¸ÁÐÊä³öºóÃæµÄ "[ xxx ]" £¬Ä¬ÈÏÊǵÚ60ÁÐ
+    MOVE_TO_COL="echo -en //033[${RES_COL}G"      # MOVE_TO_COL ÊÇÓÃÓÚ´òÓ¡ "OK" »òÕß "FAILED" ,»òÕß "PASSED" ,»òÕß "WARNING" ֮ǰµÄ²¿·Ö£¬²»º¬ "[" 
+    SETCOLOR_SUCCESS="echo -en //033[1;32m"       # SETCOLOR_SUCCESS ÉèÖúóÃæµÄ×ÖÌ嶼ΪÂÌÉ«
+    SETCOLOR_FAILURE="echo -en //033[1;31m"       # SETCOLOR_FAILURE ÉèÖúóÃæ½«ÒªÊä³öµÄ×ÖÌ嶼ΪºìÉ«
+    SETCOLOR_WARNING="echo -en //033[1;33m"       # SETCOLOR_WARNING ÉèÖúóÃæ½«ÒªÊä³öµÄ×ÖÌ嶼Ϊ¡Á¡Á¡Á
+    SETCOLOR_NORMAL="echo -en //033[0;39m"        # SETCOLOR_NORMAL ÉèÖúóÃæÊä³öµÄ×ÖÌ嶼Ϊ°×É«£¨Ä¬ÈÏ£©
+    LOGLEVEL=1
+  fi
+  if [ "$CONSOLETYPE" = "serial" ]; then    # Èç¹ûÊÇͨ¹ý´®¿ÚµÇ¼µÄ£¬ÔòÈ«²¿È¡Ïû²ÊÉ«Êä³ö
+      BOOTUP=serial
+      MOVE_TO_COL=
+      SETCOLOR_SUCCESS=
+      SETCOLOR_FAILURE=
+      SETCOLOR_WARNING=
+      SETCOLOR_NORMAL=
+  fi
+fi
+ 
+ 
+##########################################################################################################################################################
+if [ "${BOOTUP:-}" != "verbose" ]; then    # Èç¹û BOOTUP ±äÁ¿µÄÖµ²»Îª verbose £¬Ôò
+   INITLOG_ARGS="-q"                       # °Ñ INITLOG_ARGS µÄÖµÉèÖÃΪ -q £¨°²¾²Ä£Ê½£©
+else                                       # ·ñÔò
+   INITLOG_ARGS=                           # °Ñ INITLOG_ARGS µÄÖµÇë¿Õ 
+fi
+##########################################################################################################################################################
+# Check if $pid (could be plural) are running            # ÏÂÃæ¶¨ÒåÒ»¸öº¯Êý checkpid £¨£©£¬Ä¿µÄÊǼì²é /proc ÏÂÊÇ·ñ´æÔÚÖ¸¶¨µÄĿ¼£¨ÀýÈç /proc/1/£©
+checkpid() {         # Èç¹ûÓÐÈÎÒâÒ»¸ö´æÔÚ£¬Ôò·µ»Ø0£»
+ local i
+ 
+ for i in $* ; do
+  [ -d "/proc/$i" ] && return 0
+ done
+ return 1                 # Èç¹û¸ø³öµÄ²ÎÊýÈ«²¿²»´æÔÚ¶ÔÓ¦µÄĿ¼£¬Ôò·µ»Ø1
+}
+ 
+##########################################################################################################################################################
+# A function to start a program.     # ÏÂÃæ¶¨Òå×îÖØÒªµÄÒ»¸öº¯Êý£¬daemon º¯Êý£¬ËüµÄ×÷ÓÃÊÇÆô¶¯Ä³Ïî·þÎñ¡£/etc/init.d/ ϵĽű¾µÄ start ²¿·Ö¶¼»áÓõ½Ëü
+daemon() {
+ # Test syntax.
+ local gotbase= force=
+ local base= user= nice= bg= pid=
+ nicelevel=0
+ while [ "$1" != "${1##[-+]}" ]; do       # daemon º¯Êý±¾Éí¿ÉÒÔÖ¸¶¨¶à¸öÑ¡ÏÀýÈç --check <value> £¬--check=<value> £¬
+   case $1 in
+     '')    echo $"$0: Usage: daemon [nicelevel] {program}"    # Ò²¿ÉÒÔÖ¸¶¨ nice Öµ
+            return 1;;
+     --check)
+     base=$2
+     gotbase="yes"
+     shift 2
+     ;;
+     --check=?*)
+         base=${1#--check=}
+     gotbase="yes"
+     shift
+     ;;
+     --user)               # Ò²¿ÉÒÔÖ¸¶¨ÒªÒÔʲôÓû§Éí·ÝÔËÐУ¨--user <usr> , --user=<usr>)
+     user=$2
+     shift 2
+     ;;
+     --user=?*)
+            user=${1#--user=}
+     shift
+     ;;
+     --force)
+         force="force"        # --force ±íÊ¾Ç¿ÖÆÔËÐÐ
+     shift
+     ;;
+     [-+][0-9]*)
+         nice="nice -n $1"      # Èç¹û daemon µÄµÚÒ»¸ö²ÎÊýÊÇÊý×Ö£¬ÔòÈÏΪÊÇ nice Öµ
+            shift
+     ;;
+     *)     echo $"$0: Usage: daemon [nicelevel] {program}"
+            return 1;;
+   esac
+ done
+ 
+        # Save basename.      # basename ¾ÍÊÇ´Ó·þÎñÆ÷µÄ¶þ½øÖƳÌÐòµÄ full path ÖÐÈ¡³ö×îºóµÄ²¿·Ö
+        [ -z "$gotbase" ] && base=${1##*/}                                        
+ 
+        # See if it's already running. Look *only* at the pid file.    # ¼ì²é¸Ã·þÎñÊÇ·ñÒѾ­ÔÚÔËÐС£²»¹ý daemon º¯ÊýÖ»²é¿´ pid Îļþ¶øÒÑ
+ if [ -f /var/run/${base}.pid ]; then              # Èç¹û /var/run Ï´æÔڸ÷þÎñµÄ pid Îļþ£¬Ôò
+  local line p
+  read line < /var/run/${base}.pid          # ´Ó¸Ã pid Îļþÿ´Î¶ÁȡһÐУ¬Ë͸ø±äÁ¿ line ¡£×¢Òâ pid Îļþ¿ÉÄÜÓжàÐУ¬ÇÒ²»Ò»¶¨¶¼ÊÇÊý×Ö
+  for p in $line ; do                       # ¶ÔÓÚ line ±äÁ¿µÄÿ¸ö word ½øÐмì²é
+   [ -z "${p//[0-9]/}" -a -d "/proc/$p" ] && pid="$pid $p"      # Èç¹û p È«²¿ÊÇÊý×Ö£¬ÇÒ´æÔÚ /proc/$p/ Ŀ¼£¬ÔòÈÏΪ¸ÃÊý×ÖÊÇÒ»¸ö pid £¬°ÑËü¼ÓÈëµ½ pid ±äÁ¿
+  done       # µ½×îºó pid ±äÁ¿µÄÖµ¿ÉÄÜÊÇÓжà¸öÓɿոñ·Ö¸ôµÄÊý×Ö×é³É
+ fi
+ 
+ [ -n "${pid:-}" -a -z "${force:-}" ] && return     # Èç¹û pid ±äÁ¿×îÖÕΪ¿Õ£¬Ôò force ±äÁ¿Îª¿Õ£¨²»Ç¿ÖÆÆô¶¯£©£¬Ôò·µ»Ø
+ 
+ # make sure it doesn't core dump anywhere unless requested        # ÏÂÃæ¶Ô¸Ã·þÎñʹÓõÄ×ÊÔ´×÷һЩÉèÖÃ
+ ulimit -S -c ${DAEMON_COREFILE_LIMIT:-0} >/dev/null 2>&1          # ulimit ÊÇ¿ØÖÆÓɸà shell Æô¶¯µÄ½ø³ÌÄܹ»Ê¹ÓõÄ×ÊÔ´£¬-S ÊÇ soft control µÄÒâ˼£¬-c ÊÇÖ¸×î´óµÄ core   
+                                                                 # dump Îļþ´óС£¬Èç¹û DEAMON_COREFILE_LIMIT Ϊ¿Õ£¬ÔòĬÈÏΪ 0
+ 
+ # if they set NICELEVEL in /etc/sysconfig/foo, honor it         # Èç¹û´æÔÚ /etc/sysconfi/foo Îļþ£¬ÇÒÆäÖÐÓÐ NICELEVEL ±äÁ¿ÔòÓÃËü´úÌæ  daemon ºóÃæµÄÄǸö nice Öµ
+ [ -n "$NICELEVEL" ] && nice="nice -n $NICELEVEL"                # ×¢Ò⣬ÕâÀïµÄ nice ¸³ÖµÊÇÓà nice -n <value> µÄ¸ñʽ£¬ÒòΪ nice ±¾Éí¿ÉÒÔÆô¶¯ÃüÁÓÃÕâ¸ö¸ñʽ½Ï·½±ã
+ 
+ # Echo daemon                                                   # Èç¹û BOOTUP µÄֵΪ verbose £¬Ôò´òÓ¡Ò»¸ö·þÎñÃû
+        [ "${BOOTUP:-}" = "verbose" -a -z "$LSB" ] && echo -n " $base"
+ 
+ # And start it up.                                                                                        # ÏÂÃæÊÇ¿ªÊ¼Æô¶¯ËüÁË
+ if [ -z "$user" ]; then                                                                                  # Èç¹û user ±äÁ¿Îª¿Õ£¬ÔòĬÈÏʹÓà root Æô¶¯Ëü
+    $nice initlog $INITLOG_ARGS -c "$*"                                                                # Ö´ÐÐ nice -n <nice_value> initlog -q -c "$*" 
+ else                                                                                                         # Èç¹ûÖ¸¶¨ÁËÓû§£¬Ôò
+    $nice initlog $INITLOG_ARGS -c "runuser -s /bin/bash - $user -c /"$*/""                # Ö´ÐÐ nice -n <nice_value> initlog -q -c "runuser -s /bin/bash - <user> -c "$*"
+ fi
+ [ "$?" -eq 0 ] && success $"$base startup" || failure $"$base startup"                # Èç¹ûÉÏÃæµÄÃüÁî³É¹¦£¬ÔòÏÔʾһ¸öÂÌÉ«µÄ [ OK ] £¬·ñÔòÏÔʾ [ FAILURE ]
+}
+ 
+ 
+##########################################################################################################################################################
+ 
+# A function to stop a program.                                # ÏÂÃæ¶¨ÒåÁíÍâÒ»¸öºÜÖØÒªµÄº¯Êý killproc £¬/etc/init.d/ ÏÂÃæµÄ½Å±¾µÄ stop ²¿·Ö¶¼»áÓõ½Ëü
+killproc() {
+ RC=0                                                                    # RC ÊÇ×îÖÕ·µ»ØµÄÖµ£¬³õʼ»¯Îª 0
+ # Test syntax.
+ if [ "$#" -eq 0 ]; then                                            # killproc º¯ÊýµÄÓï·¨¸ñʽÊÇ killproc <service> [<signal>] £¬ÀýÈç killproc sm-client 9
+  echo $"Usage: killproc {program} [signal]"              
+  return 1
+ fi
+ 
+ notset=0                                                             # noset ÊÇÓÃÓÚ¼ì²éÓû§ÊÇ·ñÖ¸¶¨ÁË kill ҪʹÓõÄÐźÅ
+ # check for second arg to be kill level                  
+ if [ -n "$2" ]; then                                                # Èç¹û $2 ²»Îª¿Õ£¬Ôò±íʾÓû§ÓÐÉ趨Ðźţ¬Ôò
+  killlevel=$2                                                            # °Ñ $2 µÄÖµ¸³Óè killlevel ±äÁ¿
+ else                                                                    # ·ñÔò
+  notset=1                                                                # notset ±äÁ¿µÄֵΪ1£¬Í¬Ê± killlevel Ϊ '-9' £¨KILL Ðźţ©
+  killlevel="-9"
+ fi
+ 
+# ²¹³ä £º×¢Ò⣬²¢²»ÊÇ˵Óû§Ã»ÓÐÖ¸¶¨ÐźŵØÍ£Ö¹Ä³Ïî·þÎñʱ£¬¾Í»áÁ¢¼´Óà kill -9 ÕâÑùµÄ·½Ê½Ç¿ÖÆÉ±ËÀ£¬¶øÊÇÏÈÓà TERM Ðźţ¬È»ºóÔÙÓà KILL
+ 
+        # Save basename.
+        base=${1##*/}                                                # basename ¾ÍÊǵóö·þÎñµÄÃû³Æ
+ 
+        # Find pid.
+ pid=                                                                    # °Ñ pid ±äÁ¿µÄÖµÇå¿Õ¡£×¢Ò⣬²»ÊÇÖ¸ pid ±äÁ¿µÄÖµµÈÓÚÏÂÃæ½Å±¾µÄÖ´Ðнá¹û£¬Òª¿´Çå³þ
+ if [ -f /var/run/${base}.pid ]; then                         # ÏÂÃæºÍÉÏÃæµÄ daemon º¯ÊýÒ»ÑùÕÒ³ö pid 
+    local line p
+    read line < /var/run/${base}.pid
+    for p in $line ; do
+       [ -z "${p//[0-9]/}" -a -d "/proc/$p" ] && pid="$pid $p"
+    done
+ fi
+ if [ -z "$pid" ]; then                                                # ²»¹ýºÍ daemon ²»Í¬µÄÊÇ£¬Ò»µ© pid Ϊ¿Õ²»»áÖ±½Ó return ¶øÊdz¢ÊÔÓà pid ÃüÁîÔٴβéÕÒ
+  pid=`pidof -o $$ -o $PPID -o %PPID -x $1 || /            # -o ÊÇÓÃÓÚºöÂÔij¸ö pid £¬-o $$ ÊǺöÂÔµ±Ç° shell µÄ pid¡¢-o $PPID ÊǺöÂÔ shell µÄ pid 
+   pidof -o $$ -o $PPID -o %PPID -x $base`                   # -o %PPID ÊǺöÂÔ pidof ÃüÁîµÄ¸¸½ø³Ì£¬Òª²éѯµÄ½ø³ÌÊÇ $1 (fullpath) »òÕß $base 
+ fi
+ 
+ # Kill it.                                                            
+  if [ -n "${pid:-}" ] ; then                                        # Èç¹û pid µÄÖµ×îÖÕ²»Îª¿Õ£¬Ôò
+    [ "$BOOTUP" = "verbose" -a -z "$LSB" ] && echo -n "$base "    # ÇÒ BOOTUP µÄֵΪ verbose £¬ÇÒ LSB ±äÁ¿²»Îª¿Õ£¬Ôò´òÓ¡Ò»¸ö·þÎñÃû
+    if [ "$notset" -eq "1" ] ; then                                        # Èç¹û notset ±äÁ¿²»Îª1£¬±íʾÓû§Ã»ÓÐÖ¸¶¨Ðźţ¬Ôò
+         if checkpid $pid 2>&1; then                                        # µ÷Óà checkpid  $pid ¼ì²éÊÇ·ñÔÚ /proc/ Ï´æÔÚ½ø³ÌĿ¼£¬Èç¹ûÓÐ
+              # TERM first, then KILL if not dead                            # Ïȳ¢ÊÔÓà TERM ÐÅÏ¢£¬²»ÐÐÔÙÓà KILL ÐźÅ
+              kill -TERM $pid >/dev/null 2>&1                                # Ö´ÐÐ kill -TERM $pid 
+              usleep 100000                                                          # usleep ºÍ sleep Ò»Ñù£¬²»¹ýµ¥Î»ÊǰÙÍò·ÖÖ®1Ãë¡£ÕâÀïÐÝÃß1Ãë
+              if checkpid $pid && sleep 1 &&                                # Èç¹û checkpid $pid »¹ÊDz鵽ÓÐ /proc/<pid>/ Ŀ¼´æÔÚ£¬Ôò±íʾ»¹Ã»ÓÐɱËÀ£¬¼ÌÐøµÈ´ý1Ãë
+                 checkpid $pid && sleep 3 &&                                # Èç¹û1ÃëºóÓà checkpid ¼ì²é»¹ÊÇÓУ¬ÔòÔٵȴý3Ã룻
+                 checkpid $pid ; then                                            # Èç¹û»¹ÊÇûÓÐɱËÀ£¬ÔòÓà KILL ÐźÅ
+                        kill -KILL $pid >/dev/null 2>&1                            # Ö´ÐÐ kill -KILL ɱËÀËü
+                        usleep 100000                                                    # µÈ´ý1ÃëÖÖ
+              fi
+    fi
+    checkpid $pid                                                             # Ôٴμì²é pid Ŀ¼       
+    RC=$?                                                                         # ²¢°Ñ½á¹û·µ»Ø¸ø RC £¬Õâ¾ÍËãÊÇ killproc µÄ×îºó״̬ÁË
+    [ "$RC" -eq 0 ] && failure $"$base shutdown" || success $"$base shutdown"    # Èç¹û RC µÄֵΪ0£¬Ôò±íʾkill -9 ûÓÐɱËÀÁ˽ø³Ì£¬Ôòµ÷Óà failure º¯Êý£¬·ñÔòµ÷Óà success 
+    RC=$((! $RC))
+  
+    # use specified level only                                            # ÉÏÃæ¶¼ÊÇÔÚûÓÐÖ¸¶¨ÐźŵÄÇé¿öµÄ£¬ÏÂÃæÊÇÓû§Ö¸¶¨ÁËÐźŵġ£ÀýÈç restart£©»òÕß reload£©²¿·Ö
+    else    # Õâ¸ö else ÊÇÕë¶Ô if [ "$notset" -eq "1" ]  µÄ
+       if checkpid $pid; then                                             # Èç¹û¼ì²éµ½½ø³Ì´æÔÚ£¬Ôò
+            kill $killlevel $pid >/dev/null 2>&1                            # Ö´ÐÐkillÃüÁµ«Ê¹ÓÃÖ¸¶¨µÄÐźŠ$killlevel 
+            RC=$?                                                                     # ²¢°Ñ״ֵ̬·µ»Ø¸ø±äÁ¿ RC
+            [ "$RC" -eq 0 ] && success $"$base $killlevel" || failure $"$base $killlevel"    # Èç¹û RC Ϊ0Ôò±íʾ³É¹¦£¬µ÷Óà success£»·ñÔòµ÷Óà failure º¯Êý
+       fi
+  fi
+ else      # Õâ¸ö else ÊÇÕë¶Ô if [ -n "${pid:-}" ]  µÄ£¬Ò²¾ÍÊÇ˵ûÓÐ pid Îļþ£¬pidof ÃüÁîҲûÓÐÕÒµ½ pid £¬Ôò
+     failure $"$base shutdown"                # µ÷Óà failure º¯Êý£¬±íʾֹͣ·þÎñʧ°Ü
+     RC=1                                             # ͬʱ RC µÄֵΪ1
+ fi
+ 
+ # Remove pid file if any.                    # ¸ù¾Ý¾ßÌåÇé¿ö¿ÉÄÜÐèҪɾ³ý pid Îļþ
+ if [ "$notset" = "1" ]; then                    # Èç¹û notset ²»Îª1 £¬Ò²¾ÍÊÇÓû§Ã»ÓÐÖ¸¶¨ÐźŵÄÇé¿ö
+            rm -f /var/run/$base.pid            # ×Ô¶¯É¾³ý /var/run Ï嵀 pid Îļþ
+ fi
+ return $RC                                        # ²¢°Ñ RC ×÷Ϊ exit status ·µ»Ø
+}
+ 
+# ²¹³ä £º×ÔËùÒÔɾ³ý pid ÎļþÖ»Õë¶Ô notset Ϊ1 µÄÇé¿ö£¬ÊÇÒòΪ -HUP Ðźţ¨ÖضÁÅäÖã©£¬²¢²»É±ËÀ½ø³Ì£¬ËùÒÔ²»ÄÜɾ³ýËüµÄ pid Îļþ
+ 
+# ÀýÈçÏÂÃæ £º
+ 
+[root@mail init.d]# ps -ef |grep xinetd
+root      2635     1  0 12:25 ?        00:00:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
+[root@mail init.d]# ./xinetd reload
+Reloading configuration:                                   [  OK  ]
+[root@mail init.d]# ps -ef |grep xinetd
+root      2635     1  0 12:25 ?        00:00:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
+root      3927  3412  0 16:43 pts/0    00:00:00 grep xinetd
+[root@mail init.d]#
+ 
+¿ÉÒÔ¿´µ½ pid ÔÚ reload ºó²¢Ã»Óбä
+ 
+##########################################################################################################################################################
+# A function to find the pid of a program. Looks *only* at the pidfile        # ÏÂÃæµÄ pidfileofproc º¯ÊýºÍ checkpid ÀàËÆ£¬µ«²»Ö´ÐÐ pidof ÃüÁֻ²éѯ pid Îļþ
+pidfileofproc() {
+ local base=${1##*/}
+ 
+ # Test syntax.
+ if [ "$#" = 0 ] ; then
+  echo $"Usage: pidfileofproc {program}"
+  return 1
+ fi
+ 
+ # First try "/var/run/*.pid" files
+ if [ -f /var/run/$base.pid ] ; then
+         local line p pid=
+    read line < /var/run/$base.pid
+    for p in $line ; do
+         [ -z "${p//[0-9]/}" -a -d /proc/$p ] && pid="$pid $p"
+    done
+         if [ -n "$pid" ]; then
+                 echo $pid
+                 return 0
+         fi
+ fi
+}
+##########################################################################################################################################################
+# A function to find the pid of a program.                        # ÏÂÃæµÄ pidofproc º¯ÊýºÍÉÏÃæµÄ pidfileofproc º¯ÊýÀàËÆ£¬µ«¶àÁËÒ»²½ pidof ÃüÁî
+pidofproc() {
+ base=${1##*/}
+ 
+ # Test syntax.
+ if [ "$#" = 0 ]; then
+  echo $"Usage: pidofproc {program}"
+  return 1
+ fi
+ 
+ # First try "/var/run/*.pid" files
+ if [ -f /var/run/$base.pid ]; then
+         local line p pid=
+  read line < /var/run/$base.pid
+  for p in $line ; do
+         [ -z "${p//[0-9]/}" -a -d /proc/$p ] && pid="$pid $p"
+  done
+         if [ -n "$pid" ]; then
+                 echo $pid
+                 return 0
+         fi
+ fi
+ pidof -o $$ -o $PPID -o %PPID -x $1 || /
+  pidof -o $$ -o $PPID -o %PPID -x $base
+}
+##########################################################################################################################################################
+status() {                                                                  # ×¢ÊÍ £ºÏÂÃæµÄ status º¯ÊýÊÇÅжϷþÎñµÄ״̬£¬×ܹ²ÓÐ4ÖÖ
+ local base=${1##*/}
+ local pid
+ 
+ # Test syntax.
+ if [ "$#" = 0 ] ; then
+  echo $"Usage: status {program}"
+  return 1
+ fi
+ 
+ # First try "pidof"                                                        # ͬÑùÊDzéÕÒ pid ÏÈ¡£Ö±½ÓʹÓà pidof ÃüÁî
+ pid=`pidof -o $$ -o $PPID -o %PPID -x $1 || /                
+      pidof -o $$ -o $PPID -o %PPID -x ${base}`
+ if [ -n "$pid" ]; then                                                    # Èç¹û pid ±äÁ¿µÄÖµ²»Îª¿Õ£¬Ôò±íʾÕÒµ½½ø³Ì£¬
+         echo $"${base} (pid $pid) is running..."                 # Ôò´òÓ¡ "xxx (pid nnn) is running " ,
+         return 0                                                             # ²¢·µ»Ø 0
+ fi
+ 
+ # Next try "/var/run/*.pid" files                                    # Èç¹û pidof ÃüÁîûÓÐÕÒµ½£¬Ôò³¢ÊÔ´Ó pid ÎļþÕÒ
+ if [ -f /var/run/${base}.pid ] ; then
+         read pid < /var/run/${base}.pid
+         if [ -n "$pid" ]; then                                                # Èç¹û pidof ÃüÁîÕÒ²»µ½£¬µ«´Ó pid ÎļþÕÒµ½ÁË pid £¬Ôò
+                 echo $"${base} dead but pid file exists"                # ´òÓ¡ "xxx dead but pid file exists"£¬
+                 return 1                                                             # ²¢·µ»Ø 1
+         fi
+ fi
+ # See if /var/lock/subsys/${base} exists                            # Èç¹û pidof ÃüÁîºÍ pid Îļþ¶¼Ã»ÓÐÕÒµ½ pid £¬Ôò
+ if [ -f /var/lock/subsys/${base} ]; then                              # Èç¹ûÔÚ /var/lock/subsys Ï´æÔÚ¶ÔÓ¦µÄÎļþ£¬Ôò
+  echo $"${base} dead but subsys locked"                                # ´òÓ¡ ¡°xxxx dead but subsys locked¡±£¬
+  return 2                                                                            # ²¢·µ»Ø 2
+ fi
+ echo $"${base} is stopped"                                                # Èç¹û pidof ÃüÁî¡¢pidf Îļþ¶¼Ã»ÓÐÕÒµ½pid £¬ÇÒûÓбðËø£¬Ôò´òÓ¡ ¡°xxx is stopped¡±
+ return 3                                                                           # ²¢·µ»Ø3
+}
+##########################################################################################################################################################
+ 
+# ×¢ÊÍ £ºÏÂÃæµÄ echo_xxx º¯Êý¾ÍÊÇÕæÕýÔÚÆÁÄ»ÉÏ´òÓ¡ [ ok ] ¡¢[ PASSED ]¡¢[ FAILURE ]¡¢[ WARNING ] µÄ²¿·ÖÁË
+ 
+echo_success() {                                                                    # ÏÂÃæÊÇ echo_success ²¿·Ö
+  [ "$BOOTUP" = "color" ] && $MOVE_TO_COL                            # Ê×ÏÈÊÇ´òÓ¡ ¡°[¡± ֮ǰµÄ¿Õ¸ñ
+  echo -n "[  "                                                                         # È»ºó´òÓ¡ "[" 
+  [ "$BOOTUP" = "color" ] && $SETCOLOR_SUCCESS                    # ÉèÖÃ×ÖÌåΪºìÉ«
+  echo -n $"OK"                                                                       # ´òÓ¡ OK
+  [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL                     # ·µ»Ø×ÖÌåΪ°×É«
+  echo -n "  ]"                                                                         # ´òÓ¡ "]"    
+  echo -ne "/r"                                                                        # »»ÐС£
+  return 0                                                                               # ·µ»Ø 0£¬ÆäËûÒ»ÂÉ·µ»Ø 1
+ 
+ 
+echo_failure() {
+  [ "$BOOTUP" = "color" ] && $MOVE_TO_COL
+  echo -n "["
+  [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
+  echo -n $"FAILED"
+  [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
+  echo -n "]"
+  echo -ne "/r"
+  return 1
+}
+ 
+echo_passed() {
+  [ "$BOOTUP" = "color" ] && $MOVE_TO_COL
+  echo -n "["
+  [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING
+  echo -n $"PASSED"
+  [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
+  echo -n "]"
+  echo -ne "/r"
+  return 1
+}
+ 
+echo_warning() {
+  [ "$BOOTUP" = "color" ] && $MOVE_TO_COL
+  echo -n "["
+  [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING
+  echo -n $"WARNING"
+  [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
+  echo -n "]"
+  echo -ne "/r"
+  return 1
+}
+##########################################################################################################################################################
+# Inform the graphical boot of our current state
+update_boot_stage() {
+  if [ "$GRAPHICAL" = "yes" -a -x /usr/bin/rhgb-client ]; then
+    /usr/bin/rhgb-client --update="$1"
+  fi
+  return 0
+}
+##########################################################################################################################################################
+# Log that something succeeded                                                
+success() {                                                                                                # success º¯Êý³ýÁË´òÓ¡ [ xxx ] Ö®Í⣬»¹»áʹÓà initlog ¼Ç¼ÐÅÏ¢
+  if [ -z "${IN_INITLOG:-}" ]; then
+     initlog $INITLOG_ARGS -n $0 -s "$1" -e 1                                                   # -n ÊÇ --name µÄÒâ˼£¬-s ÊÇ --string £¬-e ÊÇ --event £¬1 ±íʾÍêÈ«³É¹¦
+  else
+     # silly hack to avoid EPIPE killing rc.sysinit
+     trap "" SIGPIPE
+     echo "$INITLOG_ARGS -n $0 -s /"$1/" -e 1" >&21
+     trap - SIGPIPE
+  fi
+  [ "$BOOTUP" != "verbose" -a -z "$LSB" ] && echo_success
+  return 0
+}
+ 
+# Log that something failed
+failure() {
+  rc=$?
+  if [ -z "${IN_INITLOG:-}" ]; then
+     initlog $INITLOG_ARGS -n $0 -s "$1" -e 2                                                    # failure µÄ»° --event ÊÇ 2 ÊÇʧ°Ü
+  else
+     trap "" SIGPIPE
+     echo "$INITLOG_ARGS -n $0 -s /"$1/" -e 2" >&21
+     trap - SIGPIPE
+  fi
+  [ "$BOOTUP" != "verbose" -a -z "$LSB" ] && echo_failure
+  [ -x /usr/bin/rhgb-client ] && /usr/bin/rhgb-client --details=yes
+  return $rc
+}
+ 
+# Log that something passed, but may have had errors. Useful for fsck
+passed() {
+  rc=$?
+  if [ -z "${IN_INITLOG:-}" ]; then
+     initlog $INITLOG_ARGS -n $0 -s "$1" -e 1                                                 # passed µÄ»° --event »¹ÊÇ1
+  else
+     trap "" SIGPIPE
+     echo "$INITLOG_ARGS -n $0 -s /"$1/" -e 1" >&21
+     trap - SIGPIPE
+  fi
+  [ "$BOOTUP" != "verbose" -a -z "$LSB" ] && echo_passed
+  return $rc
+} 
+ 
+# Log a warning
+warning() {
+  rc=$?
+  if [ -z "${IN_INITLOG:-}" ]; then
+     initlog $INITLOG_ARGS -n $0 -s "$1" -e 1                                                # warning µÄ»° --event Ò²ÊÇ 1
+  else
+     trap "" SIGPIPE
+     echo "$INITLOG_ARGS -n $0 -s /"$1/" -e 1" >&21
+     trap - SIGPIPE
+  fi
+  [ "$BOOTUP" != "verbose" -a -z "$LSB" ] && echo_warning
+  return $rc
+} 
+##########################################################################################################################################################
+# Run some action. Log its output.                                                        # action º¯ÊýÊÇÁíÍâÒ»¸ö×îÖØÒªµÄº¯Êý£¬ËüµÄ×÷ÓÃÊÇ´òӡij¸öÌáʾÐÅÏ¢²¢Ö´Ðиø¶¨ÃüÁî
+tion() {
+  STRING=$1
+  echo -n "$STRING "
+  if [ "${RHGB_STARTED}" != "" -a -w /etc/rhgb/temp/rhgb-console ]; then
+      echo -n "$STRING " > /etc/rhgb/temp/rhgb-console
+  fi
+  shift
+  initlog $INITLOG_ARGS -c "$*" && success $"$STRING" || failure $"$STRING"
+  rc=$?
+  echo
+  if [ "${RHGB_STARTED}" != "" -a -w /etc/rhgb/temp/rhgb-console ]; then
+      if [ "$rc" = "0" ]; then
+       echo_success > /etc/rhgb/temp/rhgb-console
+      else
+        echo_failed > /etc/rhgb/temp/rhgb-console
+ [ -x /usr/bin/rhgb-client ] && /usr/bin/rhgb-client --details=yes
+      fi
+      echo
+  fi
+  return $rc
+}
+##########################################################################################################################################################
+# returns OK if $1 contains $2                        # strstr º¯ÊýÊÇÅÐ¶Ï $1 ×Ö·û´®ÊÇ·ñº¬ÓÐ $2 ×Ö·û´®£¬ÊÇÔò·µ»Ø0£¬·ñÔò·µ»Ø1
+() {
+  [ "${1#*$2*}" = "$1" ] && return 1
+  return 0
+}
+##########################################################################################################################################################
+# Confirm whether we really want to run this service                                       # confirm º¯ÊýÊÇÓÃÓÚ½»»¥Ê½µÄÆô¶¯·þÎñ
+nfirm() {
+  [ -x /usr/bin/rhgb-client ] && /usr/bin/rhgb-client --details=yes
+  while : ; do 
+    echo -n $"Start service $1 (Y)es/(N)o/(C)ontinue? [Y] "                                   # »á´òÓ¡Ò»¸öÌáʾÐÅÏ¢
+    read answer
+    if strstr $"yY" "$answer" || [ "$answer" = "" ] ; then                                          # Èç¹û answer ±äÁ¿ÊÇ y »òÕß Y Ôò
+        return 0                                                                                                                # ·µ»Ø 0£¨µ«Î´ÕæÕýÆô¶¯£©
+    elif strstr $"cC" "$answer" ; then                                                                    # Èç¹û answer ÊÇ c »òÕß C £¬Ôò
+        rm -f /var/run/confirm                                                                                          # ɾ³ý /var/run/confirm Îļþ                           
+        [ -x /usr/bin/rhgb-client ] && /usr/bin/rhgb-client --details=no
+        return 2                                                                                                                # ·µ»Ø2
+   elif strstr $"nN" "$answer" ; then                                                                      # Èç¹û answer ÊÇ n »òÕß N£¬Ôò
+  return 1                                                                                                                       # Ö±½Ó·µ»Ø1
+     fi
+  done
+}
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc/profile b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/profile
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc/profile
rename to cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/profile
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/rc.local b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/rc.local
new file mode 100755
index 0000000..3888a98
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/rc.local
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+echo "Starting rc.local..."
+
+mkdir -p /var/scriptlog
+mkdir -p /var/lib/misc
+mkdir -p /etc_rw/default
+
+#ifconfig lo 127.0.0.1 up
+
+KVER=`uname -r`
+
+MODULE_PATH=/lib/modules/$KVER/net
+
+if [ -f $MODULE_PATH/nf_conntrack_rtsp.ko ]; then
+	insmod $MODULE_PATH/nf_conntrack_rtsp.ko
+fi
+if [ -f $MODULE_PATH/nf_nat_rtsp.ko ]; then
+	insmod $MODULE_PATH/nf_nat_rtsp.ko
+fi
+if [ -f $MODULE_PATH/ipt_classify.ko ]; then
+	insmod $MODULE_PATH/ipt_classify.ko
+fi
+if [ -f $MODULE_PATH/xt_webstr.ko ]; then
+	insmod $MODULE_PATH/xt_webstr.ko
+fi
+
+if [ -f $MODULE_PATH/mt7915_ap.ko ]; then
+	insmod $MODULE_PATH/mt7915_ap.ko
+fi
+
+echo 2 > /proc/sys/net/ipv6/conf/default/accept_dad
+echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
+
+# add this to support up to 20 PPTP tunnel
+echo 40 > /proc/sys/net/netfilter/nf_conntrack_expect_max
+
+rm -rf /etc_rw/udhcpd*.pid
+
+ln -sf "/etc/zoneinfo/Asia/Shanghai" /etc/localtime
+
+echo mem > /sys/power/autosleep
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc/rcS.d/S14fscheck.sh b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/rcS.d/S14fscheck.sh
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc/rcS.d/S14fscheck.sh
rename to cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/rcS.d/S14fscheck.sh
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/rcS.d/S17zcatlog_config.sh b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/rcS.d/S17zcatlog_config.sh
new file mode 120000
index 0000000..f202c6a
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/rcS.d/S17zcatlog_config.sh
@@ -0,0 +1 @@
+../init.d/zcatlog_config.sh
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/resolv.conf b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/resolv.conf
new file mode 120000
index 0000000..e9d7747
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/resolv.conf
@@ -0,0 +1 @@
+/etc_rw/resolv.conf
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/zcatlog_monitor.sh b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/zcatlog_monitor.sh
new file mode 100644
index 0000000..743ef84
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc/zcatlog_monitor.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+while false
+do
+  sleep 60
+  cat /proc/kernel_log_tracker
+done
+
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc_ro/default/default_parameter_ro b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/default/default_parameter_ro
similarity index 79%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc_ro/default/default_parameter_ro
rename to cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/default/default_parameter_ro
index 6dd935c..8818bc8 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc_ro/default/default_parameter_ro
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/default/default_parameter_ro
@@ -1,7 +1,7 @@
 ######USB¶Ë¿ÚÅäÖÃ#######
 
 #ÅäÖÃÇ¿ÖÆÍø¿¨ÀàÐÍ
-forcenetcard_type=force_invalid
+forcenetcard_type=force_rndis
 
 #ÅäÖÃusbģʽÀàÐÍĬÈÏģʽ
 usb_modetype=debug
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc_ro/default/default_parameter_sys b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/default/default_parameter_sys
similarity index 80%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc_ro/default/default_parameter_sys
rename to cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/default/default_parameter_sys
index 3b8cbac..7b1aa27 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc_ro/default/default_parameter_sys
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/default/default_parameter_sys
@@ -52,8 +52,8 @@
 need_cops_number_format=yes
 need_display_searching_status=yes
 need_restart_when_sim_insert=no
-need_support_pb=yes
-need_support_sms=yes
+need_support_pb=no
+need_support_sms=no
 network_need_gsm=yes
 network_need_tds=yes
 product_model=MF910W
@@ -76,6 +76,8 @@
 OS=TOS
 urlMobile=
 DNS_proxy=
+dnsmasqfile=/var/log/dnsmasq.log
+dnsmasqfileSize=1024
 lan_domain_Enabled=1
 auto_connect_when_limited=no
 is_traffic_aline_on=no
@@ -85,14 +87,14 @@
 traffic_sms_number=0
 update_type=mifi_fota
 
-fota_device_type=cpe
+fota_device_type=mdl
 fota_models=ZTE7520V3
 fota_oem=ZTE
 fota_platform=ZX297520
 fota_dm_vendor=rs
 fota_token_rs=8msgzdxxftrtys0irnuifh7o
-fota_product_id=1575895268
-fota_product_secret=da0d53d838d54dcdb1cc47cbcdae7de9
+fota_product_id=1553742041
+fota_product_secret=23b3faf2dafb42dfb3382c0d7d66315b
 fota_app_version=2
 fota_network_type=WIFI
 fota_token_zx=7CBE016400F65621740A04E742E6FB12
@@ -110,17 +112,20 @@
 fota_report_upgr_url_gs=
 fota_report_sales_url_gs=
 fota_update_space_threshold=800
+fota_ab_upgrade_status=6
+fota_ab_upgrade_total_size=0
+fota_ab_upgrade_updated_size=0
 Login=admin
-Password=admin
+Password=
 sntp_server_count=3
-MAX_Station_num=32
+MAX_Station_num=10
 wifi_key_gen_type=MAC
 wifi_key_len=8
 wifi_key_only_digit=y
 wifi_lte_intr=1
 wifi_ssid_gen_with_mac_lastbyte=6
 wifi_key_gen_with_mac_lastbyte=8
-wifi_mac_num=2
+wifi_mac_num=1
 wifiwan=wlan0-vxd
 wifiwan_mode=dhcp
 idle_time="600"
@@ -135,19 +140,24 @@
 print_level=2
 syslog_level=4
 
+skb_debug=
 seclog_switch=1
 ################SOFTAPרÓà END#####################################
 
 ######USB¶Ë¿ÚÅäÖÃ#######
 
 ##########usb/rj45µÈÈȰβåÏà¹ØÂ·¾¶##############
-
+#rj45³õʼ״̬·¾¶
+rj45_plugstate_path=/sys/kernel/eth_debug/eth_state
 #usbÍø¿ÚÃû·¾¶
 usb_name_path=/sys/dwc_usb/usbconfig/netname
 #usb¸÷Íø¿Ú״̬·¾¶
 usb_plugstate_path=/sys/dwc_usb/usbconfig/
 ################################################
 
+#ͨ¹ýgpio¼ì²â²å°Î£¬ÓÃÓÚ×Ô¶¯»¯µ÷ÊÔ
+usb_gpio_detect=1
+
 #ÅäÖÃÊÇ·ñÓйâÅÌ
 cdrom_state=0
 
@@ -158,28 +168,40 @@
 
 ####
 #ÅäÖÃÑз¢Ä£Ê½usbÉ豸¶Ë¿Ú×éºÏ
-usb_devices_debug=diag,adb,acm
+usb_devices_debug=diag,adb,serial,acm
 
 #ÅäÖÃÓû§Ä£Ê½usbÉ豸¶Ë¿Ú×éºÏ
-usb_devices_user=
+usb_devices_user=serial,acm
 
 #ÅäÖÃÉú²úģʽusbÉ豸¶Ë¿Ú×éºÏ
-usb_devices_factory=acm,diag
+usb_devices_factory=serial,diag
 
 #ÅäÖÃAMTģʽusbÉ豸¶Ë¿Ú×éºÏ
-usb_devices_amt=acm,diag
+usb_devices_amt=serial,diag
 
 #ÅäÖÃÑз¢Ä£Ê½acm´®¿Ú¸öÊý
-usb_acm_num_debug=2
+usb_acm_num_debug=1
+
+#ÅäÖÃÑз¢Ä£Ê½serial´®¿Ú¸öÊý
+usb_serial_num_debug=1
 
 #ÅäÖÃÓû§Ä£Ê½acm´®¿Ú¸öÊý
-usb_acm_num_user=0
+usb_acm_num_user=1
+
+#ÅäÖÃÓû§Ä£Ê½serial´®¿Ú¸öÊý
+usb_serial_num_user=1
 
 #ÅäÖÃÉú²úģʽacm´®¿Ú¸öÊý
-usb_acm_num_factory=1
+usb_acm_num_factory=0
+
+#ÅäÖÃÉú²úģʽserial´®¿Ú¸öÊý
+usb_serial_num_factory=1
 
 #ÅäÖÃAMTģʽacm´®¿Ú¸öÊý
-usb_acm_num_amt=2
+usb_acm_num_amt=0
+
+#ÅäÖÃAMTģʽserial´®¿Ú¸öÊý
+usb_serial_num_amt=2
 
 #wangzhen
 #ÅäÖÃdebugģʽmass_storageµÄlunµÄģʽ
@@ -336,5 +358,42 @@
 #ÕÕÏà»úͼƬ·Ö±æÂÊÏÔʾ¿ØÖÆ
 zcamera_interprolation=1
 #×Ô¶¯ËÑÍø·½Ê½ÍøÂç½ÓÈë´ÎÐò
-auto_acqorder=
+auto_acqorder=12
 ######CP²àNVÅäÖÃÐÅÏ¢END#######
+#for volte
+MTNET_TEST=0
+NSIOT_TEST=0
+amrw=1
+cvmod_ims=3
+EM_CALL_SUPPORT=0
+EMCALL_TO_NORMAL=0
+IMS_APN=
+IMS_CONFURI=
+IMS_URI_TYPE=0
+IMS_REG_EXPIRES=600000
+IMS_REG_SUB_EXPIRES=600000
+NET_IMS_CAP=0
+UDP_THRESH=1300
+IPSEC_DISABLE=0
+PRECONDTION_NOT_SUPPORT=0
+WAIT_RPT_TIME=1000
+OCT_ALGN_AMR=0
+SMS_OVER_IP=1
+IMS_USER_AGENT=
+BSF_PORT=8080
+XCAP_PORT=80
+UT_APN=
+380_THEN_CSFB=0
+DTMF_RFC4733=0
+DIALOG_FORK=0
+DATA_CENTRIC=0
+not_supp_hmac_sha1_96=0
+not_supp_hmac_md5_96=0
+not_supp_des_ede3_cbc=0
+not_supp_aes_cbc=0
+#for volte end
+
+DEBUG_INFO_FILE_PATH=/mnt/userdata
+DEBUG_INFO_FILE_NUM=2
+DEBUG_INFO_FILE_TOTAL_SIZE=1
+#debug info end
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc_ro/default/default_parameter_user b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/default/default_parameter_user
similarity index 89%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc_ro/default/default_parameter_user
rename to cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/default/default_parameter_user
index e06b897..c600687 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc_ro/default/default_parameter_user
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/default/default_parameter_user
@@ -14,7 +14,7 @@
 at_snap_flag=3
 at_wifi_mac=0
 auto_apn_index=0
-cid_reserved=0
+cid_reserved=1
 clear_pb_when_restore=no
 clear_sms_when_restore=no
 default_apn=3gnet
@@ -28,7 +28,7 @@
 ipv6_APN_config8=
 ipv6_APN_config9=
 m_profile_name=Internux
-need_init_modem=yes
+need_init_modem=no
 net_select=NETWORK_auto
 pdp_type=IP
 ppp_apn=
@@ -70,12 +70,14 @@
 wifiwan_ipv6_dns_mode=auto
 pswan_ipv6_dns_mode=auto
 admin_Password=Pass1234
+psw_changed=1
 alg_ftp_enable=0
 alg_sip_enable=0
 blc_wan_auto_mode=AUTO_PPP
 blc_wan_mode=AUTO
 br_ipchange_flag=
-br_node=usblan0
+br_node=usblan0+zvnet0
+br_node_cap=zvnet0
 clat_fake_subnet=192.0.168.0
 clat_frag_collect_timeout=300
 clat_local_mapping_timeout=300
@@ -90,15 +92,16 @@
 dhcpStart=192.168.0.100
 dhcpv6stateEnabled=0
 dhcpv6statelessEnabled=1
+dhcpv6statePdEnabled=0
 dial_mode=auto_dial
 DMZEnable=0
 DMZIPAddress=
 dns_extern=
 ipv6_dns_extern=
 eth_act_type=
-eth_type=auto
-ethlan=eth0
-ethwan=eth0
+eth_type=wan
+ethlan=
+ethwan=
 ethwan_dialmode=auto
 ethwan_mode=auto
 ethwan_priority=3
@@ -128,9 +131,15 @@
 ipv4_fake_subnet=192.0.0.0
 ipv6_fake_subnet=2016::1
 lan_ipaddr=192.168.0.1
+webv6_enable=1
+lan_ipv6addr=fe80::1
 lan_name=br0
 lan_netmask=255.255.255.0
 LanEnable=1
+lan_ipaddr_cap=192.168.0.2
+lan_name_cap=br1
+lan_netmask_cap=255.255.255.0
+LanEnable_cap=1
 mac_ip_list=
 mgmt_quicken_power_on=0
 mtu=1400
@@ -141,7 +150,7 @@
 nv_save_interval=300
 path_conf=/etc_rw
 path_ro=/etc_ro
-path_log=/var/scriptlog/
+path_log=/var/log/
 path_sh=/sbin
 path_tmp=/tmp
 permit_gw=
@@ -172,19 +181,20 @@
 ppp_name=ppp0
 pppoe_password=
 pppoe_username=
-ps_ext1=usblan0
-ps_ext2=usblan0
-ps_ext3=usblan0
-ps_ext4=usblan0
-ps_ext5=usblan0
-ps_ext6=usblan0
-ps_ext7=usblan0
-ps_ext8=usblan0
+ps_ext1=zvnet1
+ps_ext2=zvnet2
+ps_ext3=zvnet3
+ps_ext4=zvnet4
+ps_ext5=zvnet5
+ps_ext6=zvnet6
+ps_ext7=zvnet7
+ps_ext8=zvnet8
 pswan=wan
 pswan_mode=pdp
 pswan_priority=1
+pswan_cap=zvnet
 RemoteManagement=0
-rj45_plugstate_path=/sys/gmac/gmacconfig/eth_phy_state
+rj45_plugstate_path=/sys/kernel/eth_debug/eth_state
 rootdev_friendlyname=DEMO-UPnP
 rootdev_manufacturer=DEMO
 rootdev_modeldes=XXX
@@ -265,11 +275,11 @@
 fota_version_md5sum=
 fota_version_name=
 fota_need_user_confirm_update=0
-fota_need_user_confirm_download=1
+fota_need_user_confirm_download=0
 fota_version_force_install=0
 polling_nexttime=0
-pwron_auto_check=1
-fota_updateMode=1
+pwron_auto_check=0
+fota_updateMode=0
 fota_test_mode=0
 fota_pkg_downloaded=0
 fota_upgrade_result_internal=
@@ -279,7 +289,7 @@
 mmi_new_sms_blink_flag=1
 mmi_show_pagetab=page1+page2+page3
 mmi_showmode=led
-mmi_task_tab=net_task+ctrl_task+wifi_task+traffic_task+key_task+battery_task+tip_task+tipwps_task+tipwifistation_task+tipfota_task+tipwps_task+tipnetconnect_task+wificode_task+ssid_task+sms_task
+mmi_task_tab=net_task+ctrl_task
 mmi_temp_voltage_line=951+1201+1692+1736
 mmi_use_protect=
 mmi_use_wifi_usernum=1
@@ -308,7 +318,7 @@
 sntp_timezone=CST-8
 sntp_timezone_index=0
 assert_errno=
-comm_logsize=524288
+comm_logsize=16384
 cr_inner_version=V1.0.0B08
 cr_version=V1.0.0B01
 hw_version=PCBMF29S2V1.0.0
@@ -344,7 +354,7 @@
 EX_DefaultKeyID=
 EX_EncrypType=
 EX_mac=
-EX_SSID1=CPE_
+EX_SSID1=Ufi_
 EX_WEPKEY=
 EX_wifi_profile=
 EX_WPAPSK1=
@@ -374,14 +384,14 @@
 m_MAX_Access_num=0
 m_NoForwarding=
 m_show_qrcode_flag=0
-m_SSID=CPE_
+m_SSID=Ufi_
 m_ssid_enable=0
 m_wapiType=
 m_wifi_mac=901D45692A5C
-m_WPAPSK1_aes=
+m_WPAPSK1=12345678
 m_WPAPSK1_encode=MTIzNDU2Nzg=
-MAX_Access_num=32
-MAX_Access_num_bak=32
+MAX_Access_num=10
+MAX_Access_num_bak=10
 NoForwarding=0
 openEnable=0
 openTime=
@@ -391,7 +401,7 @@
 show_qrcode_flag=0
 Sleep_interval=10
 ssid_write_flag=0
-SSID1=CPE_
+SSID1=Mdl_
 tsw_sleep_time_hour=
 tsw_sleep_time_min=
 tsw_wake_time_hour=
@@ -423,7 +433,7 @@
 wifilan=wlan0-va0
 wifilan2=wlan0-va1
 WirelessMode=4
-WPAPSK1_aes=
+WPAPSK1=12345678
 WPAPSK1_encode=MTIzNDU2Nzg=
 wps_mode=
 WPS_SSID=
@@ -432,19 +442,20 @@
 at_netdog=
 autorspchannel_list=all
 soctime_switch=0
-uart_control=0
+uart_control=1
 uart_ctstrs_enable=
 uart_softcontrol_enable=
 uart_wakeup_enable=1
+uart_console_coreid=1
 special_cmd_list=$MYNETREAD
-##为入网入库芯片认证版本添åŠ?begin
+##为入网入库芯片认证版本添加 begin
 atcmd_stream1=AT+ZSET="w_instrument",1
 atcmd_stream2=AT^SYSCONFIG=24,0,1,2
 atcmd_stream3=AT+ZSET="csiiot",2
 atcmd_stream4=AT+ZSET="dlparaflg",0
 atcmd_stream5=AT+ZSET="MTNET_TEST",1;AT+ZGAAT=0;AT+ZSET="CMCC_TEST",1;AT+ZSET="LTE_INFO",6348;AT+ZSET="VOICE_SUPPORT",1;AT+ZSET="FDD_RELEASE",7;AT+ZSET="LTE_RELEASE",1;AT+ZSET="UE_PS_RELEASE",5;AT+ZSET="QOS_RELEASE",4;AT+ZSET="TEBS_THRESHOLD",0
 atcmd_stream6=AT+ZSET="MTNET_TEST",1;AT+ZGAAT=0;AT+ZSET="LTE_INFO",6348;AT+ZSET="VOICE_SUPPORT",1;AT+ZSET="FDD_RELEASE",7;AT+ZSET="LTE_RELEASE",1;AT+ZSET="UE_PS_RELEASE",5;AT+ZSET="QOS_RELEASE",4;AT+ZSET="TEBS_THRESHOLD",0;AT+ZSET="IGNORE_SECURITY_SUPPORT",0;AT+ZSET="csifilter",0;AT+ZSET="csrhobandflg",0;AT+ZSET="dlparaflg",1;AT+ZSET="csiup",1;AT+ZSET="rfparaflag",0,0,1,0;AT+ZSET="csiiot",1;AT+ZSET="EXCEPT_RESET",0;AT+ZSET="ISIM_SUPPORT",1;AT+ZIMSTEST="MTNET_TEST",1;AT+ZSET="MANUAL_SEARCH",0
-##为入网入库芯片认证版本添åŠ?end
+##为入网入库芯片认证版本添加 end
 #for audio ctrl 
 audio_priority=0123
 customer_type=
@@ -452,28 +463,14 @@
 cpIndCmdList=+ZMMI+ZURDY+ZUSLOT+ZICCID^MODE+ZPBIC+ZMSRI+CREG+CEREG+CGREG+CGEV
 zephyr_filter_ip=
 wait_timeout=2
-#for volte
-MTNET_TEST=0
-NSIOT_TEST=0
-amrw=1
-cvmod_ims=3
-EM_CALL_SUPPORT=0
-EMCALL_TO_NORMAL=0
-IMS_APN=
-IMS_CONFURI=
-IMS_URI_TYPE=0
-IMS_REG_EXPIRES=600000
-NET_IMS_CAP=0
-UDP_THRESH=1300
-IPSEC_DISABLE=0
-PRECONDTION_NOT_SUPPORT=0
-WAIT_RPT_TIME=1000
-OCT_ALGN_AMR=0
-SMS_OVER_IP=1
-#for volte end
+sntp_sync_time=1
 sntp_static_server0=time-nw.nist.gov
 sntp_static_server1=pool.ntp.org
 sntp_static_server2=europe.pool.ntp.org
 vsim_bin_path=/mnt/userdata/vSim.bin
 at_select_timeout=
-base_ip_on_mac=0
+mtnet_test_mcc=+001+002+003+004
+at_atv=
+at_atq=
+at_at_d=
+quick_dial=1
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/fscheck/userdata.ini b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/fscheck/userdata.ini
new file mode 100755
index 0000000..c838d13
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/fscheck/userdata.ini
@@ -0,0 +1,22 @@
+[FS1]
+patition_name=capuserdata
+ubi_vol_name=etc_rw
+ubi_need_attach=1
+mount_point=/etc_rw
+image_file=/etc_ro/ap_userdata.bin
+fs_type=ubifs
+mount_opt=rw
+file= /etc_rw/nv/main/cfg \
+      /etc_rw/nv/backup/cfg \
+      /etc_rw/nv/main/ro \
+      /etc_rw/nv/backup/ro
+
+[FS2]
+patition_name=capuserdata
+ubi_vol_name=vol_userdata
+ubi_need_attach=0
+mount_point=/mnt/userdata
+image_file=/etc_ro/ap_userdata.bin
+fs_type=ubifs
+mount_opt=rw
+file=/cache/testfile
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/log.rule b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/log.rule
new file mode 100755
index 0000000..0d18c5e
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/log.rule
Binary files differ
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc_ro/nvconfig b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/nvconfig
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/recovery/rootfs/etc_ro/nvconfig
rename to cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/nvconfig
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/userdatafs/.gitignore b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_rw/.gitignore
similarity index 100%
copy from cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/userdatafs/.gitignore
copy to cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_rw/.gitignore
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/userdatafs/.gitignore b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/mnt/userdata/.gitignore
similarity index 100%
copy from cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/userdatafs/.gitignore
copy to cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/mnt/userdata/.gitignore
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/userdatafs/.gitignore b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/proc/.gitignore
similarity index 100%
copy from cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/userdatafs/.gitignore
copy to cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/proc/.gitignore
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/sbin/mount-copybind b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/sbin/mount-copybind
new file mode 100755
index 0000000..e32e675
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/sbin/mount-copybind
@@ -0,0 +1,56 @@
+#!/bin/sh
+#
+# Perform a bind mount, copying existing files as we do so to ensure the
+# overlaid path has the necessary content.
+
+if [ $# -lt 2 ]; then
+    echo >&2 "Usage: $0 spec mountpoint [OPTIONS]"
+    exit 1
+fi
+
+# e.g. /var/volatile/lib
+spec=$1
+
+# e.g. /var/lib
+mountpoint=$2
+
+if [ $# -gt 2 ]; then
+    options=$3
+else
+    options=
+fi
+
+[ -n "$options" ] && options=",$options"
+
+mkdir -p "${spec%/*}"
+
+if [ -d "$mountpoint" ]; then
+
+    if [ -d "$spec" ]; then
+        specdir_existed=yes
+    else
+        specdir_existed=no
+        mkdir "$spec"
+    fi
+
+    # Fast version of calculating `dirname ${spec}`/.`basename ${spec}`-work
+    overlay_workdir="${spec%/*}/.${spec##*/}-work"
+    mkdir "${overlay_workdir}"
+
+    # Try to mount using overlay, which is must faster than copying files.
+    # If that fails, fall back to slower copy.
+    if ! mount -t overlay overlay -olowerdir="$mountpoint",upperdir="$spec",workdir="$overlay_workdir" "$mountpoint" > /dev/null 2>&1; then
+
+        if [ "$specdir_existed" != "yes" ]; then
+            cp -aPR "$mountpoint"/. "$spec/"
+        fi
+
+        mount -o "bind$options" "$spec" "$mountpoint"
+    fi
+elif [ -f "$mountpoint" ]; then
+    if [ ! -f "$spec" ]; then
+        cp -aP "$mountpoint" "$spec"
+    fi
+
+    mount -o "bind$options" "$spec" "$mountpoint"
+fi
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/sbin/to_mnt_ubifs.sh b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/sbin/to_mnt_ubifs.sh
new file mode 100755
index 0000000..abaa4a9
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/sbin/to_mnt_ubifs.sh
@@ -0,0 +1,42 @@
+#!/bin/sh
+#
+#Author: comlee
+#
+
+#外部传参 
+# 参数1: mount点
+# 参数2: 分区名
+RECVFS_MTD_NUM=`cat /proc/mtd | grep "$2\"" | awk '{print $1}'| cut -b 4- |sed 's/://g'`
+ubiattach /dev/ubi_ctrl -m ${RECVFS_MTD_NUM}
+echo "attach $2  $1"
+
+if [ $? != 0 ];then
+	echo "fail to attach $2"	
+	exit 1
+fi
+
+UBIDEV_NUM=`ls /sys/devices/virtual/ubi|wc -l`
+MYTMP=0
+
+if [ ! -e $1 ]; then
+	mkdir -p $1
+fi
+
+while :
+do
+	if [ -e /sys/devices/virtual/ubi/ubi${MYTMP} ]; then
+		TMPDEV=`cat /sys/devices/virtual/ubi/ubi${MYTMP}/mtd_num`
+		if [ $TMPDEV -eq ${RECVFS_MTD_NUM} ]; then
+#			umount $1
+			mount -t ubifs  -o rw,sync,noatime ubi${MYTMP}_0 $1
+			exit 0
+		fi
+	else
+		if [ ${MYTMP} -ge ${UBIDEV_NUM} ]; then
+			exit 1
+		fi
+	fi
+	MYTMP=`expr $MYTMP + 1`
+done
+
+
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/userdatafs/.gitignore b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/sys/.gitignore
similarity index 100%
copy from cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/userdatafs/.gitignore
copy to cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/sys/.gitignore
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/zxic-image.bb b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/zxic-image.bb
index 2921727..0eea53e 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/zxic-image.bb
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/zxic-image.bb
@@ -4,7 +4,7 @@
 PV = "1.0.0"
 PR = "r0"
 
-inherit core-image userdatafs extrausers   ${@bb.utils.contains("DISTRO_FEATURES", "selinux", "selinux-image", "", d)} 
+inherit core-image extrausers   ${@bb.utils.contains("DISTRO_FEATURES", "selinux", "selinux-image", "", d)} 
 
 OPENWRT_FULL ="\
     packagegroup-openwrt-minimal \
@@ -124,18 +124,15 @@
 }
 
 ROOTFS_POSTPROCESS_COMMAND += "\
-    ${@bb.utils.contains("DISTRO", "cpe", "distro_rootfs_files_cpe;", "", d)}   \
-    ${@bb.utils.contains("DISTRO", "v2x", "distro_rootfs_files_v2x;", "", d)}   \
-    ${@bb.utils.contains("DISTRO", "fpga", "distro_rootfs_files_fpga;", "", d)} \
     ${@bb.utils.contains("DISTRO", "mdl", "distro_rootfs_files_mdl;", "", d)}   \
-    ${@bb.utils.contains("DISTRO", "v2x-openwrt", "distro_rootfs_files_v2x_openwrt;", "", d)}   \
-    ${@bb.utils.contains("DISTRO", "v2x-16bit", "distro_rootfs_files_v2x_openwrt;", "", d)}   \
     ${@bb.utils.contains("DISTRO", "vehicle_dc", "distro_rootfs_files_vehicle;", "", d)}   \
+    ${@bb.utils.contains("DISTRO", "vehicle_dc_4Gb", "distro_rootfs_files_vehicle;", "", d)}   \
     "
 
 fakeroot do_cprootfs() {
 	rm -fv ${BINS-PATH}/${ROOT_FS_NAME}
-	
+	mkdir -p ${BINS-PATH} ${ELFS-PATH}
+
 	if [ ${IMAGE_FSTYPES} = 'cpio.gz' ]; then
 		cd ${IMAGE_ROOTFS} && find . | cpio -o -H newc | gzip -9 > ${IMAGE_ROOTFS}/ramdisk.image.gz
 		mv  ${IMAGE_ROOTFS}/ramdisk.image.gz  ${BINS-PATH}/${ROOT_FS_NAME}
@@ -158,11 +155,9 @@
 }
 addtask  cleanrootfs after do_clean  before do_cleansstate
 
-fakeroot do_cpuserdatafs() {
-	cp  -arfp  ${FS-DIR}/fs/normal/userdatafs/   ${S}/
-}
 
 do_product_ini() {
+	mkdir -p ${BINS-PATH}
 	echo "[imagefs]" > ${BINS-PATH}/product.ini
 	echo "mkfs_ubifs=${IMAGEFS_MKUBIFS_ARGS}" >>  ${BINS-PATH}/product.ini
 	echo "ubinize=${IMAGEFS_UBINIZE_ARGS}"    >>  ${BINS-PATH}/product.ini
@@ -174,19 +169,15 @@
 
 fakeroot do_mkubifs(){
 	if [ ${BOOT_CTL} = 'normal' ]; then
-		cp -arfp ${THISDIR}/files/mkubifs.sh ${B}
+		cp -arfp ${THISDIR}/files/ubinize-cfg.sh ${B}
+		cp -arfp ${BSPDIR}/sources/meta-zxic-custom/conf/distro/include/${USERDATA_UBINIZE_CFG} ${B}
 		mkdir -p ${BINS-PATH}
-		${B}/mkubifs.sh  ${@bb.utils.contains("DISTRO_FEATURES", "OPENWRT", "rootfs_data", "vol_userdata", d)} \
-	        "${S}/userdatafs" "${BINS-PATH}/${USEDATA_FS_NAME}" \
-	        "${USERDATA_MKUBIFS_ARGS}" ${USERDATA_UBI_VOL_SIZE} "${USERDATA_UBINIZE_ARGS}"
+		${B}/ubinize-cfg.sh "${BINS-PATH}/${USEDATA_FS_NAME}"  "${B}/${USERDATA_UBINIZE_CFG}"  "${USERDATA_UBINIZE_ARGS}"
 		mkdir -p ${IMAGE_ROOTFS}/etc_ro/
 		cp -v "${BINS-PATH}/${USEDATA_FS_NAME}" ${IMAGE_ROOTFS}/etc_ro/
 	fi
 }
 
-fakeroot do_ext4fs(){
-	mkfs_ext4fs "${BINS-PATH}/ap_capuserdata.ext4" "${S}/userdatafs"  "${USERDATA_EXT4SIZE}" "${EXTRA_USERDATACMD_ext4}"
-}
 
 fakeroot do_rootfs_squashfs(){
 	cp -arfp ${THISDIR}/files/ubinize-static.sh ${B}
@@ -204,6 +195,18 @@
 
 }
 
+fakeroot do_oemfs_squashfs(){
+	cp -arfp ${THISDIR}/files/ubinize-static.sh ${B}
+	cp  -arfp  ${FS-DIR}/fs/normal/oem/   ${S}/
+
+	mksquashfs4 ${S}/oem ${IMGDEPLOYDIR}/oem.squashfs_tmp ${ROOTFS_SQUASHFS_ARGS}
+	echo "oem squashfs need ubinize-image on nand flash"
+	${B}/ubinize-static.sh vol_oem "${BINS-PATH}/cap_oem.img" ${IMGDEPLOYDIR}/oem.squashfs_tmp "${UBINIZE_ARGS}"
+	cd ${S}/oem/../ && tar -czvf ${ELFS-PATH}/oem.tgz  oem
+	rm -rf ${IMGDEPLOYDIR}/oem.squashfs_tmp
+
+}
+
 ROOTFS_POSTPROCESS_COMMAND_remove += 'empty_var_volatile;'
 
 fakeroot do_ln_var(){
@@ -231,9 +234,9 @@
    '
 
 IMAGE_POSTPROCESS_COMMAND += "\
-    do_cpuserdatafs; \
     ${@bb.utils.contains("USERDATA_FSTYPE", "ubi", "do_mkubifs;", "", d)} \
     ${@bb.utils.contains("USERDATA_FSTYPE", "ext4", "do_ext4fs;", "", d)} \
     ${@bb.utils.contains("IMAGE_FSTYPES", "squashfs", "do_rootfs_squashfs;", "", d)} \
+    ${@bb.utils.contains("DISTRO_FEATURES", "oemfs", "do_oemfs_squashfs;", "", d)} \
     "
 
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_4Gb-normal.cfg b/cap/zx297520v3/sources/meta-zxic-custom/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_4Gb-normal.cfg
new file mode 120000
index 0000000..03eacac
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_4Gb-normal.cfg
@@ -0,0 +1 @@
+linux-5_10-vehicle_dc-normal.cfg
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic/conf/app_com.inc b/cap/zx297520v3/sources/meta-zxic/conf/app_com.inc
index 5c05d34..a811432 100755
--- a/cap/zx297520v3/sources/meta-zxic/conf/app_com.inc
+++ b/cap/zx297520v3/sources/meta-zxic/conf/app_com.inc
@@ -1,4 +1,4 @@
-CFLAGS_prepend    = " -I ${BSPDIR}/zxic_code/zxic_source/zxic_app_open/include -Wall -ffunction-sections  -fomit-frame-pointer -fno-short-enums  "

+CFLAGS_prepend    = " -I ${BSPDIR}/zxic_code/zxic_source/zxic_app_open/platform/include -I ${BSPDIR}/zxic_code/zxic_source/zxic_app_open/platform/include/sctel -Wall -ffunction-sections  -fomit-frame-pointer -fno-short-enums  "

 CFLAGS_append_arm = " -msoft-float -fno-common "

 LDFLAGS_append    = " -g -fno-common -fno-builtin -Wl,--gc-sections "

 CFLAGS_append     = " ${CUSTOM_MACRO} "

diff --git a/cap/zx297520v3/sources/meta-zxic/conf/machine/zx279132.conf b/cap/zx297520v3/sources/meta-zxic/conf/machine/zx279132.conf
deleted file mode 100755
index 55245a3..0000000
--- a/cap/zx297520v3/sources/meta-zxic/conf/machine/zx279132.conf
+++ /dev/null
@@ -1,43 +0,0 @@
-#@TYPE: Machine
-#@NAME: zxic 5G Development Board 
-#@DESCRIPTION: Machine configuration for the zxic 5G
-
-#MACHINEOVERRIDES = "zxic:${MACHINE}"
-MACHINE_FEATURES += ""
-MACHINE_EXTRA_RRECOMMENDS += "\
-"
-
-include conf/machine/include/zxic-64.inc
-
-TUNE_FEATURES_tune-armv7a_remove  = "vfp"
-SERIAL_CONSOLES                   ?= "115200;ttyS0"
-
-#UBOOT_MACHINE = ""
-
-# kernel and uboot default:
-#
-KERNEL_BOOTCMD          ??= "bootm"
-KERNEL_IMAGETYPE_UBOOT  ??= "uImage"
-KERNEL_IMAGETYPE_DIRECT ??= "zImage"
-KERNEL_IMAGETYPE        ?=  "${@bb.utils.contains('zxic_USE_U_BOOT', '1', \
-                            '${KERNEL_IMAGETYPE_UBOOT}', '${KERNEL_IMAGETYPE_DIRECT}', d)}"
-
-#IMAGE_FSTYPES config : tar.bz2 jffs2 ubifs  cpio.gz
-IMAGE_FSTYPES ?= "tar.bz2"
-
-MACHINE_FEATURES += ""
-
-KERNEL_DEVICETREE ?= " \
-    zte/zx279132s/zx279132s-evb.dtb \
-    zte/zx279132s/zx279132s-cpe.dtb \
-    "
-
-#EXTRA_IMAGEDEPENDS += "u-boot-zxic"
-UBOOT_MACHINE ?= "zxic_defconfig"
-
-MKUBIFS_ARGS ?= "-m 2048 -e 126976 "
-UBINIZE_ARGS ?= "-m 2048 -p 128KiB -s 2048"
-
-USERDATA_MKUBIFS_ARGS ?= "-m 2048 -e 126976 "
-USERDATA_UBINIZE_ARGS ?= "-m 2048 -p 128KiB -s 2048"
-
diff --git a/cap/zx297520v3/sources/meta-zxic/conf/machine/zx297520v3.conf b/cap/zx297520v3/sources/meta-zxic/conf/machine/zx297520v3.conf
index 5b9c41b..a8c52af 100644
--- a/cap/zx297520v3/sources/meta-zxic/conf/machine/zx297520v3.conf
+++ b/cap/zx297520v3/sources/meta-zxic/conf/machine/zx297520v3.conf
@@ -31,7 +31,7 @@
 KERNEL_IMAGETYPE_UBOOT  ??= "uImage"
 KERNEL_IMAGETYPE_DIRECT ??= "zImage"
 KERNEL_IMAGETYPE        ?=  "uImage"
-KERNEL_LOADADDR ?= "0x22208000"
+KERNEL_LOADADDR ?= "0x22808000"
 
 #IMAGE_FSTYPES config : tar.bz2 jffs2 ubifs  cpio.gz
 IMAGE_FSTYPES ?= "tar.bz2 cpio.gz"
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/adb/adb.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/adb/adb.bb
index b4230a3..9ffd4b9 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/adb/adb.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/adb/adb.bb
@@ -13,7 +13,7 @@
 inherit ${CLASS_COM}
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
     file://adb \
     ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://adb.init","", d)} \
@@ -43,7 +43,7 @@
 
 	if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
 		install -d ${D}${systemd_unitdir}/system
-		install -m 0644 ${WORKDIR}/adb.service ${D}${systemd_unitdir}/adbd
+		install -m 0644 ${WORKDIR}/adb.service ${D}${systemd_unitdir}/system
 	fi
 
 	if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/at-ctl/at-ctl.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/at-ctl/at-ctl.bb
index 30d6a74..3eb28ce 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/at-ctl/at-ctl.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/at-ctl/at-ctl.bb
@@ -1,5 +1,5 @@
 DESCRIPTION = "at_ctl"
-DEPENDS     = "libnvram libsoftap libsofttimer libatutils sqlcipher libatext libmxml"
+DEPENDS     = "libnvram libsoftap libsofttimer libatutils sqlcipher libatext libmxml libtelsvr "
 SECTION     = "app"
 LICENSE     = "zte"
 PV = "1.0.0"
@@ -17,7 +17,7 @@
     "
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://at_ctl \
 		  ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://at_ctl.init","", d)} \
@@ -32,7 +32,7 @@
 #引用公用头文件和编译选项。
 include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
 include ${BSPDIR}/sources/meta-zxic/conf/pub.inc
-CFLAGS_append = "-I ${BSPDIR}/zxic_code/zxic_source/zxic_app_open/at_ctl/src/phone/inc"
+CFLAGS_append = "-I ${BSPDIR}/zxic_code/zxic_source/zxic_app_open/platform/at_ctl/src/phone/inc"
 CFLAGS_append += "${ZXIC_EXTRA_CFLAGS}"
 LDLIBS_EXT = "${@bb.utils.contains('DISTRO_FEATURES', 'volte', '-lvoice', '', d)}"
 #include at-ctl.inc
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr.bb
deleted file mode 100755
index 98b1544..0000000
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr.bb
+++ /dev/null
@@ -1,80 +0,0 @@
-DESCRIPTION = "at_svr"
-DEPENDS     = "libzxiceap"
-SECTION     = "app"
-LICENSE     = "zte"
-PV = "1.0.0"
-PR = "r0"
-
-CLASS_COM = " \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'procd', 'openwrt openwrt-services', '', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
-"
-inherit ${CLASS_COM}
-
-#配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
-SRC_URI = " \
-          file://at_svr \
-		  ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://at_svr.init","", d)} \
-		  ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "file://at_svr.service","", d)} \
-		  ${@bb.utils.contains("DISTRO_FEATURES", "sysvinit", "file://at_svr.sysvinit","", d)} \
-		  file://preconfigured_urs_policy.xml \
-          "
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
-S = "${WORKDIR}"
-S_SRC_PATH = "${S}/at_svr"
-
-#引用公用头文件和编译选项。
-# include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
-CFLAGS_append = "-I ${BSPDIR}/zxic_code/zxic_source/zxic_app_open/at_svr/inc"
-
-#inherit autotools pkgconfig systemd
-
-do_compile() {
-	make -C ${S_SRC_PATH}
-}
-
-do_install () {
-	install -d ${D}${bindir}/		
-	install -m 0755 ${S_SRC_PATH}/at_svr ${D}${bindir}/
-	
-	if ${@bb.utils.contains('DISTRO_FEATURES','procd','true','false',d)}; then
-		install -Dm 0755 ${WORKDIR}/at_svr.init ${D}${sysconfdir}/init.d/at_svr
-	fi
-
-	if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
-		install -d ${D}${systemd_unitdir}/system
-		install -m 0644 ${WORKDIR}/at_svr.service ${D}${systemd_unitdir}/system
-	fi
-	
-	if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
-		install -Dm 0755 ${WORKDIR}/at_svr.sysvinit ${D}${sysconfdir}/init.d/at_svr
-		install -d ${D}${sysconfdir}/rcS.d
-		ln -s ../init.d/at_svr ${D}${sysconfdir}/rcS.d/S20at_svr
-	fi
-	
-	install -d ${D}/etc_ro/config/
-	install -m 0644 ${WORKDIR}/preconfigured_urs_policy.xml ${D}/etc_ro/config/
-
-	#install elfs
-	install -d ${ELFS-PATH}/
-	#install -m 0755 ${S_SRC_PATH}/at_svr ${ELFS-PATH}/${PN}/
-	install -m 0755 ${S_SRC_PATH}/at_svr ${ELFS-PATH}/
-}
-
-do_cleanlibs () {
-	rm -fr ${ELFS-PATH}/at_svr
-}
-
-addtask  cleanlibs after do_clean  before do_cleansstate
-
-FILES_${PN} = "\
-    ${bindir}/ \
-    ${@bb.utils.contains("DISTRO_FEATURES", "procd", "${sysconfdir}/init.d/at_svr","", d)} \
-    ${@bb.utils.contains("DISTRO_FEATURES", "sysvinit", "${sysconfdir}/","", d)} \
-    etc_ro/ \
-    "
-SYSTEMD_SERVICE_${PN}     = "at_svr.service"
-SYSTEMD_AUTO_ENABLE_${PN} = "enable"
-
-RDEPENDS_${PN} = " libzxiceap"
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr.inc b/cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr.inc
deleted file mode 100755
index b72de47..0000000
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-CFLAGS_append    = "-I ${BSPDIR}/zxic_code/zxic_source/zxic_app_open/at_svr/inc "

-

-

diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr/at_svr.service b/cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr/at_svr.service
deleted file mode 100755
index 6d8710e..0000000
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr/at_svr.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=The at_svr service
-
-[Service]
-Type=simple
-ExecStart=/usr/bin/at_svr
-Restart=always
-
-[Install]
-WantedBy=basic.target
-
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr/preconfigured_urs_policy.xml b/cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr/preconfigured_urs_policy.xml
deleted file mode 100755
index db24b34..0000000
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr/preconfigured_urs_policy.xml
+++ /dev/null
@@ -1,208 +0,0 @@
-<URSP>
-	<Rule1>
-		<Traffic_Descriptor>
-			<DNN_Info>
-				<Node>
-					<DNN>internet</DNN>
-				</Node>
-				<Node>
-					<DNN>internet1</DNN>
-				</Node>
-			</DNN_Info>
-		</Traffic_Descriptor>
-		<Router_Selection_Descriptor>
-			<RSD1>
-				<Network_Slice>
-					<Node>
-						<S-NSSAI>01</S-NSSAI>
-					</Node>
-				</Network_Slice>
-				<SSC_Mode>1</SSC_Mode>
-				<Access_Type>1</Access_Type>
-				<PDU_Session_Type>1</PDU_Session_Type>
-				<RSD_Priority>1</RSD_Priority>
-			</RSD1>
-			<RSD2>
-				<Network_Slice>
-					<Node>
-						<S-NSSAI>01</S-NSSAI>
-					</Node>
-				</Network_Slice>
-				<SSC_Mode>1</SSC_Mode>
-				<Access_Type>2</Access_Type>
-				<PDU_Session_Type>2</PDU_Session_Type>
-				<RSD_Priority>2</RSD_Priority>
-			</RSD2>
-			<RSD3>
-				<Network_Slice>
-					<Node>
-						<S-NSSAI>02</S-NSSAI>
-					</Node>
-				</Network_Slice>
-				<SSC_Mode>1</SSC_Mode>
-				<Access_Type>1</Access_Type>
-				<PDU_Session_Type>3</PDU_Session_Type>
-				<RSD_Priority>3</RSD_Priority>
-			</RSD3>
-			<RSD4>
-				<Network_Slice>
-					<Node>
-						<S-NSSAI>02</S-NSSAI>
-					</Node>
-				</Network_Slice>
-				<SSC_Mode>1</SSC_Mode>
-				<Access_Type>2</Access_Type>
-				<PDU_Session_Type>4</PDU_Session_Type>
-				<RSD_Priority>4</RSD_Priority>
-			</RSD4>
-		</Router_Selection_Descriptor>
-		<Rule_Priority>1</Rule_Priority>
-	</Rule1>
-	<Rule2>
-		<Traffic_Descriptor>
-			<DNN_Info>
-				<Node>
-					<DNN>ims</DNN>
-				</Node>
-			</DNN_Info>
-		</Traffic_Descriptor>
-		<Router_Selection_Descriptor>
-			<RSD1>
-				<Network_Slice>
-					<Node>
-						<S-NSSAI>02</S-NSSAI>
-					</Node>
-				</Network_Slice>
-				<SSC_Mode>1</SSC_Mode>
-				<Access_Type>1</Access_Type>
-				<PDU_Session_Type>5</PDU_Session_Type>
-				<RSD_Priority>1</RSD_Priority>
-			</RSD1>
-			<RSD2>
-				<Network_Slice>
-					<Node>
-						<S-NSSAI>02</S-NSSAI>
-					</Node>
-				</Network_Slice>
-				<SSC_Mode>1</SSC_Mode>
-				<Access_Type>2</Access_Type>
-				<PDU_Session_Type>6</PDU_Session_Type>
-				<RSD_Priority>4</RSD_Priority>
-			</RSD2>
-		</Router_Selection_Descriptor>
-		<Rule_Priority>2</Rule_Priority>
-	</Rule2>
-	<Rule3>
-		<Traffic_Descriptor>
-			<OS_APP_ID_Info>
-				<Node>
-					<OS_ID>97a498e3fc925c9489860333d06e4e47</OS_ID>
-					<OS_APP_ID>SUPL</OS_APP_ID>
-				</Node>
-			</OS_APP_ID_Info>
-		</Traffic_Descriptor>
-		<Router_Selection_Descriptor>
-			<RSD1>
-				<Network_Slice>
-					<Node>
-						<S-NSSAI>01</S-NSSAI>
-					</Node>
-				</Network_Slice>
-				<SSC_Mode>1</SSC_Mode>
-				<Access_Type>1</Access_Type>
-				<PDU_Session_Type>7</PDU_Session_Type>
-				<RSD_Priority>1</RSD_Priority>
-			</RSD1>
-		</Router_Selection_Descriptor>
-		<Rule_Priority>3</Rule_Priority>
-	</Rule3>
-	<Rule4>
-		<Traffic_Descriptor>
-			<APP_ID_Info>
-				<Node>
-					<OS_APP_ID>SUPL</OS_APP_ID>
-				</Node>
-			</APP_ID_Info>
-			<FQDN_Info>
-				<Node>
-					<FQDN>https://abc.com.cn/ref</FQDN>
-				</Node>
-			</FQDN_Info>
-			<IP_3_Tuple_Info>
-				<Node>
-					<V4_ADDR>10.9.8.7,255.255.0.0</V4_ADDR>
-					<PROTOCOL_OR_NEXT>17</PROTOCOL_OR_NEXT>
-					<SINGLE_PORT>8080</SINGLE_PORT>
-				</Node>
-				<Node>
-					<V6_ADDR>fe80::329c:23ff:fe4c:9e33/64</V6_ADDR>
-					<PROTOCOL_OR_NEXT>6</PROTOCOL_OR_NEXT>
-					<PORT_RANGE>500:1024</PORT_RANGE>
-				</Node>
-			</IP_3_Tuple_Info>
-		</Traffic_Descriptor>
-		<Router_Selection_Descriptor>
-			<RSD1>
-				<DNN_Info>
-					<Node>
-						<DNN>ims4-1</DNN>
-					</Node>
-				</DNN_Info>
-				<Network_Slice>
-					<Node>
-						<S-NSSAI>01</S-NSSAI>
-					</Node>
-				</Network_Slice>
-				<SSC_Mode>1</SSC_Mode>
-				<Access_Type>1</Access_Type>
-				<PDU_Session_Type>8</PDU_Session_Type>
-				<RSD_Priority>1</RSD_Priority>
-			</RSD1>
-		</Router_Selection_Descriptor>
-		<Rule_Priority>4</Rule_Priority>
-	</Rule4>
-	<Rule5>
-		<Traffic_Descriptor>
-			<DNN_Info>
-				<Node>
-					<DNN>CCcCC</DNN>
-				</Node>
-			</DNN_Info>
-			<APP_ID_Info>
-				<Node>
-					<OS_APP_ID>AaAaAaAa</OS_APP_ID>
-				</Node>
-			</APP_ID_Info>
-			<FQDN_Info>
-				<Node>
-					<FQDN>BaiDu.com</FQDN>
-				</Node>
-			</FQDN_Info>
-			<IP_3_Tuple_Info>
-				<Node>
-					<V4_ADDR>10.10.10.21,255.255.0.0</V4_ADDR>
-					<PORT_RANGE>79:81</PORT_RANGE>
-				</Node>
-				<Node>
-					<V6_ADDR>fe80::329c:23ff:fe4c:9e33/64</V6_ADDR>
-					<PROTOCOL_OR_NEXT>6</PROTOCOL_OR_NEXT>
-					<PORT_RANGE>500:1024</PORT_RANGE>
-				</Node>
-			</IP_3_Tuple_Info>
-		</Traffic_Descriptor>
-		<Router_Selection_Descriptor>
-			<RSD1>
-				<Network_Slice>
-					<Node>
-						<S-NSSAI>01</S-NSSAI>
-					</Node>
-				</Network_Slice>
-				<SSC_Mode>1</SSC_Mode>
-				<Access_Type>1</Access_Type>
-				<PDU_Session_Type>9</PDU_Session_Type>
-				<RSD_Priority>1</RSD_Priority>
-			</RSD1>
-		</Router_Selection_Descriptor>
-		<Rule_Priority>5</Rule_Priority>
-	</Rule5>
-</URSP>
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxiceap-demo/zxiceap-demo.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/atchn-test/atchn-test.bb
similarity index 63%
rename from cap/zx297520v3/sources/meta-zxic/recipes-app/zxiceap-demo/zxiceap-demo.bb
rename to cap/zx297520v3/sources/meta-zxic/recipes-app/atchn-test/atchn-test.bb
index e7a0525..8fd4529 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxiceap-demo/zxiceap-demo.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/atchn-test/atchn-test.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "zxiceap_demo"
+DESCRIPTION = "atchn_test"
 DEPENDS     = "libatchn libsoftap libnvram libsofttimer"
 SECTION     = "app"
 LICENSE     = "zte"
@@ -14,14 +14,14 @@
 #配置code路径信息。
 FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
 SRC_URI = " \
-          file://libatchn/zxiceap_demo \
-		  file://libatchn/inc \
-		  ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://zxiceap_demo.init","", d)} \
-		  ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "file://zxiceap_demo.service","", d)} \
+          file://test/atchn_test \
+		  file://platform/libatchn/inc \
+		  ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://atchn_test.init","", d)} \
+		  ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "file://atchn_test.service","", d)} \
           "
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
 S = "${WORKDIR}"
-S_SRC_PATH = "${S}/libatchn/zxiceap_demo"
+S_SRC_PATH = "${S}/test/atchn_test"
 #引用公用头文件和编译选项。
 include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
 
@@ -33,33 +33,33 @@
 
 do_install () {
 	install -d ${D}${bindir}/
-	install -m 0755 ${S_SRC_PATH}/zxiceap_demo ${D}${bindir}/
+	install -m 0755 ${S_SRC_PATH}/atchn_test ${D}${bindir}/
 	
 	if ${@bb.utils.contains('DISTRO_FEATURES','procd','true','false',d)}; then
-		install -Dm 0755 ${WORKDIR}/zxiceap_demo.init ${D}${sysconfdir}/init.d/zxiceap_demo
+		install -Dm 0755 ${WORKDIR}/atchn_test.init ${D}${sysconfdir}/init.d/atchn_test
 	fi
 
 	if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
 		install -d ${D}${systemd_unitdir}/system
-		install -m 0644 ${WORKDIR}/zxiceap_demo.service ${D}${systemd_unitdir}/system
+		install -m 0644 ${WORKDIR}/atchn_test.service ${D}${systemd_unitdir}/system
 	fi
 	
 	#install elfs
 	install -d ${ELFS-PATH}/
-	install -m 0755 ${S_SRC_PATH}/zxiceap_demo ${ELFS-PATH}/	
+	install -m 0755 ${S_SRC_PATH}/atchn_test ${ELFS-PATH}/	
 }
 
 do_cleanlibs () {
-	rm -fr ${ELFS-PATH}/zxiceap_demo
+	rm -fr ${ELFS-PATH}/atchn_test
 }
 
 addtask  cleanlibs after do_clean  before do_cleansstate
 
 FILES_${PN} = "\
     ${bindir}/ \
-    ${@bb.utils.contains("DISTRO_FEATURES", "procd", "${sysconfdir}/init.d/zxiceap_demo","", d)} \
+    ${@bb.utils.contains("DISTRO_FEATURES", "procd", "${sysconfdir}/init.d/atchn_test","", d)} \
     "
-SYSTEMD_SERVICE_${PN}     = "zxiceap_demo.service"
+SYSTEMD_SERVICE_${PN}     = "atchn_test.service"
 SYSTEMD_AUTO_ENABLE_${PN} = "disable"
 
 RDEPENDS_${PN} = " libatchn libsoftap libnvram libsofttimer"
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxiceap-demo/zxiceap-demo/zxiceap_demo.init b/cap/zx297520v3/sources/meta-zxic/recipes-app/atchn-test/atchn-test/atchn_test.init
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic/recipes-app/zxiceap-demo/zxiceap-demo/zxiceap_demo.init
rename to cap/zx297520v3/sources/meta-zxic/recipes-app/atchn-test/atchn-test/atchn_test.init
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxiceap-demo/zxiceap-demo/zxiceap_demo.service b/cap/zx297520v3/sources/meta-zxic/recipes-app/atchn-test/atchn-test/atchn_test.service
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic/recipes-app/zxiceap-demo/zxiceap-demo/zxiceap_demo.service
rename to cap/zx297520v3/sources/meta-zxic/recipes-app/atchn-test/atchn-test/atchn_test.service
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/bsp-test/bsp-test.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/bsp-test/bsp-test.bb
new file mode 100644
index 0000000..e11b648
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/bsp-test/bsp-test.bb
@@ -0,0 +1,52 @@
+DESCRIPTION = "bsp_test"
+DEPENDS     = "libbsp"
+SECTION     = "app"
+LICENSE     = "zte"
+PV = "1.0.0"
+PR = "r0"
+
+CLASS_COM = " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'procd', 'openwrt openwrt-services', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+"
+inherit ${CLASS_COM}
+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+SRC_URI = " \
+          file://test/bsp_test \
+    "
+
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
+S = "${WORKDIR}"
+S_SRC_PATH = "${S}/test/bsp_test"
+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+include ${BSPDIR}/sources/meta-zxic/conf/pub.inc
+CFLAGS_append = "${ZXIC_EXTRA_CFLAGS}"
+
+#inherit autotools pkgconfig systemd
+
+do_compile() {
+	make -C ${S_SRC_PATH}
+}
+
+do_install () {
+	install -d ${D}${bindir}/
+	install -m 0755 ${S_SRC_PATH}/bsp_test ${D}${bindir}/
+
+	#install elfs
+	install -d ${ELFS-PATH}/
+	install -m 0755 ${S_SRC_PATH}/bsp_test ${ELFS-PATH}/	
+}
+
+do_cleanlibs () {
+	rm -fr ${ELFS-PATH}/bsp_test
+}
+
+addtask  cleanlibs after do_clean  before do_cleansstate
+
+#rootfs包含的文件
+FILES_${PN} = "\
+    ${bindir}/ \
+    "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/cc-demo/cc-demo.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/cc-demo/cc-demo.bb
new file mode 100755
index 0000000..a1bad59
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/cc-demo/cc-demo.bb
@@ -0,0 +1,64 @@
+DESCRIPTION = "cc_demo"
+DEPENDS     = "libsctel"
+SECTION     = "app"
+LICENSE     = "zte"
+PV = "1.0.0"
+PR = "r0"
+
+CLASS_COM = " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'procd', 'openwrt openwrt-services', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+"
+inherit ${CLASS_COM}
+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+SRC_URI = " \
+          file://test/cc_demo \		  
+		  ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://cc_demo.init","", d)} \
+		  ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "file://cc_demo.service","", d)} \
+          "
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
+S = "${WORKDIR}"
+S_SRC_PATH = "${S}/test/cc_demo"
+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+
+#inherit autotools pkgconfig systemd
+
+do_compile() {
+	make -C ${S_SRC_PATH}
+}
+
+do_install () {
+	install -d ${D}${bindir}/
+	install -m 0755 ${S_SRC_PATH}/cc_demo ${D}${bindir}/
+	
+	if ${@bb.utils.contains('DISTRO_FEATURES','procd','true','false',d)}; then
+		install -Dm 0755 ${WORKDIR}/cc_demo.init ${D}${sysconfdir}/init.d/cc_demo
+	fi
+
+	if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+		install -d ${D}${systemd_unitdir}/system
+		install -m 0644 ${WORKDIR}/cc_demo.service ${D}${systemd_unitdir}/system
+	fi
+	
+	#install elfs
+	install -d ${ELFS-PATH}/
+	install -m 0755 ${S_SRC_PATH}/cc_demo ${ELFS-PATH}/	
+}
+
+do_cleanlibs () {
+	rm -fr ${ELFS-PATH}/cc_demo
+}
+
+addtask  cleanlibs after do_clean  before do_cleansstate
+
+FILES_${PN} = "\
+    ${bindir}/ \
+    ${@bb.utils.contains("DISTRO_FEATURES", "procd", "${sysconfdir}/init.d/cc_demo","", d)} \
+    "
+SYSTEMD_SERVICE_${PN}     = "cc_demo.service"
+SYSTEMD_AUTO_ENABLE_${PN} = "disable"
+
+RDEPENDS_${PN} = " libsctel"
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/cc-demo/cc-demo/cc_demo.init b/cap/zx297520v3/sources/meta-zxic/recipes-app/cc-demo/cc-demo/cc_demo.init
new file mode 100755
index 0000000..46b19e0
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/cc-demo/cc-demo/cc_demo.init
@@ -0,0 +1,21 @@
+#!/bin/sh /etc/rc.common
+
+START=18
+STOP=85
+USE_PROCD=1
+
+logger -t cc_demo
+
+start_service() {
+	procd_open_instance
+	procd_set_param command /usr/bin/cc_demo
+	procd_set_param stdout 1  # forward stdout of the command to logd
+	procd_set_param stderr 1  # same for stderr
+	procd_set_param respawn
+	procd_close_instance
+}
+
+stop_service() 
+{
+	echo "add clean code"
+}
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/cc-demo/cc-demo/cc_demo.service b/cap/zx297520v3/sources/meta-zxic/recipes-app/cc-demo/cc-demo/cc_demo.service
new file mode 100755
index 0000000..6765ff2
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/cc-demo/cc-demo/cc_demo.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=The cc_demo service
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/cc_demo
+Restart=always
+
+[Install]
+WantedBy=basic.target
+
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/cfg-tool/cfg-tool.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/cfg-tool/cfg-tool.bb
index 481dd53..a911ea8 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/cfg-tool/cfg-tool.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/cfg-tool/cfg-tool.bb
@@ -7,7 +7,7 @@
 PR = "r0"
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
     file://cfg_tool \
     "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/crc-mcu/crc-mcu.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/crc-mcu/crc-mcu.bb
new file mode 100755
index 0000000..39a08d7
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/crc-mcu/crc-mcu.bb
@@ -0,0 +1,53 @@
+DESCRIPTION = "crc-mcu"
+
+DEPENDS     = ""
+SECTION     = "app"
+LICENSE     = "zte"
+PV = "1.0.0"
+PR = "r0"
+
+CLASS_COM = " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'procd', 'openwrt openwrt-services', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+"
+inherit ${CLASS_COM}
+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/test:"
+SRC_URI = " \
+    file://crc_mcu \
+    "
+
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
+S = "${WORKDIR}"
+
+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+include ${BSPDIR}/sources/meta-zxic/conf/pub.inc
+CFLAGS_append = "${ZXIC_EXTRA_CFLAGS}"
+
+#编译
+do_compile() {
+	make -C crc_mcu
+}
+
+#库文件的安装
+do_install() {
+	install -d ${D}${bindir}/
+	install -m 0755 ${S}/crc_mcu/uartcrc_mcu ${D}${bindir}/
+
+	#install elfs
+	install -d ${ELFS-PATH}/
+	install -m 0755 ${S}/crc_mcu/uartcrc_mcu ${ELFS-PATH}/
+}
+#清库
+do_cleanlibs () {
+	rm -fr ${ELFS-PATH}/crc_mcu
+}
+
+addtask  cleanlibs after do_clean  before do_cleansstate
+
+#rootfs包含的文件
+FILES_${PN} = "\
+    ${bindir}/ \
+    "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/crc-modem/crc-modem.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/crc-modem/crc-modem.bb
new file mode 100755
index 0000000..eb7f9ed
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/crc-modem/crc-modem.bb
@@ -0,0 +1,53 @@
+DESCRIPTION = "crc-modem"
+
+DEPENDS     = ""
+SECTION     = "app"
+LICENSE     = "zte"
+PV = "1.0.0"
+PR = "r0"
+
+CLASS_COM = " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'procd', 'openwrt openwrt-services', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+"
+inherit ${CLASS_COM}
+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/test:"
+SRC_URI = " \
+    file://crc_modem \
+    "
+
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
+S = "${WORKDIR}"
+
+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+include ${BSPDIR}/sources/meta-zxic/conf/pub.inc
+CFLAGS_append = "${ZXIC_EXTRA_CFLAGS}"
+
+#编译
+do_compile() {
+	make -C crc_modem
+}
+
+#库文件的安装
+do_install() {
+	install -d ${D}${bindir}/
+	install -m 0755 ${S}/crc_modem/uartcrc_modem ${D}${bindir}/
+
+	#install elfs
+	install -d ${ELFS-PATH}/
+	install -m 0755 ${S}/crc_modem/uartcrc_modem ${ELFS-PATH}/
+}
+#清库
+do_cleanlibs () {
+	rm -fr ${ELFS-PATH}/uartcrc_modem
+}
+
+addtask  cleanlibs after do_clean  before do_cleansstate
+
+#rootfs包含的文件
+FILES_${PN} = "\
+    ${bindir}/ \
+    "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/crc/crc.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/crc/crc.bb
new file mode 100755
index 0000000..71ba344
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/crc/crc.bb
@@ -0,0 +1,53 @@
+DESCRIPTION = "crc"
+
+DEPENDS     = ""
+SECTION     = "app"
+LICENSE     = "zte"
+PV = "1.0.0"
+PR = "r0"
+
+CLASS_COM = " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'procd', 'openwrt openwrt-services', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+"
+inherit ${CLASS_COM}
+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/test:"
+SRC_URI = " \
+    file://crc \
+    "
+
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
+S = "${WORKDIR}"
+
+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+include ${BSPDIR}/sources/meta-zxic/conf/pub.inc
+CFLAGS_append = "${ZXIC_EXTRA_CFLAGS}"
+
+#编译
+do_compile() {
+	make -C crc
+}
+
+#库文件的安装
+do_install() {
+	install -d ${D}${bindir}/
+	install -m 0755 ${S}/crc/crc ${D}${bindir}/
+
+	#install elfs
+	install -d ${ELFS-PATH}/
+	install -m 0755 ${S}/crc/crc ${ELFS-PATH}/
+}
+#清库
+do_cleanlibs () {
+	rm -fr ${ELFS-PATH}/crc
+}
+
+addtask  cleanlibs after do_clean  before do_cleansstate
+
+#rootfs包含的文件
+FILES_${PN} = "\
+    ${bindir}/ \
+    "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/dhcp6/dhcp6.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/dhcp6/dhcp6.bb
index cc2b085..036f45b 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/dhcp6/dhcp6.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/dhcp6/dhcp6.bb
@@ -13,7 +13,7 @@
 inherit ${CLASS_COM}

 

 #配置code路径信息

-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"

+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"

 SRC_URI = " \

     file://dhcp6 \

     ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://dhcp6s.init","", d)} \

diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/dialtest/dialtest.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/dialtest/dialtest.bb
new file mode 100755
index 0000000..85ee97c
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/dialtest/dialtest.bb
@@ -0,0 +1,50 @@
+DESCRIPTION = "dialtest"
+DEPENDS     = "libsctel"
+SECTION     = "app"
+LICENSE     = "zte"
+PV = "1.0.0"
+PR = "r0"
+
+CLASS_COM = " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'procd', 'openwrt openwrt-services', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+"
+inherit ${CLASS_COM}
+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/test:"
+SRC_URI = " \
+    file://dialtest \		  
+    "
+
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
+S = "${WORKDIR}"
+
+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+
+
+do_compile() {
+	make -C dialtest
+}
+
+do_install () {
+	install -d ${D}${bindir}/
+	install -m 0755 ${S}/dialtest/dialtest ${D}${bindir}/
+	
+	#install elfs
+	install -d ${ELFS-PATH}/
+	install -m 0755 ${S}/dialtest/dialtest ${ELFS-PATH}/	
+}
+
+do_cleanlibs () {
+	rm -fr ${ELFS-PATH}/dialtest
+}
+
+addtask  cleanlibs after do_clean  before do_cleansstate
+
+FILES_${PN} = "\
+    ${bindir}/ \
+    "
+
+RDEPENDS_${PN} = " libsctel"
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/ethtest/ethtest.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/ethtest/ethtest.bb
new file mode 100644
index 0000000..64930c6
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/ethtest/ethtest.bb
@@ -0,0 +1,53 @@
+DESCRIPTION = "ethtest"
+
+DEPENDS     = "libbsp"
+SECTION     = "app"
+LICENSE     = "zte"
+PV = "1.0.0"
+PR = "r0"
+
+CLASS_COM = " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'procd', 'openwrt openwrt-services', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+"
+inherit ${CLASS_COM}
+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/test:"
+SRC_URI = " \
+    file://ethtest \
+    "
+
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
+S = "${WORKDIR}"
+
+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+include ${BSPDIR}/sources/meta-zxic/conf/pub.inc
+CFLAGS_append = "${ZXIC_EXTRA_CFLAGS}"
+
+#编译
+do_compile() {
+	make -C ethtest
+}
+
+#库文件的安装
+do_install() {
+	install -d ${D}${bindir}/
+	install -m 0755 ${S}/ethtest/ethtest ${D}${bindir}/
+
+	#install elfs
+	install -d ${ELFS-PATH}/
+	install -m 0755 ${S}/ethtest/ethtest ${ELFS-PATH}/
+}
+#清库
+do_cleanlibs () {
+	rm -fr ${ELFS-PATH}/ethtest
+}
+
+addtask  cleanlibs after do_clean  before do_cleansstate
+
+#rootfs包含的文件
+FILES_${PN} = "\
+    ${bindir}/ \
+    "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/fluxstat/fluxstat.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/fluxstat/fluxstat.bb
index 46ee966..631585e 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/fluxstat/fluxstat.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/fluxstat/fluxstat.bb
@@ -13,7 +13,7 @@
 inherit ${CLASS_COM}
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://fluxstat \
 		  ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://fluxstat.init","", d)} \
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/fscheck/fscheck.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/fscheck/fscheck.bb
index 5d19220..e50580f 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/fscheck/fscheck.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/fscheck/fscheck.bb
@@ -13,7 +13,7 @@
 inherit ${CLASS_COM}
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
     file://fscheck \
     "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/fsmonitor/fsmonitor.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/fsmonitor/fsmonitor.bb
new file mode 100755
index 0000000..8f23fcd
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/fsmonitor/fsmonitor.bb
@@ -0,0 +1,75 @@
+DESCRIPTION = "fsmonitor"
+DEPENDS     = ""
+SECTION     = "app"
+LICENSE     = "zte"
+PV = "1.0.0"
+PR = "r0"
+
+CLASS_COM = " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'procd', 'openwrt openwrt-services', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+"
+inherit ${CLASS_COM}
+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
+SRC_URI = " \
+		  file://fsmonitor \
+		  ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://fsmonitor.init","", d)} \
+		  ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "file://fsmonitor.service","", d)} \
+		  ${@bb.utils.contains("DISTRO_FEATURES", "sysvinit", "file://fsmonitor.sysvinit","", d)} \
+          "
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
+S = "${WORKDIR}"
+S_SRC_PATH = "${S}/fsmonitor"
+
+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+include ${BSPDIR}/sources/meta-zxic/conf/pub.inc
+CFLAGS_append = "${ZXIC_EXTRA_CFLAGS}"
+
+
+do_compile() {
+	make -C ${S_SRC_PATH}
+}
+
+do_install () {
+	install -d ${D}${bindir}/		
+	install -m 0755 ${S_SRC_PATH}/fsmonitor ${D}${bindir}/
+	
+	if ${@bb.utils.contains('DISTRO_FEATURES','procd','true','false',d)}; then
+		install -Dm 0755 ${WORKDIR}/fsmonitor.init ${D}${sysconfdir}/init.d/fsmonitor
+	fi
+
+	if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+		install -d ${D}${systemd_unitdir}/system
+		install -m 0644 ${WORKDIR}/fsmonitor.service ${D}${systemd_unitdir}/system
+	fi
+	
+	if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
+		install -Dm 0755 ${WORKDIR}/fsmonitor.sysvinit ${D}${sysconfdir}/init.d/fsmonitor
+		install -d ${D}${sysconfdir}/rcS.d
+		ln -s ../init.d/fsmonitor ${D}${sysconfdir}/rcS.d/S75ubi_nl
+	fi
+	
+	#install elfs
+	install -d ${ELFS-PATH}/
+	install -m 0755 ${S_SRC_PATH}/fsmonitor ${ELFS-PATH}/
+}
+
+do_cleanlibs () {
+	rm -fr ${ELFS-PATH}/fsmonitor
+	rm -fr ${D}${bindir}/fsmonitor
+}
+
+addtask  cleanlibs after do_clean  before do_cleansstate
+
+FILES_${PN} = "\
+    ${bindir}/ \
+    ${@bb.utils.contains("DISTRO_FEATURES", "procd", "${sysconfdir}/init.d/fsmonitor","", d)} \
+    ${@bb.utils.contains("DISTRO_FEATURES", "sysvinit", "${sysconfdir}/","", d)} \
+    "
+SYSTEMD_SERVICE_${PN}     = "fsmonitor.service"
+SYSTEMD_AUTO_ENABLE_${PN} = "enable"
+
+#RDEPENDS_${PN} = ""
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr/at_svr.init b/cap/zx297520v3/sources/meta-zxic/recipes-app/fsmonitor/fsmonitor/fsmonitor.init
similarity index 79%
rename from cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr/at_svr.init
rename to cap/zx297520v3/sources/meta-zxic/recipes-app/fsmonitor/fsmonitor/fsmonitor.init
index e1ee5d9..1008064 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr/at_svr.init
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/fsmonitor/fsmonitor/fsmonitor.init
@@ -1,14 +1,14 @@
 #!/bin/sh /etc/rc.common
 
 START=17
-STOP=85
+STOP=75
 USE_PROCD=1
 
-logger -t at_svr
+logger -t fsmonitor
 
 start_service() {
 	procd_open_instance
-	procd_set_param command /usr/bin/at_svr
+	procd_set_param command /usr/bin/fsmonitor
 	procd_set_param stdout 0  # forward stdout of the command to logd
 	procd_set_param stderr 0  # same for stderr
 	procd_set_param respawn
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/fsmonitor/fsmonitor/fsmonitor.service b/cap/zx297520v3/sources/meta-zxic/recipes-app/fsmonitor/fsmonitor/fsmonitor.service
new file mode 100755
index 0000000..ae2a950
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/fsmonitor/fsmonitor/fsmonitor.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=The fsmonitor service
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/fsmonitor
+Restart=always
+
+[Install]
+WantedBy=basic.target
+
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr/at_svr.sysvinit b/cap/zx297520v3/sources/meta-zxic/recipes-app/fsmonitor/fsmonitor/fsmonitor.sysvinit
similarity index 80%
copy from cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr/at_svr.sysvinit
copy to cap/zx297520v3/sources/meta-zxic/recipes-app/fsmonitor/fsmonitor/fsmonitor.sysvinit
index 29ccdb1..952c6b6 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr/at_svr.sysvinit
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/fsmonitor/fsmonitor/fsmonitor.sysvinit
@@ -3,20 +3,20 @@
 # Run the daemon
 #
 
-DAEMON="at_svr"
+DAEMON="fsmonitor"
 PIDFILE="/var/run/$DAEMON.pid"
-EXEC="/usr/bin/at_svr"
+EXEC="/usr/bin/fsmonitor"
 EXEC_ARGS=""
 
 
 start() {
-	echo -n "Starting $DAEMON... "
+	echo "Starting $DAEMON... "
 	start-stop-daemon --no-close -S -b -m -p $PIDFILE -x $EXEC -- $EXEC_ARGS
 	[ $? -eq 0 ] && echo "OK" || echo "ERROR"
 }
 
 stop() {
-	echo -n "Stopping $DAEMON... "
+	echo "Stopping $DAEMON... "
 	start-stop-daemon -K -p $PIDFILE
 	[ $? -eq 0 ] && echo "OK" || echo "ERROR"
 }
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/i2ctest/i2ctest.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/i2ctest/i2ctest.bb
new file mode 100644
index 0000000..3a2c18b
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/i2ctest/i2ctest.bb
@@ -0,0 +1,53 @@
+DESCRIPTION = "i2ctest"
+
+DEPENDS     = "libbsp"
+SECTION     = "app"
+LICENSE     = "zte"
+PV = "1.0.0"
+PR = "r0"
+
+CLASS_COM = " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'procd', 'openwrt openwrt-services', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+"
+inherit ${CLASS_COM}
+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/test:"
+SRC_URI = " \
+    file://i2ctest \
+    "
+
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
+S = "${WORKDIR}"
+
+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+include ${BSPDIR}/sources/meta-zxic/conf/pub.inc
+CFLAGS_append = "${ZXIC_EXTRA_CFLAGS}"
+
+#编译
+do_compile() {
+	make -C i2ctest
+}
+
+#库文件的安装
+do_install() {
+	install -d ${D}${bindir}/
+	install -m 0755 ${S}/i2ctest/i2ctest ${D}${bindir}/
+
+	#install elfs
+	install -d ${ELFS-PATH}/
+	install -m 0755 ${S}/i2ctest/i2ctest ${ELFS-PATH}/
+}
+#清库
+do_cleanlibs () {
+	rm -fr ${ELFS-PATH}/i2ctest
+}
+
+addtask  cleanlibs after do_clean  before do_cleansstate
+
+#rootfs包含的文件
+FILES_${PN} = "\
+    ${bindir}/ \
+    "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libatchn/libatchn.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libatchn/libatchn.bb
index 5482abb..1a27edd 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/libatchn/libatchn.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libatchn/libatchn.bb
@@ -6,7 +6,7 @@
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://libatchn \
           "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libatext/libatext.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libatext/libatext.bb
index 8dd16e4..0f5dcee 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/libatext/libatext.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libatext/libatext.bb
@@ -6,7 +6,7 @@
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://libatext \
           "
@@ -20,7 +20,7 @@
 #引用公用头文件和编译选项。
 include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
 include ${BSPDIR}/sources/meta-zxic/conf/pub.inc
-CFLAGS_append = "-I ${BSPDIR}/zxic_code/zxic_source/zxic_app_open/at_ctl/inc"
+CFLAGS_append = "-I ${BSPDIR}/zxic_code/zxic_source/zxic_app_open/platform/at_ctl/inc"
 CFLAGS_append += "${ZXIC_EXTRA_CFLAGS}"
 LIBS_append += "${@bb.utils.contains('DISTRO_FEATURES', 'volte', '-lvoice', '', d)}"
 #include atext.inc
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libatreg/libatreg.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libatreg/libatreg.bb
new file mode 100755
index 0000000..1dc923b
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libatreg/libatreg.bb
@@ -0,0 +1,49 @@
+DESCRIPTION = "libatreg"
+SECTION     = "lib"
+LICENSE     = "zte"
+PV          = "1.0.0"
+PR          = "r0"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
+SRC_URI = " \
+          file://libatreg \
+          "
+
+DEPENDS = "libsoftap libatutils libnvram"
+
+S       = "${WORKDIR}"
+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+include ${BSPDIR}/sources/meta-zxic/conf/pub.inc
+CFLAGS_append = "-I ${BSPDIR}/zxic_code/zxic_source/zxic_app_open/platform/at_ctl/inc"
+CFLAGS_append += "${ZXIC_EXTRA_CFLAGS}"
+LIBS_append += "${@bb.utils.contains('DISTRO_FEATURES', 'volte', '-lvoice', '', d)}"
+
+do_compile () {
+	make -C libatreg
+}
+
+do_install () {
+	install -d ${D}${libdir}/
+	install -d ${D}/usr/include
+	install -m 0755 ${S}/libatreg/libatreg.so  ${D}${libdir}/
+	install -m 0755 ${S}/libatreg/libatreg.a   ${D}${libdir}/
+
+	install -m 0644 ${S}/libatreg/*.h ${D}/usr/include	
+	
+	#install elfs
+	install -d ${ELFS-PATH}/
+	install -m 0755 ${S}/libatreg/libatreg.so ${ELFS-PATH}/
+}
+
+#清库
+do_cleanlibs () {
+	rm -fr ${ELFS-PATH}/libatreg.so
+}
+
+FILES_${PN}       += "${libdir}/*.so"
+FILES_${PN}-dbg   += "${libdir}/.debug"
+FILES_SOLIBSDEV   = ""
+INSANE_SKIP_${PN} = "dev-so"
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libatutils/libatutils.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libatutils/libatutils.bb
index de63817..bd76d42 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/libatutils/libatutils.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libatutils/libatutils.bb
@@ -6,7 +6,7 @@
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://libatutils \
           "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libbinder/libbinder.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libbinder/libbinder.bb
index dfbccea..7f384a9 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/libbinder/libbinder.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libbinder/libbinder.bb
@@ -7,7 +7,7 @@
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/sdk:"
 SRC_URI = " \
           file://binder \
           "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libbsp/libbsp.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libbsp/libbsp.bb
new file mode 100644
index 0000000..b8df422
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libbsp/libbsp.bb
@@ -0,0 +1,53 @@
+DESCRIPTION = "libbsp"
+SECTION     = "lib"
+LICENSE     = "zte"
+PV          = "1.0.0"
+PR          = "r0"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/sdk:"
+SRC_URI = " \
+           file://libbsp \
+          "
+
+S       = "${WORKDIR}"
+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+include ${BSPDIR}/sources/meta-zxic/conf/pub.inc
+
+do_compile () {
+	make -C libbsp
+}
+
+#库和头文件的安装
+do_install () {
+	install -d ${D}${libdir}/
+	install -d ${D}/usr/include
+	install -m 0755 ${S}/libbsp/libbsp.so  ${D}${libdir}/
+	install -m 0755 ${S}/libbsp/libbsp.a   ${D}${libdir}/
+	install -m 0644 ${S}/libbsp/sc_uart.h     ${D}/usr/include/
+	install -m 0644 ${S}/libbsp/sc_i2c.h     ${D}/usr/include/
+	install -m 0644 ${S}/libbsp/sc_spi.h     ${D}/usr/include/
+	install -m 0644 ${S}/libbsp/sc_gpio.h     ${D}/usr/include/
+	install -m 0644 ${S}/libbsp/sc_irq.h     ${D}/usr/include/
+	install -m 0644 ${S}/libbsp/sc_pm.h     ${D}/usr/include/
+	install -m 0644 ${S}/libbsp/sc_bsp.h     ${D}/usr/include/
+	install -m 0644 ${S}/libbsp/sc_eth.h     ${D}/usr/include/
+
+	install -d ${ELFS-PATH}/
+	install -m 0755 ${S}/libbsp/libbsp.so ${ELFS-PATH}/
+
+}
+
+#清库
+do_cleanlibs () {
+	rm -fr ${ELFS-PATH}/libbsp.so
+}
+
+
+FILES_${PN}       += "${libdir}/*.so"
+FILES_${PN}-dbg   += "${libdir}/.debug"
+FILES_SOLIBSDEV   = ""
+INSANE_SKIP_${PN} = "dev-so"
+
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libdebug-info/libdebug-info.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libdebug-info/libdebug-info.bb
index 17d1719..6d62270 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/libdebug-info/libdebug-info.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libdebug-info/libdebug-info.bb
@@ -6,7 +6,7 @@
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/sdk:"
 SRC_URI = " \
            file://libdebug_info \
           "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libmedia/libmedia.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libmedia/libmedia.bb
new file mode 100755
index 0000000..3fed4cd
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libmedia/libmedia.bb
@@ -0,0 +1,46 @@
+DESCRIPTION = "libmedia"

+DEPENDS = "libvoice"

+SECTION     = "lib"
+LICENSE     = "zte"
+PV          = "1.0.0"
+PR          = "r0"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"

+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/sdk:"
+SRC_URI = " \
+          file://libmedia \

+		  "
+
+S = "${WORKDIR}"

+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc

+CFLAGS_append    = "-I ${BSPDIR}/zxic_code/zxic_source/zxic_app_open/platform/libvoice/include"

+
+#编译
+do_compile () {
+	make -C libmedia

+}
+
+#库和头文件的安装
+do_install () {
+	install -d ${D}${libdir}/
+	install -d ${D}/usr/include
+	install -m 0755 ${S}/libmedia/libmedia.so  ${D}${libdir}/

+	install -m 0755 ${S}/libmedia/libmedia.a   ${D}${libdir}/

+	

+	#install elfs

+	install -d ${ELFS-PATH}/

+	install -m 0755 ${S}/libmedia/libmedia.so ${ELFS-PATH}/

+}
+
+#清库

+do_cleanlibs () {

+	rm -fr ${ELFS-PATH}/libmedia.so

+}

+

+#rootfs包含的文件
+FILES_${PN}       += "${libdir}/*.so"
+FILES_${PN}-dbg   += "${libdir}/.debug"
+FILES_SOLIBSDEV   = ""

+INSANE_SKIP_${PN} = "dev-so"

diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libnvram/libnvram.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libnvram/libnvram.bb
index 5cae728..2633a87 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/libnvram/libnvram.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libnvram/libnvram.bb
@@ -6,7 +6,7 @@
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/sdk:"
 SRC_URI = " \
           file://libnvram \
           "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libreference-ril/libreference-ril.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libreference-ril/libreference-ril.bb
index 892ded5..c354826 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/libreference-ril/libreference-ril.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libreference-ril/libreference-ril.bb
@@ -7,7 +7,7 @@
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/sdk:"
 SRC_URI = " \
           file://ril/ \
           "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libril/libril.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libril/libril.bb
index 4e5603d..3f0fbb7 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/libril/libril.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libril/libril.bb
@@ -7,7 +7,7 @@
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/sdk:"
 SRC_URI = " \
           file://ril \
           "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libscipc/libscipc.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libscipc/libscipc.bb
new file mode 100755
index 0000000..7650e8c
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libscipc/libscipc.bb
@@ -0,0 +1,47 @@
+DESCRIPTION = "libscipc"
+DEPENDS     = ""
+SECTION     = "lib"
+LICENSE     = "zte"
+PV          = "1.0.0"
+PR          = "r0"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/sdk:"
+SRC_URI = " \
+          file://libscipc \
+          "
+
+S = "${WORKDIR}"
+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+
+#编译
+do_compile () {
+	make -C libscipc
+}
+
+#库和头文件的安装
+do_install () {
+	install -d ${D}${libdir}/
+	install -d ${D}/usr/include
+	install -m 0755 ${S}/libscipc/libscipc.so  ${D}${libdir}/
+	install -m 0755 ${S}/libscipc/libscipc.a   ${D}${libdir}/
+	
+	install -m 0644 ${S}/libscipc/sc_ipc.h ${D}/usr/include/
+	
+	#install elfs
+	install -d ${ELFS-PATH}/
+	install -m 0755 ${S}/libscipc/libscipc.so ${ELFS-PATH}/
+}
+
+#清库
+do_cleanlibs () {
+	rm -fr ${ELFS-PATH}/libscipc.so
+}
+
+#rootfs包含的文件
+FILES_${PN}       += "${libdir}/*.so"
+FILES_${PN}-dbg   += "${libdir}/.debug"
+FILES_SOLIBSDEV   = ""
+INSANE_SKIP_${PN} = "dev-so"
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libsctel/libsctel.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libsctel/libsctel.bb
new file mode 100755
index 0000000..ec3beff
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libsctel/libsctel.bb
@@ -0,0 +1,47 @@
+DESCRIPTION = "libsctel"
+DEPENDS     = "libscipc libsofttimer libsoftap libatutils libnvram libatreg libgcc"
+SECTION     = "lib"
+LICENSE     = "zte"
+PV          = "1.0.0"
+PR          = "r0"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/sdk:"
+SRC_URI = " \
+          file://libsctel \
+          "
+
+S       = "${WORKDIR}"
+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+CFLAGS_append = "-I ${BSPDIR}/zxic_code/zxic_source/zxic_app_open/platform/at_ctl/inc"
+
+do_compile () {
+	make -C libsctel
+}
+
+do_install () {
+	install -d ${D}${libdir}/
+	install -d ${D}/usr/include
+	
+	install -m 0755 ${S}/libsctel/libsctel.so  ${D}${libdir}/
+	install -m 0755 ${S}/libsctel/libsctel.a   ${D}${libdir}/
+	
+	install -m 0644 ${S}/libsctel/include/*.h ${D}/usr/include/
+
+	#install elfs
+	install -d ${ELFS-PATH}/
+	install -m 0755 ${S}/libsctel/libsctel.so ${ELFS-PATH}/
+}
+
+#清库
+do_cleanlibs () {
+	rm -fr ${ELFS-PATH}/libsctel.so
+}
+
+FILES_${PN}       += "${libdir}/*.so"
+FILES_${PN}-dbg   += "${libdir}/.debug"
+FILES_SOLIBSDEV   = ""
+INSANE_SKIP_${PN} = "dev-so"
+RDEPENDS_${PN} = " libscipc libsofttimer libsoftap libatutils libnvram libatreg libgcc"
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libsoftap/libsoftap.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libsoftap/libsoftap.bb
index b5e268d..4e102f9 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/libsoftap/libsoftap.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libsoftap/libsoftap.bb
@@ -7,7 +7,7 @@
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://libsoftap \
           "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libsofttimer/libsofttimer.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libsofttimer/libsofttimer.bb
index e159251..c50c362 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/libsofttimer/libsofttimer.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libsofttimer/libsofttimer.bb
@@ -5,7 +5,7 @@
 PR          = "r0"
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/sdk:"
 SRC_URI = " \
           file://libsofttimer \
           "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libsqlite/libsqlite.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libsqlite/libsqlite.bb
index 3d7240f..529d0e1 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/libsqlite/libsqlite.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libsqlite/libsqlite.bb
@@ -6,7 +6,7 @@
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://libsqlite \
           "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libtelsvr/libtelsvr.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libtelsvr/libtelsvr.bb
new file mode 100755
index 0000000..94ecc60
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libtelsvr/libtelsvr.bb
@@ -0,0 +1,49 @@
+DESCRIPTION = "libtelsvr"
+SECTION     = "lib"
+LICENSE     = "zte"
+PV          = "1.0.0"
+PR          = "r0"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
+SRC_URI = " \
+          file://libtelsvr \
+          "
+
+S = "${WORKDIR}"
+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+
+#编译
+do_compile () {
+	make -C libtelsvr
+}
+
+#库和头文件的安装
+do_install () {
+	install -d ${D}${libdir}/
+	install -d ${D}/usr/include
+	#install -m 0755 ${S}/libtelsvr/libtelsvr.so  ${D}${libdir}/
+	install -m 0755 ${S}/libtelsvr/lib/libtelsvr.a   ${D}${libdir}/
+	
+	install -m 0644 ${S}/libtelsvr/include/*.h ${D}/usr/include/
+	install -m 0644 ${S}/libtelsvr/include/pal/os/*.h ${D}/usr/include/
+	install -m 0644 ${S}/libtelsvr/include/pal/dm/*.h ${D}/usr/include/
+	
+	#install elfs
+	install -d ${ELFS-PATH}/
+
+	install -m 0755 ${S}/libtelsvr/lib/libtelsvr.a ${ELFS-PATH}/
+}
+
+#清库
+do_cleanlibs () {
+	rm -fr ${ELFS-PATH}/libtelsvr.a
+}
+
+#rootfs包含的文件
+FILES_${PN}       += "${libdir}/*.so"
+FILES_${PN}-dbg   += "${libdir}/.debug"
+FILES_SOLIBSDEV   = ""
+INSANE_SKIP_${PN} = "dev-so"
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/libtinyalsa.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/libtinyalsa.bb
index e33f9ea..22ad792 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/libtinyalsa.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/libtinyalsa.bb
@@ -6,7 +6,7 @@
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://libtinyalsa \

           "

@@ -24,10 +24,12 @@
 #库和头文件的安装
 do_install () {
 	install -d ${D}${libdir}/
-	install -d ${D}/usr/include
+	install -d ${D}/usr/include/tinyalsa
 	install -m 0755 ${S}/libtinyalsa/libtinyalsa.so  ${D}${libdir}/

 	install -m 0755 ${S}/libtinyalsa/libtinyalsa.a   ${D}${libdir}/

 	

+	install -m 0644 ${S}/libtinyalsa/include/tinyalsa/*.h ${D}/usr/include/tinyalsa

+	

 	#install elfs

 	install -d ${ELFS-PATH}/

 	install -m 0755 ${S}/libtinyalsa/libtinyalsa.so ${ELFS-PATH}/

diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libvoice/libvoice.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libvoice/libvoice.bb
index 11dbd16..8618a97 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/libvoice/libvoice.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libvoice/libvoice.bb
@@ -7,7 +7,7 @@
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://libvoice \

           "
@@ -15,7 +15,7 @@
 S = "${WORKDIR}"
 #引用公用头文件和编译选项。
 include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc

-CFLAGS_append    = "-I ${BSPDIR}/zxic_code/zxic_source/zxic_app_open/libtinyalsa/include"

+CFLAGS_append    = "-I ${BSPDIR}/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/include"

 
 #编译
 do_compile () {
@@ -28,7 +28,7 @@
 	install -d ${D}/usr/include
 	install -m 0755 ${S}/libvoice/libvoice.so  ${D}${libdir}/

 	install -m 0755 ${S}/libvoice/libvoice.a   ${D}${libdir}/

-	install -m 0644 ${S}/libvoice/include/voice_lib.h     ${D}/usr/include/	

+	install -m 0644 ${S}/libvoice/include/*.h     ${D}/usr/include/	

 	

 	#install elfs

 	install -d ${ELFS-PATH}/

diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libzxic-pbm/libzxic-pbm.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libzxic-pbm/libzxic-pbm.bb
index 2cce5b3..97acd80 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/libzxic-pbm/libzxic-pbm.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libzxic-pbm/libzxic-pbm.bb
@@ -7,7 +7,7 @@
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://libzxic-pbm \

           "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/libzxiceap/libzxiceap.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/libzxiceap/libzxiceap.bb
index ec1dd09..2448fcb 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/libzxiceap/libzxiceap.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/libzxiceap/libzxiceap.bb
@@ -6,14 +6,14 @@
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://libzxiceap \
           "
 
 S = "${WORKDIR}"
 #引用公用头文件和编译选项。
-include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+#include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
 
 #编译
 do_compile () {
@@ -28,11 +28,11 @@
 	install -m 0755 ${S}/libzxiceap/libzxiceap.a   ${D}${libdir}/
 	install -m 0644 ${S}/libzxiceap/inc/eap_api.h ${D}/usr/include/
 	install -m 0644 ${S}/libzxiceap/inc/os_type_def.h ${D}/usr/include/
-	#install -m 0644 ${S}/libzxiceap/inc/message.h ${D}/usr/include/
+	install -m 0644 ${S}/libzxiceap/inc/message.h ${D}/usr/include/
 	install -m 0644 ${S}/libzxiceap/inc/max_macro.h ${D}/usr/include/
 	install -m 0644 ${S}/libzxiceap/inc/eap_log.h ${D}/usr/include/
 	install -m 0644 ${S}/libzxiceap/inc/zxic_list.h ${D}/usr/include/
-	#install -m 0644 ${S}/libzxiceap/inc/soft_timer.h ${D}/usr/include/
+	install -m 0644 ${S}/libzxiceap/inc/soft_timer.h ${D}/usr/include/
 	install -m 0644 ${S}/libzxiceap/inc/at_reg.h ${D}/usr/include/
 	install -m 0644 ${S}/libzxiceap/inc/at_utils.h ${D}/usr/include/
 	#install elfs
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/nv-rpc-daemon/nv-rpc-daemon.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/nv-rpc-daemon/nv-rpc-daemon.bb
index e7e51e8..4e58955 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/nv-rpc-daemon/nv-rpc-daemon.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/nv-rpc-daemon/nv-rpc-daemon.bb
@@ -13,7 +13,7 @@
 inherit ${CLASS_COM}
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
     file://nv-rpc-daemon \
     ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://nv-rpc-daemon.init","", d)} \
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/nvserver/nvserver.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/nvserver/nvserver.bb
index 216c716..817fab5 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/nvserver/nvserver.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/nvserver/nvserver.bb
@@ -13,7 +13,7 @@
 inherit ${CLASS_COM}
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
     file://nvserver \
     ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://nvserver.init","", d)} \
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/phonebook/phonebook.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/phonebook/phonebook.bb
index d276a41..1c53be6 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/phonebook/phonebook.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/phonebook/phonebook.bb
@@ -13,7 +13,7 @@
 inherit ${CLASS_COM}
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://phonebook \
 		  ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://phonebook.init","", d)} \
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/rild/rild.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/rild/rild.bb
index e4c5c76..1474e86 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/rild/rild.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/rild/rild.bb
@@ -12,7 +12,7 @@
 inherit ${CLASS_COM}
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/sdk:"
 SRC_URI = " \
     file://rild \
     ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://rild.init","", d)} \
@@ -28,7 +28,7 @@
 
 #编译
 do_compile() {
-	make -C rild CONFIG_RIL_CAP_SUPPORT=${CONFIG_RIL_CAP_SUPPORT}
+	make -C rild
 }
 
 #库文件的安装
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/rtc-service/rtc-service.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/rtc-service/rtc-service.bb
index a49c4f4..7f21bb1 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/rtc-service/rtc-service.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/rtc-service/rtc-service.bb
@@ -12,7 +12,7 @@
 inherit ${CLASS_COM}
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://rtc-service \
 		  ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://rtc-service.init","", d)} \
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/sc-at-test/sc-at-test.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/sc-at-test/sc-at-test.bb
new file mode 100755
index 0000000..caa002d
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/sc-at-test/sc-at-test.bb
@@ -0,0 +1,65 @@
+DESCRIPTION = "sc_at_test"
+DEPENDS = "libsctel libsoftap libatutils libsofttimer libnvram"
+SECTION     = "app"
+LICENSE     = "zte"
+PV = "1.0.0"
+PR = "r0"
+
+CLASS_COM = " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'procd', 'openwrt openwrt-services', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+"
+inherit ${CLASS_COM}
+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+SRC_URI = " \
+          file://test/sc_at_test \		  
+		  ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://sc_at_test.init","", d)} \
+		  ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "file://sc_at_test.service","", d)} \
+          "
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
+S = "${WORKDIR}"
+S_SRC_PATH = "${S}/test/sc_at_test"
+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+#include +=
+#inherit autotools pkgconfig systemd
+
+do_compile() {
+	make -C ${S_SRC_PATH}
+}
+
+do_install () {
+	install -d ${D}${bindir}/
+	install -m 0755 ${S_SRC_PATH}/sc_at_test ${D}${bindir}/
+	
+	if ${@bb.utils.contains('DISTRO_FEATURES','procd','true','false',d)}; then
+		install -Dm 0755 ${WORKDIR}/sc_at_test.init ${D}${sysconfdir}/init.d/sc_at_test
+	fi
+
+	if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+		install -d ${D}${systemd_unitdir}/system
+		install -m 0644 ${WORKDIR}/sc_at_test.service ${D}${systemd_unitdir}/system
+	fi
+	
+	#install elfs
+	install -d ${ELFS-PATH}/
+	install -m 0755 ${S_SRC_PATH}/sc_at_test ${ELFS-PATH}/	
+}
+
+do_cleanlibs () {
+	rm -fr ${ELFS-PATH}/sc_at_test
+}
+
+addtask  cleanlibs after do_clean  before do_cleansstate
+
+FILES_${PN} = "\
+    ${bindir}/ \
+    ${@bb.utils.contains("DISTRO_FEATURES", "procd", "${sysconfdir}/init.d/sc_at_test","", d)} \
+    "
+SYSTEMD_SERVICE_${PN}     = "sc_at_test.service"
+SYSTEMD_AUTO_ENABLE_${PN} = "disable"
+
+
+RDEPENDS_${PN} = "libsctel libsoftap libatutils libsofttimer libnvram"
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/sc-at-test/sc_at_test/sc_at_test.init b/cap/zx297520v3/sources/meta-zxic/recipes-app/sc-at-test/sc_at_test/sc_at_test.init
new file mode 100755
index 0000000..5d02fdf
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/sc-at-test/sc_at_test/sc_at_test.init
@@ -0,0 +1,21 @@
+#!/bin/sh /etc/rc.common
+
+START=18
+STOP=85
+USE_PROCD=1
+
+logger -t sc_at_send
+
+start_service() {
+	procd_open_instance
+	procd_set_param command /usr/bin/sc_at_send
+	procd_set_param stdout 1  # forward stdout of the command to logd
+	procd_set_param stderr 1  # same for stderr
+	procd_set_param respawn
+	procd_close_instance
+}
+
+stop_service() 
+{
+	echo "add clean code"
+}
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/sc-at-test/sc_at_test/sc_at_test.service b/cap/zx297520v3/sources/meta-zxic/recipes-app/sc-at-test/sc_at_test/sc_at_test.service
new file mode 100755
index 0000000..0e0dc1b
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/sc-at-test/sc_at_test/sc_at_test.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=The sc_at_send service
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/sc_at_send
+Restart=always
+
+[Install]
+WantedBy=basic.target
+
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/sc-nw-mgr-test/sc-nw-mgr-test.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/sc-nw-mgr-test/sc-nw-mgr-test.bb
new file mode 100755
index 0000000..52898fd
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/sc-nw-mgr-test/sc-nw-mgr-test.bb
@@ -0,0 +1,50 @@
+DESCRIPTION = "sc_nw_mgr_test"
+DEPENDS     = "libsctel"
+SECTION     = "app"
+LICENSE     = "zte"
+PV = "1.0.0"
+PR = "r0"
+
+CLASS_COM = " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'procd', 'openwrt openwrt-services', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+"
+inherit ${CLASS_COM}
+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/test:"
+SRC_URI = " \
+    file://sc_nw_mgr_test \		  
+    "
+
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
+S = "${WORKDIR}"
+
+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+
+
+do_compile() {
+	make -C sc_nw_mgr_test
+}
+
+do_install () {
+	install -d ${D}${bindir}/
+	install -m 0755 ${S}/sc_nw_mgr_test/sc_nw_mgr_test ${D}${bindir}/
+	
+	#install elfs
+	install -d ${ELFS-PATH}/
+	install -m 0755 ${S}/sc_nw_mgr_test/sc_nw_mgr_test ${ELFS-PATH}/	
+}
+
+do_cleanlibs () {
+	rm -fr ${ELFS-PATH}/sc_nw_mgr_test
+}
+
+addtask  cleanlibs after do_clean  before do_cleansstate
+
+FILES_${PN} = "\
+    ${bindir}/ \
+    "
+
+RDEPENDS_${PN} = " libsctel"
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/sim-demo/sim-demo.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/sim-demo/sim-demo.bb
new file mode 100755
index 0000000..3db9c17
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/sim-demo/sim-demo.bb
@@ -0,0 +1,64 @@
+DESCRIPTION = "sim_demo"
+DEPENDS     = "libsctel libscipc"
+SECTION     = "app"
+LICENSE     = "zte"
+PV = "1.0.0"
+PR = "r0"
+
+CLASS_COM = " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'procd', 'openwrt openwrt-services', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+"
+inherit ${CLASS_COM}
+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+SRC_URI = " \
+          file://test/sim_demo \		  
+		  ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://sim_demo.init","", d)} \
+		  ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "file://sim_demo.service","", d)} \
+          "
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
+S = "${WORKDIR}"
+S_SRC_PATH = "${S}/test/sim_demo"
+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+
+#inherit autotools pkgconfig systemd
+
+do_compile() {
+	make -C ${S_SRC_PATH}
+}
+
+do_install () {
+	install -d ${D}${bindir}/
+	install -m 0755 ${S_SRC_PATH}/sim_demo ${D}${bindir}/
+	
+	if ${@bb.utils.contains('DISTRO_FEATURES','procd','true','false',d)}; then
+		install -Dm 0755 ${WORKDIR}/sim_demo.init ${D}${sysconfdir}/init.d/sim_demo
+	fi
+
+	if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+		install -d ${D}${systemd_unitdir}/system
+		install -m 0644 ${WORKDIR}/sim_demo.service ${D}${systemd_unitdir}/system
+	fi
+	
+	#install elfs
+	install -d ${ELFS-PATH}/
+	install -m 0755 ${S_SRC_PATH}/sim_demo ${ELFS-PATH}/	
+}
+
+do_cleanlibs () {
+	rm -fr ${ELFS-PATH}/sim_demo
+}
+
+addtask  cleanlibs after do_clean  before do_cleansstate
+
+FILES_${PN} = "\
+    ${bindir}/ \
+    ${@bb.utils.contains("DISTRO_FEATURES", "procd", "${sysconfdir}/init.d/sim_demo","", d)} \
+    "
+SYSTEMD_SERVICE_${PN}     = "sim_demo.service"
+SYSTEMD_AUTO_ENABLE_${PN} = "disable"
+
+RDEPENDS_${PN} = " libsctel libscipc"
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/sim-demo/sim-demo/sim_demo.init b/cap/zx297520v3/sources/meta-zxic/recipes-app/sim-demo/sim-demo/sim_demo.init
new file mode 100755
index 0000000..b7e4fa7
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/sim-demo/sim-demo/sim_demo.init
@@ -0,0 +1,21 @@
+#!/bin/sh /etc/rc.common
+
+START=18
+STOP=85
+USE_PROCD=1
+
+logger -t sim_demo
+
+start_service() {
+	procd_open_instance
+	procd_set_param command /usr/bin/sim_demo
+	procd_set_param stdout 1  # forward stdout of the command to logd
+	procd_set_param stderr 1  # same for stderr
+	procd_set_param respawn
+	procd_close_instance
+}
+
+stop_service() 
+{
+	echo "add clean code"
+}
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/sim-demo/sim-demo/sim_demo.service b/cap/zx297520v3/sources/meta-zxic/recipes-app/sim-demo/sim-demo/sim_demo.service
new file mode 100755
index 0000000..6765ff2
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/sim-demo/sim-demo/sim_demo.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=The cc_demo service
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/cc_demo
+Restart=always
+
+[Install]
+WantedBy=basic.target
+
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/sms/sms.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/sms/sms.bb
index e3184ac..e279a92 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/sms/sms.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/sms/sms.bb
@@ -13,7 +13,7 @@
 inherit ${CLASS_COM}
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://sms \
 		  ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://sms.init","", d)} \
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/sntp/sntp.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/sntp/sntp.bb
index 709b45d..4976f93 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/sntp/sntp.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/sntp/sntp.bb
@@ -13,7 +13,7 @@
 inherit ${CLASS_COM}
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://sntp \
 		  ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://sntp.init","", d)} \
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/spitest/spitest.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/spitest/spitest.bb
new file mode 100755
index 0000000..8e0fd39
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/spitest/spitest.bb
@@ -0,0 +1,47 @@
+DESCRIPTION = "spitest"
+#nv依赖libnvram库
+DEPENDS    += "libbsp"
+SECTION     = "spitest"
+LICENSE     = "zte"
+PV = "1.0.0"
+PR = "r0"
+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/test:"
+SRC_URI = " \
+    file://spitest \
+    "
+
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
+S = "${WORKDIR}"
+
+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+
+#编译
+do_compile() {
+	make -C spitest
+}
+
+#库文件的安装,封库的宏MK_SDK_VERSION
+do_install () {
+	install -d ${D}${bindir}/
+	install -m 0755 ${S}/spitest/test_spidev ${D}${bindir}/
+	install -m 0755 ${S}/spitest/test_spidev_used_gpio_ctrl ${D}${bindir}/
+	#install elfs
+	install -d ${ELFS-PATH}/
+	install -m 0755 ${S}/spitest/test_spidev ${ELFS-PATH}/
+	install -m 0755 ${S}/spitest/test_spidev_used_gpio_ctrl ${ELFS-PATH}/
+}
+#清库
+do_cleanlibs () {
+	rm -fr ${ELFS-PATH}/test_spidev
+	rm -fr ${ELFS-PATH}/test_spidev_used_gpio_ctrl
+}
+
+addtask  cleanlibs after do_clean  before do_cleansstate
+
+#rootfs包含的文件
+FILES_${PN} = "\
+    ${bindir}/ \
+    "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/tel-svr/tel-svr.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/tel-svr/tel-svr.bb
new file mode 100755
index 0000000..5bc435a
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/tel-svr/tel-svr.bb
@@ -0,0 +1,74 @@
+DESCRIPTION = "tel_svr"
+DEPENDS     = "libsoftap libsofttimer libnvram libatutils libscipc libtelsvr libtinyalsa libvoice"
+SECTION     = "app"
+LICENSE     = "zte"
+PV = "1.0.0"
+PR = "r0"
+
+CLASS_COM = " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'procd', 'openwrt openwrt-services', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+"
+inherit ${CLASS_COM}
+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
+SRC_URI = " \
+    file://telecom_svr \
+    ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://tel_svr.init","", d)} \
+    ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "file://tel_svr.service","", d)} \
+    ${@bb.utils.contains("DISTRO_FEATURES", "sysvinit", "file://tel_svr.sysvinit","", d)} \
+    "
+
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
+S = "${WORKDIR}"
+
+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+
+#编译
+do_compile() {
+	make -C telecom_svr
+}
+
+#库文件的安装
+do_install() {
+	install -d ${D}${bindir}/
+	install -m 0755 ${S}/telecom_svr/tel_svr ${D}${bindir}/
+
+	if ${@bb.utils.contains('DISTRO_FEATURES','procd','true','false',d)}; then
+		install -Dm 0755 ${WORKDIR}/tel_svr.init ${D}${sysconfdir}/init.d/tel_svr
+	fi
+
+	if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+		install -d ${D}${systemd_unitdir}/system
+		install -m 0644 ${WORKDIR}/tel_svr.service ${D}${systemd_unitdir}/system
+	fi
+
+	if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
+		install -Dm 0755 ${WORKDIR}/tel_svr.sysvinit ${D}${sysconfdir}/init.d/tel_svr
+		install -d ${D}${sysconfdir}/rcS.d
+		ln -s ../init.d/tel_svr ${D}${sysconfdir}/rcS.d/S16tel_svr
+	fi
+
+	#install elfs
+	install -d ${ELFS-PATH}/
+	install -m 0755 ${S}/telecom_svr/tel_svr ${ELFS-PATH}/
+}
+#清库
+do_cleanlibs () {
+	rm -fr ${ELFS-PATH}/tel_svr
+}
+
+addtask  cleanlibs after do_clean  before do_cleansstate
+
+#rootfs包含的文件
+FILES_${PN} = "\
+    ${bindir}/ \
+    ${@bb.utils.contains("DISTRO_FEATURES", "procd", "${sysconfdir}/","", d)} \
+    ${@bb.utils.contains("DISTRO_FEATURES", "sysvinit", "${sysconfdir}/","", d)} \
+    "
+SYSTEMD_SERVICE_${PN}     = "tel_svr.service"
+SYSTEMD_AUTO_ENABLE_${PN} = "enable"
+
+RDEPENDS_${PN} = " libsoftap libsofttimer libnvram libatutils libscipc libtinyalsa libvoice"
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/tel-svr/tel-svr/tel_svr.init b/cap/zx297520v3/sources/meta-zxic/recipes-app/tel-svr/tel-svr/tel_svr.init
new file mode 100755
index 0000000..c62d39a
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/tel-svr/tel-svr/tel_svr.init
@@ -0,0 +1,17 @@
+#!/bin/sh /etc/rc.common
+
+START=16
+STOP=85
+USE_PROCD=1
+
+start_service() {
+	procd_open_instance
+	procd_set_param command /usr/bin/tel_svr
+	procd_set_param respawn
+	procd_close_instance
+}
+
+stop_service() 
+{
+	echo "add clean code"
+}
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/tel-svr/tel-svr/tel_svr.service b/cap/zx297520v3/sources/meta-zxic/recipes-app/tel-svr/tel-svr/tel_svr.service
new file mode 100755
index 0000000..82efb2b
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/tel-svr/tel-svr/tel_svr.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=The tel_svr service
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/tel_svr
+Restart=always
+
+[Install]
+WantedBy=basic.target
+
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr/at_svr.sysvinit b/cap/zx297520v3/sources/meta-zxic/recipes-app/tel-svr/tel-svr/tel_svr.sysvinit
similarity index 80%
copy from cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr/at_svr.sysvinit
copy to cap/zx297520v3/sources/meta-zxic/recipes-app/tel-svr/tel-svr/tel_svr.sysvinit
index 29ccdb1..ed3ec0f 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr/at_svr.sysvinit
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/tel-svr/tel-svr/tel_svr.sysvinit
@@ -3,11 +3,10 @@
 # Run the daemon
 #
 
-DAEMON="at_svr"
+DAEMON="tel_svr"
 PIDFILE="/var/run/$DAEMON.pid"
-EXEC="/usr/bin/at_svr"
-EXEC_ARGS=""
-
+EXEC="/usr/bin/tel_svr"
+EXEC_ARGS="-d  /mnt/userdata  -r /mnt/userdata/log.rule  -t 1024 -n 10"
 
 start() {
 	echo -n "Starting $DAEMON... "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/uarttest/uarttest.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/uarttest/uarttest.bb
new file mode 100755
index 0000000..3153ce4
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/uarttest/uarttest.bb
@@ -0,0 +1,49 @@
+DESCRIPTION = "uarttest"

+

+DEPENDS     = "libbsp"

+SECTION     = "app"

+LICENSE     = "zte"

+PV = "1.0.0"

+PR = "r0"

+

+CLASS_COM = " \

+    ${@bb.utils.contains('DISTRO_FEATURES', 'procd', 'openwrt openwrt-services', '', d)} \

+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \

+"

+inherit ${CLASS_COM}

+

+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/test:"

+SRC_URI = " \

+    file://uarttest \

+    "

+

+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"

+S = "${WORKDIR}"

+

+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc

+include ${BSPDIR}/sources/meta-zxic/conf/pub.inc

+CFLAGS_append = "${ZXIC_EXTRA_CFLAGS}"

+

+do_compile() {

+	make -C uarttest

+}

+

+

+do_install() {

+	install -d ${D}${bindir}/

+	install -m 0777 ${S}/uarttest/uarttest ${D}${bindir}/

+

+	#install elfs

+	install -d ${ELFS-PATH}/

+	install -m 0755 ${S}/uarttest/uarttest ${ELFS-PATH}/

+}

+

+do_cleanlibs () {

+	rm -fr ${ELFS-PATH}/uarttest

+}

+

+addtask  cleanlibs after do_clean  before do_cleansstate

+

+FILES_${PN} = "\

+    ${bindir}/ \

+    "

diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/voiceipc-mainctrl/voiceipc-mainctrl.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/voiceipc-mainctrl/voiceipc-mainctrl.bb
new file mode 100755
index 0000000..f3be15f
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/voiceipc-mainctrl/voiceipc-mainctrl.bb
@@ -0,0 +1,71 @@
+DESCRIPTION = "voiceipc_mainctrl"
+DEPENDS     = "libvoice"
+SECTION     = "app"
+LICENSE     = "zte"
+PV = "1.0.0"
+PR = "r0"
+
+CLASS_COM = " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'procd', 'openwrt openwrt-services', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+"
+inherit ${CLASS_COM}
+
+#配置code路径信息。
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
+SRC_URI = " \
+          file://voiceipc_mainctrl \		  
+		  ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://voiceipc_mainctrl.init","", d)} \
+		  ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "file://voiceipc_mainctrl.service","", d)} \
+		  ${@bb.utils.contains("DISTRO_FEATURES", "sysvinit", "file://voiceipc_mainctrl.sysvinit","", d)} \
+          "
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/zte;md5=c075689d1d1e06d4ab5bbe53623a6808"
+S = "${WORKDIR}"
+S_SRC_PATH = "${S}/voiceipc_mainctrl"
+#引用公用头文件和编译选项。
+include ${BSPDIR}/sources/meta-zxic/conf/app_com.inc
+CFLAGS_append    = "-I ${BSPDIR}/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/include"
+#inherit autotools pkgconfig systemd
+
+do_compile() {
+	make -C ${S_SRC_PATH}
+}
+
+do_install () {
+	install -d ${D}${bindir}/
+	install -m 0755 ${S_SRC_PATH}/voiceipc_mainctrl ${D}${bindir}/
+	
+	if ${@bb.utils.contains('DISTRO_FEATURES','procd','true','false',d)}; then
+		install -Dm 0755 ${WORKDIR}/voiceipc_mainctrl.init ${D}${sysconfdir}/init.d/voiceipc_mainctrl
+	fi
+
+	if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+		install -d ${D}${systemd_unitdir}/system
+		install -m 0644 ${WORKDIR}/voiceipc_mainctrl.service ${D}${systemd_unitdir}/system
+	fi
+	
+	if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
+		install -Dm 0755 ${WORKDIR}/voiceipc_mainctrl.sysvinit ${D}${sysconfdir}/init.d/voiceipc_mainctrl
+		install -d ${D}${sysconfdir}/rcS.d
+		ln -s ../init.d/voiceipc_mainctrl ${D}${sysconfdir}/rcS.d/S50voiceipc_mainctrl
+	fi
+	#install elfs
+	install -d ${ELFS-PATH}/
+	install -m 0755 ${S_SRC_PATH}/voiceipc_mainctrl ${ELFS-PATH}/	
+}
+
+do_cleanlibs () {
+	rm -fr ${ELFS-PATH}/voiceipc_mainctrl
+}
+
+addtask  cleanlibs after do_clean  before do_cleansstate
+
+FILES_${PN} = "\
+    ${bindir}/ \
+    ${@bb.utils.contains("DISTRO_FEATURES", "procd", "${sysconfdir}/init.d/voiceipc_mainctrl","", d)} \
+    ${@bb.utils.contains("DISTRO_FEATURES", "sysvinit", "${sysconfdir}/","", d)} \
+    "
+SYSTEMD_SERVICE_${PN}     = "voiceipc_mainctrl.service"
+SYSTEMD_AUTO_ENABLE_${PN} = "enable"
+
+RDEPENDS_${PN} = " libvoice"
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/voiceipc-mainctrl/voiceipc-mainctrl/voiceipc_mainctrl.init b/cap/zx297520v3/sources/meta-zxic/recipes-app/voiceipc-mainctrl/voiceipc-mainctrl/voiceipc_mainctrl.init
new file mode 100755
index 0000000..1794f4c
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/voiceipc-mainctrl/voiceipc-mainctrl/voiceipc_mainctrl.init
@@ -0,0 +1,21 @@
+#!/bin/sh /etc/rc.common
+
+START=50
+STOP=85
+USE_PROCD=1
+
+logger -t voiceipc_mainctrl
+
+start_service() {
+	procd_open_instance
+	procd_set_param command /usr/bin/voiceipc_mainctrl
+	procd_set_param stdout 1  # forward stdout of the command to logd
+	procd_set_param stderr 1  # same for stderr
+	procd_set_param respawn
+	procd_close_instance
+}
+
+stop_service() 
+{
+	echo "add clean code"
+}
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/voiceipc-mainctrl/voiceipc-mainctrl/voiceipc_mainctrl.service b/cap/zx297520v3/sources/meta-zxic/recipes-app/voiceipc-mainctrl/voiceipc-mainctrl/voiceipc_mainctrl.service
new file mode 100755
index 0000000..c0291e9
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/voiceipc-mainctrl/voiceipc-mainctrl/voiceipc_mainctrl.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=The voiceipc_mainctrl service
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/voiceipc_mainctrl
+Restart=always
+
+[Install]
+WantedBy=basic.target
+
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr/at_svr.sysvinit b/cap/zx297520v3/sources/meta-zxic/recipes-app/voiceipc-mainctrl/voiceipc-mainctrl/voiceipc_mainctrl.sysvinit
similarity index 88%
rename from cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr/at_svr.sysvinit
rename to cap/zx297520v3/sources/meta-zxic/recipes-app/voiceipc-mainctrl/voiceipc-mainctrl/voiceipc_mainctrl.sysvinit
index 29ccdb1..4466cd4 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/at-svr/at-svr/at_svr.sysvinit
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/voiceipc-mainctrl/voiceipc-mainctrl/voiceipc_mainctrl.sysvinit
@@ -3,9 +3,9 @@
 # Run the daemon
 #
 
-DAEMON="at_svr"
+DAEMON="voiceipc_mainctrl"
 PIDFILE="/var/run/$DAEMON.pid"
-EXEC="/usr/bin/at_svr"
+EXEC="/usr/bin/voiceipc_mainctrl"
 EXEC_ARGS=""
 
 
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/zlog-agent/zlog-agent.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/zlog-agent/zlog-agent.bb
index 89738da..fcfff41 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/zlog-agent/zlog-agent.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/zlog-agent/zlog-agent.bb
@@ -13,7 +13,7 @@
 inherit ${CLASS_COM}
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
     file://zlog_agent \
     ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://zlog_agent.init","", d)} \
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/zlog-agent/zlog-agent/zlog_agent.sysvinit b/cap/zx297520v3/sources/meta-zxic/recipes-app/zlog-agent/zlog-agent/zlog_agent.sysvinit
index 015caf4..d13ef55 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/zlog-agent/zlog-agent/zlog_agent.sysvinit
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/zlog-agent/zlog-agent/zlog_agent.sysvinit
@@ -6,8 +6,8 @@
 DAEMON="zlog_agent"
 PIDFILE="/var/run/$DAEMON.pid"
 EXEC="/usr/bin/zlog_agent"
-EXEC_ARGS="-d  /tmp  -r /etc/log.rule  -t 1024 -n 10"
-
+EXEC_ARGS=" "
+#EXEC_ARGS="-d  /mnt/userdata  -r /mnt/userdata/log.rule  -t 1024 -n 10"
 
 start() {
 	echo -n "Starting $DAEMON... "
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-audio-ctrl/zxic-audio-ctrl.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-audio-ctrl/zxic-audio-ctrl.bb
index 8c85bed..2583260 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-audio-ctrl/zxic-audio-ctrl.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-audio-ctrl/zxic-audio-ctrl.bb
@@ -13,7 +13,7 @@
 inherit ${CLASS_COM}

 

 #配置code路径信息

-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"

+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"

 SRC_URI = " \

     file://zxic_audio_ctrl \

     ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://zxic_audio_ctrl.init","", d)} \

@@ -50,7 +50,8 @@
 	if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then

 		install -Dm 0755 ${WORKDIR}/zxic_audio_ctrl.sysvinit ${D}${sysconfdir}/init.d/zxic_audio_ctrl

 		install -d ${D}${sysconfdir}/rcS.d

-		ln -s ../init.d/zxic_audio_ctrl ${D}${sysconfdir}/rcS.d/S24zxic_audio_ctrl

+		ln -s ../init.d/zxic_audio_ctrl ${D}${sysconfdir}/rcS.d/

+		#S24zxic_audio_ctrl

 	fi

 	

 	#install elfs

diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-debug/zxic-debug.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-debug/zxic-debug.bb
index d1c51f8..c7f87d1 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-debug/zxic-debug.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-debug/zxic-debug.bb
@@ -1,6 +1,6 @@
 DESCRIPTION = "zxic-debug"
-
-DEPENDS     = ""
+#zxic-debug依赖libnvram库
+DEPENDS     = "libnvram"
 SECTION     = "app"
 LICENSE     = "zte"
 PV = "1.0.0"
@@ -13,7 +13,7 @@
 inherit ${CLASS_COM}
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
     file://zxic_debug \
 	${@bb.utils.contains("DISTRO_FEATURES", "sysvinit", "file://zxic_debug.sysvinit","", d)} \
@@ -40,7 +40,7 @@
 	if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
 		install -Dm 0755 ${WORKDIR}/zxic_debug.sysvinit ${D}${sysconfdir}/init.d/zxic_debug
 		install -d ${D}${sysconfdir}/rcS.d
-		#ln -s ../init.d/zxic_debug ${D}${sysconfdir}/rcS.d/S90zxic_debug
+		ln -s ../init.d/zxic_debug ${D}${sysconfdir}/rcS.d/S90zxic_debug
 	fi
 
 	#install elfs
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-debug/zxic-debug/zxic_debug.sysvinit b/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-debug/zxic-debug/zxic_debug.sysvinit
index 323c3b4..bbcbea4 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-debug/zxic-debug/zxic_debug.sysvinit
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-debug/zxic-debug/zxic_debug.sysvinit
@@ -6,7 +6,7 @@
 DAEMON="zxic_debug"
 PIDFILE="/var/run/$DAEMON.pid"
 EXEC="/usr/bin/zxic_debug"
-EXEC_ARGS="-p /var"
+EXEC_ARGS=""
 
 
 start() {
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-hotplug/zxic-hotplug.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-hotplug/zxic-hotplug.bb
index 26d330e..520c23e 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-hotplug/zxic-hotplug.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-hotplug/zxic-hotplug.bb
@@ -12,7 +12,7 @@
 inherit ${CLASS_COM}
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://zxic_hotplug \
 		  ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://zxic_hotplug.init","", d)} \
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-ipv6-addr-conver/zxic-ipv6-addr-conver.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-ipv6-addr-conver/zxic-ipv6-addr-conver.bb
index 0e1bb6a..d5f4758 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-ipv6-addr-conver/zxic-ipv6-addr-conver.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-ipv6-addr-conver/zxic-ipv6-addr-conver.bb
@@ -13,7 +13,7 @@
 inherit ${CLASS_COM}
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://zxic_ipv6_addr_conver \
 		  ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://zxic_ipv6_addr_conver.init","", d)} \
@@ -68,7 +68,7 @@
     ${@bb.utils.contains("DISTRO_FEATURES", "procd", "${sysconfdir}/init.d/ipv6_addr_conver","", d)} \
     ${@bb.utils.contains("DISTRO_FEATURES", "sysvinit", "${sysconfdir}/","", d)} \
     "
-SYSTEMD_SERVICE_${PN}     = "zxic_ipv6_addr_collect.service"
+SYSTEMD_SERVICE_${PN}     = "zxic_ipv6_addr_conver.service"
 SYSTEMD_AUTO_ENABLE_${PN} = "disable"
 
 RDEPENDS_${PN} = " libnvram"
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-ipv6-slaac/zxic-ipv6-slaac.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-ipv6-slaac/zxic-ipv6-slaac.bb
index 559fd23..92cae5f 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-ipv6-slaac/zxic-ipv6-slaac.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-ipv6-slaac/zxic-ipv6-slaac.bb
@@ -13,7 +13,7 @@
 inherit ${CLASS_COM}
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://zxic_ipv6_slaac \
 		  ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://zxic_ipv6_slaac.init","", d)} \
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-mainctrl/zxic-mainctrl.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-mainctrl/zxic-mainctrl.bb
index 26709b6..fe909dc 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-mainctrl/zxic-mainctrl.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-mainctrl/zxic-mainctrl.bb
@@ -12,7 +12,7 @@
 inherit ${CLASS_COM}
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://zxic_mainctrl \
 		  ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://zxic_mainctrl.init","", d)} \
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-ndp/zxic-ndp.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-ndp/zxic-ndp.bb
index 7d7c82d..2f4e632 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-ndp/zxic-ndp.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-ndp/zxic-ndp.bb
@@ -13,7 +13,7 @@
 inherit ${CLASS_COM}
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://zxic_ndp \
 		  ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://zxic_ndp.init","", d)} \
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-script/zxic-script.bb b/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-script/zxic-script.bb
index 0a1ca47..45fd680 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-script/zxic-script.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-app/zxic-script/zxic-script.bb
@@ -12,7 +12,7 @@
 inherit ${CLASS_COM}
 
 #配置code路径信息。
-FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}:"
+FILESEXTRAPATHS_prepend :="${APP-OPEN-PATH}/platform:"
 SRC_URI = " \
           file://Script \
 		  ${@bb.utils.contains("DISTRO_FEATURES", "procd", "file://udhcpd.init","", d)} \
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-core/busybox/busybox/busybox-1.33.1/010-syslogd-recive-remote-log.patch b/cap/zx297520v3/sources/meta-zxic/recipes-core/busybox/busybox/busybox-1.33.1/010-syslogd-recive-remote-log.patch
new file mode 100755
index 0000000..9f8f709
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-core/busybox/busybox/busybox-1.33.1/010-syslogd-recive-remote-log.patch
@@ -0,0 +1,283 @@
+--- /sysklogd/syslogd.c	2021-01-01 21:37:14.000000000 +0800
++++ /sysklogd/syslogd.c	2023-04-25 17:49:26.575996968 +0800
+@@ -984,6 +984,50 @@ static NOINLINE int create_socket(void)
+ 	return sock_fd;
+ }
+ 
++static NOINLINE int create_inet_socket(void)
++{
++	int err, fd = -1;
++	struct addrinfo hints, *rp, *ai;
++    int fd4 = -1;
++    
++	memset(&hints, 0, sizeof(hints));
++	hints.ai_family = AF_INET;
++	hints.ai_socktype = SOCK_DGRAM;
++	hints.ai_flags = AI_PASSIVE;
++
++    err = getaddrinfo(NULL, "514", &hints, &rp);
++	if (err)
++	{
++		bb_perror_msg("lookup error, suspending inet service");
++		return;
++	}
++
++	for (ai = rp; ai; ai = ai->ai_next)
++	{
++		int yes = 1;
++
++		fd = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
++		if (fd < 0)
++			continue;
++
++		err = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes));
++		if (err < 0)
++			bb_perror_msg("failed to set SO_REUSEADDR");
++
++		if (bind(fd, ai->ai_addr, ai->ai_addrlen) < 0)
++		{
++			close(fd);
++			fd = -1;
++			continue;
++		}
++		/* Register any success.  */
++		if (ai->ai_family == AF_INET && fd4 < 0)
++			fd4 = fd;
++	}
++	freeaddrinfo(rp);
++    return fd4;
++}
++
+ #if ENABLE_FEATURE_REMOTE_LOG
+ static int try_to_resolve_remote(remoteHost_t *rh)
+ {
+@@ -1002,9 +1046,17 @@ static int try_to_resolve_remote(remoteH
+ }
+ #endif
+ 
++#define SOCKET_FILENO   4
+ static void do_syslogd(void) NORETURN;
+ static void do_syslogd(void)
+ {
++    struct pollfd *fdarray;
++	unsigned int nfds = 0;
++	int nready = 0;
++    unsigned int i = 0;
++	int sock_read = 0;
++    struct sockaddr_storage frominet;
++    socklen_t len = sizeof(frominet);
+ #if ENABLE_FEATURE_REMOTE_LOG
+ 	llist_t *item;
+ #endif
+@@ -1025,7 +1077,24 @@ static void do_syslogd(void)
+ 	signal(SIGALRM, do_mark);
+ 	alarm(G.markInterval);
+ #endif
++
++    /* We add  3 = 1(klog) + 2(inet,inet6), even if they may stay unused.  */
++	fdarray = (struct pollfd *)malloc(3 * sizeof (*fdarray));
++	if (fdarray == NULL)
++        bb_perror_msg_and_die("can't allocate fd table");
++    
+ 	xmove_fd(create_socket(), STDIN_FILENO);
++    xmove_fd(create_inet_socket(), SOCKET_FILENO);
++
++    // log
++	fdarray[nfds].fd = STDIN_FILENO;
++	fdarray[nfds].events = POLLIN | POLLPRI;
++	nfds++;
++
++    	// socket
++	fdarray[nfds].fd = SOCKET_FILENO;
++	fdarray[nfds].events = POLLIN | POLLPRI;
++	nfds++;
+ 
+ 	if (option_mask32 & OPT_circularlog)
+ 		ipcsyslog_init();
+@@ -1038,6 +1107,7 @@ static void do_syslogd(void)
+ 
+ 	while (!bb_got_signal) {
+ 		ssize_t sz;
++loop_again:
+ 
+ #if ENABLE_FEATURE_SYSLOGD_DUP
+ 		last_buf = recvbuf;
+@@ -1047,76 +1117,113 @@ static void do_syslogd(void)
+ 			recvbuf = G.recvbuf;
+ #endif
+  read_again:
+-		sz = read(STDIN_FILENO, recvbuf, MAX_READ - 1);
+-		if (sz < 0) {
+-			if (!bb_got_signal)
+-				bb_perror_msg("read from %s", _PATH_LOG);
+-			break;
+-		}
+-
+-		/* Drop trailing '\n' and NULs (typically there is one NUL) */
+-		while (1) {
+-			if (sz == 0)
+-				goto read_again;
+-			/* man 3 syslog says: "A trailing newline is added when needed".
+-			 * However, neither glibc nor uclibc do this:
+-			 * syslog(prio, "test")   sends "test\0" to /dev/log,
+-			 * syslog(prio, "test\n") sends "test\n\0".
+-			 * IOW: newline is passed verbatim!
+-			 * I take it to mean that it's syslogd's job
+-			 * to make those look identical in the log files. */
+-			if (recvbuf[sz-1] != '\0' && recvbuf[sz-1] != '\n')
+-				break;
+-			sz--;
++        nready = poll(fdarray, nfds, -1);
++		if (nready == 0)		/* ??  noop */
++			goto read_again;
++		
++		if (nready < 0)
++		{
++			if (errno != EINTR)
++				timestamp_and_log_internal("syslogd poll");
++			goto read_again;
+ 		}
++        for (i = 0; i < nfds; i++)
++        {
++            if (fdarray[i].revents & (POLLIN | POLLPRI))
++            {
++                if (fdarray[i].fd == -1)
++	                continue;
++	            else if (fdarray[i].fd == STDIN_FILENO)
++                    sz = read(fdarray[i].fd, recvbuf, MAX_READ - 1);
++                else if (fdarray[i].fd == SOCKET_FILENO)
++		            sz = recvfrom(fdarray[i].fd, recvbuf, MAX_READ - 1, 0,
++				        (struct sockaddr *)&frominet, &len);
++        		if (sz < 0) {
++        			if (!bb_got_signal)
++        				bb_perror_msg("read from %s", _PATH_LOG);
++        			goto read_exit;
++        		}
++				
++			/* Drop trailing '\n' and NULs (typically there is one NUL) */
++			while (1) {
++				if (sz == 0)
++					goto read_again;
++				/* man 3 syslog says: "A trailing newline is added when needed".
++				 * However, neither glibc nor uclibc do this:
++				 * syslog(prio, "test")   sends "test\0" to /dev/log,
++				 * syslog(prio, "test\n") sends "test\n\0".
++				 * IOW: newline is passed verbatim!
++				 * I take it to mean that it's syslogd's job
++				 * to make those look identical in the log files. */
++				if (recvbuf[sz-1] != '\0' && recvbuf[sz-1] != '\n')
++					break;
++				sz--;
++			}
+ #if ENABLE_FEATURE_SYSLOGD_DUP
+-		if ((option_mask32 & OPT_dup) && (sz == last_sz))
+-			if (memcmp(last_buf, recvbuf, sz) == 0)
+-				continue;
+-		last_sz = sz;
++                if (fdarray[i].fd == STDIN_FILENO)
++                {
++            		if ((option_mask32 & OPT_dup) && (sz == last_sz))
++            			if (memcmp(last_buf, recvbuf, sz) == 0)
++            				goto loop_again;
++            		last_sz = sz;
++                }
+ #endif
+ #if ENABLE_FEATURE_REMOTE_LOG
+-		/* Stock syslogd sends it '\n'-terminated
+-		 * over network, mimic that */
+-		recvbuf[sz] = '\n';
+-
+-		/* We are not modifying log messages in any way before send */
+-		/* Remote site cannot trust _us_ anyway and need to do validation again */
+-		for (item = G.remoteHosts; item != NULL; item = item->link) {
+-			remoteHost_t *rh = (remoteHost_t *)item->data;
+-
+-			if (rh->remoteFD == -1) {
+-				rh->remoteFD = try_to_resolve_remote(rh);
+-				if (rh->remoteFD == -1)
+-					continue;
+-			}
+-
+-			/* Send message to remote logger.
+-			 * On some errors, close and set remoteFD to -1
+-			 * so that DNS resolution is retried.
+-			 */
+-			if (sendto(rh->remoteFD, recvbuf, sz+1,
+-					MSG_DONTWAIT | MSG_NOSIGNAL,
+-					&(rh->remoteAddr->u.sa), rh->remoteAddr->len) == -1
+-			) {
+-				switch (errno) {
+-				case ECONNRESET:
+-				case ENOTCONN: /* paranoia */
+-				case EPIPE:
+-					close(rh->remoteFD);
+-					rh->remoteFD = -1;
+-					free(rh->remoteAddr);
+-					rh->remoteAddr = NULL;
+-				}
+-			}
+-		}
+-#endif
+-		if (!ENABLE_FEATURE_REMOTE_LOG || (option_mask32 & OPT_locallog)) {
+-			recvbuf[sz] = '\0'; /* ensure it *is* NUL terminated */
+-			split_escape_and_log(recvbuf, sz);
+-		}
++                if (fdarray[i].fd == STDIN_FILENO)
++                {
++                	/* Stock syslogd sends it '\n'-terminated
++                	 * over network, mimic that */
++                	recvbuf[sz] = '\n';
++
++                	/* We are not modifying log messages in any way before send */
++                	/* Remote site cannot trust _us_ anyway and need to do validation again */
++                	for (item = G.remoteHosts; item != NULL; item = item->link) {
++                		remoteHost_t *rh = (remoteHost_t *)item->data;
++
++                		if (rh->remoteFD == -1) {
++                			rh->remoteFD = try_to_resolve_remote(rh);
++                			if (rh->remoteFD == -1)
++                				continue;
++                		}
++
++                		/* Send message to remote logger.
++                		 * On some errors, close and set remoteFD to -1
++                		 * so that DNS resolution is retried.
++                		 */
++                		if (sendto(rh->remoteFD, recvbuf, sz+1,
++                				MSG_DONTWAIT | MSG_NOSIGNAL,
++                				&(rh->remoteAddr->u.sa), rh->remoteAddr->len) == -1
++                		) {
++                			switch (errno) {
++                			case ECONNRESET:
++                			case ENOTCONN: /* paranoia */
++                			case EPIPE:
++                				close(rh->remoteFD);
++                				rh->remoteFD = -1;
++                				free(rh->remoteAddr);
++                				rh->remoteAddr = NULL;
++                			}
++                		}
++                	}
++                }
++#endif
++        		if (!ENABLE_FEATURE_REMOTE_LOG || (option_mask32 & OPT_locallog)) {
++        			recvbuf[sz] = '\0'; /* ensure it *is* NUL terminated */
++        			split_escape_and_log(recvbuf, sz);
++        		}
++            }
++            else if (fdarray[i].revents & POLLNVAL)
++            {
++	            timestamp_and_log_internal("syslogd poll nval");
++	            fdarray[i].fd = -1;
++            }
++	        else if (fdarray[i].revents & POLLERR)
++	            timestamp_and_log_internal("syslogd poll err");
++	        else if (fdarray[i].revents & POLLHUP)
++	            timestamp_and_log_internal("syslogd poll hup");   
++       }
+ 	} /* while (!bb_got_signal) */
+-
++read_exit:
+ 	timestamp_and_log_internal("syslogd exiting");
+ 	remove_pidfile_std_path_and_ext("syslogd");
+ 	ipcsyslog_cleanup();
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-core/busybox/busybox_1.33.1.bb b/cap/zx297520v3/sources/meta-zxic/recipes-core/busybox/busybox_1.33.1.bb
index 5593768..1949669 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-core/busybox/busybox_1.33.1.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-core/busybox/busybox_1.33.1.bb
@@ -2,6 +2,7 @@
 
 SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
            file://busybox-1.33.1/busybox-udhcpc-no_deconfig.patch \
+           file://busybox-1.33.1/010-syslogd-recive-remote-log.patch \
            file://find-touchscreen.sh \
            file://busybox-cron \
            file://busybox-httpd \
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-core/busybox/busybox_1.33.1.inc b/cap/zx297520v3/sources/meta-zxic/recipes-core/busybox/busybox_1.33.1.inc
index dfc38a6..3791da8 100644
--- a/cap/zx297520v3/sources/meta-zxic/recipes-core/busybox/busybox_1.33.1.inc
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-core/busybox/busybox_1.33.1.inc
@@ -274,6 +274,8 @@
 		install -m 0755 ${WORKDIR}/syslog ${D}${sysconfdir}/init.d/syslog
 		install -m 644 ${WORKDIR}/syslog-startup.conf ${D}${sysconfdir}/syslog-startup.conf
 		install -m 644 ${WORKDIR}/syslog.conf ${D}${sysconfdir}/syslog.conf
+		#install -d ${D}${sysconfdir}/rcS.d
+		#ln -s ../init.d/syslog ${D}${sysconfdir}/rcS.d/S18syslog
 	fi
 	if grep -q "CONFIG_CROND=y" ${B}/.config; then
 		install -m 0755 ${WORKDIR}/busybox-cron ${D}${sysconfdir}/init.d/
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-core/busybox/files/syslog.conf b/cap/zx297520v3/sources/meta-zxic/recipes-core/busybox/files/syslog.conf
index 75bb630..0ca1743 100644
--- a/cap/zx297520v3/sources/meta-zxic/recipes-core/busybox/files/syslog.conf
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-core/busybox/files/syslog.conf
@@ -1 +1,2 @@
 #  /etc/syslog.conf	Configuration file for busybox's syslogd utility
+user.*          /var/log/syslogd.log
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-add-zxic-bsp_api_h.patch b/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-add-zxic-bsp_api_h.patch
new file mode 100644
index 0000000..e6d4b88
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-add-zxic-bsp_api_h.patch
@@ -0,0 +1,73 @@
+From ead7cfc7b2f9cee1a0cfe292ad98cba5493e0548 Mon Sep 17 00:00:00 2001
+From: =?utf-8?q?=E5=91=A8=E5=9B=BD=E5=9D=A1=2010053386?=
+ <zhou.guopo@zte.com.cn>
+Date: Fri, 21 Apr 2023 08:39:33 +0800
+Subject: [PATCH] add bsp_api_h
+
+---
+ include/uapi/linux/sc_bsp/bsp_api.h | 53 +++++++++++++++++++++++++++++
+ 1 file changed, 53 insertions(+)
+ create mode 100644 include/uapi/linux/sc_bsp/bsp_api.h
+
+diff --git a/include/uapi/linux/sc_bsp/bsp_api.h b/include/uapi/linux/sc_bsp/bsp_api.h
+new file mode 100644
+index 0000000..f3ab959
+--- /dev/null
++++ b/include/uapi/linux/sc_bsp/bsp_api.h
+@@ -0,0 +1,53 @@
++/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
++#ifndef _UAPI_LINUX_BSPAPI_H
++#define _UAPI_LINUX_BSPAPI_H
++
++#include <linux/ioctl.h>
++#include <linux/types.h>
++
++struct sc_irq_info {
++	unsigned int	line;
++	unsigned int	type;
++};
++
++#define SC_IRQ_IOC_MAGIC            'I'
++
++/*ioctl cmd usd by device*/
++#define SC_IRQ_INSTALL              _IOW(SC_IRQ_IOC_MAGIC, 1, char *)
++#define SC_IRQ_SET_TYPE             _IOW(SC_IRQ_IOC_MAGIC, 2, char *)
++#define SC_IRQ_SET_WAKE             _IOW(SC_IRQ_IOC_MAGIC, 3, char *)
++#define SC_IRQ_GET_WAKE             _IOW(SC_IRQ_IOC_MAGIC, 4, char *)
++#define SC_IRQ_UNINSTALL            _IOW(SC_IRQ_IOC_MAGIC, 5, char *)
++
++#define SC_IRQ_GET_STATUS           _IOW(SC_IRQ_IOC_MAGIC, 6, char *)
++#define SC_IRQ_CLEAR_STATUS         _IOW(SC_IRQ_IOC_MAGIC, 7, char *)
++
++#define SC_IRQ_DEV                  "/dev/sc_irq"
++
++
++
++/*----------------------------------------------------------*/
++struct sc_pm_info {
++	unsigned int	sleep_time;		/* ms */
++	unsigned int	wake_event;
++};
++
++#define SC_PM_WL_EVENT_EXT0         ((unsigned int)1 << 0)
++#define SC_PM_WL_EVENT_EXT1         ((unsigned int)1 << 1) 
++#define SC_PM_WL_EVENT_EXT2         ((unsigned int)1 << 2)
++#define SC_PM_WL_EVENT_EXT3         ((unsigned int)1 << 3)
++#define SC_PM_WL_EVENT_EXT4         ((unsigned int)1 << 4)
++#define SC_PM_WL_EVENT_EXT5         ((unsigned int)1 << 5)
++#define SC_PM_WL_EVENT_EXT6         ((unsigned int)1 << 6)
++#define SC_PM_WL_EVENT_EXT7         ((unsigned int)1 << 7)
++
++#define SC_PM_IOC_MAGIC             'P'
++
++/*ioctl cmd usd by device*/
++#define SC_PM_WL_SET                _IOW(SC_PM_IOC_MAGIC, 1, char *)
++#define SC_PM_WL_CLEAR              _IOW(SC_PM_IOC_MAGIC, 2, char *)
++#define SC_PM_WL_GET                _IOW(SC_PM_IOC_MAGIC, 3, char *)
++
++#define SC_PM_DEV                   "/dev/sc_pm"
++
++#endif /* _UAPI_LINUX_BSPAPI_H */
+-- 
+2.17.1
+
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux-libc-headers/linux-libc-headers_5.10.bb b/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux-libc-headers/linux-libc-headers_5.10.bb
index db0f115..cdcfff7 100644
--- a/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux-libc-headers/linux-libc-headers_5.10.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux-libc-headers/linux-libc-headers_5.10.bb
@@ -12,6 +12,7 @@
     file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \
     file://0001-add-zxic-volte_drv.h.patch \
     file://0002-add-zxic-rpmsg_zx29.h.patch \
+    file://0003-add-zxic-bsp_api_h.patch \
 "
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc-normal-defconfig b/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc-normal-defconfig
index 105ef68..14b0f1a 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc-normal-defconfig
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc-normal-defconfig
@@ -76,9 +76,11 @@
 CONFIG_HIGH_RES_TIMERS=y
 # end of Timers subsystem
 
-CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_NONE is not set
 # CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT is not set
+CONFIG_PREEMPT=y
+CONFIG_PREEMPT_COUNT=y
+CONFIG_PREEMPTION=y
 
 #
 # CPU/Task time and stats accounting
@@ -93,10 +95,15 @@
 #
 # RCU Subsystem
 #
-CONFIG_TINY_RCU=y
+CONFIG_TREE_RCU=y
+CONFIG_PREEMPT_RCU=y
 # CONFIG_RCU_EXPERT is not set
 CONFIG_SRCU=y
-CONFIG_TINY_SRCU=y
+CONFIG_TREE_SRCU=y
+CONFIG_TASKS_RCU_GENERIC=y
+CONFIG_TASKS_RCU=y
+CONFIG_RCU_STALL_COMMON=y
+CONFIG_RCU_NEED_SEGCBLIST=y
 # end of RCU Subsystem
 
 # CONFIG_IKCONFIG is not set
@@ -184,8 +191,7 @@
 # CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set
 # CONFIG_PROFILING is not set
 # end of General setup
-CONFIG_RAMDUMP=y
-#CONFIG_RAMDUMP_USER=y
+
 CONFIG_ARM=y
 CONFIG_ARM_HAS_SG_CHAIN=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -198,7 +204,7 @@
 CONFIG_GENERIC_CALIBRATE_DELAY=y
 CONFIG_ARCH_SUPPORTS_UPROBES=y
 # CONFIG_ARM_PATCH_PHYS_VIRT is not set
-CONFIG_PHYS_OFFSET=0x22200000
+CONFIG_PHYS_OFFSET=0x22800000
 CONFIG_GENERIC_BUG=y
 CONFIG_PGTABLE_LEVELS=2
 
@@ -640,11 +646,7 @@
 # CONFIG_IOSCHED_BFQ is not set
 # end of IO Schedulers
 
-CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-CONFIG_INLINE_READ_UNLOCK=y
-CONFIG_INLINE_READ_UNLOCK_IRQ=y
-CONFIG_INLINE_WRITE_UNLOCK=y
-CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+CONFIG_UNINLINE_SPIN_UNLOCK=y
 CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
 CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
 CONFIG_FREEZER=y
@@ -699,7 +701,8 @@
 #
 # Networking options
 #
-# CONFIG_PACKET is not set
+CONFIG_PACKET=y
+# CONFIG_PACKET_DIAG is not set
 CONFIG_UNIX=y
 CONFIG_UNIX_SCM=y
 CONFIG_UNIX_DIAG=y
@@ -1210,6 +1213,7 @@
 # CONFIG_MTD_UBI_FASTMAP is not set
 # CONFIG_MTD_UBI_GLUEBI is not set
 CONFIG_MTD_UBI_BLOCK=y
+CONFIG_MTD_UBI_EXCEPTION=y
 # CONFIG_MTD_HYPERBUS is not set
 CONFIG_DTC=y
 CONFIG_OF=y
@@ -1734,8 +1738,12 @@
 # CONFIG_POWER_SUPPLY is not set
 # CONFIG_HWMON is not set
 # CONFIG_THERMAL is not set
-# CONFIG_WATCHDOG is not set
 CONFIG_SSB_POSSIBLE=y
+
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
+CONFIG_ZX29_WATCHDOG=y
+
 # CONFIG_SSB is not set
 CONFIG_BCMA_POSSIBLE=y
 # CONFIG_BCMA is not set
@@ -1938,10 +1946,10 @@
 # CONFIG_SND_SOC_XTFPGA_I2S is not set
 # CONFIG_ZX_TDM is not set
 CONFIG_SND_SOC_SANECHIPS=y
-# CONFIG_SND_SOC_ZX297520V3_TI3100 is not set
-# CONFIG_SND_SOC_ZX297520V3_NAU8810 is not set
-# CONFIG_SND_SOC_ZX297520V3_ES8374 is not set
-# CONFIG_SND_SOC_ZX297520V3_ES8312 is not set
+CONFIG_SND_SOC_ZX29_TI3100=y
+# CONFIG_SND_SOC_ZX29_NAU8810 is not set
+# CONFIG_SND_SOC_ZX29_ES8374 is not set
+# CONFIG_SND_SOC_ZX29_ES8312 is not set
 # CONFIG_SND_SOC_ZX29_AK4940 is not set
 CONFIG_SND_SOC_ZX_VOICE=y
 CONFIG_SND_SOC_ZX297520V3=y
@@ -2095,8 +2103,6 @@
 
 # CONFIG_SND_SIMPLE_CARD is not set
 # CONFIG_SND_AUDIO_GRAPH_CARD is not set
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-# CONFIG_USB_SUPPORT is not set
 CONFIG_MMC=y
 CONFIG_MMC_DW=y
 CONFIG_MMC_DW_ZX29=y
@@ -2115,6 +2121,75 @@
 CONFIG_DMADEVICES=y
 # CONFIG_DMADEVICES_DEBUG is not set
 
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+# CONFIG_USB_ULPI_BUS is not set
+# CONFIG_USB_CONN_GPIO is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+# CONFIG_USB is not set
+# CONFIG_USB_CDNS3 is not set
+# CONFIG_USB_MUSB_HDRC is not set
+# CONFIG_USB_DWC3 is not set
+# CONFIG_USB_DWC2 is not set
+# CONFIG_USB_CHIPIDEA is not set
+# CONFIG_USB_ISP1760 is not set
+
+#
+# USB port drivers
+#
+
+#
+# USB Physical Layer drivers
+#
+# CONFIG_NOP_USB_XCEIV is not set
+# CONFIG_USB_GPIO_VBUS is not set
+# CONFIG_USB_ISP1301 is not set
+# CONFIG_USB_ULPI is not set
+# end of USB Physical Layer drivers
+
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+
+#
+# USB Peripheral Controller
+#
+# CONFIG_USB_FUSB300 is not set
+# CONFIG_USB_FOTG210_UDC is not set
+# CONFIG_USB_GR_UDC is not set
+# CONFIG_USB_R8A66597 is not set
+# CONFIG_USB_PXA27X is not set
+# CONFIG_USB_MV_UDC is not set
+# CONFIG_USB_MV_U3D is not set
+# CONFIG_USB_SNP_UDC_PLAT is not set
+# CONFIG_USB_M66592 is not set
+# CONFIG_USB_BDC_UDC is not set
+# CONFIG_USB_NET2272 is not set
+# CONFIG_USB_GADGET_XILINX is not set
+# CONFIG_USB_MAX3420_UDC is not set
+# end of USB Peripheral Controller
+
+CONFIG_USB_F_ADB_CLIENT=y
+# CONFIG_USB_CONFIGFS is not set
+
+#
+# USB Gadget precomposed configurations
+#
+# CONFIG_USB_ZERO is not set
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FUNCTIONFS is not set
+# CONFIG_USB_MASS_STORAGE is not set
+# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_G_PRINTER is not set
+# CONFIG_USB_G_ACM_MS is not set
+# CONFIG_USB_G_HID is not set
+# CONFIG_USB_G_DBGP is not set
+# CONFIG_USB_RAW_GADGET is not set
+# end of USB Gadget precomposed configurations
+
 #
 # DMA Devices
 #
@@ -2344,7 +2419,14 @@
 # CONFIG_VALIDATE_FS_PARSER is not set
 # CONFIG_EXT2_FS is not set
 # CONFIG_EXT3_FS is not set
-# CONFIG_EXT4_FS is not set
+CONFIG_EXT4_FS=y
+# CONFIG_EXT4_USE_FOR_EXT2 is not set
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_EXT4_DEBUG=y
+CONFIG_JBD2=y
+CONFIG_JBD2_DEBUG=y
+CONFIG_FS_MBCACHE=y
 # CONFIG_REISERFS_FS is not set
 # CONFIG_JFS_FS is not set
 # CONFIG_XFS_FS is not set
@@ -2885,7 +2967,11 @@
 # end of Scheduler Debugging
 
 # CONFIG_DEBUG_TIMEKEEPING is not set
-
+CONFIG_DEBUG_PREEMPT=y
+CONFIG_RAMDUMP=y
+#hong.liu modify for close ramdump
+#CONFIG_RAMDUMP_USER=y
+#hong.liu modify for close ramdump
 #
 # Lock Debugging (spinlocks, mutexes, etc...)
 #
@@ -2927,6 +3013,7 @@
 # CONFIG_RCU_SCALE_TEST is not set
 # CONFIG_RCU_TORTURE_TEST is not set
 # CONFIG_RCU_REF_SCALE_TEST is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=21
 # CONFIG_RCU_TRACE is not set
 # CONFIG_RCU_EQS_DEBUG is not set
 # end of RCU Debugging
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_4Gb-normal-defconfig b/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_4Gb-normal-defconfig
new file mode 120000
index 0000000..4ac009b
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_4Gb-normal-defconfig
@@ -0,0 +1 @@
+linux-5_10-vehicle_dc-normal-defconfig
\ No newline at end of file
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/linux-zxic_5.10.bb b/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/linux-zxic_5.10.bb
index ae96bf5..29942f4 100644
--- a/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/linux-zxic_5.10.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/linux-zxic_5.10.bb
@@ -16,8 +16,10 @@
 # PR_CONFIG_cpe = "linux-5_10-cpe-${BOOT_CTL}-defconfig"
 # PR_CONFIG_v2x = "linux-5_10-v2x-${BOOT_CTL}-defconfig"
 PR_CONFIG_vehicle_dc = "linux-5_10-vehicle_dc-${BOOT_CTL}-defconfig"
+PR_CONFIG_vehicle_dc_4Gb = "linux-5_10-vehicle_dc_4Gb-${BOOT_CTL}-defconfig"
 S = "${WORKDIR}/linux-5.10"
 
+do_install[nostamp] = "1"
 
 SRC_URI = "\
     file://linux-5.10    \
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-tools/mkimgsig/mkimgsig.bb b/cap/zx297520v3/sources/meta-zxic/recipes-tools/mkimgsig/mkimgsig.bb
index ef6aff0..a41018e 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-tools/mkimgsig/mkimgsig.bb
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-tools/mkimgsig/mkimgsig.bb
@@ -14,11 +14,13 @@
 
 DEPENDS  += "\
     u-boot-tools-native dtc-native \
-    " 
+    "
 
 #pub include
 include ${BSPDIR}/sources/meta-zxic/conf/pub.inc
 
+do_configure[nostamp] = "1"
+
 KERNEL_BIN_NAME = "${@bb.utils.contains("BOOT_CTL", "recovery", "ap_recovery.bin", "ap_cpucap.bin", d)}"
 
 #编译