瀏覽代碼

添加41A、51M自动编译标准化脚本。

Jeff Wang 3 年之前
父節點
當前提交
70d70bd38b

+ 545 - 0
自动编译系统脚本标准化/41A-CompileScript.sh

@@ -0,0 +1,545 @@
+#!/bin/bash
+
+#/////////////////////////////////////////////////////////////////#
+#////// 其他变量定义,全大写 //////#
+# 工作空间目录;
+WORK_DIR=$(pwd)
+echo "$WORK_DIR"
+# Android目录;
+ANDROID_DIR=${WORK_DIR}"/kernel/android/R"
+# 配置文件;
+PROJECT_NAME="CASPER.cfg"
+# Dailybuild输出目录;
+RTK_DAILYBUILD_OUTPUT_PATH=${WORK_DIR}"/kernel/system/tmp/dailybuild_output"
+# Key目录;
+KEY_OPTION=${ANDROID_DIR}"/device/tv051/R3/Releasekeys"
+# 是否增量编译OTA包(Incremental Compilation OTA),只用于Arg_BuildMark=1时,即Dailybuild才需要; 
+# 星期四:全量编译OTA;
+# 星期五:增量编译OTA;
+IC_OTA=false
+# SVN路径;
+SCBC_APPS_SVN_SRC_APK=https://odm-design-center-hz.tclking.com/svn/scbc_apps/trunk/app/apk
+# 重定向输出日志;
+REDIRECT_LOG=false
+# 日志文件;
+LOG_FILE=${WORK_DIR}/Target/build.log
+# 是否编译中间件;
+export TV_MIDWARE_MAKE=false
+# 是否安装RTK的APP,即RTK公版;
+export RTK_TV_APK_INSTALL=false
+# 是否开启远场语音;
+# export Argument_FarfieldVoice=true
+# 版本号;
+export SCBC_PRODUCT_VERSION="V8-T841AGL-LF1V001"
+#/////////////////////////////////////////////////////////////////#
+
+# 获取参数个数使用: $#
+echo "外部参数个数="$#
+
+# 定义外部参数,命名要求:匈牙利命名,带前缀Arg_.
+# 每个参数意义,需要明确说明,请参照以下方式添加新参数;
+#/////////////////////////////////////////////////////////////////#
+# 外部参数定义: 字符串类型、布尔类型、数字类型;
+Arg_CodeSync=true                           # 是否需要更新代码;
+Arg_BuildRelease=''                         # 编译的Img类型:2=Debug、1=Release(CTS\user);
+Arg_BuildOTA=false                          # 是否编译OTA包;
+Arg_VersionNum=''                           # 编译版本号;
+Arg_CleanBuild=false                        # 是否Clean编译;
+Arg_BrandName=''                            # 编译的品牌名称;
+Arg_FarfieldVoice=true                      # 是否开启远场语音;
+Arg_MakeTVMidware=false                     # 是否编译TVMidware
+Arg_InstallRTKAPK=false                     # 是否安装RTK APK,即RTK公版;
+Arg_BuildMark=0                             # 编译类型:给一个编译标志,用于区分某些编译的不同,如1=Dailybuild, 0=普通编译;
+#/////////////////////////////////////////////////////////////////#
+
+# 解析外部参数;
+parseArgument()
+{
+    echo "func=parseArgument"
+    # 遍历参数;
+    for arg in $*
+    do
+        if [[ $arg == *'='* ]];then
+            # 获取参数值;
+            key=${arg%%=*}
+            val=${arg#*=}
+            echo -e $arg "\t\t\t取等号左边值:"${key} "\t\t\t取等号右边值:"${val}
+
+            # 新增外部参数时,请依次添加;
+            if [ ${key} = 'Arg_BuildRelease' ];then
+                Arg_BuildRelease=${val}
+            fi
+
+            if [ ${key} = 'Arg_BuildOTA' ];then
+                Arg_BuildOTA=${val}
+            fi
+
+            if [ ${key} = 'Arg_VersionNum' ];then
+                Arg_VersionNum=${val}
+            fi
+
+            if [ ${key} = 'Arg_CleanBuild' ];then
+                Arg_CleanBuild=${val}
+            fi
+
+            if [ ${key} = 'Arg_BrandName' ];then
+                Arg_BrandName=${val}
+            fi
+
+            if [ ${key} = 'Arg_FarfieldVoice' ];then
+                Arg_FarfieldVoice=${val}
+            fi
+
+            if [ ${key} = 'Arg_MakeTVMidware' ];then
+                Arg_MakeTVMidware=${val}
+            fi
+
+            if [ ${key} = 'Arg_InstallRTKAPK' ];then
+                Arg_InstallRTKAPK=${val}
+            fi
+
+            if [ ${key} = 'Arg_BuildMark' ];then
+                Arg_BuildMark=${val}
+            fi
+        fi
+    done
+
+    REDIRECT_LOG=true
+}
+
+# 用户手动选择参数进行编译;
+manualArgument()
+{
+    echo "==================================================================================="
+    echo "默认客户版本号:V8-T851MGL-LF1V001"
+    echo "==================================================================================="
+    echo "请输入版本号[Please type version]"
+    read -p "[V8-T841AGL-LF1V001]" Arg_VersionNum
+    echo "CTS or not?"
+    read -p "[1-CTS 2-Debug ]" Arg_BuildRelease
+    echo "Build OTA package or not?"
+    read -p "[y/n]" Arg_BuildOTA
+    echo "是否启用远场语音[n/y]?"
+    read -p "[n/y]" Arg_FarfieldVoice
+    echo "Clean or not?"
+    read -p "[n/y]" Arg_CleanBuild
+    echo "是否编译中间件"
+    read -p "[n/y]" Arg_MakeTVMidware
+    echo "是否编译RTK公版?"
+    read -p "[n/y]" Arg_InstallRTKAPK
+    read -p "编译标志位
+    [
+        0-Normal(defualt) 1-Dailybuild 
+    ] " Arg_BuildMark
+}
+
+# 初始化参数;
+initArgument()
+{
+    # 删除上一次的编译文件;
+    rm -rf ${WORK_DIR}/Target
+    mkdir ${WORK_DIR}/Target
+
+    # 当REDIRECT_LOG=true时,重定向输出;
+    if [ ${REDIRECT_LOG} = true ]; then
+        if [ -f ${LOG_FILE} ]; then
+            rm -f ${LOG_FILE}
+        fi
+        # 重定向Log到文件中;
+        exec 1>>${LOG_FILE}
+        exec 2>>${LOG_FILE}
+    fi
+
+    # 用户不给版本号,设置默认值;
+    if [ x$Arg_VersionNum = "x" ];then
+       Arg_VersionNum=V8-T841AGL-LF1V001
+    fi
+
+    # 远场语音设置:用户选择n不开启,否则不选或y都为开启;
+    if [ x$Arg_FarfieldVoice = "xn" ]; then
+        Arg_FarfieldVoice=false
+    else
+        Arg_FarfieldVoice=true
+    fi
+
+    # 用户不选择OTA编译,则默认为false;
+    if [ x$Arg_BuildOTA = "x" ]; then
+        Arg_BuildOTA=false
+    fi
+
+    # Clean编译:用户手动选择,则true,否则不选或n都为关闭;
+    if [ x$Arg_CleanBuild = "xy" ]; then
+        Arg_CleanBuild=true
+    else
+        Arg_CleanBuild=false
+    fi
+    
+    # 编译类型:用户不选择则默认user(CTS);
+    if [ x$Arg_BuildRelease = "x" ]; then
+        Arg_BuildRelease=1
+    fi
+
+    # 将字串小写比较;
+    if [ x${Arg_BuildRelease,} = "xdebug" ]; then
+        Arg_BuildRelease=2
+    fi
+
+    if [ x${Arg_BuildRelease,} = "xrelease" ]; then
+        Arg_BuildRelease=1
+    fi
+
+    # 编译中间件,默认false;
+    if [ x$Arg_MakeTVMidware = "xy" ]; then
+        Arg_MakeTVMidware=true
+    else
+        Arg_MakeTVMidware=false
+    fi
+
+    # rtk公版;
+    if [ x$Arg_InstallRTKAPK = "xy" ]; then
+        Arg_InstallRTKAPK=true
+        # RTK公版不能编译中间件;
+        Arg_MakeTVMidware=false
+    else
+        Arg_InstallRTKAPK=false
+    fi
+
+    # Arg_BuildMark,无选或大于范围的值默认为Normal编译;
+    if [ x$Arg_BuildMark = "x" ] || [ $Arg_BuildMark -gt 1 ]; then
+        Arg_BuildMark=0
+    fi
+
+    #export TV_MIDWARE_MAKE=${Arg_MakeTVMidware}
+    export SCBC_PRODUCT_VERSION=${Arg_VersionNum}
+    export RTK_TV_APK_INSTALL=${Arg_InstallRTKAPK}
+    # export Argument_FarfieldVoice=${Arg_FarfieldVoice}
+    echo "==================================================================================="
+    echo "SCBC_PRODUCT_VERSION:         ${SCBC_PRODUCT_VERSION}"
+    echo "RTK_TV_APK_INSTALL:           ${Arg_InstallRTKAPK}"
+    # echo "Arg_FarfieldVoice:            ${Arg_FarfieldVoice}"
+    echo "Arg_BuildOTA:                 ${Arg_BuildOTA}"
+    echo "Arg_CleanBuild:               ${Arg_CleanBuild}"
+    echo "==================================================================================="
+    echo "软件版本(version):             ${Arg_VersionNum}    "
+    echo "CTS版本编译:                   ${Arg_BuildRelease}  "
+    #echo "TV_MIDWARE_MAKE:              ${Arg_MakeTVMidware} "
+    echo "Arg_InstallRTKAPK:            ${Arg_InstallRTKAPK} "
+    echo "Arg_BuildMark:                ${Arg_BuildMark} "
+    echo "==================================================================================="
+}
+
+pre_build()
+{
+    HEAD_VERSION=`svn info $SCBC_APPS_SVN_SRC_APK|grep Revision|cut -d' ' -f2`
+    if [ -z "$HEAD_VERSION" ]; then
+        echo "HEAD_VERSION is empty 退出编译"
+        exit;
+    fi
+
+    cd ${WORK_DIR}
+    ./kernel/android/R/device/tv051/R3/update_debug_apps.sh
+    ./kernel/android/R/device/tv051/R3/save_apps_svn.sh
+}
+
+
+build_img()
+{   
+    rm -rf ${ANDROID_DIR}/signed-target_files.zip
+    rm -rf ${ANDROID_DIR}/signed-ota_update.zip
+    rm -rf ${WORK_DIR}/image_creator/*.img
+    rm -rf ${WORK_DIR}/kernel/system/tmp/dailybuild_output
+    
+    if [ ${Arg_BuildRelease} -eq 1 ];then
+        COMPILEMODE="CASPER-user"
+    else
+        COMPILEMODE="CASPER-userdebug"
+    fi 
+
+    if [ ${Arg_CleanBuild} = true ];then
+        make_img_clean  
+    else
+        make_img_noclean 
+    fi  
+}
+
+#报错退出
+make_error_exit() 
+{
+    if [ "$(echo $?)" != "0" ]; then  
+        echo "There is a error , The compiler is fail !!!!"
+        exit
+    fi 
+}
+
+#编译kernel
+make_kernel() 
+{
+   echo "Start make linux kernel"
+   #./build_android.sh [-p project_name] [-c y/n] [-v Build_variant] [-d device_name] {-j job} {-k key_path}
+   cd ${WORK_DIR}/kernel/system
+    #./build_android.sh -p $PROJECT_NAME -c n -v $COMPILEMODE -j 12 -k $KEY_OPTION -V n 
+   make_error_exit
+   echo "make linux kernel succeed"
+}
+
+#编译kernel and Android
+make_img_clean() 
+{
+    echo "make_img_clean"
+    cd ${WORK_DIR}/kernel/system
+    case $COMPILEMODE in
+    user)
+        ./build_android.sh -p $PROJECT_NAME -c y -v $COMPILEMODE -j 8 -k $KEY_OPTION -o y
+    ;;
+    *)
+        if [ $Arg_BuildOTA = true ];then
+            ./build_android.sh -p $PROJECT_NAME -c y -v $COMPILEMODE -j 8 -k $KEY_OPTION -o y  
+        else 
+            ./build_android.sh -p $PROJECT_NAME -c y -v $COMPILEMODE -j 8 -o y 
+        fi    
+        make_error_exit
+    ;;
+    esac
+    
+    cd ${WORK_DIR}/image_creator
+    python create_rtk_image.py --profile=CASPER_allpackage.cfg --bootcode=n --outfile=install_wipe.img --clean_factory=n
+    
+    make_error_exit
+}
+
+#编译kernel and Android noclean
+make_img_noclean() 
+{
+    echo "make_img_noclean"
+    cd ${WORK_DIR}/kernel/system
+    #./build_android.sh [-p project_name] [-c y/n] [-v Build_variant] [-d device_name] {-j job} {-k key_path}
+    #./build_android.sh -p CASPER.cfg -c n -v userdebug -j 8
+    case $COMPILEMODE in
+    user)
+        ./build_android.sh -p $PROJECT_NAME -c n -v $COMPILEMODE -j 8 -k $KEY_OPTION -o y
+        make_error_exit
+    ;;
+    *)
+        if [ $Arg_BuildOTA = true ];then
+            ./build_android.sh -p $PROJECT_NAME -c n -v $COMPILEMODE -j 8 -k $KEY_OPTION -o y  
+        else 
+            ./build_android.sh -p $PROJECT_NAME -c n -v $COMPILEMODE -j 8 -o y 
+        fi   
+        make_error_exit
+    ;;
+    esac
+
+    cd ${WORK_DIR}/image_creator
+    python create_rtk_image.py --profile=CASPER_allpackage.cfg --bootcode=n --outfile=install_wipe.img --clean_factory=n
+
+    make_error_exit
+}
+
+# 复制结果(同时需要处理OTA增量编译);
+copy_file() 
+{
+    if [ $Arg_BuildRelease -eq 1 ];then
+        OutputDir="${Arg_VersionNum}"-CTS
+    else
+        OutputDir=${Arg_VersionNum}
+    fi
+
+    mkdir  -p ${WORK_DIR}/Target/${OutputDir}/BOOT
+    mkdir  -p ${WORK_DIR}/Target/${OutputDir}/OTA
+    mkdir  -p ${WORK_DIR}/Target/${OutputDir}/USB
+    mkdir  -p ${WORK_DIR}/Target/${OutputDir}/WIPE
+    mkdir  -p ${WORK_DIR}/Target/${OutputDir}/Write
+    mkdir  -p ${WORK_DIR}/Target/${OutputDir}/Reports
+    mkdir  -p ${WORK_DIR}/Target/${OutputDir}/OTA/IncrementalOTA
+
+    if [ $Arg_BuildRelease -eq 1 ];then
+        cd ${WORK_DIR}/kernel/android/R/vendor/realtek/tool/image_file_creator
+        cp install_user_2K_RTD28XOB8_A1_TV051_R3_2K.img  ${WORK_DIR}/Target/${OutputDir}/USB/${OutputDir}.img
+        md5sum ${WORK_DIR}/Target/${OutputDir}/USB/${OutputDir}.img >  ${WORK_DIR}/Target/${OutputDir}/USB/MD5.txt
+
+        cp -f ${ANDROID_DIR}/signed-target_files.zip ${WORK_DIR}/Target/${OutputDir}/OTA/"${OutputDir}"-target_files.zip
+        cp -f ${ANDROID_DIR}/signed-ota_update.zip  ${WORK_DIR}/Target/${OutputDir}/OTA/"${OutputDir}"-ota_update.zip
+        md5sum ${WORK_DIR}/Target/${OutputDir}/OTA/"${OutputDir}"-target_files.zip >  ${WORK_DIR}/Target/${OutputDir}/OTA/MD5_target_files.txt
+        md5sum ${WORK_DIR}/Target/${OutputDir}/OTA/"${OutputDir}"-ota_update.zip >  ${WORK_DIR}/Target/${OutputDir}/OTA/MD5_ota_update.zip.txt
+    else
+        cd ${WORK_DIR}/kernel/android/R/vendor/realtek/tool/image_file_creator
+        cp install_userdebug_2K_RTD28XOB8_A1_TV051_R3_2K.img  ${WORK_DIR}/Target/${OutputDir}/USB/${OutputDir}.img 
+        md5sum ${WORK_DIR}/Target/${OutputDir}/USB/${OutputDir}.img >  ${WORK_DIR}/Target/${OutputDir}/USB/MD5.txt
+        
+        if [ $Arg_BuildOTA = true ];then
+            cp -f ${ANDROID_DIR}/signed-target_files.zip ${WORK_DIR}/Target/${OutputDir}/OTA/"${OutputDir}"-target_files.zip
+        cp -f ${ANDROID_DIR}/signed-ota_update.zip  ${WORK_DIR}/Target/${OutputDir}/OTA/"${OutputDir}"-ota_update.zip
+            md5sum ${WORK_DIR}/Target/${OutputDir}/OTA/"${OutputDir}"-ota_update.zip >  ${WORK_DIR}/Target/${OutputDir}/OTA/MD5_ota_update.zip.txt
+            md5sum ${WORK_DIR}/Target/${OutputDir}/OTA/"${OutputDir}"-target_files.zip >  ${WORK_DIR}/Target/${OutputDir}/OTA/MD5_target_files.txt
+        fi
+    fi 
+    cp -f ${ANDROID_DIR}/out/target/product/R3/system/build.prop  ${WORK_DIR}/Target/${OutputDir}/USB/
+    cd ${WORK_DIR}/kernel/android/R/vendor/realtek/tool/image_file_creator
+    cp install_wipe.img   ${WORK_DIR}/Target/${OutputDir}/WIPE/"${OutputDir}"-wipe.img 
+    md5sum ${WORK_DIR}/Target/${OutputDir}/WIPE/*.img >  ${WORK_DIR}/Target/${OutputDir}/WIPE/MD5_WIPE.txt
+    cp -f ${WORK_DIR}//kernel/fw/bootcode/RTD28XOB8_A1_TV051_R3_2K/*  ${WORK_DIR}/Target/${OutputDir}/BOOT/
+    md5sum ${WORK_DIR}/Target/${OutputDir}/BOOT/bootcode_for_rtice.bin >  ${WORK_DIR}/Target/${OutputDir}/BOOT/MD5_bootcode_for_rtice.txt
+    md5sum ${WORK_DIR}/Target/${OutputDir}/BOOT/bootloader.img >  ${WORK_DIR}/Target/${OutputDir}/BOOT/MD5_bootloader_img.txt
+    md5sum ${WORK_DIR}/Target/${OutputDir}/BOOT/bootloader.pkg >  ${WORK_DIR}/Target/${OutputDir}/BOOT/MD5_bootloader_pkg.txt
+    md5sum ${WORK_DIR}/Target/${OutputDir}/BOOT/dvrboot.exe.bin >  ${WORK_DIR}/Target/${OutputDir}/BOOT/MD5_dvrboot.exe.txt
+    md5sum ${WORK_DIR}/Target/${OutputDir}/BOOT/dvrboot.rescue.exe.bin>  ${WORK_DIR}/Target/${OutputDir}/BOOT/MD5_dvrboot_rescue_exe.txt
+
+    # 处理Dailybuild 增量编译;
+    if [ $Arg_BuildMark -eq 1 ]; then
+        # 获取周几:0~6 星期天~星期六
+        week=$(date +%w)
+        # 周五:增量编译OTA,需要保存周四的全量包;
+        if [ ${week} -eq 4 ]; then
+            day=$(date +%m%d)
+            echo "保存周四全量编译OTA包,用于周五增量编译OTA" # /home/exchange/Dailybuild/ 该目录必须存在且有权限;
+            cp -r ${WORK_DIR}/Target/${OutputDir}/OTA/*-target_files.zip /home/exchange/Dailybuild/RTK2841A_OTA_$day/
+        fi 
+    fi
+}
+
+# 保存apk;
+save_apk_svn() 
+{
+    cp ${ANDROID_DIR}/vendor/tv051/app/prebuilt_app/save_apk_svn  ${WORK_DIR}/Target/${OutputDir}/Reports
+}
+
+# 保存版本号文件;
+save_version_number() 
+{
+    var_d=$(date '+%Y%m%d%H')
+    version_number="${Arg_VersionNum}"_"$var_d"
+    cd ${WORK_DIR}
+    repo manifest -r -o ./$version_number.xml
+    cp -r ${WORK_DIR}/$version_number.xml  ${WORK_DIR}/Target/${OutputDir}/Reports/
+    rm ${WORK_DIR}/$version_number.xml
+}
+
+getold()
+{
+    cd ${WORK_DIR}/OTA/old/
+    files=$(ls $path)
+    A=".zip";
+    for filename1 in $files
+    do
+        if [[ $filename1 == *$A* ]] ; then  
+            echo $filename1
+        fi
+    done
+}
+
+getnew()
+{
+    cd ${WORK_DIR}/OTA/new/
+    files=$(ls $path)
+    B=".zip";
+    for filename2 in $files
+    do
+        if [[ $filename2 == *$B* ]] ; then  
+            echo $filename2
+        fi
+    done
+}
+
+makeota_diff()
+{
+    otaname="51M"_"$filename1"_"$filename2"
+    cd ${ANDROID_DIR}
+    ./build/tools/releasetools/ota_from_target_files --signapk_path ${ANDROID_DIR}/out/host/linux-x86/framework/signapk.jar  --signapk_shared_library_path  ${ANDROID_DIR}/out/host/linux-x86/lib64  -i  ${WORK_DIR}/OTA/old/$filename1  ${WORK_DIR}/OTA/new/$filename2  ${WORK_DIR}/OTA/IncrementalOTA/$otaname.zip
+    md5sum ${WORK_DIR}/OTA/IncrementalOTA/$otaname.zip >  ${WORK_DIR}/OTA/IncrementalOTA/MD5_incrementalOTA.txt
+}
+
+make_incrementalOTA()
+{
+    yesterday=$(date -d"-1 day" +%m%d )
+    cp -r /home/exchange/Dailybuild/RTK2841A_OTA_$yesterday/*-target_files.zip  ${WORK_DIR}/OTA/old/
+    cp -r ${WORK_DIR}/Target/${OutputDir}/OTA/*-target_files.zip  ${WORK_DIR}/OTA/new/
+    cd ${ANDROID_DIR}
+    source build/envsetup.sh
+    lunch NOKIA-userdebug
+    getnew
+    getold
+    makeota_diff
+    cp -r ${WORK_DIR}/OTA/IncrementalOTA/  ${WORK_DIR}/Target/${OutputDir}/OTA
+}
+
+EnableFarfieldVoice()
+{
+    if [ ${Arg_FarfieldVoice} == true ]; then
+        echo "开启远场语音"
+        cd ${ANDROID_DIR}/device/tv051/R3/
+        findstr='    device\/tv051\/R3\/etc\/permissions\/privapp-permissions-rtk.xml:system_ext\/etc\/permissions\/privapp-permissions-rtk.xml \\'
+        newline='    device/tv051/R3/etc/permissions/echo_reference.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/echo_reference.xml \\'
+        sed -i "/^$findstr/a\\$newline" device.mk
+    fi
+}
+
+commitMidware()
+{
+    Arg_MakeTVMidware=false # 41A不需要编译中间件;
+    if [ $Arg_MakeTVMidware = true ]; then
+        cd "${ANDROID_DIR}"/vendor/tv051/app/prebuilt_app/TVMidwareManager || exit
+        midware_revision=$(svn info --show-item last-changed-revision)
+        cd "${ANDROID_DIR}"/vendor/tv051/app/prebuilt_app/tvmidware/ || exit
+        readme_midware_revision=$(sed  -n '/revision/p' readme.txt | awk -F '=' '{print $2}')
+        if [ $midware_revision -gt $readme_midware_revision ]; then
+            cp -f ${ANDROID_DIR}/out/target/product/R3/system_ext/framework/tv-midware-manager.jar  ${ANDROID_DIR}/vendor/tv051/app/prebuilt_app/tvmidware/tv-midware-manager.jar
+            cp -f ${ANDROID_DIR}/out/target/product/R3/system_ext/framework/oat/arm/tv-midware-manager.odex   ${ANDROID_DIR}/vendor/tv051/app/prebuilt_app/tvmidware/oat/arm/tv-midware-manager.odex
+            cp -f ${ANDROID_DIR}/out/target/product/R3/system_ext/framework/oat/arm/tv-midware-manager.vdex   ${ANDROID_DIR}/vendor/tv051/app/prebuilt_app/tvmidware/oat/arm/tv-midware-manager.vdex
+            cd "${ANDROID_DIR}"/vendor/tv051/app/prebuilt_app/tvmidware || exit 
+            sed -i "s/revision=$readme_midware_revision/revision=$midware_revision/" readme.txt
+            svn add tv-midware-manager.jar
+            svn add readme.txt
+            svn add oat/
+            svn commit -m "dailybuild commit revision $midware_revision"
+        fi
+        cd "${ANDROID_DIR}"/vendor/tv051/app/prebuilt_app/ || exit
+        rm -rf  TVMidwareManager/
+    fi
+}
+
+setMakeFileBuildNumber()
+{
+    cd "${ANDROID_DIR}"/build/make || exit
+    git checkout -- core/Makefile
+    # 0:11 - 取左边11个字符判断是否="V8-T851MGL-LF1V"
+    if [ ${Arg_VersionNum:0:15} == 'V8-T851MGL-LF1V' ]; then
+        BUILD_NUMBER=${Arg_VersionNum:0-3} #0-3:取最后3位;        
+    else
+        BUILD_NUMBER='dailybuild'${Arg_VersionNum##*debug}
+    fi
+    echo ${BUILD_NUMBER}
+    sed -i "s/BF_BUILD_NUMBER := 000/BF_BUILD_NUMBER := ${BUILD_NUMBER}/g" core/Makefile
+    sed -i "s/BUILD_NUMBER_FROM_FILE:= 000/BUILD_NUMBER_FROM_FILE:= ${BUILD_NUMBER}/g" core/Makefile
+}
+
+
+compile()
+{
+    setMakeFileBuildNumber
+    pre_build
+    build_img
+    copy_file
+    save_apk_svn
+    save_version_number
+    if [ $IC_OTA = true ];then
+        make_incrementalOTA
+    fi
+}
+
+main()
+{
+    # 如果外部参数>0,解析参数;
+    if [ $# -gt 0 ]; then
+        parseArgument $@
+    else
+        manualArgument
+    fi
+
+    # 初始化参数;
+    initArgument
+
+    # 编译;
+    compile
+}
+
+main $@

+ 2 - 17
自动编译系统脚本标准化/51M-CompileScript.sh

@@ -438,8 +438,8 @@ copy_file()
         # 获取周几:0~6 星期天~星期六
         week=$(date +%w)
         # 周五:增量编译OTA,需要保存周四的全量包;
-        if [ ${week} -eq 4 ] && [ $IC_OTA = true ] ; then
-            day=$(date +%m%d )
+        if [ ${week} -eq 4 ]; then
+            day=$(date +%m%d)
             echo "保存周四全量编译OTA包,用于周五增量编译OTA" # /home/exchange/Dailybuild/ 该目录必须存在且有权限;
             cp -r ${WORK_DIR}/Target/${OutputDir}/OTA/*-target_files.zip /home/exchange/Dailybuild/RTK2851M_OTA_$day/
         fi 
@@ -463,21 +463,6 @@ save_version_number()
     rm ${WORK_DIR}/$version_number.xml
 }
 
-copy_file_dailybuild()
-{
-    if [ $Arg_BuildRelease -eq 1 ];then
-        OutputDir="${Arg_VersionNum}"-CTS
-    else
-        OutputDir=${Arg_VersionNum}
-    fi
-
-    var_md=$(date '+%m%d')
-    echo "make_userdebug::var_md=" $var_md
-    cp -r ${WORK_DIR}/Target/${OutputDir}/USB /home/exchange/Dailybuild/DailyBuild_RT2851M_$var_md
-    cp -r ${WORK_DIR}/Target/${OutputDir}/OTA /home/exchange/Dailybuild/DailyBuild_RT2851M_$var_md
-    cp ${WORK_DIR}/Target/${OutputDir}/Reports/* /home/exchange/Dailybuild/DailyBuild_RT2851M_$var_md
-}
-
 getold()
 {
     cd ${WORK_DIR}/OTA/old/