scripts: sercomm-kernel-header.py: improve compatibility

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>
This commit is contained in:
Mikhail Zhilkin 2022-12-02 15:26:17 +00:00 committed by Chuanhong Guo
parent b8e3fa2d12
commit 35a4418d39

View File

@ -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)