scripts: sercomm-kernel-header.py: improve compatibility
authorMikhail Zhilkin <csharper2005@gmail.com>
Fri, 2 Dec 2022 15:26:17 +0000 (15:26 +0000)
committerChuanhong Guo <gch981213@gmail.com>
Sun, 11 Jun 2023 05:36:38 +0000 (13:36 +0800)
This improves compatibility with the elder stock firmwares of the
following devices, which have not yet been merged into OpenWrt:
 - Beeline SmartBox Pro
 - Beeline SmartBox Turbo+
 - WiFire S1500.NBN

Without this, OpenWrt factory image installation may fail.

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Signed-off-by: Maximilian Weinmann <x1@disroot.org>
scripts/sercomm-kernel-header.py

index bfb29c6fe07b96e51c792abb805a03ed60161ade..40bcbb138534caddcce3915a259f9f36af68d7c2 100755 (executable)
@@ -48,12 +48,12 @@ def get_kernel_header(args):
        struct.pack_into('<L', header, 0x2c, rootfs_size)
        struct.pack_into('<L', header, 0x30, crc)
 
-       rootfs_end_offset = args.rootfs_offset + rootfs_size
-       struct.pack_into('<L', header, 0x4, rootfs_end_offset)
-
        kernel_size = os.path.getsize(args.kernel_file)
        struct.pack_into('<L', header, 0x14, kernel_size)
 
+       kernel_end_offset = args.kernel_offset + kernel_size
+       struct.pack_into('<L', header, 0x4, kernel_end_offset)
+
        buf = open(args.kernel_file,'rb').read()
        crc = binascii.crc32(buf) & 0xffffffff
        struct.pack_into('<L', header, 0x18, crc)