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

Change-Id: I11f167edfea428d9fab198ff00ff1364932d1b0b
diff --git a/ap/build/scripts/build_env_mini/Makefile b/ap/build/scripts/build_env_mini/Makefile
index 9a9a0e9..167ceb1 100755
--- a/ap/build/scripts/build_env_mini/Makefile
+++ b/ap/build/scripts/build_env_mini/Makefile
@@ -122,5 +122,5 @@
 	mkdir -p $(PRJ_BIN_DIR)/allbins $(PRJ_BIN_DIR)/elfs/normalelfs
 	cp -v $(IMAGE_DIR)/rootfs.img $(PRJ_BIN_DIR)/allbins/ap_rootfs.img
 	find   $(APP_DIR)/  -name *.elf  -exec cp {} $(PRJ_BIN_DIR)/elfs/normalelfs \;
-	find   $(LIB_DIR)/  -type f -name "lib*.so"  -exec cp {} $(PRJ_BIN_DIR)/elfs/normalelfs \;
-	find   $(STAGEDIR)/uClibc/lib    -type f -name "*.so"  -exec cp {} $(PRJ_BIN_DIR)/elfs/normalelfs \;
+	find   $(LIB_DIR)/  -name "l*.so*"  -type f ! -path "*/.libs/*"  -exec cp {} $(PRJ_BIN_DIR)/elfs/normalelfs \;
+	find   $(STAGEDIR)/libc/lib    -type f -name "*.so*"  -exec cp {} $(PRJ_BIN_DIR)/elfs/normalelfs \;
diff --git a/ap/build/scripts/build_env_mini/build_env_mini.sh b/ap/build/scripts/build_env_mini/build_env_mini.sh
index 23ba23f..d2c4495 100755
--- a/ap/build/scripts/build_env_mini/build_env_mini.sh
+++ b/ap/build/scripts/build_env_mini/build_env_mini.sh
@@ -19,7 +19,9 @@
 
 #±àÒëÁ´
 mkdir -p $CROSS_DIR/build/compiler/gcc-4.9.4_thumb_linux/
+mkdir -p $CROSS_DIR/build/utils/
 $RSYNC_OPT  ./build/compiler/gcc-4.9.4_thumb_linux/  $CROSS_DIR/build/compiler/gcc-4.9.4_thumb_linux/
+$RSYNC_OPT  ./build/utils/  $CROSS_DIR/build/utils/
 
 #libc
 mkdir -p $CROSS_DIR/ap/staging/
@@ -60,8 +62,8 @@
 cp -v $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/config/normal/config_app.mk  $CROSS_DIR/ap/app/
 
 
