Files
2026-09-22 09:38:26 +08:00

79 lines
2.5 KiB
Bash
Executable File

#/bin/bash
if [ "$(whoami)" = "root" ]; then
echo "ERROR: do not use the BSP as root. Exiting..."
exit 1
fi
cd ${SOURCEROOT}
echo ${SOURCEROOT}
MACHINE=${MACHINENAME} DISTRO=${DISTRONAME} IMAGESUFFIX=${IMAGESUFFIX} USERDEBUG=${USERDEBUG} UNISOC_PRODUCT=${UNISOC_PRODUCT} source setup-environment build-${DISTRONAME}
DISTRO_CODENAME=$(bitbake -e | grep DISTRO_CODENAME= | cut -d "=" -f 2 | awk -F "[\"]" '{print $2}')
OUTPUT_PATH=$SOURCEROOT/out/target/product/$MACHINENAME
UNISOC_ARCHIVE_DIR_ROOT=${OUTPUT_PATH}/archive_ota
if [ ! -d ${UNISOC_ARCHIVE_DIR_ROOT} ]; then
mkdir -p ${UNISOC_ARCHIVE_DIR_ROOT}
fi
TMPPATHNAME=$(ls ${SOURCEROOT}/build-${DISTRONAME} | grep tmp)
TMPPATH="$SOURCEROOT/build-$DISTRONAME/$TMPPATHNAME"
IMAGEPATH="$TMPPATH/deploy/images/$MACHINENAME"
echo "MACHINENAME=${MACHINENAME}, DISTRO=${DISTRONAME}, DISTRO_CODENAME=${DISTRO_CODENAME}, ${USERDEBUG}, ${SECBOOT_ENABLE}"
cp_sign_subfolders=$(ls $OUTPUT_PATH/cp_sign)
for OTA_SUBFOLDER in $cp_sign_subfolders
do
UNISOC_ARCHIVE_DIR=$OUTPUT_PATH/archive_ota/${OTA_SUBFOLDER}
if [ ! -d ${UNISOC_ARCHIVE_DIR} ]; then
rm -rf $UNISOC_ARCHIVE_DIR
fi
mkdir -p ${UNISOC_ARCHIVE_DIR}
pac_name=$(ls $OUTPUT_PATH/cp_sign/$OTA_SUBFOLDER | grep .pac)
pac_file=$OUTPUT_PATH/cp_sign/$OTA_SUBFOLDER/$pac_name
OTANAME=$(echo $pac_name | cut -d "." -f 1)
OTA_PACK_PATH=$SOURCEROOT/source/unisoc/update/ota/pack
OTA_PACK_SH=$OTA_PACK_PATH/pack.sh
OTA_PACK_WORK_PATH=$UNISOC_ARCHIVE_DIR_ROOT/work_dir
echo "OTA_PACK_PATH: $OTA_PACK_PATH"
echo "OTA_PACK_SH: $OTA_PACK_SH"
echo "OTA_PACK_WORK_PATH: $OTA_PACK_WORK_PATH"
echo "PAC_FILE: $pac_file"
if [ ! -d ${OTA_PACK_WORK_PATH} ]; then
mkdir -p ${OTA_PACK_WORK_PATH}
fi
#pack ota
if [[ ${UNISOC_PRODUCT} == "default" ]]; then
PACK_MACHINENAME=${MACHINENAME}
else
PACK_MACHINENAME=${MACHINENAME}-${UNISOC_PRODUCT}
fi
$OTA_PACK_SH $PACK_MACHINENAME $pac_file "none" $OTA_PACK_PATH $OTA_PACK_WORK_PATH
if [ $? -eq 0 ]; then
echo "pack.sh successed"
else
echo "pack.sh failed"
exit -1
fi
#tar targe_files
cd $UNISOC_ARCHIVE_DIR_ROOT/
touch $OTANAME-target_files.tgz
#COPY swu to out folder and tar
BASEPATH=${OTA_PACK_WORK_PATH}/$PACK_MACHINENAME.swu
echo $BASEPATH
TARGETPATH=$UNISOC_ARCHIVE_DIR/$OTANAME.swu
echo $TARGETPATH
if [ -e $BASEPATH ]; then
echo "Copy ota file"
cp -L $BASEPATH $TARGETPATH
else
echo "Swu can not be found"
fi
tar -h -cvzf $UNISOC_ARCHIVE_DIR_ROOT/$OTANAME-ota.tgz -C $UNISOC_ARCHIVE_DIR/ $OTANAME.swu
rm -rf $OTA_PACK_WORK_PATH
rm -rf $UNISOC_ARCHIVE_DIR
done