Files

529 lines
20 KiB
Bash
Raw Permalink Normal View History

2026-09-22 09:38:26 +08:00
#/bin/bash
# SPDX-FileCopyrightText: 2022 Unisoc (Shanghai) Technologies Co., Ltd.
#
# SPDX-License-Identifier: LicenseRef-Unisoc-General-1.0
##
# If you want to quickly build pac, you can use this shell script.
#
# Note :
# In this process, uboot kernel and rootfs will not be compiled.
# This process is just a packaging process.
##
if [ "$(whoami)" = "root" ]; then
echo "ERROR: do not use the BSP as root. Exiting..."
exit 1
fi
DISTRONAMESUFFIX=`echo $1 | awk -F+ '{print $2}'`
IMAGENAMESUFFIX=`echo $1 | awk -F+ '{print $3}'`
DISTRONAME=unisoc-`echo $1 | awk -F+ '{print $2}'`
IMAGENAME=unisoc-`echo $1 | awk -F+ '{print $3}'`-image
PROJECT_FLAG="OTHER"
TMP1=`echo $1 | awk -F+ '{print $1}'`
MACHINENAME=`echo $TMP1 | sed 's/_/-/g'`
echo $MACHINENAME
if [ "$IMAGENAME" == "" ]; then
IMAGENAME=unisoc-console-image
fi
TMP4=`echo $1 | awk -F+ '{print $4}'`
if [[ $2 == "" ]] || [[ $2 == "userdebug" ]]; then
USERDEBUG="userdebug"
elif [ $2 == "user" ]; then
USERDEBUG="user"
elif [ $2 == "eng" ]; then
USERDEBUG="eng"
else
echo "USERDEBUG error $LINENO"
exit 1
fi
if [[ $TMP4 == "" ]] || [[ $TMP4 == "sec" ]]; then
SECBOOT_ENABLE="sec"
elif [ $TMP4 == "nosec" ]; then
SECBOOT_ENABLE="nosec"
fi
UNISOC_PRODUCT=`echo $1 | awk -F+ '{print $5}'`
if [[ $UNISOC_PRODUCT == "" ]]; then
UNISOC_PRODUCT="default"
# ubuntu distro, use ubuntu product type
if [[ ${DISTRONAME} == "unisoc-ubuntu" ]]; then
UNISOC_PRODUCT="ubuntu"
fi
fi
UNISOC_PRODUCT=`echo $UNISOC_PRODUCT | sed 's/_/-/g'`
echo "PAC: MACHINENAME=${MACHINENAME}, DISTRO=${DISTRONAME}, USERDEBUG=${USERDEBUG}, SECBOOT_ENABLE=${SECBOOT_ENABLE}, UNISOC_PRODUCT=${UNISOC_PRODUCT}"
cd ../../
SOURCEROOT=$(pwd)
MACHINECONF="${SOURCEROOT}/layers/meta-unisoc/conf/machine/${MACHINENAME}.conf"
if [ -f ${MACHINECONF} ];then
echo "${MACHINECONF} is read normally"
else
echo "Error: ${MACHINECONF} is not exsit"
exit 1
fi
if [ $SECBOOT_ENABLE == "sec" ];then
SECURE_BOOT="SPRD"
else
SECURE_BOOT="NONE"
fi
echo "SECURE_BOOT = ${SECURE_BOOT}"
PSS_FLAG=`awk -F= '/^PSS_FLAG/{print $2}' ${MACHINECONF}`
echo "PSS_FLAG = ${PSS_FLAG}"
if [ -z "$PSS_FLAG" ];then
PSS_FLAG="false"
elif [ $PSS_FLAG == \"PKCS1_PSS\" ];then
PSS_FLAG="true"
else
PSS_FLAG="false"
fi
MACHINE=`echo $MACHINENAME | awk -F- '{print $1}'`
echo "MACHINE = ${MACHINE}"
TRUSTYCONF="${SOURCEROOT}/layers/meta-unisoc/conf/machine/include/${MACHINE}/trusty.inc"
if [ -f ${TRUSTYCONF} ];then
echo "${TRUSTYCONF} is read normally"
else
echo "Error: ${TRUSTYCONF} is not exsit"
exit 1
fi
SECURE_WCN_GNSS=`awk -F= '/^SECURE_WCN_GNSS_ENABLE/{print $2}' ${TRUSTYCONF}`
echo "SECURE_WCN_GNSS = ${SECURE_WCN_GNSS}"
if [ -z "$SECURE_WCN_GNSS" ];then
SECURE_WCN_GNSS="false"
elif [ $SECBOOT_ENABLE == "sec" ];then
SECURE_WCN_GNSS="true"
else
SECURE_WCN_GNSS="false"
fi
if [ ${MACHINENAME} == "udx710-module" ] || [ ${MACHINENAME} == "udx710-module-pi" ] || [ ${MACHINENAME} == "udx710-ecell" ] || [ ${MACHINENAME} == "udx710-module-op" ] || [ ${MACHINENAME} == "udx710-module-vddmodem-pi" ] || [ ${MACHINENAME} == "udx710-module-op-pi" ] || [ ${MACHINENAME} == "udx710-mifi" ]; then
PROJECT_FLAG="ORCA_SECBOOT"
echo "PROJECT_FLAG is ORCA"
if [ $SECBOOT_ENABLE == "sec" ];then
PSS_FLAG="true"
echo "ORCA use pss"
fi
fi
echo "PSS_FLAG = ${PSS_FLAG}"
DATE="$(date +%Y%m%d:%H%M%S)"
echo $DATE
cd ${SOURCEROOT}
export MACHINE=${MACHINENAME} && export DISTRO=${DISTRONAME} && export SECBOOT_ENABLE=${SECBOOT_ENABLE} && export IMAGESUFFIX=${IMAGENAMESUFFIX} && source setup-environment build-${DISTRONAME}
TMPPATHNAME=$(ls ${SOURCEROOT}/build-${DISTRONAME} | grep tmp)
TMPPATH="$SOURCEROOT/build-$DISTRONAME/$TMPPATHNAME"
SDKPATH="$TMPPATH/deploy/sdk"
echo $TMPPATH
IMAGEPATH="$TMPPATH/deploy/images/$MACHINENAME"
DEPLOYPATH="$TMPPATH/deploy"
RPMPACKAGEPATH="$TMPPATH/deploy/rpm"
OUTPUT_PATH="$SOURCEROOT/out/target/product/$MACHINENAME"
# use 20.04 version
VENDOR_OS_PATH="$SOURCEROOT/prebuilts/os/ubuntu_rootfs/20.04/"
VENDOR_DEB_PATH="$SOURCEROOT/prebuilts/os/ubuntu_deb/20.04/"
UTIT_SCRIPTS_PATH="$SOURCEROOT/layers/meta-unisoc-test/units/"
SIGN_TOOLS_PATH="$SOURCEROOT/prebuilts/scripts/packimage_scripts"
echo $DEPLOYPATH
echo $RPMPACKAGEPATH
cd ${SOURCEROOT}
# clean old folder for pac.sh
rm -rf $OUTPUT_PATH
mkdir -p ${OUTPUT_PATH}/archive_symbols/symbols.vmlinux
BUILDPATHMACHINE=`echo ${MACHINENAME} | awk -F- '{print $1}'`
# copy preset binary
# for same of preset file, specific machine is higher than the soc, such as prebuilts/pac-binary/s9863a/s9863a-1h10/* can overwrite prebuilts/pac-binary/s9863a/*
# not copy ${BUILDPATHMACHINE} subdir by cp -f not cp -arf
if [ -d ${SOURCEROOT}/prebuilts/pac-binary/${BUILDPATHMACHINE} ]; then
cp -f ${SOURCEROOT}/prebuilts/pac-binary/${BUILDPATHMACHINE}/* ${OUTPUT_PATH}/
fi
if [ -d ${SOURCEROOT}/prebuilts/pac-binary/${BUILDPATHMACHINE}/${MACHINENAME} ]; then
cp -f ${SOURCEROOT}/prebuilts/pac-binary/${BUILDPATHMACHINE}/${MACHINENAME}/* ${OUTPUT_PATH}/
fi
#add units.zip
if [ -d ${UTIT_SCRIPTS_PATH} ]; then
mkdir ${OUTPUT_PATH}/units
OUTPUT_SCRIPTS_PATH="${OUTPUT_PATH}/units/"
UTIT_SCRIPTS_NAME="units.zip"
cd $UTIT_SCRIPTS_PATH
zip -r $UTIT_SCRIPTS_NAME .
cp $UTIT_SCRIPTS_NAME $OUTPUT_PATH
cp $UTIT_SCRIPTS_NAME $OUTPUT_SCRIPTS_PATH
else
echo "There is no ${OUTPUT_PATH} $LINENO"
fi
# if have packed kernel, use packed kernel.
cd $IMAGEPATH
if [ -e Image ]; then
echo "compresson boot.img"
cp Image ${OUTPUT_PATH}/boot.img
[ ! -f Image-${MACHINENAME}-sign.bin ] || cp Image-${MACHINENAME}-sign.bin ${OUTPUT_PATH}/boot-sign.img
# override with normal initramfs kernel new pack
if [ -e Image-initramfs-${MACHINENAME}.bin ];then
echo "use normal initramfs kernel packed image"
cp -Lf Image-initramfs-${MACHINENAME}.bin ${OUTPUT_PATH}/boot.img
[ ! -f Image-initramfs-${MACHINENAME}-sign.bin ] || cp Image-initramfs-${MACHINENAME}-sign.bin ${OUTPUT_PATH}/boot-sign.img
fi
# kernel new pack
if [ -e kernel.img ]; then
echo "use kernel packed image"
cp kernel.img ${OUTPUT_PATH}/boot.img
[ ! -f kernel-sign.img ] || cp kernel-sign.img ${OUTPUT_PATH}/boot-sign.img
fi
# override with initramfs kernel new pack
if [ -e kernel-initramfs.img ]; then
echo "use initramfs kernel packed image"
cp kernel-initramfs.img ${OUTPUT_PATH}/boot.img
[ ! -f kernel-initramfs-sign.img ] || cp kernel-initramfs-sign.img ${OUTPUT_PATH}/boot-sign.img
fi
# recovery kernel new pack
if [ -e recovery/recovery-kernel.img ]; then
echo "use recovery kernel packed image"
cp recovery/recovery-kernel.img recovery/Image
[ ! -f recovery/recovery-kernel-sign.img ] || cp recovery/recovery-kernel-sign.img recovery/Image-${MACHINENAME}-sign.bin
fi
else
echo "There is no boot.img $LINENO"
exit 1
fi
if [ -e u-boot-${MACHINENAME}.bin ] || [ -e u-boot-${MACHINENAME}-sign.bin ] || [ -e u-boot-sign.bin ]; then
if [ -e u-boot-${MACHINENAME}.bin ]; then
cp u-boot-${MACHINENAME}.bin ${OUTPUT_PATH}/u-boot.bin
cp u-boot-${MACHINENAME}.bin ${OUTPUT_PATH}/fdl2.bin
fi
if [ -e u-boot-sign.bin ]; then
cp u-boot-sign.bin ${OUTPUT_PATH}/u-boot-sign.bin
cp u-boot-sign.bin ${OUTPUT_PATH}/fdl2-sign.bin
fi
if [ -e uboot-env.bin ]; then
cp uboot-env.bin ${OUTPUT_PATH}/uboot-env.bin
fi
else
echo "There is no u-boot binary $LINENO"
exit 1
fi
if [ -e u-boot-spl-16k-emmc-sign.bin ]; then
cp u-boot-spl-16k-emmc.bin ${OUTPUT_PATH}/u-boot-spl-16k-emmc.bin
cp u-boot-spl-16k-emmc-sign.bin ${OUTPUT_PATH}/u-boot-spl-16k-emmc-sign.bin
fi
if [ -e u-boot-spl-16k-ufs-sign.bin ]; then
cp u-boot-spl-16k-ufs.bin ${OUTPUT_PATH}/u-boot-spl-16k-ufs.bin
cp u-boot-spl-16k-ufs-sign.bin ${OUTPUT_PATH}/u-boot-spl-16k-ufs-sign.bin
fi
if [ "${IMAGENAME}" == "unisoc-prerootfs-image" ] && [ -e ${VENDOR_OS_PATH}/ubuntu.ext4.gz ]; then
cp ${VENDOR_OS_PATH}/ubuntu.ext4.gz ${OUTPUT_PATH}/rootfs.ext4.gz
elif [ -e ${IMAGENAME}-${MACHINENAME}.ext4.gz ] || [ -e ${IMAGENAME}-${MACHINENAME}.ubifs ] || [ -e ${IMAGENAME}-${MACHINENAME}.squashfs* ]; then
if [ -e ${IMAGENAME}-${MACHINENAME}.ubifs ]; then
cp ${IMAGENAME}-${MACHINENAME}.ubifs ${OUTPUT_PATH}/rootfs.ubifs
fi
if [ -e ${IMAGENAME}-${MACHINENAME}.ext4.gz ]; then
cp ${IMAGENAME}-${MACHINENAME}.ext4.gz ${OUTPUT_PATH}/rootfs.ext4.gz
fi
if [ -e ${IMAGENAME}-${MACHINENAME}.squashfs* ]; then
cp ${IMAGENAME}-${MACHINENAME}.squashfs* ${OUTPUT_PATH}/rootfs.squashfs
fi
else
echo "There is no rootfs image $LINENO"
exit 1
fi
if [ "${IMAGENAME}" == "unisoc-prerootfs-image" ]; then
: # do nothing
elif [ -e ${IMAGENAME}-${MACHINENAME}.testdata.json ]; then
cp ${IMAGENAME}-${MACHINENAME}.testdata.json ${OUTPUT_PATH}/${MACHINENAME}.json
else
echo "There is no json file $LINENO"
# exit 1
fi
[ ! -f fdl1.bin ] || cp fdl1.bin ${OUTPUT_PATH}/fdl1.bin
[ ! -f fdl1-sign.bin ] || cp fdl1-sign.bin ${OUTPUT_PATH}/fdl1-sign.bin
[ ! -f u-boot-spl-16k.bin ] || cp u-boot-spl-16k.bin ${OUTPUT_PATH}/u-boot-spl-16k.bin
[ ! -f u-boot-spl-16k-sign.bin ] || cp u-boot-spl-16k-sign.bin ${OUTPUT_PATH}/u-boot-spl-16k-sign.bin
#[ ! -f sml.bin ] || cp sml.bin ${OUTPUT_PATH}/sml.bin
[ ! -f sml-sign.bin ] || cp sml-sign.bin ${OUTPUT_PATH}/
#[ ! -f tos.bin ] || cp tos.bin ${OUTPUT_PATH}/tos.bin
[ ! -f tos-sign.bin ] || cp tos-sign.bin ${OUTPUT_PATH}/
#[ ! -f recovery.img ] || cp recovery.img ${OUTPUT_PATH}/recovery.img
#[ ! -f recovery-sign.img ] || cp recovery-sign.img ${OUTPUT_PATH}/
[ ! -f misc-config.bin ] || cp misc-config.bin ${OUTPUT_PATH}/
[ ! -f bootflag.bin ] || cp bootflag.bin ${OUTPUT_PATH}/
# copy the dtb dtbo
[ ! -f Image-${MACHINENAME}.dtb ] || cp Image-${MACHINENAME}.dtb ${OUTPUT_PATH}/Image-dtb.dtb
[ ! -f Image-${MACHINENAME}-sign.dtb ] || cp Image-${MACHINENAME}-sign.dtb ${OUTPUT_PATH}/Image-dtb-sign.dtb
[ ! -f Image-${MACHINENAME}-overlay.dtbo ] || cp Image-${MACHINENAME}-overlay.dtbo ${OUTPUT_PATH}/dtbo.img
[ ! -f Image-${MACHINENAME}-overlay-sign.dtbo ] || cp Image-${MACHINENAME}-overlay-sign.dtbo ${OUTPUT_PATH}/dtbo-sign.img
[ ! -f xen-${MACHINENAME} ] || cp xen-${MACHINENAME} ${OUTPUT_PATH}/xen.bin
[ ! -f EXEC_CALIBRATE_MAG_IMAGE ] || cp EXEC_CALIBRATE_MAG_IMAGE ${OUTPUT_PATH}/EXEC_CALIBRATE_MAG_IMAGE
[ ! -f teecfg-sign.bin ] || cp teecfg-sign.bin ${OUTPUT_PATH}/teecfg-sign.bin
# cp recovery image
#[ ! -f recovery/Image-initramfs-${MACHINENAME}.bin ] || cp recovery/Image-initramfs-${MACHINENAME}.bin ${OUTPUT_PATH}/recovery.img
[ ! -f recovery/Image ] || cp recovery/Image ${OUTPUT_PATH}/recovery.img
[ ! -f recovery/Image-${MACHINENAME}-sign.bin ] || cp recovery/Image-${MACHINENAME}-sign.bin ${OUTPUT_PATH}/recovery-sign.img
[ ! -f recovery/recovery-${MACHINENAME}.dtb ] || cp recovery/recovery-${MACHINENAME}.dtb ${OUTPUT_PATH}/recovery-dtb.dtb
[ ! -f recovery/recovery-${MACHINENAME}-sign.dtb ] || cp recovery/recovery-${MACHINENAME}-sign.dtb ${OUTPUT_PATH}/recovery-dtb-sign.dtb
[ ! -f swupdate-image-${MACHINENAME}.ext4.gz ] || cp swupdate-image-${MACHINENAME}.ext4.gz ${OUTPUT_PATH}/recovery-rootfs.ext4.gz
[ ! -f swupdate-image-${MACHINENAME}.ubifs ] || cp swupdate-image-${MACHINENAME}.ubifs ${OUTPUT_PATH}/recovery-rootfs.ubifs
[ ! -f recovery-image-${MACHINENAME}.ext4.gz ] || cp recovery-image-${MACHINENAME}.ext4.gz ${OUTPUT_PATH}/recovery-rootfs.ext4.gz
[ ! -f recovery-image-${MACHINENAME}.ubifs ] || cp recovery-image-${MACHINENAME}.ubifs ${OUTPUT_PATH}/recovery-rootfs.ubifs
# copy ch bin
[ ! -d ch ] || cp -arf ch/* ${OUTPUT_PATH}/
cp ${IMAGENAME}-${MACHINENAME}.tar.gz ${OUTPUT_PATH}/${IMAGENAME}-${MACHINENAME}-rootfs.tgz
# only output dbg ipk
# todo: 1)not output buildtools-dummy-nativesdk/*ipk、x86_64-nativesdk/*ipk
# 2) use tar -h -czf not output log to console
cd $DEPLOYPATH
PACKAGES_NAME="${MACHINENAME}_${DISTRONAME}-$USERDEBUG-packages.tgz"
echo "PACKAGES_NAME is $PACKAGES_NAME"
tar -h -cvzf $PACKAGES_NAME ipk/*/*-dbg_*ipk
mv $PACKAGES_NAME $OUTPUT_PATH
WORKIMAGEPATHNAME="$(ls ${TMPPATH}/work | grep ^${BUILDPATHMACHINE})"
WORKIMAGEPATH="${TMPPATH}/work/${WORKIMAGEPATHNAME}"
KERNEL="$(ls ${WORKIMAGEPATH} | grep 'linux-unisoc' | grep -v 'recovery')"
KERNELVERSIONPATH="${WORKIMAGEPATH}/${KERNEL}/$(ls ${WORKIMAGEPATH}/${KERNEL} | grep -v 'recovery')"
VMLINUX_PATH=${KERNELVERSIONPATH}/image/boot
KERNEL_RECOVERY="$(ls ${WORKIMAGEPATH} | grep 'linux-unisoc' | grep 'recovery')"
KERNELVERSION_RECOVERYPATH="${WORKIMAGEPATH}/${KERNEL_RECOVERY}/$(ls ${WORKIMAGEPATH}/${KERNEL_RECOVERY})"
VMLINUX_RECOVERYPATH=${KERNELVERSION_RECOVERYPATH}/image/boot
KERNEL_MODULE_PATH="${IMAGEPATH}/kernel_module"
APP_SYMBOLS_PATH="${IMAGEPATH}/app_symbols"
cp ${VMLINUX_PATH}/vmlinux* ${OUTPUT_PATH}/archive_symbols/symbols.vmlinux
[ ! -f ${VMLINUX_PATH}/vmlinux.initramfs ] || cp ${VMLINUX_PATH}/vmlinux.initramfs ${OUTPUT_PATH}/archive_symbols/symbols.vmlinux/vmlinux
cp ${VMLINUX_PATH}/config* ${OUTPUT_PATH}/archive_symbols/symbols.vmlinux/vmlinux.cfg
cp ${VMLINUX_PATH}/System.map* ${OUTPUT_PATH}/archive_symbols/symbols.vmlinux/vmlinux.System.map
cp ${VMLINUX_PATH}/Module.symvers* ${OUTPUT_PATH}/archive_symbols/symbols.vmlinux/vmlinux.Module.symvers
cp -rf ${KERNEL_MODULE_PATH} ${OUTPUT_PATH}/archive_symbols/symbols.vmlinux/
mkdir -p ${OUTPUT_PATH}/archive_symbols/symbols.recovery
cp ${VMLINUX_RECOVERYPATH}/vmlinux* ${OUTPUT_PATH}/archive_symbols/symbols.recovery/vmlinux
cp ${VMLINUX_RECOVERYPATH}/config* ${OUTPUT_PATH}/archive_symbols/symbols.recovery/vmlinux.cfg
cp ${VMLINUX_RECOVERYPATH}/System.map* ${OUTPUT_PATH}/archive_symbols/symbols.recovery/vmlinux.System.map
cp ${VMLINUX_RECOVERYPATH}/Module.symvers* ${OUTPUT_PATH}/archive_symbols/symbols.recovery/vmlinux.Module.symvers
[ ! -f ${VMLINUX_RECOVERYPATH}/vmlinux.initramfs ] || cp ${VMLINUX_RECOVERYPATH}/vmlinux.initramfs ${OUTPUT_PATH}/archive_symbols/symbols.recovery/vmlinux
UBOOTPATH="${WORKIMAGEPATH}/$(ls ${WORKIMAGEPATH} | grep ^'u-boot')"
UBOOTVERSIONPATH="${UBOOTPATH}/$(ls ${UBOOTPATH})"
UBOOTPATH="${UBOOTVERSIONPATH}/$(ls ${UBOOTVERSIONPATH} | grep ^'u-boot')"
UBOOTSYMBOL="${UBOOTPATH}/u-boot"
mkdir -p ${OUTPUT_PATH}/archive_symbols/symbols.system
mv $OUTPUT_PATH/$PACKAGES_NAME ${OUTPUT_PATH}/archive_symbols/symbols.system
cp ${UBOOTSYMBOL} ${OUTPUT_PATH}/archive_symbols/symbols.system
cp ${UBOOTPATH}/u-boot.* ${OUTPUT_PATH}/archive_symbols/symbols.system
cp ${UBOOTPATH}/u-boot.map ${OUTPUT_PATH}/archive_symbols/symbols.system
cp -rf ${APP_SYMBOLS_PATH} ${OUTPUT_PATH}/archive_symbols/symbols.system/symbols.app/
SPLSYMBOL="$(find ${TMPPATH}/work -name u-boot-spl)"
if [ -n "$SPLSYMBOL" ]; then
cp ${SPLSYMBOL} ${OUTPUT_PATH}/archive_symbols/symbols.system
fi
FDLSYMBOL="$(find ${TMPPATH}/work -name fdl1.axf | grep 'fdl1.axf' | head -n 1)"
if [ -n "$FDLSYMBOL" ]; then
cp ${FDLSYMBOL} ${OUTPUT_PATH}/archive_symbols/symbols.system
fi
SMLSYMBOL="$(find ${TMPPATH}/work -name bl3[12].elf)"
if [ -n "$SMLSYMBOL" ]; then
cp ${SMLSYMBOL} ${OUTPUT_PATH}/archive_symbols/symbols.system
fi
TRUSTYSYMBOL="$(find ${TMPPATH}/work -name lk.elf)"
if [ -n "$TRUSTYSYMBOL" ]; then
cp ${TRUSTYSYMBOL} ${OUTPUT_PATH}/archive_symbols/symbols.system
fi
if [ -e ${TMPPATH}/work/aarch64-unisoc-linux/netcon/0.2-r0/image/usr/bin/netcond ]; then
cp ${TMPPATH}/work/aarch64-unisoc-linux/netcon/0.2-r0/image/usr/bin/netcond ${OUTPUT_PATH}/archive_symbols/symbols.system
else
echo "netcond symbol not exist"
fi
# for ubuntu board, copy APT to archive_symbols
if [[ ${DISTRONAME} == "unisoc-ubuntu" ]]; then
mkdir -p ${OUTPUT_PATH}/archive_symbols/deb_file
cp -rf ${VENDOR_DEB_PATH} ${OUTPUT_PATH}/archive_symbols/deb_file/prebuilts
cp -rf ${IMAGEPATH}/out/APT ${OUTPUT_PATH}/archive_symbols/deb_file/builds
fi
# for sign tools archive
mkdir -p ${OUTPUT_PATH}/archive_sign_tools
if [ -d "${SIGN_TOOLS_PATH}" ]; then
cp -rf ${SIGN_TOOLS_PATH} ${OUTPUT_PATH}/archive_sign_tools/
rm -rf ${OUTPUT_PATH}/archive_sign_tools/oe-*
fi
func_cut_license_backup()
{
local file=$1
start_line=`grep -nr "NVItem name\=\"License\"" $file | awk -F: '{print $1}'`
echo "start_line:$start_line"
if [ x"$start_line" != x ]; then
end_line=`grep -n "" $file | tail -n +$start_line | grep "\/NVItem"|head -n 1|awk -F: '{print $1}'`
echo "end_line:$end_line"
num1=$(expr $start_line + 0)
num2=$(expr $end_line + 0)
echo "$num1, $num2"
sed -i "${num1},${num2}d" $file
fi
}
if [[ $UNISOC_PRODUCT == "default" ]]; then
#ln -s ${SOURCEROOT}/layers/meta-unisoc/conf/machine/include/xml/${MACHINENAME}.xml ${OUTPUT_PATH}/
cp ${SOURCEROOT}/layers/meta-unisoc/conf/machine/include/xml/${MACHINENAME}.xml ${OUTPUT_PATH}/
if [[ $SECBOOT_ENABLE == "nosec" ]]; then
func_cut_license_backup ${OUTPUT_PATH}/${MACHINENAME}.xml
fi
else
#ln -s ${SOURCEROOT}/layers/meta-unisoc/conf/machine/include/xml/${MACHINENAME}-${UNISOC_PRODUCT}.xml ${OUTPUT_PATH}/
cp ${SOURCEROOT}/layers/meta-unisoc/conf/machine/include/xml/${MACHINENAME}-${UNISOC_PRODUCT}.xml ${OUTPUT_PATH}/
if [[ $SECBOOT_ENABLE == "nosec" ]]; then
func_cut_license_backup ${OUTPUT_PATH}/${MACHINENAME}-${UNISOC_PRODUCT}.xml
fi
fi
if [ $? -ne 0 ]; then
echo "link MACHINE.XML ERROR!!!"
exit 1
fi
if [ -e $IMAGEPATH/userdata-${MACHINENAME}.ext4.gz ] || [ -e $IMAGEPATH/userdata-${MACHINENAME}.ubifs ]; then
if [ -e $IMAGEPATH/userdata-${MACHINENAME}.ubifs ]; then
cp $IMAGEPATH/userdata-${MACHINENAME}.ubifs ${OUTPUT_PATH}/userdata.img
cp $IMAGEPATH/userdata-${MACHINENAME}.ubifs ${OUTPUT_PATH}/userdata_b128k_p2k.img
cp $IMAGEPATH/userdata-${MACHINENAME}.ubifs ${OUTPUT_PATH}/userdata_b256k_p4k.img
fi
if [ -e $IMAGEPATH/userdata-${MACHINENAME}.ext4.gz ]; then
cp $IMAGEPATH/userdata-${MACHINENAME}.ext4.gz ${OUTPUT_PATH}/userdata.ext4.gz
cd ${OUTPUT_PATH} && gunzip userdata.ext4.gz && mv userdata.ext4 userdata.img
fi
fi
if [ -e $IMAGEPATH/prodnv-${MACHINENAME}.ext4.gz ] || [ -e $IMAGEPATH/prodnv-${MACHINENAME}.ubifs ]; then
if [ -e $IMAGEPATH/prodnv-${MACHINENAME}.ubifs ]; then
cp $IMAGEPATH/prodnv-${MACHINENAME}.ubifs ${OUTPUT_PATH}/prodnv_b128k_p2k.img
cp $IMAGEPATH/prodnv-${MACHINENAME}.ubifs ${OUTPUT_PATH}/prodnv_b256k_p4k.img
cp $IMAGEPATH/prodnv-${MACHINENAME}.ubifs ${OUTPUT_PATH}/prodnv.img
fi
if [ -e $IMAGEPATH/prodnv-${MACHINENAME}.ext4.gz ]; then
cp $IMAGEPATH/prodnv-${MACHINENAME}.ext4.gz ${OUTPUT_PATH}/prodnv.ext4.gz
cd ${OUTPUT_PATH} && gunzip prodnv.ext4.gz && mv prodnv.ext4 prodnv.img
fi
fi
cd ${SDKPATH}
cp *.sh ${OUTPUT_PATH}/
cd ${OUTPUT_PATH}/
cp ${SOURCEROOT}/.repo/manifest.xml ${OUTPUT_PATH}
tar -h -zcvf ${MACHINENAME}_${DISTRONAME}-${USERDEBUG}.tar.gz *.bin *.img *.gz *.ubifs
source ota_files.sh ${SOURCEROOT} ${MACHINENAME} ${DISTRONAME} ${UNISOC_PRODUCT}
make_pac() {
cd $OUTPUT_PATH || return
if [ -e rootfs.ext4.gz ]; then
[ -e rootfs.ext4 ] && rm -rf rootfs.ext4
echo "Decompression rootfs.ext4.gz ..."
gunzip -v rootfs.ext4.gz
if [ $? != 0 ]; then
echo "Decompression rootfs.ext4.gz is failure $LINENO"
return
else
echo "Decompression rootfs.ext4.gz is successfull $LINENO"
fi
fi
if [ -e recovery-rootfs.ext4.gz ]; then
[ -e recovery-rootfs.ext4 ] && rm -rf recovery-rootfs.ext4
echo "Decompression recovery-rootfs.ext4.gz ..."
gunzip -v recovery-rootfs.ext4.gz
if [ $? != 0 ]; then
echo "Decompression recovery-rootfs.ext4.gz is failure $LINENO"
return
else
echo "Decompression recovery-rootfs.ext4.gz is successfull $LINENO"
fi
fi
# remove here if else
MACHINENAME_BM=`echo ${MACHINENAME} | sed 's/-/_/g'`
UNISOC_PRODUCT_BM=`echo ${UNISOC_PRODUCT} | sed 's/-/_/g'`
PROJECT=${MACHINENAME_BM}+${DISTRONAMESUFFIX}+${IMAGENAMESUFFIX}+${SECBOOT_ENABLE}-${USERDEBUG}-native
if [[ $UNISOC_PRODUCT != "default" ]]; then
PROJECT=${MACHINENAME_BM}+${DISTRONAMESUFFIX}+${IMAGENAMESUFFIX}+${SECBOOT_ENABLE}+${UNISOC_PRODUCT_BM}-${USERDEBUG}-native
fi
echo "PROJECT=${PROJECT}"
cd ${SOURCEROOT}/prebuilts/pac_script
if [[ $UNISOC_PRODUCT == "default" ]]; then
python parser_ini.py --project "${PROJECT}" --board "${MACHINENAME}" --out "${OUTPUT_PATH}/cp_sign"
else
python parser_ini.py --project "${PROJECT}" --board "${MACHINENAME}-${UNISOC_PRODUCT}" --out "${OUTPUT_PATH}/cp_sign"
fi
# remove here if else
${SOURCEROOT}/prebuilts/scripts/packimage_scripts/sign_cp.sh ${OUTPUT_PATH} ${SOURCEROOT} ${SECURE_BOOT} ${MACHINENAME} ${PROJECT_FLAG} ${SECURE_WCN_GNSS}
python makepac.py --out "${OUTPUT_PATH}"
cd -
}
make_pac