build: include size-limits to device-metadata

Include the image and kernel size limitations defined for each device to
the device metadata JSON.

These informations are only added if defined.

Signed-off-by: David Bauer <mail@david-bauer.net>
This commit is contained in:
David Bauer 2023-12-11 14:46:12 +01:00
parent 775523f628
commit 0ee1ede25a
2 changed files with 32 additions and 1 deletions

View File

@ -647,6 +647,8 @@ define Device/Build/initramfs
VERSION_NUMBER="$(VERSION_NUMBER)" \
VERSION_CODE="$(VERSION_CODE)" \
SUPPORTED_DEVICES="$$(SUPPORTED_DEVICES)" \
KERNEL_SIZE="$$(KERNEL_SIZE)" \
IMAGE_SIZE="$$(IMAGE_SIZE)" \
$(TOPDIR)/scripts/json_add_image_info.py $$@
endef
endif
@ -781,6 +783,8 @@ define Device/Build/image
VERSION_NUMBER="$(VERSION_NUMBER)" \
VERSION_CODE="$(VERSION_CODE)" \
SUPPORTED_DEVICES="$(SUPPORTED_DEVICES)" \
KERNEL_SIZE="$(KERNEL_SIZE)" \
IMAGE_SIZE="$(IMAGE_SIZE)" \
$(TOPDIR)/scripts/json_add_image_info.py $$@
endef
@ -835,6 +839,8 @@ define Device/Build/artifact
VERSION_NUMBER="$(VERSION_NUMBER)" \
VERSION_CODE="$(VERSION_CODE)" \
SUPPORTED_DEVICES="$(SUPPORTED_DEVICES)" \
KERNEL_SIZE="$(KERNEL_SIZE)" \
IMAGE_SIZE="$(IMAGE_SIZE)" \
$(TOPDIR)/scripts/json_add_image_info.py $$@
endef

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python3
from os import getenv
from os import getenv, path
from pathlib import Path
from sys import argv
import hashlib
@ -35,6 +35,17 @@ def get_titles():
return titles
def get_numerical_size(image_size):
if image_size.endswith("g"):
return int(image_size[:-1]) * 1024 * 1024 * 1024
elif image_size.endswith("m"):
return int(image_size[:-1]) * 1024 * 1024
elif image_size.endswith("k"):
return int(image_size[:-1]) * 1024
else:
return int(image_size)
device_id = getenv("DEVICE_ID")
sha256_hash = hashlib.sha256()
@ -52,6 +63,8 @@ if file_path.with_suffix(file_path.suffix + ".sha256sum").exists():
else:
hash_unsigned = hash_file
file_size = path.getsize(file_path)
file_info = {
"metadata_version": 1,
"target": "{}/{}".format(getenv("TARGET"), getenv("SUBTARGET")),
@ -67,6 +80,7 @@ file_info = {
"name": getenv("FILE_NAME"),
"sha256": hash_file,
"sha256_unsigned": hash_unsigned,
"size": file_size,
}
],
"device_packages": getenv("DEVICE_PACKAGES").split(),
@ -76,6 +90,17 @@ file_info = {
},
}
if getenv("IMAGE_SIZE") or getenv("KERNEL_SIZE"):
file_info["profiles"][device_id]["file_size_limits"] = {}
if getenv("IMAGE_SIZE"):
file_info["profiles"][device_id]["file_size_limits"]["image"] = get_numerical_size(
getenv("IMAGE_SIZE")
)
if getenv("KERNEL_SIZE"):
file_info["profiles"][device_id]["file_size_limits"]["kernel"] = get_numerical_size(
getenv("KERNEL_SIZE")
)
if getenv("FILE_FILESYSTEM"):
file_info["profiles"][device_id]["images"][0]["filesystem"] = getenv(
"FILE_FILESYSTEM"