diff options
author | Christian Lamparter <chunkeey@googlemail.com> | 2016-04-07 18:26:51 +0200 |
---|---|---|
committer | Álvaro Fernández Rojas <noltari@gmail.com> | 2016-04-07 18:26:51 +0200 |
commit | 3339f41d2692e2e03ece172bedbaea767270500c (patch) | |
tree | 51bde6dd87e158e4d06e7204697924b148e0797f | |
parent | 9dee77795d52e38500d5e7de92b339c8f702f008 (diff) | |
download | upstream-3339f41d2692e2e03ece172bedbaea767270500c.tar.gz upstream-3339f41d2692e2e03ece172bedbaea767270500c.tar.bz2 upstream-3339f41d2692e2e03ece172bedbaea767270500c.zip |
brcm2708: implement sysupgrade image check
Implement a crude but functioning sysupgrade image check for the
Raspberry Pi. The code only checks if the master boot record boot
signature (0x55aa) is present in the first 512-bytes at the correct
location. This can prevent the odd bricking of a system when flashing
the wrong file.
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
-rw-r--r-- | target/linux/brcm2708/base-files/lib/upgrade/platform.sh | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/target/linux/brcm2708/base-files/lib/upgrade/platform.sh b/target/linux/brcm2708/base-files/lib/upgrade/platform.sh index 1d4b694574..2f2aeb098e 100644 --- a/target/linux/brcm2708/base-files/lib/upgrade/platform.sh +++ b/target/linux/brcm2708/base-files/lib/upgrade/platform.sh @@ -1,5 +1,19 @@ +get_magic_at() { + local file="$1" + local pos="$2" + get_image "$file" | dd bs=1 count=2 skip="$pos" 2>/dev/null | hexdump -v -n 2 -e '1/1 "%02x"' +} + platform_check_image() { - # i know no way to verify the image + local file="$1" + local magic + + magic=$(get_magic_at "$file" 510) + [ "$magic" != "55aa" ] && { + echo "Failed to verify MBR boot signature." + return 1 + } + return 0; } |