From dee8e342989933cba35dcf0324659b0fc303956f Mon Sep 17 00:00:00 2001 From: Enrico Lumetti Date: Sun, 10 Apr 2022 01:45:33 +0200 Subject: [PATCH] pmb.config, pmb.install: add option to handle Samsung sparse image format (MR 2177) --- pmb/config/__init__.py | 1 + pmb/install/_install.py | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/pmb/config/__init__.py b/pmb/config/__init__.py index 511d6890..b2409e52 100644 --- a/pmb/config/__init__.py +++ b/pmb/config/__init__.py @@ -731,6 +731,7 @@ deviceinfo_attributes = [ "flash_pagesize", "flash_fastboot_max_size", "flash_sparse", + "flash_sparse_samsung_format", "rootfs_image_sector_size", "sd_embed_firmware", "sd_embed_firmware_step_size", diff --git a/pmb/install/_install.py b/pmb/install/_install.py index a76c81c3..6436a79f 100644 --- a/pmb/install/_install.py +++ b/pmb/install/_install.py @@ -714,6 +714,19 @@ def install_system_image(args, size_reserve, suffix, step, steps, pmb.chroot.user(args, ["mv", "-f", sys_image_sparse, sys_image], working_dir="/home/pmos/rootfs/") + # patch sparse image for Samsung devices if specified + samsungify_strategy = args.deviceinfo["flash_sparse_samsung_format"] + if samsungify_strategy is not None: + logging.info("(native) convert sparse image into Samsung's sparse image format") + pmb.chroot.apk.install(args, ["sm-sparse-image-tool"]) + sys_image = f"{args.device}.img" + sys_image_patched = f"{args.device}-patched.img" + pmb.chroot.user(args, ["sm_sparse_image_tool", "samsungify", "--strategy", + samsungify_strategy, sys_image, sys_image_patched], + working_dir="/home/pmos/rootfs/") + pmb.chroot.user(args, ["mv", "-f", sys_image_patched, sys_image], + working_dir="/home/pmos/rootfs/") + def print_flash_info(args): """ Print flashing information, based on the deviceinfo data and the