You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
02d6ac1060
So far, the compatibility mechanism only works if both device and image are already updated to the new routines. This patch extends the sysupgrade metadata and fwtool_check_image() to account for "older" images as well: The basic mechanism for older devices to check for image compatibility is the supported_devices entry. This can be exploited by putting a custom message into this variable of the metadata, so older FW will produce a mismatch and print the message as it thinks it's the list of supported devices. So, we have two cases: device 1.0, image 1.0: The metadata will just contain supported_devices as before. device 1.0, image 1.1: The metadata will contain: "new_supported_devices":["device_string1", "device_string2", ...], "supported_devices":["Image version 1.1 incompatible to device: ..."] If the device is "legacy", i.e. does not have the updated fwtool.sh, it will just fail with image check and print the content of supported_devices. If DEVICE_COMPAT_MESSAGE is set, this will be printed on old devices as well through the same mechanism. Otherwise a generic "Please check documentation ..." is appended. Upgrade can still be performed with -F like when SUPPORTED_DEVICES has been removed to prevent bricking. If the device has updated fwtool.sh (but is 1.0), it will just use the new_supported_devices instead, and work as intended (flashing with -n will work, flashing without will print the appropriate warning). This mechanism should provide a fair tradeoff between simplicity and functionality. Since we touched a lot of fields in metadata, this also bumps metadata_version to 1.1. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> |
4 years ago | |
---|---|---|
.. | ||
site | 5 years ago | |
autotools.mk | 5 years ago | |
cmake.mk | 4 years ago | |
debug.mk | 9 years ago | |
depends.mk | 7 years ago | |
device_table.txt | 11 years ago | |
download.mk | 4 years ago | |
feeds.mk | 5 years ago | |
hardened-ld-pie.specs | 6 years ago | |
hardening.mk | 4 years ago | |
host-build.mk | 4 years ago | |
image-commands.mk | 4 years ago | |
image-legacy.mk | 7 years ago | |
image.mk | 4 years ago | |
kernel-build.mk | 4 years ago | |
kernel-defaults.mk | 5 years ago | |
kernel-version.mk | 4 years ago | |
kernel.mk | 4 years ago | |
netfilter.mk | 4 years ago | |
nls.mk | 6 years ago | |
package-bin.mk | 7 years ago | |
package-defaults.mk | 4 years ago | |
package-dumpinfo.mk | 5 years ago | |
package-ipkg.mk | 4 years ago | |
package-seccomp.mk | 9 years ago | |
package.mk | 4 years ago | |
prereq-build.mk | 4 years ago | |
prereq.mk | 5 years ago | |
quilt.mk | 5 years ago | |
rootfs.mk | 5 years ago | |
scan.awk | 9 years ago | |
scan.mk | 5 years ago | |
shell.sh | 7 years ago | |
subdir.mk | 6 years ago | |
target.mk | 4 years ago | |
toolchain-build.mk | 5 years ago | |
toplevel.mk | 4 years ago | |
u-boot.mk | 4 years ago | |
uclibc++.mk | 4 years ago | |
unpack.mk | 4 years ago | |
verbose.mk | 6 years ago | |
version.mk | 5 years ago |