diff --git a/package/utils/fitblk/Makefile b/package/utils/fitblk/Makefile index 325963d8e25..b8f881937e8 100644 --- a/package/utils/fitblk/Makefile +++ b/package/utils/fitblk/Makefile @@ -16,6 +16,7 @@ define Package/fitblk SECTION:=base CATEGORY:=Base system TITLE:=fitblk firmware release tool + DEPENDS:=+fit-check-sign endef define Package/fitblk/description diff --git a/package/utils/fitblk/files/fit.sh b/package/utils/fitblk/files/fit.sh index b715a15ddfb..839389bed4d 100644 --- a/package/utils/fitblk/files/fit.sh +++ b/package/utils/fitblk/files/fit.sh @@ -61,3 +61,13 @@ fit_do_upgrade() { ;; esac } + +fit_check_image() { + local magic="$(get_magic_long "$1")" + [ "$magic" != "d00dfeed" ] && { + echo "Invalid image type." + return 74 + } + + fit_check_sign -f "$1" >/dev/null || return 74 +} diff --git a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh index 622f8806044..01753c0a03b 100755 --- a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh +++ b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh @@ -1,5 +1,5 @@ REQUIRE_IMAGE_METADATA=1 -RAMFS_COPY_BIN='fitblk' +RAMFS_COPY_BIN='fitblk fit_check_sign' asus_initial_setup() { @@ -224,11 +224,8 @@ platform_check_image() { xiaomi,redmi-router-ax6000-ubootmod|\ xiaomi,mi-router-wr30u-ubootmod|\ zyxel,ex5601-t0-ubootmod) - [ "$magic" != "d00dfeed" ] && { - echo "Invalid image type." - return 1 - } - return 0 + fit_check_image "$1" + return $? ;; nradio,c8-668gl) # tar magic `ustar` diff --git a/target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh index f017509637e..9019eb69005 100755 --- a/target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh +++ b/target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh @@ -1,5 +1,5 @@ REQUIRE_IMAGE_METADATA=1 -RAMFS_COPY_BIN='fitblk' +RAMFS_COPY_BIN='fitblk fit_check_sign' platform_do_upgrade() { local board=$(board_name) diff --git a/target/linux/mediatek/mt7623/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/mt7623/base-files/lib/upgrade/platform.sh index bce6709a58a..ce40e26afbb 100755 --- a/target/linux/mediatek/mt7623/base-files/lib/upgrade/platform.sh +++ b/target/linux/mediatek/mt7623/base-files/lib/upgrade/platform.sh @@ -1,5 +1,5 @@ REQUIRE_IMAGE_METADATA=1 -RAMFS_COPY_BIN='fitblk' +RAMFS_COPY_BIN='fitblk fit_check_sign' # Legacy full system upgrade including preloader for MediaTek SoCs on eMMC or SD legacy_mtk_mmc_full_upgrade() { diff --git a/target/linux/siflower/sf21/base-files/lib/upgrade/platform.sh b/target/linux/siflower/sf21/base-files/lib/upgrade/platform.sh index ac90f253b45..72f35f6925b 100644 --- a/target/linux/siflower/sf21/base-files/lib/upgrade/platform.sh +++ b/target/linux/siflower/sf21/base-files/lib/upgrade/platform.sh @@ -1,5 +1,5 @@ REQUIRE_IMAGE_METADATA=1 -RAMFS_COPY_BIN='fitblk' +RAMFS_COPY_BIN='fitblk fit_check_sign' platform_do_upgrade() { local board=$(board_name) @@ -18,17 +18,13 @@ PART_NAME=firmware platform_check_image() { local board=$(board_name) - local magic="$(get_magic_long "$1")" [ "$#" -gt 1 ] && return 1 case "$board" in *) - [ "$magic" != "d00dfeed" ] && { - echo "Invalid image type." - return 1 - } - return 0 + fit_check_image "$1" + return $? ;; esac