aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/image-commands.mk7
-rw-r--r--package/base-files/files/lib/upgrade/fwtool.sh7
2 files changed, 11 insertions, 3 deletions
diff --git a/include/image-commands.mk b/include/image-commands.mk
index 9da712e733..7a370034c8 100644
--- a/include/image-commands.mk
+++ b/include/image-commands.mk
@@ -390,10 +390,13 @@ json_quote=$(subst ','\'',$(subst ",\",$(1)))
metadata_devices=$(if $(1),$(subst "$(space)","$(comma)",$(strip $(foreach v,$(1),"$(call json_quote,$(v))"))))
metadata_json = \
'{ $(if $(IMAGE_METADATA),$(IMAGE_METADATA)$(comma)) \
- "metadata_version": "1.0", \
+ "metadata_version": "1.1", \
"compat_version": "$(call json_quote,$(compat_version))", \
$(if $(DEVICE_COMPAT_MESSAGE),"compat_message": "$(call json_quote,$(DEVICE_COMPAT_MESSAGE))"$(comma)) \
- "supported_devices":[$(call metadata_devices,$(SUPPORTED_DEVICES))], \
+ $(if $(filter-out 1.0,$(compat_version)),"new_supported_devices":[$(call metadata_devices,$(SUPPORTED_DEVICES))]$(comma)) \
+ $(if $(filter-out 1.0,$(compat_version)),"supported_devices": \
+ ["$(call json_quote,Image version $(compat_version) incompatible to device: $(if $(DEVICE_COMPAT_MESSAGE),$(DEVICE_COMPAT_MESSAGE),Please check documentation ...))"]$(comma)) \
+ $(if $(filter 1.0,$(compat_version)),"supported_devices":[$(call metadata_devices,$(SUPPORTED_DEVICES))]$(comma)) \
"version": { \
"dist": "$(call json_quote,$(VERSION_DIST))", \
"version": "$(call json_quote,$(VERSION_NUMBER))", \
diff --git a/package/base-files/files/lib/upgrade/fwtool.sh b/package/base-files/files/lib/upgrade/fwtool.sh
index e8277f6fcc..3a74c72bba 100644
--- a/package/base-files/files/lib/upgrade/fwtool.sh
+++ b/package/base-files/files/lib/upgrade/fwtool.sh
@@ -51,7 +51,12 @@ fwtool_check_image() {
json_get_var compatmessage compat_message
[ -n "$imagecompat" ] || imagecompat="1.0"
- json_select supported_devices || return 1
+ # select correct supported list based on compat_version
+ # (using this ensures that compatibility check works for devices
+ # not knowing about compat-version)
+ local supported=supported_devices
+ [ "$imagecompat" != "1.0" ] && supported=new_supported_devices
+ json_select $supported || return 1
json_get_keys dev_keys
for k in $dev_keys; do