This patch enables metadata-supported image verification for all apm821xx supported devices. Since this method comes with a built-in image verification tool (fwtool), the previous image checks can be removed.
Signed-off-by: Mathias Kresin <d...@kresin.me> Signed-off-by: Christian Lamparter <chunk...@gmail.com> --- .../apm821xx/base-files/lib/upgrade/merakinand.sh | 68 ---------------------- .../apm821xx/base-files/lib/upgrade/platform.sh | 15 ++--- target/linux/apm821xx/image/Makefile | 9 +-- 3 files changed, 9 insertions(+), 83 deletions(-) delete mode 100755 target/linux/apm821xx/base-files/lib/upgrade/merakinand.sh diff --git a/target/linux/apm821xx/base-files/lib/upgrade/merakinand.sh b/target/linux/apm821xx/base-files/lib/upgrade/merakinand.sh deleted file mode 100755 index fb961b8945..0000000000 --- a/target/linux/apm821xx/base-files/lib/upgrade/merakinand.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2016 Chris Blake <chrisrblak...@gmail.com> -# -# Custom upgrade script for Meraki NAND devices (ex. MR24) -# Based on merakinand.sh from the ar71xx target -# -. /lib/apm821xx.sh -. /lib/functions.sh - -merakinand_do_kernel_check() { - local board_name="$1" - local tar_file="$2" - local image_magic_word=`(tar xf $tar_file sysupgrade-$board_name/kernel -O 2>/dev/null | dd bs=1 count=4 skip=0 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"')` - - # What is our kernel magic string? - case "$board_name" in - "mr24"|\ - "mx60") - [ "$image_magic_word" == "8e73ed8a" ] && { - echo "pass" && return 0 - } - ;; - esac - - exit 1 -} - -merakinand_do_platform_check() { - local board_name="$1" - local tar_file="$2" - local control_length=`(tar xf $tar_file sysupgrade-$board_name/CONTROL -O | wc -c) 2> /dev/null` - local file_type="$(identify_tar $2 sysupgrade-$board_name/root)" - local kernel_magic="$(merakinand_do_kernel_check $1 $2)" - - case "$board_name" in - "mr24"|\ - "mx60") - [ "$control_length" = 0 -o "$file_type" != "squashfs" -o "$kernel_magic" != "pass" ] && { - echo "Invalid sysupgrade file for $board_name" - return 1 - } - ;; - *) - echo "Unsupported device $board_name"; - return 1 - ;; - esac - - return 0 -} - -merakinand_do_upgrade() { - local tar_file="$1" - local board_name="$(board_name)" - - # Do we need to do any platform tweaks? - case "$board_name" in - "mr24"|\ - "mx60") - nand_do_upgrade $1 - ;; - *) - echo "Unsupported device $board_name"; - exit 1 - ;; - esac -} diff --git a/target/linux/apm821xx/base-files/lib/upgrade/platform.sh b/target/linux/apm821xx/base-files/lib/upgrade/platform.sh index 8c716bf44e..ecfd70b9ee 100755 --- a/target/linux/apm821xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/apm821xx/base-files/lib/upgrade/platform.sh @@ -1,6 +1,7 @@ #!/bin/sh PART_NAME=firmware +REQUIRE_IMAGE_METADATA=1 platform_check_image() { local board=$(board_name) @@ -14,14 +15,9 @@ platform_check_image() { ;; mr24|\ - mx60) - merakinand_do_platform_check $board "$1" - return $?; - ;; - + mx60|\ wndr4700) - nand_do_platform_check $board "$1" - return $?; + return 0; ;; *) @@ -37,10 +33,7 @@ platform_pre_upgrade() { case "$board" in mr24|\ - mx60) - merakinand_do_upgrade "$1" - ;; - + mx60|\ wndr4700) nand_do_upgrade "$1" ;; diff --git a/target/linux/apm821xx/image/Makefile b/target/linux/apm821xx/image/Makefile index bff3947039..251ef5f359 100644 --- a/target/linux/apm821xx/image/Makefile +++ b/target/linux/apm821xx/image/Makefile @@ -14,6 +14,7 @@ define Device/Default KERNEL_ENTRY := 0x00000000 KERNEL_LOADADDR := 0x00000000 DEVICE_DTS_DIR := ../dts + SUPPORTED_DEVICES = $$(BOARD_NAME) endef define Build/dtb @@ -81,7 +82,7 @@ define Device/meraki_mr24 check-size $$(KERNEL_SIZE) | \ MerakiAdd-dtb | pad-to 2047k | MerakiAdd-initramfs | \ MerakiNAND - IMAGE/sysupgrade.tar := sysupgrade-tar + IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata UBINIZE_OPTS := -E 5 endef TARGET_DEVICES += meraki_mr24 @@ -106,7 +107,7 @@ define Device/meraki_mx60 check-size $$(KERNEL_SIZE) | \ MerakiAdd-dtb | pad-to 2047k | MerakiAdd-initramfs | \ MerakiNAND - IMAGE/sysupgrade.tar := sysupgrade-tar + IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata UBINIZE_OPTS := -E 5 endef TARGET_DEVICES += meraki_mx60 @@ -170,7 +171,7 @@ define Device/netgear_wndr4700 KERNEL_INITRAMFS := kernel-bin | gzip | dtb | wndr4700-specialImage gzip IMAGE/factory.img := create-uImage-dtb | append-kernel | pad-to 2M | append-ubi | \ netgear-dni | check-size $$$$(IMAGE_SIZE) - IMAGE/sysupgrade.tar := sysupgrade-tar + IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata IMAGE/kernel.dtb := export-dtb | uImage none NETGEAR_BOARD_ID := WNDR4700 NETGEAR_HW_ID := 29763875+128+256 @@ -219,7 +220,7 @@ define Device/MyBookLiveDefault DEVICE_DTB := apollo3g.dtb FILESYSTEMS := ext4 IMAGE/kernel.dtb := export-dtb - IMAGE/rootfs.img.gz := boot-script | boot-img | hdd-img | gzip + IMAGE/rootfs.img.gz := boot-script | boot-img | hdd-img | gzip | append-metadata endef define Device/wd_mybooklive -- 2.15.1 _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev