linuxOS_AP06/device/rockchip/common/scripts/mk-misc.sh
2025-06-03 12:28:32 +08:00

65 lines
1.4 KiB
Bash
Executable File

#!/bin/bash -e
# Hooks
usage_hook()
{
usage_oneline "misc" "pack misc image"
}
clean_hook()
{
rm -rf "$RK_FIRMWARE_DIR/misc.img" "$RK_OUTDIR/misc.img"
}
BUILD_CMDS="misc"
build_hook()
{
DST="$RK_FIRMWARE_DIR/misc.img"
MISC_IMG="$RK_OUTDIR/misc.img"
rm -f "$DST" "$MISC_IMG"
check_config RK_MISC || false
if [ -z "$(rk_partition_size misc)" ]; then
notice "Misc ignored"
return 0
fi
# The old windows tools don't accept misc > 64K
truncate -s 48k "$MISC_IMG"
if [ "$RK_MISC_BLANK" ]; then
notice "Generated blank misc image"
elif [ "$RK_MISC_RECOVERY" ]; then
echo -n "boot-recovery" | \
dd of="$MISC_IMG" bs=1 seek=$((16*1024)) conv=notrunc
echo -e -n "recovery\n$RK_MISC_RECOVERY_ARG" | \
dd of="$MISC_IMG" bs=1 seek=$((16*1024+64)) conv=notrunc
notice "Generated recovery misc with: $RK_MISC_RECOVERY_ARG"
else
ln -rvsf "$RK_CHIP_DIR/$RK_MISC_IMG" "$MISC_IMG"
fi
if [ "$RK_SECURITY_CHECK_SYSTEM_ENCRYPTION" ]; then
"$RK_SCRIPTS_DIR/mk-security.sh" misc "$MISC_IMG" "$DST" 64 \
"$(cat "$RK_SDK_DIR/u-boot/keys/system_enc_key")"
notice "Done packing $DST with encryption keys"
else
ln -rsf "$MISC_IMG" "$DST"
notice "Done packing $DST"
fi
if grep -wq boot-recovery "$DST" && \
[ -z "$(rk_partition_size recovery)" ]; then
error "Recovery misc requires recovery partition!"
return 1
fi
finish_build build_misc
}
source "${RK_BUILD_HELPER:-$(dirname "$(realpath "$0")")/build-helper}"
build_hook