-cp -v ./ap/build/scripts/build_env_mini/Makefile  $CROSS_DIR/ap/
-cp -v ./ap/build/scripts/build_env_mini/readme.txt  $CROSS_DIR/
+cp -v ./ap2/build/scripts/build_env_mini/Makefile  $CROSS_DIR/ap/
+cp -v ./ap2/build/scripts/build_env_mini/readme.txt  $CROSS_DIR/
 
 #clean 
 rm -fr $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/fs/normal/rootfs/*
diff --git a/ap/build/scripts/build_env_mini_vehicle/Makefile b/ap/build/scripts/build_env_mini_vehicle/Makefile
new file mode 100755
index 0000000..167ceb1
--- /dev/null
+++ b/ap/build/scripts/build_env_mini_vehicle/Makefile
@@ -0,0 +1,126 @@
+
+include $(ZTE_PS_LINK_SCRIPT)
+-include $(OUTPUT_DIR)/sys_type.mk
+
+.PHONY: help all allclean app appclean lib libclean check
+
+help: check
+	@echo "=========================Make help start========================="
+	@echo "make [help]           this help"
+	@echo "make all[clean]       compile all, include recovery and normal system"
+	@echo "make normal[clean]    compile normal system,include kernel uClibc lib and app"
+	@echo "make normal2          continue to compile normal system"
+	@echo "make normal_rootfs    make rootfs for normal system"
+	@echo "make normal_copybin   copy bins to project for normal system"
+	@echo "make rootfs           make rootfs for normal or recovery automatically based on config"
+	@echo "make copybin          copy bins to project for normal or recovery automatically based on config"
+	@echo "make lib[clean]       compile lib"
+	@echo "make app[clean]       compile app"
+	@echo "=========================Make help end========================="
+
+check:
+ifeq ($(PRJ_NAME),)
+	$(error ONLY execute the make command in the project/CHIP_NAME/prj_xxx/build directory)
+endif
+	bash $(BUILD_DIR)/env_check.sh
+
+normal_check:
+ifneq ($(AP_BUILD_TYPE),normal)
+	$(error current config is not normal,make normal first)
+endif
+
+all:
+	make AP_BUILD_TYPE=normal normal
+
+allclean: normalclean
+
+sys: check
+	make lib
+	make app
+	@echo "all modules build done"
+
+sysclean: check
+	make libclean
+	make appclean
+	-@rm -fr $(OUTPUT_DIR)
+	@echo "all modules clean done"
+
+app:
+	mkdir -p $(ROOTFS_DIR)/bin $(ROOTFS_DIR)/sbin $(ROOTFS_DIR)/lib $(ROOTFS_DIR)/recovery/bin
+	make -C app
+
+appclean:
+	make -C app clean
+
+lib:
+	mkdir -p $(ROOTFS_DIR)/bin $(ROOTFS_DIR)/sbin $(ROOTFS_DIR)/lib $(ROOTFS_DIR)/recovery/bin
+	make -C lib
+
+libclean:
+	make -C lib clean
+
+normal_conf:
+	mkdir -p $(OUTPUT_DIR)
+	mkdir -p $(IMAGE_DIR)
+	echo "AP_BUILD_TYPE = normal" > $(OUTPUT_DIR)/sys_type.mk
+	echo "AP_BUILD_PRJ = $(PRJ_NAME)" >> $(OUTPUT_DIR)/sys_type.mk
+
+normal:
+	make AP_BUILD_TYPE=normal sysclean
+	make AP_BUILD_TYPE=normal normal_conf
+	make AP_BUILD_TYPE=normal sys
+	make AP_BUILD_TYPE=normal normal_rootfs
+	make AP_BUILD_TYPE=normal normal_copybin
+
+normal2: sys normal_rootfs normal_copybin
+
+normalclean:
+	-make AP_BUILD_TYPE=normal sysclean
+	make normal_conf
+	make AP_BUILD_TYPE=normal sysclean
+
+rootfs:
+	make normal_rootfs
+
+copybin:
+
+	make normal_copybin
+
+normal_rootfs: normal_check
+	mkdir -p $(PRJ_BIN_DIR)/allbins $(PRJ_BIN_DIR)/elfs
+	rm -fr $(ROOTFS_DIR)/etc_rw
+	cp -afvp $(PRJ_PRODUCT_DIR)/fs/normal/rootfs/*  $(ROOTFS_DIR)/
+	#cp -v $(PRJ_BIN_DIR)/allbins/ap_userdata.img  $(ROOTFS_DIR)/etc_ro/
+	chmod -R a+r $(ROOTFS_DIR)/etc_ro
+	#find $(ROOTFS_DIR)/bin -type f | xargs chmod a+x
+	#-find $(ROOTFS_DIR)/sbin -type f | xargs chmod a+x
+	chmod a+x $(ROOTFS_DIR)/etc/rc
+	#@cd $(BUILD_DIR); bash ./install_libc.sh $(ROOTFS_DIR)
+	find $(ROOTFS_DIR)/ -type d -name '.gitkeep' -print0 | xargs -0 rm -fr
+	find $(ROOTFS_DIR)/ -type d -name '.git' -print0 | xargs -0 rm -fr
+	find $(ROOTFS_DIR)/ -name '.gitignore' -print0 | xargs -0 rm -fr
+
+ifeq ($(ROOT_FS_TYPE),ubifs)
+	bash $(BUILD_DIR)/ubifs.sh rootfs $(ROOTFS_SIZE) $(ROOTFS_DIR) $(IMAGE_DIR)/rootfs.img
+else
+ifeq ($(ROOT_FS_TYPE),jffs2)
+ifeq ($(PRJ_IS_MIN),yes)
+	bash $(BUILD_DIR)/jffs2_lzma.sh $(ROOTFS_DIR) $(IMAGE_DIR)/rootfs.img lzma
+else
+	bash $(BUILD_DIR)/jffs2_lzma.sh $(ROOTFS_DIR) $(IMAGE_DIR)/rootfs.img lzo
+endif
+endif
+endif
+
+	(cd $(ROOTFS_DIR) && find . -type f -printf '"/%P" Regular 14 %04m:%4U:%4G\n' >  ../rootfs_attr.txt)
+	(cd $(ROOTFS_DIR) && find . -type l -printf '"/%P" SymLink 14 %04m:%4U:%4G\n' >> ../rootfs_attr.txt)
+	(cd $(ROOTFS_DIR) && find . -type d -printf '"/%P" Regular 14 %04m:%4U:%4G\n' >> ../rootfs_attr.txt)
+	(cd $(ROOTFS_DIR)/../ && tar -zcvf $(PRJ_BIN_DIR)/allbins/rootfs.tgz rootfs rootfs_attr.txt)
+	@rm $(ROOTFS_DIR)/../rootfs_attr.txt
+
+normal_copybin: normal_check
+	mkdir -p $(PRJ_BIN_DIR)/allbins $(PRJ_BIN_DIR)/elfs/normalelfs
+	cp -v $(IMAGE_DIR)/rootfs.img $(PRJ_BIN_DIR)/allbins/ap_rootfs.img
+	find   $(APP_DIR)/  -name *.elf  -exec cp {} $(PRJ_BIN_DIR)/elfs/normalelfs \;
+	find   $(LIB_DIR)/  -name "l*.so*"  -type f ! -path "*/.libs/*"  -exec cp {} $(PRJ_BIN_DIR)/elfs/normalelfs \;
+	find   $(STAGEDIR)/libc/lib    -type f -name "*.so*"  -exec cp {} $(PRJ_BIN_DIR)/elfs/normalelfs \;
diff --git a/ap/build/scripts/build_env_mini_vehicle/build_env_mini.sh b/ap/build/scripts/build_env_mini_vehicle/build_env_mini.sh
new file mode 100755
index 0000000..b46c135
--- /dev/null
+++ b/ap/build/scripts/build_env_mini_vehicle/build_env_mini.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+
+CROSS_DIR=v3t_build_env_mini_vehicle
+
+LIB_SET="libdemo zlib"
+APP_SET="appdemo"
+PRJ_NAME=prj_vehicle
+
+if [ ! -d build/compiler ]; then
+  echo "[ERROR] CAN not found build/compiler and run in directory containing ap and build."
+  exit -1
+fi
+
+RSYNC_OPT="rsync -aq --delete --exclude=.svn --exclude=.git"
+
+rm -fr $CROSS_DIR
+rm -fv $CROSS_DIR.tar.gz
+mkdir -p $CROSS_DIR
+
+#±àÒëÁ´
+mkdir -p $CROSS_DIR/build/compiler/gcc-4.9.4_thumb_linux_glibc/
+mkdir -p $CROSS_DIR/build/utils/
+$RSYNC_OPT  ./build/compiler/gcc-4.9.4_thumb_linux_glibc/  $CROSS_DIR/build/compiler/gcc-4.9.4_thumb_linux_glibc/
+$RSYNC_OPT  ./build/utils/  $CROSS_DIR/build/utils/
+
+#libc
+mkdir -p $CROSS_DIR/ap/staging/
+$RSYNC_OPT  ./ap/staging/  $CROSS_DIR/ap/staging/
+
+#ap/build
+mkdir -p $CROSS_DIR/ap/build/
+$RSYNC_OPT  ./ap2/build/   $CROSS_DIR/ap/build/
+
+#prj
+mkdir -p $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME
+$RSYNC_OPT  ./ap2/project/zx297520v3/$PRJ_NAME/ $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/
+cp -v ./ap2/project/pubconf.mk   $CROSS_DIR/ap/project/
+cp -v ./ap2/project/zx297520v3/chip_pubconf.mk  $CROSS_DIR/ap/project/zx297520v3/
+
+#demo lib
+mkdir -p $CROSS_DIR/ap/lib/
+for item in $LIB_SET;do
+  mkdir -p $CROSS_DIR/ap/lib/$item/
+  $RSYNC_OPT  ./ap2/lib/$item/ $CROSS_DIR/ap/lib/$item/
+done
+cp -v ./ap2/lib/Makefile $CROSS_DIR/ap/lib/
+
+#demo app
+mkdir -p $CROSS_DIR/ap/app/
+for item in $APP_SET;do
+  mkdir -p $CROSS_DIR/ap/app/$item/
+  $RSYNC_OPT  ./ap2/app/$item/ $CROSS_DIR/ap/app/$item/
+done
+cp -v ./ap2/app/Makefile $CROSS_DIR/ap/app/
+#mkdir -p $CROSS_DIR/ap/app/include/
+#$RSYNC_OPT  ./ap/app/include/  $CROSS_DIR/ap/app/include/
+
+rm  -fr $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/config/normal/*
+echo "zte_lib := $LIB_SET" > $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/config/normal/config_lib.mk
+echo "zte_app := $APP_SET" > $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/config/normal/config_app.mk
+cp -v $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/config/normal/config_lib.mk  $CROSS_DIR/ap/lib/
+cp -v $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/config/normal/config_app.mk  $CROSS_DIR/ap/app/
+
+
+cp -v ./ap2/build/scripts/build_env_mini/Makefile  $CROSS_DIR/ap/
+cp -v ./ap2/build/scripts/build_env_mini/readme.txt  $CROSS_DIR/
+
+#clean 
+rm -fr $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/fs/normal/rootfs/*
+mkdir -p $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/fs/normal/rootfs/etc
+mkdir -p $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/fs/normal/rootfs/etc_ro
+touch $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/fs/normal/rootfs/etc/rc
+rm -fr $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/fs/recovery
+rm -fr $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/config/recovery
+rm -fr $CROSS_DIR/ap/build/scripts
+rm -fr $CROSS_DIR/ap/build/uClibc
+
+echo "compress files to ${CROSS_DIR}.tar.gz"
+tar -czf  ${CROSS_DIR}.tar.gz  $CROSS_DIR/
+echo "all done"
diff --git a/ap/build/scripts/build_env_mini_vehicle/readme.txt b/ap/build/scripts/build_env_mini_vehicle/readme.txt
new file mode 100755
index 0000000..0e24683
--- /dev/null
+++ b/ap/build/scripts/build_env_mini_vehicle/readme.txt
@@ -0,0 +1,32 @@
+运行平台要求x86_64 Linux,建议ubuntu 12.04、ubuntu 14.04、ubuntu 16.04,其他Linux平台未测试,理论上其他64位Linux环境也可以。

+本编译环境无需安装,解压即可使用。

+

+如果不使用本编译框架,直接使用编译链,参考ap/build/build.sh里CC、AR等定义,CFLAGS和LDFLAGS等建议参数定义在ap/build/base.mk。

+如果软件交叉编译configure需要指定--host和--target,可以配置成--host=arm-linux --target=arm-linux,参见ap/build/base.mk。

+

+如果使用本编译环境编译框架,以prj_mdl为例,只能在project/CHIP_NAME/prj_mdl/build目录运行make命令。

+1、完整编译:make all, 注意本编译链只有normal版本,make normal等同make all。make help可以获得更多信息。

+

+2、增量编译命令

+   normal版本编译:make normal,编译完成打包的文件系统映像ap_userdata.img在project/CHIP_NAME/prj_mdl/bin目录

+   如果编译报错,代码修改后增量编译:make normal2

+

+3、normal版本下,修改了lib代码,make lib app normal_rootfs normal_copybin,或者可以用make normal2

+   ap_userdata.img为根文件系统,在project/CHIP_NAME/prj_mdl/bin目录

+   如果app用了lib的静态库,app的Makefile发现不了依赖,所以最好make appclean一下

+   

+   只解决库编译错误,可以make zte_lib=libdemo lib方式,这样只编译libdemo应用

+   make zte_lib=libdemo libclean只清空libdemo的编译

+

+4、normal版本下,修改了app代码,make app normal_rootfs normal_copybin,或者可以用make normal2

+   ap_userdata.img为根文件系统,在project/CHIP_NAME/prj_mdl/bin目录

+   

+   只解决应用编译错误,可以make zte_app=appdemo app方式,这样只编译appdemo应用

+   make zte_app=appdemo appclean只清空appdemo应用的编译

+

+5、增加应用和库编译

+应用和库的Makefile要包含COMMON_BASE_MK或COMMON_MK,参看app和lib目录的demo实例。

+COMMON_MK比COMMON_BASE_MK多了一些宏定义,如果不需要,包含COMMON_BASE_MK即可。

+5.1 经过configure生成Makefile的开源应用和库建议包含COMMON_BASE_MK,因为某些开源应用如果CFLAGS里包含宏定义会导致configure失败。

+5.2 增加应用编译,应用名称增加到ap/app/config_app.mk里

+5.3 增加库编译,库名称增加到ap/lib/config_lib.mk里

diff --git a/ap/build/scripts/build_env_mini_with_kernel/build_env_mini.sh b/ap/build/scripts/build_env_mini_with_kernel/build_env_mini.sh
index 5e62279..caec81a 100755
--- a/ap/build/scripts/build_env_mini_with_kernel/build_env_mini.sh
+++ b/ap/build/scripts/build_env_mini_with_kernel/build_env_mini.sh
@@ -1,107 +1,87 @@
 #!/bin/bash
 
+rootfs_tgz=$1
 CROSS_DIR=v3t_build_env_mini_with_kernel
 
-LIB_SET="libdemo zlib"
+LIB_SET="libdemo"
 APP_SET="appdemo"
-PRJ_NAME=prj_mdl
+PRJ_NAME=prj_mifi
 
 RSYNC_OPT="rsync -aq --delete --exclude=.svn --exclude=.git"
 
 
-cat ap/Makefile  | grep -n Module.symvers | grep modpost | grep -v "#"
-if [ $? -ne 1 ]; then
-  echo "[ERROR]please comment modpost in ap/Makefile"
-  exit -1
-else
-  echo "ap/Makefile mode post check ok"
-fi
-cat ap/os/linux/linux-3.4.x/.config | grep "# CONFIG_MODVERSIONS is not set"
-if [ $? -ne 0 ]; then
-  echo "[ERROR]please set #CONFIG_MODVERSIONS is not set in config.linux"
-  exit -1
-else
-  echo "CONFIG_MODVERSIONS check ok"
-fi
-cat ap/os/linux/linux-3.4.x/.config | grep "# CONFIG_MODULE_SRCVERSION_ALL is not set"
-if [ $? -ne 0 ]; then
-  echo "[ERROR]please set #CONFIG_MODULE_SRCVERSION_ALL is not set in config.linux"
-  exit -1
-else
-  echo "CONFIG_MODULE_SRCVERSION_ALL check ok"
-fi
+function  copy_files()
+{
+  SRC_DIR=$1
+  DEST_DIR=$2
+  mkdir -p $DEST_DIR
+  $RSYNC_OPT  $SRC_DIR $DEST_DIR
+}
 
 rm -fr $CROSS_DIR
 rm -fv $CROSS_DIR.tar.gz
 mkdir -p $CROSS_DIR
 
 #±àÒëÁ´
-mkdir -p $CROSS_DIR/build/compiler/gcc-4.9.4_thumb_linux/
-$RSYNC_OPT  ./build/compiler/gcc-4.9.4_thumb_linux/  $CROSS_DIR/build/compiler/gcc-4.9.4_thumb_linux/
+copy_files  ./build/  $CROSS_DIR/build/
 
-#libc
-mkdir -p $CROSS_DIR/ap/staging/
-$RSYNC_OPT  ./ap/staging/  $CROSS_DIR/ap/staging/
+#ap/libc
+if [ -d ./ap2/libc ]; then
+  copy_files  ./ap2/libc/  $CROSS_DIR/ap/libc/
+fi
 
 #ap/build
-mkdir -p $CROSS_DIR/ap/build/
-$RSYNC_OPT  ./ap2/build/   $CROSS_DIR/ap/build/
+copy_files  ./ap2/build/   $CROSS_DIR/ap/build/
 
 #prj
-mkdir -p $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME
-$RSYNC_OPT  ./ap2/project/zx297520v3/$PRJ_NAME/ $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/
+copy_files  ./ap2/project/zx297520v3/$PRJ_NAME/ $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/
 cp -v ./ap2/project/pubconf.mk   $CROSS_DIR/ap/project/
+echo "export CONFIG_SDK_KERNEL ?= yes" >> $CROSS_DIR/ap/project/pubconf.mk
 cp -v ./ap2/project/zx297520v3/chip_pubconf.mk  $CROSS_DIR/ap/project/zx297520v3/
+rm -fr $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/config/recovery
+if [ x"$rootfs_tgz" = x"" ]; then
+  echo "skip rootfs_tgz merge"
+else
+  rm -fr ./rootfs/
+  tar xf $rootfs_tgz
+  rm -rf  ./rootfs/lib/cpko
+  copy_files  ./rootfs/ $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/fs/normal/rootfs/
+  echo "rootfs_tgz merge ok"
+fi
+
+cp -v ./ap2/Makefile   $CROSS_DIR/ap/
 
 #demo lib
 mkdir -p $CROSS_DIR/ap/lib/
 for item in $LIB_SET;do
-  mkdir -p $CROSS_DIR/ap/lib/$item/
-  $RSYNC_OPT  ./ap2/lib/$item/ $CROSS_DIR/ap/lib/$item/
+  copy_files  ./ap2/lib/$item/ $CROSS_DIR/ap/lib/$item/
 done
+echo "zte_lib:=$LIB_SET" > $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/config/normal/config_lib.mk
+copy_files  ./ap2/lib/libps/ $CROSS_DIR/ap/lib/libps/
 cp -v ./ap2/lib/Makefile $CROSS_DIR/ap/lib/
 
 #demo app
 mkdir -p $CROSS_DIR/ap/app/
 for item in $APP_SET;do
-  mkdir -p $CROSS_DIR/ap/app/$item/
-  $RSYNC_OPT  ./ap2/app/$item/ $CROSS_DIR/ap/app/$item/
+  copy_files  ./ap2/app/$item/ $CROSS_DIR/ap/app/$item/
 done
+copy_files  ./ap2/app/test_tools/ $CROSS_DIR/ap/app/test_tools/
+echo "zte_app:=$APP_SET" > $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/config/normal/config_app.mk
 cp -v ./ap2/app/Makefile $CROSS_DIR/ap/app/
-#mkdir -p $CROSS_DIR/ap/app/include/
-#$RSYNC_OPT  ./ap/app/include/  $CROSS_DIR/ap/app/include/
 
 #linux kernel
 echo "sync linux kernel"
-mkdir -p $CROSS_DIR/ap/os/
-$RSYNC_OPT  ./ap2/os/   $CROSS_DIR/ap/os/
-cp -v  ap/os/linux/linux-3.4.x/Module.symvers   $CROSS_DIR/ap/os/linux/linux-3.4.x/
+copy_files  ./ap2/os/   $CROSS_DIR/ap/os/
 
 #pub for kernel
-rm -v $CROSS_DIR/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/include/mach/ram_base_config_7520v3.h
-cp -v pub/project/zx297520v3/include/infra/ram_base_config_7520v3.h $CROSS_DIR/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/include/mach/
+copy_files  ./pub/   $CROSS_DIR/pub/
+copy_files  ./cp/   $CROSS_DIR/cp/
+copy_files  ./tools/   $CROSS_DIR/tools/
 
-rm  -fr $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/config/normal/*
-cp -v ap/project/zx297520v3/$PRJ_NAME/config/normal/config.linux  $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/config/normal/
-echo "zte_lib := $LIB_SET" > $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/config/normal/config_lib.mk
-echo "zte_app := $APP_SET" > $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/config/normal/config_app.mk
-cp -v $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/config/normal/config_lib.mk  $CROSS_DIR/ap/lib/
-cp -v $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/config/normal/config_app.mk  $CROSS_DIR/ap/app/
+#fix and clean
+mkdir -p $CROSS_DIR/ap/app/busybox/src/configs
 
 
-cp -v ./ap/build/scripts/build_env_mini_with_kernel/Makefile  $CROSS_DIR/ap/
-cp -v ./ap/build/scripts/build_env_mini_with_kernel/readme.txt  $CROSS_DIR/
-
-#clean 
-rm -fr $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/fs/normal/rootfs/*
-mkdir -p $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/fs/normal/rootfs/etc
-mkdir -p $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/fs/normal/rootfs/etc_ro
-touch $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/fs/normal/rootfs/etc/rc
-rm -fr $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/fs/recovery
-rm -fr $CROSS_DIR/ap/project/zx297520v3/$PRJ_NAME/config/recovery
-rm -fr $CROSS_DIR/ap/build/scripts
-rm -fr $CROSS_DIR/ap/build/uClibc
-
 echo "compress files to ${CROSS_DIR}.tar.gz"
 tar -czf  ${CROSS_DIR}.tar.gz  $CROSS_DIR/
 echo "all done"