#/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