Files
BPI-M2C/source_sync_rls_25c/prebuilts/scripts/pac.sh
T
2026-09-22 09:38:26 +08:00

529 lines
20 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#/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