Bläddra i källkod

添加crontab任务数据,用于dailybuild使用

Jeff 5 år sedan
förälder
incheckning
ce6b8d4c4c

+ 16 - 0
crontask/crontask.cron

@@ -0,0 +1,16 @@
+20 14 * * * ~/crontask/crontask.run > ~/crontask/crontask.log
+
+# 配置:f1 f2 f3 f4 f5 program [> ./保存日志.log 2>&1]
+#
+# 其 f1 是表示分钟, f2 表示小时, f3 表示一个月份中的第几日, f4 表示月份, f5 表示一个星期中的第几天. program 表示要执行的程式.
+#
+# 当 f1 为 * 时表示每分钟都要执行 program, f2 为 * 时表示每小时都要执行程式, 其余类推.
+# 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行, f2 为 a-b 时表示从第 a 到第 b 小时都要执行, 其余类推.
+# 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次, f2 为 */n 表示每 n 小时个时间间隔执行一次, 其余类推.
+# 当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行, f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行, 其余类推.
+#
+# 使用者也可以将所有的设定先存放在档案 file 中, 用 crontab file 的方式来设定时程表.
+#
+# crontab crontask.cron    #'配置运行信息'
+# crontab -l                #'查看配置信息'
+

+ 8 - 0
crontask/crontask.run

@@ -0,0 +1,8 @@
+echo '############ New Begin of DailyBuild ############' >> ~/crontask/LOG_crontask.log
+var=`date '+%Y-%m-%d %H:%M:%S'`
+echo $var >> ~/crontask/LOG_crontask.log
+~/crontask/dailybuild_rt2841_2851 > ~/crontask/LOG_dailybuild_rt2841_2851.log
+var=`date '+%Y-%m-%d %H:%M:%S'`
+echo $var >> ~/crontask/LOG_crontask.log
+echo '############ done ############' >> ~/crontask/LOG_crontask.log
+

+ 28 - 0
crontask/dailybuild_rt2841_2851

@@ -0,0 +1,28 @@
+#!/bin/bash
+
+export PATH=/opt/git-repo:/usr/lib/jvm/java-8-openjdk-amd64/bin:/home/wjf/.platformio/penv/bin:/home/wjf/.platformio/penv:/scbc_data/wjf/.vscode-server/bin/5763d909d5f12fe19f215cbfdd29a91c0fa9208a/bin:/opt/git-repo:/usr/lib/jvm/java-8-openjdk-amd64/bin:/home/wjf/.vscode-server/bin/5763d909d5f12fe19f215cbfdd29a91c0fa9208a/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+
+
+### Check the code ###
+cd ~
+if [ ! -d "dailybuild" ]; then
+    mkdir dailybuild
+    echo "create the code directory: dailybuild"
+fi
+
+### Daily build for RT2841 master branch ###
+cd ~/dailybuild/
+cp ~/crontask/dailybuild_rt2841_master.sh .
+./dailybuild_rt2841_master.sh
+
+### Daily build for RT2851 master branch ###
+cd ~/dailybuild/
+cp ~/crontask/dailybuild_rt2851_master.sh .
+./dailybuild_rt2851_master.sh
+
+#echo "generate the manifest for the current reversion"
+#var_d=`date '+%m%d%H'`
+#version="V$var_d"
+#repo manifest -r -o manifest-master-$version.xml
+#cp manifest-master-$version.xml /home/RT2841_2851_dailybuild/
+

+ 326 - 0
crontask/dailybuild_rt2841_master.sh

