Merge "Add function for flattening 2d lists"
diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py
index 374babf..cff7542 100644
--- a/tools/releasetools/common.py
+++ b/tools/releasetools/common.py
@@ -455,6 +455,11 @@
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")
vabc_xor_enabled = vendor_prop and \
diff --git a/tools/releasetools/ota_from_target_files.py b/tools/releasetools/ota_from_target_files.py
index 66e850b..5384699 100755
--- a/tools/releasetools/ota_from_target_files.py
+++ b/tools/releasetools/ota_from_target_files.py
@@ -1068,10 +1068,11 @@
pre_partition_state, post_partition_state):
assert pre_partition_state is not None
partition_timestamps = {}
- for part in pre_partition_state:
- partition_timestamps[part.partition_name] = part.version
for part in post_partition_state:
- partition_timestamps[part.partition_name] = \
+ partition_timestamps[part.partition_name] = part.version
+ for part in pre_partition_state:
+ if part.partition_name in partition_timestamps:
+ partition_timestamps[part.partition_name] = \
max(part.version, partition_timestamps[part.partition_name])
return [
"--partition_timestamps",
@@ -1145,6 +1146,14 @@
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."