unplugged-vendor/vendor/unplugged/proprietary/build/build_6707.sh

192 lines
6.0 KiB
Bash
Executable File

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