Files
BPI-M2C/source_sync_rls_25c/layers/meta-unisoc/recipes-security/rootfs-antirollback/anti-rollback.bb
T
2026-09-22 09:38:26 +08:00

66 lines
1.9 KiB
BlitzBasic
Executable File

# SPDX-FileCopyrightText: 2024 Unisoc (Shanghai) Technologies Co., Ltd.
#
# SPDX-License-Identifier: LicenseRef-Unisoc-General-1.0
DESCRIPTION = "Unisoc anti-rollback for rootfs"
HOMEPAGE = "http://www.unisoc.com/"
LICENSE = "Unisoc-General-1.0"
DEPENDS = "libtrusty veritybuild-native"
RDEPENDS:${PN} = "libtrusty "
SECTION = "base"
PROVIDES = "anti-rollback"
#ROOTFS_ANTI_ROLLBACK_VERSION="1"
EXTERNALSRC_BUILD = "${EXTERNALSRC}"
do_sign() {
ROOTFS_ANTI_ROLLBACK_VERSION=`grep "rootfs_version" ${STAGING_BINDIR_NATIVE}/keydir_config/version.cfg | cut -d'=' -f2`
echo "version:"
echo $ROOTFS_ANTI_ROLLBACK_VERSION
echo ${ROOTFS_ANTI_ROLLBACK_VERSION} >.version
cat .version
echo ${BSP_SPRD_SECUREBOOT_ALGORITHM} >.algorithm
hash=`echo -n "${ROOTFS_ANTI_ROLLBACK_VERSION}" | sha256sum | cut -d' ' -f1`
echo "$hash"
echo $hash >.hash
cat .hash
${STAGING_BINDIR_NATIVE}/verity_sign sign_table $hash ${STAGING_BINDIR_NATIVE}/keydir_config/ ${BSP_SPRD_SECUREBOOT_ALGORITHM} .sig
cat .sig
cat .version .algorithm .hash > version
cat .sig > signature
cat version
cat signature
}
do_compile () {
make clean
make
do_sign
}
do_install () {
install -d ${D}${libdir}/
install -m 0755 ${S}/libanti-rollback.so ${D}${libdir}/
if [ "${SEC_DMVERITY_TYPE_INITRAMFS}" = "false" ]; then
install -d ${D}${bindir}/
install -m 0755 ${S}/anti-rollback ${D}${bindir}/
fi
install -d ${D}${sysconfdir}/anti-rollback
install -m 0644 ${S}/version ${D}/${sysconfdir}/anti-rollback/
install -m 0644 ${S}/signature ${D}/${sysconfdir}/anti-rollback/
install -d ${D}${includedir}/
install -m 0755 ${S}/anti-rollback.h ${D}${includedir}/
}
FILES:${PN} = "${bindir}/anti-rollback ${libdir}/libanti-rollback.so ${sysconfdir}/anti-rollback/*"
INSANE_SKIP:${PN} += "installed-vs-shipped"
FILES_SOLIBSDEV = ""
INSANE_SKIP:${PN} += "dev-so"
TARGET_CC_ARCH += "${LDFLAGS}"