From d5d5a2cd3dd981a0fc68a528151a5ba772e7ab0a Mon Sep 17 00:00:00 2001 From: Weiping Yang Date: Mon, 27 Feb 2023 01:41:14 -0500 Subject: [PATCH] update-mvebu-fwtools-script --- .../base-files/lib/upgrade/fwtool.sh | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 target/linux/mvebu/cortexa53/base-files/lib/upgrade/fwtool.sh diff --git a/target/linux/mvebu/cortexa53/base-files/lib/upgrade/fwtool.sh b/target/linux/mvebu/cortexa53/base-files/lib/upgrade/fwtool.sh new file mode 100644 index 0000000000..7c82bc5289 --- /dev/null +++ b/target/linux/mvebu/cortexa53/base-files/lib/upgrade/fwtool.sh @@ -0,0 +1,63 @@ +fwtool_check_signature() { + [ $# -gt 1 ] && return 1 + + [ ! -x /usr/bin/ucert ] && { + if [ "$REQUIRE_IMAGE_SIGNATURE" = 1 ]; then + return 1 + else + return 0 + fi + } + + if ! fwtool -q -s /tmp/sysupgrade.ucert "$1"; then + v "Image signature not present" + [ "$REQUIRE_IMAGE_SIGNATURE" = 1 -a "$FORCE" != 1 ] && { + v "Use sysupgrade -F to override this check when downgrading or flashing to vendor firmware" + } + [ "$REQUIRE_IMAGE_SIGNATURE" = 1 ] && return 1 + return 0 + fi + + fwtool -q -T -s /dev/null "$1" | \ + ucert -V -m - -c "/tmp/sysupgrade.ucert" -P /etc/opkg/keys + + return $? +} + +fwtool_check_image() { + [ $# -gt 1 ] && return 1 + + . /usr/share/libubox/jshn.sh + + if ! fwtool -q -i /tmp/sysupgrade.meta "$1"; then + v "Image metadata not present" + [ "$REQUIRE_IMAGE_METADATA" = 1 -a "$FORCE" != 1 ] && { + v "Use sysupgrade -F to override this check when downgrading or flashing to vendor firmware" + } + [ "$REQUIRE_IMAGE_METADATA" = 1 ] && return 1 + return 0 + fi + + json_load "$(cat /tmp/sysupgrade.meta)" || { + v "Invalid image metadata" + return 1 + } + + device="$(cat /tmp/sysinfo/board_name)" + + json_select supported_devices || return 1 + + json_get_keys dev_keys + for k in $dev_keys; do + json_get_var dev "$k" + dev=$(echo $dev | awk -F "-emmc" '{print $1}') + [ "$dev" = "$device" ] && return 0 + done + + v "Device $device not supported by this image" + for k in $dev_keys; do + json_get_var dev "$k" + v "$dev" + done + return 1 +} -- 2.17.1