diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index 374babfce4..cff7542c1d 100644 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -454,6 +454,11 @@ class BuildInfo(object): vendor_prop.GetProp("ro.virtual_ab.compression.enabled") == "true" return vabc_enabled + @property + def is_android_r(self): + system_prop = self.info_dict.get("system.build.prop") + return system_prop and system_prop.GetProp("ro.build.version.release") == "11" + @property def is_vabc_xor(self): vendor_prop = self.info_dict.get("vendor.build.prop") diff --git a/tools/releasetools/ota_from_target_files.py b/tools/releasetools/ota_from_target_files.py index 66e850b482..c55631b556 100755 --- a/tools/releasetools/ota_from_target_files.py +++ b/tools/releasetools/ota_from_target_files.py @@ -1145,6 +1145,14 @@ def GenerateAbOtaPackage(target_file, output_file, source_file=None): logger.info("Either source or target does not support VABC, disabling.") OPTIONS.disable_vabc = True + # Virtual AB Compression was introduced in Androd S. + # Later, we backported VABC to Android R. But verity support was not + # backported, so if VABC is used and we are on Android R, disable + # verity computation. + if not OPTIONS.disable_vabc and source_info.is_android_r: + OPTIONS.disable_verity_computation = True + OPTIONS.disable_fec_computation = True + else: assert "ab_partitions" in OPTIONS.info_dict, \ "META/ab_partitions.txt is required for ab_update."