BUILD_SCRIPT_DIR=$(dirname `readlink -f $0`) TOP_DIR=${BUILD_SCRIPT_DIR}/../../../.. BUILD_TYPE=userdebug BUILD_MODE=r MAKE_OTA_PACKAGE=no START_BUILD=yes MODEL_NAME=UP01 BUILD_TARGET=MT6893 BUILD_SYSTEM_TARGET=mssi_64_ww_armv82 SYSTEM_DIR=${TOP_DIR}/../system SYSTEM_OUT_DIR=${SYSTEM_DIR}/out_sys/target/product/$BUILD_SYSTEM_TARGET BUILD_VENDOR_TARGET=k6893v1_64_k419 VENDOR_DIR=${TOP_DIR} VENDOR_OUT_DIR=${VENDOR_DIR}/out/target/product/$BUILD_VENDOR_TARGET function build_sw_out_dir() { export SW_OUT_DIR=${VENDOR_DIR}/download_images } build_sw_out_dir function print_env() { echo -e "\033[32m ---------------- print all build related parameters start ---------------- \033[0m" build_sw_out_dir echo -e "\033[32m system target:$BUILD_SYSTEM_TARGET; system dir:$SYSTEM_DIR; system out:$SYSTEM_OUT_DIR; lunch: sys_${BUILD_SYSTEM_TARGET}-${BUILD_TYPE}\033[0m" echo -e "\033[32m vendor target:$BUILD_VENDOR_TARGET; vendor dir:$VENDOR_DIR; vendor out:$VENDOR_OUT_DIR; lucnh vnd_${BUILD_VENDOR_TARGET}-${BUILD_TYPE}\033[0m" echo -e "\033[32m sw out dir:$SW_OUT_DIR\033[0m" echo -e "\033[32m build type:$BUILD_TYPE; build mode:$BUILD_MODE; build ota:$MAKE_OTA_PACKAGE; model name:$MODEL_NAME\033[0m" echo -e "\033[32m ---------------- print end ---------------- \033[0m" } function remove_build_prop() { if [ a$1 == a"sys" ] && [ -d "$SYSTEM_OUT_DIR" ]; then find $SYSTEM_OUT_DIR -name "build.prop" -exec rm -f {} \; fi if [ a$1 == a"vendor" ] && [ -d "$VENDOR_OUT_DIR" ]; then find $VENDOR_OUT_DIR -name "build.prop" -exec rm -f {} \; fi } function build() { build_sys build_vendor split_build } function build_sys() { echo -e "\033[32m ---------------- Start Build mssi ---------------- \033[0m" cd ${SYSTEM_DIR} remove_build_prop sys source build/envsetup.sh export OUT_DIR=out_sys echo -e "\033[32m ---------------- lunch sys_${BUILD_SYSTEM_TARGET}-${BUILD_TYPE} ${OUT_DIR} ---------------- \033[0m" lunch sys_${BUILD_SYSTEM_TARGET}-${BUILD_TYPE} if [ a${BUILD_MODE} == a"new" ]; then make clean fi echo -e "\033[32m ---------------- Start make ---------------- \033[0m" make sys_images -j40 2>&1 | tee build_system.log if [ "$(grep -c 'failed to build some targets' ${SYSTEM_DIR}/build_system.log)" -eq 1 ]; then exit 1 fi } function build_vendor() { echo -e "\033[32m ---------------- Start Build vendor ---------------- \033[0m" cd ${VENDOR_DIR} remove_build_prop vendor source build/envsetup.sh export OUT_DIR=out echo -e "\033[32m ---------------- lunch vnd_${BUILD_VENDOR_TARGET}-${BUILD_TYPE} ${OUT_DIR} ---------------- \033[0m" lunch vnd_${BUILD_VENDOR_TARGET}-${BUILD_TYPE} if [ a${BUILD_MODE} == a"new" ]; then make clean fi make vnd_images krn_images -j40 2>&1 | tee build_vendor.log if [ "$(grep -c 'failed to build some targets' ${VENDOR_DIR}/build_vendor.log)" -eq 1 ]; then exit 1 fi } function build_sw_ver_out_dir() { export SW_OUT_DIR=${VENDOR_DIR}/${BUILD_TARGET}_${MODEL_NAME}_ swv=$(cat ${VENDOR_DIR}/vendor/unplugged/proprietary/build/UpVendorConfig.mk | grep 'CUSTOMER_PRODUCT_BUILD_NUMBER = ') swv=${swv// /} swv=${swv#*=} swv=${swv//$'\r'} if [ -n $swv ]; then SW_OUT_DIR=${SW_OUT_DIR}${swv}_ fi } function split_build() { build_sw_out_dir cd ${VENDOR_DIR} if [ a${MAKE_OTA_PACKAGE} == a"yes" ]; then export out_folder=${SW_OUT_DIR} #${BUILD_TYPE}_ota_$(date +%Y%m%d%H%M) echo -e "\033[32m ---------------- split build ota package ---------------- \033[0m" python ${SYSTEM_OUT_DIR}/images/split_build.py --system-dir ${SYSTEM_OUT_DIR}/images --vendor-dir ${VENDOR_OUT_DIR}/images --kernel-dir ${VENDOR_OUT_DIR}/images --output-dir ${out_folder} --otapackage else export out_folder=${SW_OUT_DIR} #${BUILD_TYPE} echo -e "\033[32m ---------------- split build ---------------- \033[0m" python ${SYSTEM_OUT_DIR}/images/split_build.py --system-dir ${SYSTEM_OUT_DIR}/images --vendor-dir ${VENDOR_OUT_DIR}/images --kernel-dir ${VENDOR_OUT_DIR}/images --output-dir ${out_folder} fi } function remove_out_temp_dir() { rm -rf ${SW_OUT_DIR}/temp } trap remove_out_temp_dir EXIT for arg in $* do case $arg in -h|--help) echo -e "\033[32m Usage:\n build_6707.sh [MT6877|mt6877]:reference 6707 build [userdebug|user]:userdebug is default [ota]:build ota image [split_ota]:packing ota only \n \033[0m" echo -e "\033[32m [split]:packing images only [env_log]:print [new]:clean build [build_v]:vendor build only [build_sys]:system build only\n \033[0m" echo -e "\033[32m Used the command of ./build_6707.sh will build userdebug sw \n \033[0m" START_BUILD=no print_env break; ;; MT6877|mt6877) BUILD_VENDOR_TARGET=k6877v1_64_k419 BUILD_SYSTEM_TARGET=mssi_64_cn_armv82 BUILD_TARGET=MT6877 VENDOR_OUT_DIR=${VENDOR_DIR}/out/target/product/$BUILD_VENDOR_TARGET SYSTEM_OUT_DIR=${SYSTEM_DIR}/out_sys/target/product/$BUILD_SYSTEM_TARGET ;; split_ota) START_BUILD=no MAKE_OTA_PACKAGE=yes split_build break; ;; split) START_BUILD=no split_build break; ;; ota) MAKE_OTA_PACKAGE=yes ;; userdebug|-d) BUILD_TYPE=userdebug ;; user|-u) BUILD_TYPE=user ;; new) BUILD_MODE=new ;; env_log) print_env ;; build_v) START_BUILD=no build_vendor split_build break; ;; build_sys) START_BUILD=no build_sys split_build break; ;; esac done if [ a${START_BUILD} == a"yes" ]; then build fi