From a5b6b7e41943fec0eb28593ce92b0713990c8d23 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
Date: Mon, 15 Dec 2014 09:59:44 +0000
Subject: [PATCH] brcm47xx: detect (and still reject for now) CyberTAN fw
 format
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 43714
---
 .../brcm47xx/base-files/lib/upgrade/platform.sh      | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/target/linux/brcm47xx/base-files/lib/upgrade/platform.sh b/target/linux/brcm47xx/base-files/lib/upgrade/platform.sh
index d216ca4d04..412d6daaff 100644
--- a/target/linux/brcm47xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/brcm47xx/base-files/lib/upgrade/platform.sh
@@ -1,5 +1,11 @@
 PART_NAME=firmware
 
+# $(1): file to read magic from
+# $(2): offset in bytes
+get_magic_long_at() {
+	dd if="$1" skip=$2 bs=1 count=4 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
+}
+
 brcm47xx_identify() {
 	local magic
 
@@ -15,6 +21,12 @@ brcm47xx_identify() {
 			;;
 	esac
 
+	magic=$(get_magic_long_at "$1" 14)
+	[ "$magic" = "55324e44" ] && {
+		echo "cybertan"
+		return
+	}
+
 	echo "unknown"
 }
 
-- 
GitLab