From 096317df7dd0758e3d44d5cd0ec30ec0bc0b1f46 Mon Sep 17 00:00:00 2001 From: lindongping Date: Mon, 29 Sep 2025 17:33:19 +0800 Subject: [PATCH] randomization of root partition UUID Signed-off-by: lindongping --- board/phytium/post-image.sh | 17 +++++++++++++++++ support/scripts/genimage.sh | 1 + 2 files changed, 18 insertions(+) diff --git a/board/phytium/post-image.sh b/board/phytium/post-image.sh index 53996cb63..0cdc5a37a 100755 --- a/board/phytium/post-image.sh +++ b/board/phytium/post-image.sh @@ -2,8 +2,25 @@ BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG_SRC=$(grep '^BR2_ROOTFS_POST_SCRIPT_ARGS=' ${BR2_CONFIG} | sed -n 's/.*-c \([^ ]*\).*/\1/p' | sed 's/"//g') +CFG_FILE=$(basename "$GENIMAGE_CFG_SRC") +GENIMAGE_CFG="${BOARD_DIR}/$CFG_FILE" +if [ -z "${GENIMAGE_CFG}" ]; then + echo "Error: Cannot extract genimage config from BR2_ROOTFS_POST_SCRIPT_ARGS" >&2 + exit 1 +fi + +PARTITION_UUID=$(uuidgen) + +cp -f "${GENIMAGE_CFG}" "${GENIMAGE_CFG}.bak" + +sed -i "s/partition-uuid = \"[^\"]*\"/partition-uuid = \"${PARTITION_UUID}\"/g" "${GENIMAGE_CFG}" +echo "✅ Updated partition UUID in ${GENIMAGE_CFG} to: ${PARTITION_UUID}" + cp -f ${BOARD_DIR}/grub.cfg ${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg +sed -i "s/root=PARTUUID=\"[^\"]*\"/root=PARTUUID=\"${PARTITION_UUID}\"/g" "${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg" + if grep -Eq "^BR2_ROOTFS_INITRAMFS=y$" ${BR2_CONFIG} && grep -Eq "^BR2_ROOTFS_SKELETON_CUSTOM=y$" ${BR2_CONFIG}; then ROOTFS_DIR=${BINARIES_DIR}/rootfs sudo rm -rf ${ROOTFS_DIR} diff --git a/support/scripts/genimage.sh b/support/scripts/genimage.sh index 459207c62..8dc297a51 100755 --- a/support/scripts/genimage.sh +++ b/support/scripts/genimage.sh @@ -47,6 +47,7 @@ genimage \ --outputpath "${BINARIES_DIR}" \ --config "${GENIMAGE_CFG}" +mv "${GENIMAGE_CFG}".bak "${GENIMAGE_CFG}" if [ -e ${BINARIES_DIR}/disk.img ]; then 7zr a ${BINARIES_DIR}/disk.img.7z ${BINARIES_DIR}/disk.img -- Gitee