@@ -0,0 +1,326 @@
+#!/bin/bash
+###############################################
+#脚本需要放置在根目录下运行
+###############################################
+stty erase '^H'
+version=""
+WORKSPACE=`pwd`
+ANDROID_DIR=$WORKSPACE"/kernel/android/pie"
+ROOTFS_NAME="R1"
+#SQA_PATH=$WORKSPACE"/SQA_DailyBuild/cts-golden"
+SQA_PATH=$WORKSPACE"/SQA_DailyBuild/odin"
+SQA_AUDIO_FW_PATH=$WORKSPACE"/SQA_DailyBuild/tv051"
+#ANDROIDDEVICE="R1"
+VIDEO_ADDNAME=".opt.2k"
+AUDIO_ADDNAME=".dbx"
+BOOTCODE="RTD285OB6_B1_F1_TV051"
+NEWSAN_BOOTCODE="RTD285OB6_B1_F1_TV051_SA"
+CUS_ID="tv051"
+PROJECTNAME="develop.android.pie.rtd284o.tv051.emmc.andtv.optee"
+COPYTMPNAME=$PROJECTNAME"_img"
+KEY_OPTION=$WORKSPACE"/kernel/android/pie/device/tv051/R1/rt2841Releasekeys"
+Temp_file=$WORKSPACE"/temp_file/temp_file_41"
+RTK_TV_NEWMENU=FALSE
+TCL_APPS_SVN_SRC_APK=https://odm-design-center-hz.tclking.com/svn/scbc_apps/trunk/app/apk
+
+# check cur path is android top
+if [ ! -d $ANDROID_DIR/frameworks ];then
+    echo "please run me from android top path."
+    exit 0
+fi
+
+if [ ! -d "$Temp_file" ]; then
+    cd $WORKSPACE
+    mkdir temp_file
+    chmod 755 -R temp_file
+fi
+
+function customize_app() {
+    rm -rf $ANDROID_DIR/vendor/tv051/app/PrimeVideo_Panasonic
+    rm -rf $ANDROID_DIR/vendor/tv051/app/Esticker_songxia
+    rm -rf $ANDROID_DIR/vendor/tv051/app/AudioLink
+}
+
+var_d=`date '+%m%d%H'`
+mmver="V$var_d"
+echo "MAIN::var_d=" $var_d
+echo "MAIN::mmver=" $mmver
+
+function pre_build_debug() {
+    version="V8-T841T01-debug$var_d"
+    CTS_build=n
+    OTA_build=y
+    Rebuild=y
+    Checkout_app=y
+
+    export TCL_PRODUCT_VERSION=$version
+    echo "userdebug: TCL_PRODUCT_VERSION:      " $TCL_PRODUCT_VERSION
+
+    repo forall -c "pwd && git clean -xfd && git checkout -- ."
+    rm -rf out
+    
+    repo init -u ssh://10.126.16.60:29418/rt2841_manifest -m odin-gms.xml -b master
+    repo sync -j8
+
+    if [ x$Checkout_app = "xy" ]; then
+        HEAD_VERSION=`svn info $TCL_APPS_SVN_SRC_APK|grep Revision|cut -d' ' -f2`
+        if [ -z "$HEAD_VERSION" ]; then
+            echo "HEAD_VERSION is empty, continue without update apps."
+            HEAD_VERSION="0000"
+        else
+            echo "Update apps to SVN $HEAD_VERSION"
+            ./kernel/android/pie/device/tv051/R1/update_apps_rt2841.sh $HEAD_VERSION
+        fi
+    fi
+
+    customize_app
+
+    mmver="V$var_d"_SVN-"$HEAD_VERSION"
+    repo manifest -r -o manifest-master-$mmver.xml
+
+    cd $ANDROID_DIR/build/make
+    sed -i "s/ro.build.user=.*/ro.build.user=\DailyBuild\"/"  tools/buildinfo.sh
+    sed -i "s/ro.build.host=.*/ro.build.host=\scbc-X299-WU8\"/" tools/buildinfo.sh
+}
+
+function build_android() {
+    if [ x$CTS_build = "xy" ];then    
+       ANDROIDLUNCHNAME="R1-user"
+       COMPILEMODE="user"
+    else
+       ANDROIDLUNCHNAME="R1-userdebug"
+       COMPILEMODE="userdebug"
+    fi 
+
+    if [ x$Rebuild = "xy" ];then
+       make_kernel_android
+       Compile_Libvip   
+    else
+       make_kernel_android_noclean
+       Compile_Libvip
+    fi  
+
+    make_img
+
+    if [ x$OTA_build = "xy" ];then
+        if [ x$CTS_build = "xy" ];then
+            echo "There is not make ota !!!!"
+        else
+            make_ota
+        fi
+    fi
+}
+
+#报错退出
+function make_error_exit() {
+    if [ "`echo $?`" != "0" ]; then  #在make clean;make如果失败,则走到这一步,即可在下面进行打印或操作;
+        echo "There is a error , The compiler is fail !!!!"
+        exit
+    fi 
+}
+
+#编译VIP
+function Compile_Libvip() {
+    # Compile VIP TABLE
+    cd $WORKSPACE/kernel/android/pie/vendor/realtek/frameworks/native/libvip/
+    ./genPanelFactory.pl
+}
+
+#编译kernel 时间比较长
+function make_kernel_android() {
+    echo "start make kernel & android"
+
+    cd $ANDROID_DIR
+    rtk_image=$ANDROID_DIR/device/tv051/$ROOTFS_NAME/rtk_images/
+    # Copy binary files (audio/video/bootcode/bootfile/kcpu/factory) for ota build
+    unzip -o $SQA_PATH/AV_FW/bluecore.video"$VIDEO_ADDNAME".zip -d $rtk_image
+    unzip -o $SQA_AUDIO_FW_PATH/AV_FW/bluecore.audio"$AUDIO_ADDNAME".zip -d $rtk_image
+    cp -f $ANDROID_DIR/vendor/realtek/optee_os/optee_img_v3/tee.bin $rtk_image
+    if [ x$CUSTOMER = "xNEWSAN" ] ;then	
+        cp -f $WORKSPACE/SQA_DailyBuild/6in1Board/bootcode/$NEWSAN_BOOTCODE/bootloader.tar $rtk_image	 
+    else
+        cp -f $WORKSPACE/SQA_DailyBuild/bootcode/$BOOTCODE/bootloader.tar $rtk_image
+    fi
+    cp -f $WORKSPACE/image_file_creator/components/packages/package7/customer/$CUS_ID/bootfile.image $rtk_image
+    cp -f $Temp_file/* $rtk_image
+
+    # Run process.sh to encrypt
+    cd $rtk_image
+    ./process.sh
+
+    # Add default power to 'On'
+    cd $ANDROID_DIR"/vendor/realtek/hardware/interfaces/rtkconfigs/1.0/default/RtkProjectConfigs/ProjectConfigs/model"
+    sed -i 's/^ModeStatus = 1/ModeStatus = 0/g' EU_1_RT41_32.ini
+    
+    cd $WORKSPACE/kernel/system
+    # make kernel/android user build + ota
+    # ./build_android_pie.sh [-p project_name] [-c y/n] [-v Build_variant] [-d device_name] {-j job} {-k key_path}
+    case $COMPILEMODE in
+    user)
+        ./build_android_pie.sh -p $PROJECTNAME -c y -v $COMPILEMODE -d $ROOTFS_NAME -j 32 -k $KEY_OPTION -V n -n $RTK_TV_NEWMENU
+    ;;
+    *)
+        ./build_android_pie.sh -p $PROJECTNAME -c y -v $COMPILEMODE -d $ROOTFS_NAME -j 32 -V n -n $RTK_TV_NEWMENU
+    ;;
+    esac
+    make_error_exit
+    echo "make kernel_android succeed"
+}
+
+function make_kernel_android_noclean() {
+    echo "start make kernel & android without clean"
+    echo "start make kernel & android"
+    
+    cd $ANDROID_DIR
+    rtk_image=$ANDROID_DIR/device/tv051/$ROOTFS_NAME/rtk_images/
+    # Copy binary files (audio/video/bootcode/bootfile/kcpu/factory) for ota build
+    unzip -o $SQA_PATH/AV_FW/bluecore.video"$VIDEO_ADDNAME".zip -d $rtk_image
+    unzip -o $SQA_AUDIO_FW_PATH/AV_FW/bluecore.audio"$AUDIO_ADDNAME".zip -d $rtk_image
+    cp -f $ANDROID_DIR/vendor/realtek/optee_os/optee_img_v3/tee.bin $rtk_image
+    if [ x$CUSTOMER = "xNEWSAN" ] ;then
+        cp -f $WORKSPACE/SQA_DailyBuild/6in1Board/bootcode/$NEWSAN_BOOTCODE/bootloader.tar $rtk_image
+    else
+        cp -f $WORKSPACE/SQA_DailyBuild/bootcode/$BOOTCODE/bootloader.tar $rtk_image
+    fi
+    cp -f $Temp_file/* $rtk_image
+    cd $rtk_image
+    ./process.sh
+ 
+    cd $WORKSPACE/kernel/system
+    # make kernel/android user build + ota
+    # ./build_android_pie.sh [-p project_name] [-c y/n] [-v Build_variant] [-d device_name] {-j job} {-k key_path}
+    case $COMPILEMODE in
+    user)
+        ./build_android_pie.sh -p $PROJECTNAME -c n -v $COMPILEMODE -d $ROOTFS_NAME -j 32 -k $KEY_OPTION -V n -n $RTK_TV_NEWMENU
+    ;;
+    *)
+        ./build_android_pie.sh -p $PROJECTNAME -c n -v $COMPILEMODE -d $ROOTFS_NAME -j 32 -V n -n $RTK_TV_NEWMENU
+    ;;
+    esac
+    make_error_exit
+    echo "make kernel & android without clean succeed"
+}
+
+#编译ota
+function make_ota() {
+    cd $ANDROID_DIR
+
+    rtk_image=$ANDROID_DIR/device/tv051/$ROOTFS_NAME/rtk_images/
+    # Copy binary files (audio/video/bootcode/bootfile/kcpu/factory) for ota build
+    unzip -o $SQA_PATH/AV_FW/bluecore.video"$VIDEO_ADDNAME".zip -d $rtk_image
+    unzip -o $SQA_AUDIO_FW_PATH/AV_FW/bluecore.audio"$AUDIO_ADDNAME".zip -d $rtk_image
+    cp -f $ANDROID_DIR/vendor/realtek/optee_os/optee_img_v3/tee.bin $rtk_image
+    if [ x$CUSTOMER = "xNEWSAN" ] ;then
+        cp -f $WORKSPACE/SQA_DailyBuild/6in1Board/bootcode/$NEWSAN_BOOTCODE/bootloader.tar $rtk_image
+    else
+        cp -f $WORKSPACE/SQA_DailyBuild/bootcode/$BOOTCODE/bootloader.tar $rtk_image
+    fi
+    cp -f $WORKSPACE/image_file_creator/components/packages/package7/customer/$CUS_ID/bootfile.image $rtk_image
+    cp -f $WORKSPACE/image_file_creator/components/tmp/pkgfile/package7/factory.tar $rtk_image
+
+    source build/envsetup.sh
+    #选择需要设备
+    lunch $ANDROIDLUNCHNAME
+    make otapackage -j4
+    make_error_exit
+}
+
+#make img
+function make_img() {
+    echo  "start to make_img()>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
+    echo  $PROJECTNAME
+    echo  $COPYTMPNAME
+    
+    cd $WORKSPACE/image_file_creator/
+    #git clean -fdx
+    #git reset --hard
+
+    ### Copy OPTEE to different image_file_creator
+    echo "copy kernel/optee"
+    cp -rf ../kernel/system/tmp/$COPYTMPNAME/* components/packages/package7/
+    cp -f $ANDROID_DIR/vendor/realtek/optee_os/optee_img_v3/tee.bin components/packages/package7/customer/$CUS_ID/
+    cp -f $ANDROID_DIR/vendor/realtek/optee_os/optee_img_v3/tee.map components/packages/package7/customer/$CUS_ID/
+
+    echo "copy bin_panel"
+    mkdir -p $WORKSPACE/image_file_creator/components/packages/package7/ap/bin/Resource/factory/bin_panel/PanelParam/
+    mkdir -p $WORKSPACE/image_file_creator/components/packages/package7/factory/bin_panel/PanelParam/
+    cd $WORKSPACE/kernel/android/pie/vendor/realtek/frameworks/native/libvip/bin_panel/PanelParam/
+    cp -rf *_osd.bin *_pq.bin hdr_table.bin $WORKSPACE/image_file_creator/components/packages/package7/ap/bin/Resource/factory/bin_panel/PanelParam/
+    cp -rf *_osd.bin *_pq.bin hdr_table.bin $WORKSPACE/image_file_creator/components/packages/package7/factory/bin_panel/PanelParam/
+    cd -
+
+    echo "copy video/audio fw"
+    # VCPU 1
+    cp -f $SQA_PATH"/AV_FW/bluecore.video"$VIDEO_ADDNAME".zip" components/packages/package7/bluecore.video.zip
+    cp -f $SQA_PATH"/AV_FW/System.map.video"$VIDEO_ADDNAME components/packages/package7/System.map.video
+
+    # ACPU 1
+    cp -f $SQA_AUDIO_FW_PATH"/AV_FW/bluecore.audio"$AUDIO_ADDNAME".zip" components/packages/package7/bluecore.audio.zip
+    cp -f $SQA_AUDIO_FW_PATH"/AV_FW/System.map.audio"$AUDIO_ADDNAME components/packages/package7/System.map.audio
+    #add impdata
+    cp -f $ANDROID_DIR/out/target/product/$ROOTFS_NAME/impdata.img components/packages/package7/
+    # Make image with bootcode
+    if [ x$CUSTOMER = "xNEWSAN" ] ;then
+        cp -f $WORKSPACE/SQA_DailyBuild/6in1Board/bootcode/$NEWSAN_BOOTCODE/bootloader.tar $WORKSPACE/image_file_creator/components/packages/package7/
+    else
+        cp -f $WORKSPACE/SQA_DailyBuild/bootcode/$BOOTCODE/bootloader.tar $WORKSPACE/image_file_creator/components/packages/package7/
+    fi
+    make image PACKAGES=package7 install_ap=1 install_bootloader=1 CUSTOMER_ID=$CUS_ID PROJECT_NAME=$PROJECTNAME install_impdata=1
+    mv install.img install_USB.img
+    mv install.img.impdata install.img.impdata_USB
+
+    cp -f $WORKSPACE/image_file_creator/components/tmp/pkgfile/package7/factory.tar $Temp_file
+
+    if [ x$CTS_build = "xy" ];then
+        # Make GSI image with bootcode
+        echo "make gsi image with bootcode..."
+        rm -rf $WORKSPACE/image_file_creator/components/packages/package7/vbmeta.img
+        rm -rf $WORKSPACE/image_file_creator/components/packages/package7/system.img
+        cp -f $WORKSPACE/GSI_Image/* $WORKSPACE/image_file_creator/components/packages/package7/
+        make image PACKAGES=package7 install_ap=1 install_bootloader=1 CUSTOMER_ID=$CUS_ID PROJECT_NAME=$PROJECTNAME install_impdata=1
+        mv install.img install_GSI.img
+    fi
+
+    make_error_exit
+    echo "make img succeed"
+}
+
+function copy_file() {
+    var_md=`date '+%m%d'`
+    echo "make_userdebug::var_md=" $var_md
+
+    rm -rf $WORKSPACE/DailyBuild_RT2841*
+    mkdir -p $WORKSPACE/DailyBuild_RT2841_$var_md
+    cp -f $WORKSPACE/image_file_creator/install_USB.img  $WORKSPACE/DailyBuild_RT2841_$var_md/$version.img
+    if [ x$CTS_build = "xy" ];then
+        cp -f $WORKSPACE/image_file_creator/install_GSI.img  $WORKSPACE/DailyBuild_RT2841_$var_md/$version_GSI.img
+        cp -f $ANDROID_DIR/signed-ota_update.zip             $WORKSPACE/DailyBuild_RT2841_$var_md/signed-ota_rt2841_update.zip
+    else
+        cp -f $ANDROID_DIR/out/target/product/R1/*.zip       $WORKSPACE/DailyBuild_RT2841_$var_md/signed-ota_rt2841_update.zip
+    fi
+    mv $WORKSPACE/manifest-master-$mmver.xml $WORKSPACE/DailyBuild_RT2841_$var_md/
+    md5sum $WORKSPACE/DailyBuild_RT2841_$var_md/* > $WORKSPACE/DailyBuild_RT2841_$var_md/MD5.TXT
+    cp -r $WORKSPACE/DailyBuild_RT2841_$var_md /home/RT2841_2851_dailybuild/
+}
+
+function scopy_file() {
+    var_md=`date '+%m%d'`
+    echo "make_userdebug::var_md=" $var_md
+
+    rm -rf $WORKSPACE/DailyBuild_RT2841*
+    mkdir -p $WORKSPACE/DailyBuild_RT2841_$var_md
+    cp -f $WORKSPACE/image_file_creator/install_USB.img  $WORKSPACE/DailyBuild_RT2841_$var_md/$version.img
+    if [ x$CTS_build = "xy" ];then
+        cp -f $WORKSPACE/image_file_creator/install_GSI.img  $WORKSPACE/DailyBuild_RT2841_$var_md/$version_GSI.img
+        cp -f $ANDROID_DIR/signed-ota_update.zip             $WORKSPACE/DailyBuild_RT2841_$var_md/signed-ota_rt2841_update.zip
+    else
+        cp -f $ANDROID_DIR/out/target/product/R1/*.zip       $WORKSPACE/DailyBuild_RT2841_$var_md/signed-ota_rt2841_update.zip
+    fi
+    mv $WORKSPACE/manifest-master-$mmver.xml $WORKSPACE/DailyBuild_RT2841_$var_md/
+    md5sum $WORKSPACE/DailyBuild_RT2841_$var_md/* > $WORKSPACE/DailyBuild_RT2841_$var_md/MD5.TXT
+    cp -r $WORKSPACE/DailyBuild_RT2841_$var_md /home/RT2841_2851_dailybuild/
+}
+
+pre_build_debug
+build_android
+copy_file

+ 291 - 0
crontask/dailybuild_rt2851_master.sh

@@ -0,0 +1,291 @@
+#!/bin/bash
+###############################################
+#脚本需要放置在根目录下运行
+###############################################
+stty erase '^H'
+version=""
+WORKSPACE=`pwd`
+ANDROID_DIR=$WORKSPACE"/kernel/android/pie"
+ROOTFS_NAME="R2"
+#SQA_PATH=$WORKSPACE"/SQA_DailyBuild/cts-golden"
+SQA_PATH=$WORKSPACE"/SQA_DailyBuild/odin"
+SQA_AUDIO_FW_PATH=$WORKSPACE"/SQA_DailyBuild/tv051"
+ANDROIDPRODUCT="MICROMAX"
+VIDEO_ADDNAME=".opt"
+AUDIO_ADDNAME=".MS12D.AC4.dbx"
+BOOTCODE="RTD285OB6_B1_F1_TV051_4K"
+CUS_ID="tv051_4k"
+PROJECTNAME="develop.android.pie.rtd285o.tv051_4K.emmc.andtv.optee"
+COPYTMPNAME=$PROJECTNAME"_img"
+KEY_OPTION=$WORKSPACE"/kernel/android/pie/device/tv051/R1/rt2841Releasekeys"
+Temp_file=$WORKSPACE"/temp_file"
+RTK_TV_NEWMENU=FALSE
+TCL_APPS_SVN_SRC_APK=https://odm-design-center-hz.tclking.com/svn/scbc_apps/trunk/app/apk
+
+# check cur path is android top
+if [ ! -d $ANDROID_DIR/frameworks ];then
+    echo "please run me from android top path."
+    exit 0
+fi
+
+if [ ! -d "$Temp_file" ]; then
+    cd $WORKSPACE
+    mkdir temp_file
+    chmod 755 -R temp_file
+fi
+
+function customize_app() {
+    rm -rf $ANDROID_DIR/vendor/tv051/app/PrimeVideo_Panasonic
+    rm -rf $ANDROID_DIR/vendor/tv051/app/Esticker_songxia
+    rm -rf $ANDROID_DIR/vendor/tv051/app/AudioLink
+}
+
+var_d=`date '+%m%d%H'`
+mmver="V$var_d"
+echo "MAIN::var_d=" $var_d
+echo "MAIN::mmver=" $mmver
+
+function pre_build_debug() {
+    version="V8-T851T01-debug$var_d"
+    CTS_build=n
+    OTA_build=y
+    Rebuild=y
+    Checkout_app=y
+
+    export TCL_PRODUCT_VERSION=$version
+    echo "userdebug: TCL_PRODUCT_VERSION:      " $TCL_PRODUCT_VERSION
+
+    repo forall -c "pwd && git clean -xfd && git checkout -- ."
+    rm -rf out
+    
+    repo init -u ssh://10.126.16.60:29418/rt2841_manifest -m odin-gms.xml -b master
+    repo sync -j8
+
+    if [ x$Checkout_app = "xy" ]; then
+        HEAD_VERSION=`svn info $TCL_APPS_SVN_SRC_APK|grep Revision|cut -d' ' -f2`
+        if [ -z "$HEAD_VERSION" ]; then
+            echo "HEAD_VERSION is empty, continue without update apps."
+            HEAD_VERSION="0000"
+        else
+            echo "Update apps to SVN $HEAD_VERSION"
+            ./kernel/android/pie/device/tv051/R1/update_apps_rt2851.sh $HEAD_VERSION
+        fi
+    fi
+
+    customize_app
+
+    mmver="V$var_d"_SVN-"$HEAD_VERSION"
+    repo manifest -r -o manifest-master-$mmver.xml
+
+    cd $ANDROID_DIR/build/make
+    sed -i "s/ro.build.user=.*/ro.build.user=\DailyBuild\"/"  tools/buildinfo.sh
+    sed -i "s/ro.build.host=.*/ro.build.host=\scbc-X299-WU8\"/" tools/buildinfo.sh
+}
+
+function build_android() {
+    if [ x$CTS_build = "xy" ];then    
+       ANDROIDLUNCHNAME="MICROMAX-user"
+       COMPILEMODE="user"
+    else
+       ANDROIDLUNCHNAME="MICROMAX-userdebug"
+       COMPILEMODE="userdebug"
+    fi 
+
+    if [ x$Rebuild = "xy" ];then
+       make_kernel_android
+       Compile_Libvip   
+    else
+       make_kernel_android_noclean
+       Compile_Libvip
+    fi  
+
+    make_img
+
+    if [ x$OTA_build = "xy" ];then
+        if [ x$CTS_build = "xy" ];then
+            echo "There is not make ota !!!!"
+        else
+            make_ota
+        fi
+    fi
+}
+
+#报错退出
+function make_error_exit() {
+    if [ "`echo $?`" != "0" ]; then  #在make clean;make如果失败,则走到这一步,即可在下面进行打印或操作;
+        echo "There is a error , The compiler is fail !!!!"
+        exit
+    fi 
+}
+
+#编译VIP
+function Compile_Libvip() {
+    # Compile VIP TABLE
+    cd $WORKSPACE/kernel/android/pie/vendor/realtek/frameworks/native/libvip/
+    ./genPanelFactory.pl
+}
+
+#编译kernel 时间比较长
+function make_kernel_android() {
+    echo "start make kernel & android"
+
+    cd $ANDROID_DIR
+    rtk_image=$ANDROID_DIR/device/tv051/$ROOTFS_NAME/rtk_images/
+    # Copy binary files (audio/video/bootcode/bootfile/kcpu/factory) for ota build
+    unzip -o $SQA_PATH/AV_FW/bluecore.video"$VIDEO_ADDNAME".zip -d $rtk_image
+    unzip -o $SQA_AUDIO_FW_PATH/AV_FW/bluecore.audio"$AUDIO_ADDNAME".zip -d $rtk_image
+    cp -f $ANDROID_DIR/vendor/realtek/optee_os/optee_img_v3/tee.bin $rtk_image
+    cp -f $WORKSPACE/SQA_DailyBuild/bootcode/$BOOTCODE/bootloader.tar $rtk_image
+    cp -f $WORKSPACE/image_file_creator/components/packages/package7/customer/$CUS_ID/bootfile.image $rtk_image
+    cp -f $Temp_file/* $rtk_image
+
+    # Run process.sh to encrypt
+    cd $rtk_image
+    ./process.sh
+
+    # Add default power to 'On'
+    cd $ANDROID_DIR"/vendor/realtek/hardware/interfaces/rtkconfigs/1.0/default/RtkProjectConfigs/ProjectConfigs/model"
+    sed -i 's/^ModeStatus = 1/ModeStatus = 0/g' EU_1_RT41_32.ini
+    
+    cd $WORKSPACE/kernel/system
+    # make kernel/android user build + ota
+    # ./build_android_pie.sh [-p project_name] [-c y/n] [-v Build_variant] [-d device_name] {-j job} {-k key_path}
+    case $COMPILEMODE in
+    user)
+        ./build_android_pie.sh -p $PROJECTNAME -c y -v $COMPILEMODE -d $ROOTFS_NAME -j 32 -k $KEY_OPTION -V n -P $ANDROIDPRODUCT -n $RTK_TV_NEWMENU
+    ;;
+    *)
+        ./build_android_pie.sh -p $PROJECTNAME -c y -v $COMPILEMODE -d $ROOTFS_NAME -j 32 -V n -P $ANDROIDPRODUCT -n $RTK_TV_NEWMENU
+    ;;
+    esac
+    make_error_exit
+    echo "make kernel_android succeed"
+}
+
+function make_kernel_android_noclean() {
+    echo "start make kernel & android without clean"
+    echo "start make kernel & android"
+    
+    cd $ANDROID_DIR
+    rtk_image=$ANDROID_DIR/device/tv051/$ROOTFS_NAME/rtk_images/
+    # Copy binary files (audio/video/bootcode/bootfile/kcpu/factory) for ota build
+    unzip -o $SQA_PATH/AV_FW/bluecore.video"$VIDEO_ADDNAME".zip -d $rtk_image
+    unzip -o $SQA_AUDIO_FW_PATH/AV_FW/bluecore.audio"$AUDIO_ADDNAME".zip -d $rtk_image
+    cp -f $ANDROID_DIR/vendor/realtek/optee_os/optee_img_v3/tee.bin $rtk_image
+    cp -f $WORKSPACE/SQA_DailyBuild/bootcode/$BOOTCODE/bootloader.tar $rtk_image
+    cp -f $Temp_file/* $rtk_image
+    cd $rtk_image
+    ./process.sh
+ 
+    cd $WORKSPACE/kernel/system
+    # make kernel/android user build + ota
+    # ./build_android_pie.sh [-p project_name] [-c y/n] [-v Build_variant] [-d device_name] {-j job} {-k key_path}
+    case $COMPILEMODE in
+    user)
+        ./build_android_pie.sh -p $PROJECTNAME -c n -v $COMPILEMODE -d $ROOTFS_NAME -j 32 -k $KEY_OPTION -V n -P $ANDROIDPRODUCT -n $RTK_TV_NEWMENU
+    ;;
+    *)
+        ./build_android_pie.sh -p $PROJECTNAME -c n -v $COMPILEMODE -d $ROOTFS_NAME -j 32 -V n -P $ANDROIDPRODUCT -n $RTK_TV_NEWMENU
+    ;;
+    esac
+    make_error_exit
+    echo "make kernel & android without clean succeed"
+}
+
+#编译ota
+function make_ota() {
+    cd $ANDROID_DIR
+
+    rtk_image=$ANDROID_DIR/device/tv051/$ROOTFS_NAME/rtk_images/
+    # Copy binary files (audio/video/bootcode/bootfile/kcpu/factory) for ota build
+    unzip -o $SQA_PATH/AV_FW/bluecore.video"$VIDEO_ADDNAME".zip -d $rtk_image
+    unzip -o $SQA_AUDIO_FW_PATH/AV_FW/bluecore.audio"$AUDIO_ADDNAME".zip -d $rtk_image
+    cp -f $ANDROID_DIR/vendor/realtek/optee_os/optee_img_v3/tee.bin $rtk_image
+    cp -f $WORKSPACE/SQA_DailyBuild/bootcode/$BOOTCODE/bootloader.tar $rtk_image
+    cp -f $WORKSPACE/image_file_creator/components/packages/package7/customer/$CUS_ID/bootfile.image $rtk_image
+    cp -f $WORKSPACE/image_file_creator/components/tmp/pkgfile/package7/factory.tar $rtk_image
+
+    source build/envsetup.sh
+    #选择需要设备
+    lunch $ANDROIDLUNCHNAME
+    make otapackage -j4
+    make_error_exit
+}
+
+#make img
+function make_img() {
+    echo  "start to make_img()>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
+    echo  $PROJECTNAME
+    echo  $COPYTMPNAME
+    
+    cd $WORKSPACE/image_file_creator/
+    #git clean -fdx
+    #git reset --hard
+
+    ### Copy OPTEE to different image_file_creator
+    echo "copy kernel/optee"
+    cp -rf ../kernel/system/tmp/$COPYTMPNAME/* components/packages/package7/
+    cp -f $ANDROID_DIR/vendor/realtek/optee_os/optee_img_v3/tee.bin components/packages/package7/customer/$CUS_ID/
+    cp -f $ANDROID_DIR/vendor/realtek/optee_os/optee_img_v3/tee.map components/packages/package7/customer/$CUS_ID/
+
+    echo "copy bin_panel"
+    mkdir -p $WORKSPACE/image_file_creator/components/packages/package7/ap/bin/Resource/factory/bin_panel/PanelParam/
+    mkdir -p $WORKSPACE/image_file_creator/components/packages/package7/factory/bin_panel/PanelParam/
+    cd $WORKSPACE/kernel/android/pie/vendor/realtek/frameworks/native/libvip/bin_panel/PanelParam/
+    cp -rf *_osd.bin *_pq.bin hdr_table.bin $WORKSPACE/image_file_creator/components/packages/package7/ap/bin/Resource/factory/bin_panel/PanelParam/
+    cp -rf *_osd.bin *_pq.bin hdr_table.bin $WORKSPACE/image_file_creator/components/packages/package7/factory/bin_panel/PanelParam/
+    cd -
+
+    echo "copy video/audio fw"
+    # VCPU 1
+    cp -f $SQA_PATH"/AV_FW/bluecore.video"$VIDEO_ADDNAME".zip" components/packages/package7/bluecore.video.zip
+    cp -f $SQA_PATH"/AV_FW/System.map.video"$VIDEO_ADDNAME components/packages/package7/System.map.video
+
+    # ACPU 1
+    cp -f $SQA_AUDIO_FW_PATH"/AV_FW/bluecore.audio"$AUDIO_ADDNAME".zip" components/packages/package7/bluecore.audio.zip
+    cp -f $SQA_AUDIO_FW_PATH"/AV_FW/System.map.audio"$AUDIO_ADDNAME components/packages/package7/System.map.audio
+    #add impdata
+    cp -f $ANDROID_DIR/out/target/product/$ROOTFS_NAME/impdata.img components/packages/package7/
+    # Make image with bootcode
+    cp -f $WORKSPACE/SQA_DailyBuild/bootcode/$BOOTCODE/bootloader.tar $WORKSPACE/image_file_creator/components/packages/package7/
+    make image PACKAGES=package7 install_ap=1 install_bootloader=1 CUSTOMER_ID=$CUS_ID PROJECT_NAME=$PROJECTNAME install_impdata=1
+    mv install.img install_USB.img
+    mv install.img.impdata install.img.impdata_USB
+
+    cp -f $WORKSPACE/image_file_creator/components/tmp/pkgfile/package7/factory.tar $Temp_file
+
+    if [ x$CTS_build = "xy" ];then
+        # Make GSI image with bootcode
+        echo "make gsi image with bootcode..."
+        rm -rf $WORKSPACE/image_file_creator/components/packages/package7/vbmeta.img
+        rm -rf $WORKSPACE/image_file_creator/components/packages/package7/system.img
+        cp -f $WORKSPACE/GSI_Image/* $WORKSPACE/image_file_creator/components/packages/package7/
+        make image PACKAGES=package7 install_ap=1 install_bootloader=1 CUSTOMER_ID=$CUS_ID PROJECT_NAME=$PROJECTNAME install_impdata=1
+        mv install.img install_GSI.img
+    fi
+
+    make_error_exit
+    echo "make img succeed"
+}
+
+function copy_file() {
+    var_md=`date '+%m%d'`
+    echo "make_userdebug::var_md=" $var_md
+
+    rm -rf $WORKSPACE/DailyBuild_RT2851*
+    mkdir -p $WORKSPACE/DailyBuild_RT2851_$var_md
+    cp -f $WORKSPACE/image_file_creator/install_USB.img  $WORKSPACE/DailyBuild_RT2851_$var_md/$version.img
+    if [ x$CTS_build = "xy" ];then
+        cp -f $WORKSPACE/image_file_creator/install_GSI.img  $WORKSPACE/DailyBuild_RT2851_$var_md/$version_GSI.img
+        cp -f $ANDROID_DIR/signed-ota_update.zip             $WORKSPACE/DailyBuild_RT2851_$var_md/signed-ota_rt2851_update.zip
+    else
+        cp -f $ANDROID_DIR/out/target/product/R2/*.zip       $WORKSPACE/DailyBuild_RT2851_$var_md/signed-ota_rt2851_update.zip
+    fi
+    mv $WORKSPACE/manifest-master-$mmver.xml $WORKSPACE/DailyBuild_RT2851_$var_md/
+    md5sum $WORKSPACE/DailyBuild_RT2851_$var_md/* > $WORKSPACE/DailyBuild_RT2851_$var_md/MD5.TXT
+    cp -r $WORKSPACE/DailyBuild_RT2851_$var_md /home/RT2841_2851_dailybuild/
+}
+
+pre_build_debug
+build_android
+copy_file