Sub-set of device-specific bootimg parameters results in wrong parameters passed to mkbootimg
On top of this repo's master, I was doing the following
Click to expand
diff --git a/devices/qcom/bootloader.sh b/devices/qcom/bootloader.sh
index c0c64ab..110a635 100755
--- a/devices/qcom/bootloader.sh
+++ b/devices/qcom/bootloader.sh
@@ -1,5 +1,7 @@
#!/bin/sh
+set -x
+
SCRIPT="$0"
DEVICE="$1"
diff --git a/devices/qcom/configs/sdm845.toml b/devices/qcom/configs/sdm845.toml
index 5ecfdf7..fd56220 100644
--- a/devices/qcom/configs/sdm845.toml
+++ b/devices/qcom/configs/sdm845.toml
@@ -10,6 +10,18 @@ pagesize = 4096
vendor = "google"
model = "blueline"
+[[device]]
+vendor = "google"
+model = "crosshatch"
+#bootimg.base = 0x0
+bootimg.version = 2
+#bootimg.kernel = 0x8000
+#bootimg.ramdisk = 0x1000000
+bootimg.second = 0x00f00000
+#bootimg.tags = 0x100
+#bootimg.pagesize = 4096
+bootimg.dtb_offset = 0x01f00000
+
[[device]]
vendor = "lg"
model = "judyln"because I assumed I shouldn't specify the parameters where the device-specific parameters are the same as the SoC-specific defaults. Yet
Click to expand
2026/07/12 17:01:08 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + tomlq -r .device[1].vendor /tmp/script/configs/sdm845.toml
2026/07/12 17:01:09 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + VENDOR=google
2026/07/12 17:01:09 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + tomlq -r .device[1].model /tmp/script/configs/sdm845.toml
2026/07/12 17:01:11 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + MODEL=crosshatch
2026/07/12 17:01:11 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + tomlq -r if .device[1].variant then .device[1].variant else "" end /tmp/script/configs/sdm845.toml
2026/07/12 17:01:12 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + VARIANT=
2026/07/12 17:01:12 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + tomlq -r if .device[1].chipset then .device[1].chipset else "sdm845" end /tmp/script/configs/sdm845.toml
2026/07/12 17:01:14 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + DEVICE_SOC=sdm845
2026/07/12 17:01:14 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + tomlq -r if .device[1].append then .device[1].append else "" end /tmp/script/configs/sdm845.toml
2026/07/12 17:01:16 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + APPEND=
2026/07/12 17:01:16 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + tomlq -r if .device[1].bootimg then .device[1].bootimg else "" end /tmp/script/configs/sdm845.toml
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + DEVICE_BOOTIMG={
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "version": 2,
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "second": 15728640,
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "dtb_offset": 32505856
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | }
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + CMDLINE=mobile.qcomsoc=qcom/sdm845 mobile.vendor=google mobile.model=crosshatch
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + [ ]
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + FULLMODEL=crosshatch
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + DTB_FILE=/usr/lib/linux-image-6.12-sdm845/qcom/sdm845-google-crosshatch.dtb
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + LOGLEVEL=quiet
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + [ ]
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + [ {
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "version": 2,
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "second": 15728640,
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "dtb_offset": 32505856
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | } ]
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + bootimg_offsets {
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "version": 2,
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "second": 15728640,
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "dtb_offset": 32505856
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | }
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + local BOOTIMG={
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "version": 2,
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "second": 15728640,
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "dtb_offset": 32505856
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | }
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + echo {
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "version": 2,
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "second": 15728640,
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "dtb_offset": 32505856
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | }
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + jq -r if .version then .version else 0 end -
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + local VERSION=2
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + echo {
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "version": 2,
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "second": 15728640,
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "dtb_offset": 32505856
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | }
2026/07/12 17:01:17 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + jq -r .kernel + .base -
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + local KERNEL=null
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + echo {
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "version": 2,
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "second": 15728640,
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "dtb_offset": 32505856
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | }
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + jq -r .ramdisk + .base -
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + local RAMDISK=null
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + echo {
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "version": 2,
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "second": 15728640,
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "dtb_offset": 32505856
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | }
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + jq -r .second + .base -
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + local SECOND=15728640
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + echo {
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "version": 2,
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "second": 15728640,
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "dtb_offset": 32505856
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | }
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + jq -r .tags + .base -
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + local TAGS=null
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + echo {
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "version": 2,
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "second": 15728640,
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "dtb_offset": 32505856
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | }
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + jq -r .pagesize -
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + local PAGE_SIZE=null
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + echo {
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "version": 2,
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "second": 15728640,
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | "dtb_offset": 32505856
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | }
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + jq -r if .dtb then .dtb + .base else "" end -
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + local DTB=
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + local ARGS=--kernel_offset null --ramdisk_offset null
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + ARGS=--kernel_offset null --ramdisk_offset null --second_offset 15728640 --tags_offset null
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + ARGS=--kernel_offset null --ramdisk_offset null --second_offset 15728640 --tags_offset null --pagesize null
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + [ 2 != 0 ]
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + ARGS=--kernel_offset null --ramdisk_offset null --second_offset 15728640 --tags_offset null --pagesize null --header_version 2
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + [ ]
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + echo --kernel_offset null --ramdisk_offset null --second_offset 15728640 --tags_offset null --pagesize null --header_version 2
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + BOOTIMG_ARGS=--kernel_offset null --ramdisk_offset null --second_offset 15728640 --tags_offset null --pagesize null --header_version 2
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + echo --kernel_offset null --ramdisk_offset null --second_offset 15728640 --tags_offset null --pagesize null --header_version 2
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + grep -q dtb_offset
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + echo Creating boot image for crosshatch...
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | Creating boot image for crosshatch...
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + cat /boot/vmlinuz-6.12-sdm845 /usr/lib/linux-image-6.12-sdm845/qcom/sdm845-google-crosshatch.dtb
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | cat: /usr/lib/linux-image-6.12-sdm845/qcom/sdm845-google-crosshatch.dtb: No such file or directory
2026/07/12 17:01:18 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | + mkbootimg -o /bootimg-crosshatch --kernel_offset null --ramdisk_offset null --second_offset 15728640 --tags_offset null --pagesize null --header_version 2 --kernel /tmp/kernel-dtb --ramdisk /boot/initrd.img-6.12-sdm845 --cmdline mobile.root=UUID=d0a0962c-6cae-4da3-b96d-be99274437b9 mobile.qcomsoc=qcom/sdm845 mobile.vendor=google mobile.model=crosshatch init=/sbin/init ro quiet splash
2026/07/12 17:01:19 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | usage: mkbootimg [-h] [--kernel KERNEL] [--ramdisk RAMDISK] [--second SECOND]
2026/07/12 17:01:19 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | [--dtb DTB] [--recovery_dtbo RECOVERY_DTBO |
2026/07/12 17:01:19 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | --recovery_acpio RECOVERY_ACPIO] [--cmdline CMDLINE]
2026/07/12 17:01:19 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | [--vendor_cmdline VENDOR_CMDLINE] [--base BASE]
2026/07/12 17:01:19 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | [--kernel_offset KERNEL_OFFSET]
2026/07/12 17:01:19 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | [--ramdisk_offset RAMDISK_OFFSET]
2026/07/12 17:01:19 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | [--second_offset SECOND_OFFSET] [--dtb_offset DTB_OFFSET]
2026/07/12 17:01:19 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | [--os_version OS_VERSION] [--os_patch_level OS_PATCH_LEVEL]
2026/07/12 17:01:19 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | [--tags_offset TAGS_OFFSET] [--board BOARD]
2026/07/12 17:01:19 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | [--pagesize {2048,4096,8192,16384}] [--id]
2026/07/12 17:01:19 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | [--header_version HEADER_VERSION] [-o OUTPUT]
2026/07/12 17:01:19 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | [--vendor_boot VENDOR_BOOT] [--vendor_ramdisk VENDOR_RAMDISK]
2026/07/12 17:01:19 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | [--vendor_bootconfig VENDOR_BOOTCONFIG]
2026/07/12 17:01:19 bootloader.sh sdm845 mobian-sdm845-plasma-mobile-20260712 | mkbootimg: error: argument --kernel_offset: invalid parse_int value: 'null'e.g. local KERNEL=null and local RAMDISK=null. When the device-specific parameters are not specified, they are kept null without falling back to the default values for that SoC.
Workaround is to specify the complete set of bootimg parameters whenever a new device requires some special bootimg parameters, but it would be nice for devices/qcom/bootloader.sh to be able to fallback to the default values.