diff --git a/core/main.mk b/core/main.mk index 8e18138298..dde2c72e87 100644 --- a/core/main.mk +++ b/core/main.mk @@ -313,6 +313,13 @@ ADDITIONAL_VENDOR_PROPERTIES += \ endif endif +# Set build prop. This prop is read by ota_from_target_files when generating OTA, +# to decide if VABC should be disabled. +ifeq ($(BOARD_DONT_USE_VABC_OTA),true) +ADDITIONAL_VENDOR_PROPERTIES += \ + ro.vendor.build.dont_use_vabc=true +endif + ADDITIONAL_VENDOR_PROPERTIES += \ ro.vendor.build.security_patch=$(VENDOR_SECURITY_PATCH) \ ro.product.board=$(TARGET_BOOTLOADER_BOARD_NAME) \ diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index 985a21ab77..f678d08e25 100644 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -450,6 +450,13 @@ class BuildInfo(object): vendor_prop.GetProp("ro.virtual_ab.compression.enabled") == "true" return vabc_enabled + @property + def vendor_suppressed_vabc(self): + vendor_prop = self.info_dict.get("vendor.build.prop") + vabc_suppressed = vendor_prop and \ + vendor_prop.GetProp("ro.vendor.build.dont_use_vabc") + return vabc_suppressed and vabc_suppressed.lower() == "true" + @property def oem_props(self): return self._oem_props diff --git a/tools/releasetools/ota_from_target_files.py b/tools/releasetools/ota_from_target_files.py index 229f7e91a6..42d1211ba2 100755 --- a/tools/releasetools/ota_from_target_files.py +++ b/tools/releasetools/ota_from_target_files.py @@ -1063,6 +1063,7 @@ def GenerateAbOtaPackage(target_file, output_file, source_file=None): # serve I/O request when device boots. Therefore, disable VABC if source # build doesn't supports it. if not source_info.is_vabc or not target_info.is_vabc: + logger.info("Either source or target does not support VABC, disabling.") OPTIONS.disable_vabc = True else: @@ -1071,6 +1072,9 @@ def GenerateAbOtaPackage(target_file, output_file, source_file=None): target_info = common.BuildInfo(OPTIONS.info_dict, OPTIONS.oem_dicts) source_info = None + if target_info.vendor_suppressed_vabc: + logger.info("Vendor suppressed VABC. Disabling") + OPTIONS.disable_vabc = True additional_args = [] # Prepare custom images.