mirror of https://github.com/hak5/openwrt.git
ath79: sysupgrade: drop unused platform checks
None of these checks are used at the moment and most of them aren't required if the image metadata validation is used. Signed-off-by: Mathias Kresin <dev@kresin.me>openwrt-19.07
parent
377197fdb3
commit
3e9d9f6225
|
@ -2,8 +2,6 @@
|
|||
# Copyright (C) 2011 OpenWrt.org
|
||||
#
|
||||
|
||||
. /lib/functions/system.sh
|
||||
|
||||
PART_NAME=firmware
|
||||
RAMFS_COPY_BIN='nandwrite'
|
||||
|
||||
|
@ -12,175 +10,6 @@ CI_LDADR=0x80060000
|
|||
|
||||
PLATFORM_DO_UPGRADE_COMBINED_SEPARATE_MTD=0
|
||||
|
||||
platform_find_partitions() {
|
||||
local first dev size erasesize name
|
||||
while read dev size erasesize name; do
|
||||
name=${name#'"'}; name=${name%'"'}
|
||||
case "$name" in
|
||||
vmlinux.bin.l7|vmlinux|kernel|linux|linux.bin|rootfs|filesystem)
|
||||
if [ -z "$first" ]; then
|
||||
first="$name"
|
||||
else
|
||||
echo "$erasesize:$first:$name"
|
||||
break
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done < /proc/mtd
|
||||
}
|
||||
|
||||
platform_find_kernelpart() {
|
||||
local part
|
||||
for part in "${1%:*}" "${1#*:}"; do
|
||||
case "$part" in
|
||||
vmlinux.bin.l7|vmlinux|kernel|linux|linux.bin)
|
||||
echo "$part"
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
platform_find_rootfspart() {
|
||||
local part
|
||||
for part in "${1%:*}" "${1#*:}"; do
|
||||
[ "$part" != "$2" ] && echo "$part" && break
|
||||
done
|
||||
}
|
||||
|
||||
platform_do_upgrade_combined() {
|
||||
local partitions=$(platform_find_partitions)
|
||||
local kernelpart=$(platform_find_kernelpart "${partitions#*:}")
|
||||
local erase_size=$((0x${partitions%%:*})); partitions="${partitions#*:}"
|
||||
local kern_length=0x$(dd if="$1" bs=2 skip=1 count=4 2>/dev/null)
|
||||
local kern_blocks=$(($kern_length / $CI_BLKSZ))
|
||||
local root_blocks=$((0x$(dd if="$1" bs=2 skip=5 count=4 2>/dev/null) / $CI_BLKSZ))
|
||||
|
||||
if [ -n "$partitions" ] && [ -n "$kernelpart" ] && \
|
||||
[ ${kern_blocks:-0} -gt 0 ] && \
|
||||
[ ${root_blocks:-0} -gt 0 ] && \
|
||||
[ ${erase_size:-0} -gt 0 ];
|
||||
then
|
||||
local rootfspart=$(platform_find_rootfspart "$partitions" "$kernelpart")
|
||||
local append=""
|
||||
[ -f "$CONF_TAR" -a "$SAVE_CONFIG" -eq 1 ] && append="-j $CONF_TAR"
|
||||
|
||||
if [ "$PLATFORM_DO_UPGRADE_COMBINED_SEPARATE_MTD" -ne 1 ]; then
|
||||
( dd if="$1" bs=$CI_BLKSZ skip=1 count=$kern_blocks 2>/dev/null; \
|
||||
dd if="$1" bs=$CI_BLKSZ skip=$((1+$kern_blocks)) count=$root_blocks 2>/dev/null ) | \
|
||||
mtd -r $append -F$kernelpart:$kern_length:$CI_LDADR,rootfs write - $partitions
|
||||
elif [ -n "$rootfspart" ]; then
|
||||
dd if="$1" bs=$CI_BLKSZ skip=1 count=$kern_blocks 2>/dev/null | \
|
||||
mtd write - $kernelpart
|
||||
dd if="$1" bs=$CI_BLKSZ skip=$((1+$kern_blocks)) count=$root_blocks 2>/dev/null | \
|
||||
mtd -r $append write - $rootfspart
|
||||
fi
|
||||
fi
|
||||
PLATFORM_DO_UPGRADE_COMBINED_SEPARATE_MTD=0
|
||||
}
|
||||
|
||||
tplink_get_image_hwid() {
|
||||
get_image "$@" | dd bs=4 count=1 skip=16 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
|
||||
}
|
||||
|
||||
tplink_get_image_mid() {
|
||||
get_image "$@" | dd bs=4 count=1 skip=17 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
|
||||
}
|
||||
|
||||
tplink_get_image_boot_size() {
|
||||
get_image "$@" | dd bs=4 count=1 skip=37 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
|
||||
}
|
||||
|
||||
tplink_pharos_check_image() {
|
||||
local magic_long="$(get_magic_long "$1")"
|
||||
[ "$magic_long" != "7f454c46" ] && {
|
||||
echo "Invalid image magic '$magic_long'"
|
||||
return 1
|
||||
}
|
||||
|
||||
local model_string="$(tplink_pharos_get_model_string)"
|
||||
local line
|
||||
|
||||
# Here $1 is given to dd directly instead of get_image as otherwise the skip
|
||||
# will take almost a second (as dd can't seek then)
|
||||
#
|
||||
# This will fail if the image isn't local, but that's fine: as the
|
||||
# read loop won't be executed at all, it will return true, so the image
|
||||
# is accepted (loading the first 1.5M of a remote image for this check seems
|
||||
# a bit extreme)
|
||||
dd if="$1" bs=1 skip=1511432 count=1024 2>/dev/null | while read line; do
|
||||
[ "$line" = "$model_string" ] && break
|
||||
done || {
|
||||
echo "Unsupported image (model not in support-list)"
|
||||
return 1
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
seama_get_type_magic() {
|
||||
get_image "$@" | dd bs=1 count=4 skip=53 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
|
||||
}
|
||||
|
||||
wrgg_get_image_magic() {
|
||||
get_image "$@" | dd bs=4 count=1 skip=8 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
|
||||
}
|
||||
|
||||
cybertan_get_image_magic() {
|
||||
get_image "$@" | dd bs=8 count=1 skip=0 2>/dev/null | hexdump -v -n 8 -e '1/1 "%02x"'
|
||||
}
|
||||
|
||||
cybertan_check_image() {
|
||||
local magic="$(cybertan_get_image_magic "$1")"
|
||||
local fw_magic="$(cybertan_get_hw_magic)"
|
||||
|
||||
[ "$fw_magic" != "$magic" ] && {
|
||||
echo "Invalid image, ID mismatch, got:$magic, but need:$fw_magic"
|
||||
return 1
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
platform_do_upgrade_compex() {
|
||||
local fw_file=$1
|
||||
local fw_part=$PART_NAME
|
||||
local fw_mtd=$(find_mtd_part $fw_part)
|
||||
local fw_length=0x$(dd if="$fw_file" bs=2 skip=1 count=4 2>/dev/null)
|
||||
local fw_blocks=$(($fw_length / 65536))
|
||||
|
||||
if [ -n "$fw_mtd" ] && [ ${fw_blocks:-0} -gt 0 ]; then
|
||||
local append=""
|
||||
[ -f "$CONF_TAR" -a "$SAVE_CONFIG" -eq 1 ] && append="-j $CONF_TAR"
|
||||
|
||||
sync
|
||||
dd if="$fw_file" bs=64k skip=1 count=$fw_blocks 2>/dev/null | \
|
||||
mtd $append write - "$fw_part"
|
||||
fi
|
||||
}
|
||||
|
||||
alfa_check_image() {
|
||||
local magic_long="$(get_magic_long "$1")"
|
||||
local fw_part_size=$(mtd_get_part_size firmware)
|
||||
|
||||
case "$magic_long" in
|
||||
"27051956")
|
||||
[ "$fw_part_size" != "16318464" ] && {
|
||||
echo "Invalid image magic \"$magic_long\" for $fw_part_size bytes"
|
||||
return 1
|
||||
}
|
||||
;;
|
||||
"68737173")
|
||||
[ "$fw_part_size" != "7929856" ] && {
|
||||
echo "Invalid image magic \"$magic_long\" for $fw_part_size bytes"
|
||||
return 1
|
||||
}
|
||||
;;
|
||||
esac
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
platform_check_image() {
|
||||
local board=$(board_name)
|
||||
local magic="$(get_magic_word "$1")"
|
||||
|
|
Loading…
Reference in New Issue