diff --git a/core/main.mk b/core/main.mk index e8c1ef9556..401fb04c72 100644 --- a/core/main.mk +++ b/core/main.mk @@ -311,6 +311,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 + # Set the flag in vendor. So VTS would know if the new fingerprint format is in use when # the system images are replaced by GSI. ifeq ($(BOARD_USE_VBMETA_DIGTEST_IN_FINGERPRINT),true) diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index d4da8b22cb..498e48728b 100644 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -453,6 +453,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 0b8965c273..bf0b8f123e 100755 --- a/tools/releasetools/ota_from_target_files.py +++ b/tools/releasetools/ota_from_target_files.py @@ -1076,6 +1076,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: @@ -1084,6 +1085,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.