aboutsummaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2014-12-15 09:59:44 +0000
committerRafał Miłecki <zajec5@gmail.com>2014-12-15 09:59:44 +0000
commit5db780f39911c6b70de5b0b747b65a156e5e106f (patch)
tree3671a5126a54799ef0f4f981195cd00988d2953c /target
parentee10210f49c584faf78ac3c3fee5131ee3164641 (diff)
downloadupstream-5db780f39911c6b70de5b0b747b65a156e5e106f.tar.gz
upstream-5db780f39911c6b70de5b0b747b65a156e5e106f.tar.bz2
upstream-5db780f39911c6b70de5b0b747b65a156e5e106f.zip
brcm47xx: detect (and still reject for now) CyberTAN fw format
Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43714 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target')
-rw-r--r--target/linux/brcm47xx/base-files/lib/upgrade/platform.sh12
1 files changed, 12 insertions, 0 deletions
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"
}