diff --git a/gpt-utils/gpt-utils.cpp b/gpt-utils/gpt-utils.cpp index 1e8c9a2..1a91e6a 100644 --- a/gpt-utils/gpt-utils.cpp +++ b/gpt-utils/gpt-utils.cpp @@ -244,11 +244,11 @@ static int gpt_boot_chain_swap(const uint8_t *pentries_start, uint8_t *ptn_entry; uint8_t *ptn_bak_entry; uint8_t ptn_swap[PTN_ENTRY_SIZE]; - //Skip the xbl partition on UFS devices. That is handled + //Skip the xbl, multiimgoem, multiimgqti partitions on UFS devices. That is handled //seperately. - if (gpt_utils_is_ufs_device() && !strncmp(ptn_swap_list[i], - PTN_XBL, - strlen(PTN_XBL))) + if ((gpt_utils_is_ufs_device() && !strncmp(ptn_swap_list[i],PTN_XBL,strlen(PTN_XBL))) + || !strncmp(ptn_swap_list[i],PTN_MULTIIMGOEM,strlen(PTN_MULTIIMGOEM)) + || !strncmp(ptn_swap_list[i],PTN_MULTIIMGQTI,strlen(PTN_MULTIIMGQTI))) continue; ptn_entry = gpt_pentry_seek(ptn_swap_list[i], pentries_start, @@ -1020,9 +1020,9 @@ int prepare_boot_update(enum boot_update_stage stage) //of being loaded based on well known GUID'S. //We take care of switching the UFS boot LUN //explicitly later on. - if (!strncmp(ptn_swap_list[i], - PTN_XBL, - strlen(PTN_XBL))) + if (!strncmp(ptn_swap_list[i],PTN_XBL,strlen(PTN_XBL)) + || !strncmp(ptn_swap_list[i],PTN_MULTIIMGOEM,strlen(PTN_MULTIIMGOEM)) + || !strncmp(ptn_swap_list[i],PTN_MULTIIMGQTI,strlen(PTN_MULTIIMGQTI))) continue; snprintf(buf, sizeof(buf), "%s/%sbak", diff --git a/gpt-utils/gpt-utils.h b/gpt-utils/gpt-utils.h index 58b40be..9291819 100644 --- a/gpt-utils/gpt-utils.h +++ b/gpt-utils/gpt-utils.h @@ -80,8 +80,10 @@ extern "C" { #define AB_SLOT_B_SUFFIX "_b" #define PTN_XBL "xbl" #define PTN_XBL_CFG "xbl_config" -#define PTN_SWAP_LIST PTN_XBL, PTN_XBL_CFG, "sbl1", "rpm", "tz", "aboot", "abl", "hyp", "lksecapp", "keymaster", "cmnlib", "cmnlib32", "cmnlib64", "pmic", "apdp", "devcfg", "hosd", "keystore", "msadp", "mdtp", "mdtpsecapp", "dsp", "aop", "qupfw", "vbmeta", "dtbo", "imagefv", "ImageFv", "multiimgoem", "multiimgqti", "uefisecapp" -#define AB_PTN_LIST PTN_SWAP_LIST, "boot", "system", "vendor", "odm", "modem", "bluetooth" +#define PTN_MULTIIMGOEM "multiimgoem" +#define PTN_MULTIIMGQTI "multiimgqti" +#define PTN_SWAP_LIST PTN_XBL, PTN_XBL_CFG, PTN_MULTIIMGOEM, PTN_MULTIIMGQTI, "abl", "aop", "cmnlib", "cmnlib64", "devcfg", "dsp", "dtbo", "featenabler", "hyp", "imagefv", "keymaster", "qupfw", "tz", "uefisecapp", "vbmeta", "vbmeta_system" +#define AB_PTN_LIST PTN_SWAP_LIST, "bluetooth", "boot", "modem", "odm", "product", "system_ext", "system", "vendor", "vendor_boot" #define BOOT_DEV_DIR "/dev/block/bootdevice/by-name" /******************************************************************************