ar71xx: verify hardware id of firmware images on TP-Link boards

SVN-Revision: 29455
master
Gabor Juhos 13 years ago
parent 5ef6ec4a31
commit c6bcf8d1d8
  1. 10
      target/linux/ar71xx/base-files/lib/ar71xx.sh
  2. 16
      target/linux/ar71xx/base-files/lib/upgrade/platform.sh

@ -48,6 +48,16 @@ wndr3700_board_detect() {
AR71XX_MODEL="$machine"
}
tplink_get_hwid() {
local part
local hwid
part=$(find_mtd_part firmware)
[ -z "$part" ] && return 1
dd if=$part bs=4 count=1 skip=16 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
}
ar71xx_board_detect() {
local machine
local name

@ -61,6 +61,10 @@ platform_do_upgrade_combined() {
fi
}
tplink_get_image_hwid() {
get_image "$@" | dd bs=4 count=1 skip=16 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
}
platform_check_image() {
local board=$(ar71xx_board_name)
local magic="$(get_magic_word "$1")"
@ -125,6 +129,18 @@ platform_check_image() {
echo "Invalid image type."
return 1
}
local hwid
local imageid
hwid=$(tplink_get_hwid)
imageid=$(tplink_get_image_hwid "$1")
[ "$hwid" != "$imageid" ] && {
echo "Invalid image, hardware ID mismatch, hw:$hwid image:$imageid."
return 1
}
return 0
;;
wndr3700)

Loading…
Cancel
Save