gl-infra-builder-FUjr/patches-22.03.2/3011-update-mvebu-fwtools-script.patch
2023-04-12 05:46:18 -04:00

83 lines
2.2 KiB
Diff

From d5d5a2cd3dd981a0fc68a528151a5ba772e7ab0a Mon Sep 17 00:00:00 2001
From: Weiping Yang <weiping.yang@gl-inet.com>
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