From efe4bf085d9c4f7fdec9bf9795d7bfee486f867a Mon Sep 17 00:00:00 2001 From: InsanePrawn Date: Sun, 30 Apr 2023 07:08:07 +0200 Subject: [PATCH] image: shrink_filesystem(): align file end to 4096b otherwise fastboot seems to get upset --- image/image.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/image/image.py b/image/image.py index f766a8b..0cb0bcc 100644 --- a/image/image.py +++ b/image/image.py @@ -69,6 +69,13 @@ def get_fs_size(partition: str) -> tuple[int, int]: return fs_blocks, fs_block_size +def align_bytes(size_bytes: int, alignment: int = 4096) -> int: + rest = size_bytes % alignment + if rest: + size_bytes += alignment - rest + return size_bytes + + def shrink_fs(loop_device: str, file: str, sector_size: int): partprobe(loop_device) logging.debug(f"Checking filesystem at {loop_device}p2") @@ -130,7 +137,7 @@ def shrink_fs(loop_device: str, file: str, sector_size: int): if end_sector == 0: raise Exception(f'Failed to find end sector of {loop_device}p2') - end_size = (end_sector + 1) * sector_size + end_size = align_bytes((end_sector + 1) * sector_size, 4096) logging.debug(f'({end_sector} + 1) sectors * {sector_size} bytes/sector = {end_size} bytes') logging.info(f'Truncating {file} to {end_size} bytes')