Signed-off-by: Cody P Schafer <[email protected]>
---
.../brcm47xx/base-files/lib/upgrade/platform.sh | 58 +++++++++++++++++++---
1 file changed, 51 insertions(+), 7 deletions(-)
diff --git a/target/linux/brcm47xx/base-files/lib/upgrade/platform.sh
b/target/linux/brcm47xx/base-files/lib/upgrade/platform.sh
index 644f3c1..63526be 100644
--- a/target/linux/brcm47xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/brcm47xx/base-files/lib/upgrade/platform.sh
@@ -1,16 +1,60 @@
PART_NAME=firmware
+get_current_magic_long () {
+ dd bs=4 count=1 2>/dev/null < "$(find_mtd_part $PART_NAME)" | hexdump
-v -n 4 -e '1/1 "%02x"'
+}
+
+belkin_check () {
+ local m=$1
+ local n=$2
+
+ if [ $cmagic != $m ]; then
+ return 0
+ fi
+
+ if [ $magic = $m ] || [ $magic = 78563412 ]; then
+ ok=true
+ return 0
+ else
+ echo "Invalid image for this router."
+ echo "Either $n or f7dxxxx .bin files required."
+ return 1
+ fi
+}
+
platform_check_image() {
[ "$ARGC" -gt 1 ] && return 1
- case "$(get_magic_word "$1")" in
- # .trx files
- 4844) return 0;;
- *)
- echo "Invalid image type. Please use only .trx files"
+ ok=false
+ magic="$(get_magic_long "$1")"
+ # For Belkin support, check on magic in current image.
+ cmagic="$(get_current_magic_long)"
+
+ belkin_check 22031020 f7d3301 || return 1
+ belkin_check 28090920 f7d3302 || return 1
+ belkin_check 06101020 f7d4302 || return 1
+ belkin_check 17850100 f7d4401 || return 1
+
+ $ok && return 0
+
+ local b_qa=78563412
+ if [ $cmagic == $b_qa ]; then
+
+ if [ $magic = $b_qa ] ; then
+ return 0
+ else
+ echo "Potentially invalid image for this router."
+ echo "Please use a openwrt-f7dxxxx-*.bin file"
return 1
- ;;
- esac
+ fi
+ fi
+
+ if [ $magic = 48445230 ]; then
+ return 0
+ else
+ echo "Invalid image type. Please use only .trx files"
+ return 1
+ fi
}
# use default for platform_do_upgrade()
--
1.8.4.2
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel