aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Zheng <zhengdaniel@google.com>2024-03-21 10:13:16 -0700
committerDaniel Zheng <zhengdaniel@google.com>2024-03-22 12:02:54 -0700
commit4a80c5403d47e0045cc8b7e8c4c10d27c1064a2e (patch)
tree69b4d3eb547010177cc34b3b0fb200a9044cfe96
parent9339d8d98f583054d92de19004f53dca51974207 (diff)
downloadbuild-4a80c5403d47e0045cc8b7e8c4c10d27c1064a2e.tar.gz
fallback to v2 on s build
In the case that a vendor is on s build (which doesn't have snapuserd), and is takinga v3 -> v3 upgrade, we want to fallback to v2 vabc ota. Test: th Change-Id: Iba259b139b9b423ac77d82e14a113cf35fbfea64
-rw-r--r--tools/releasetools/common.py6
-rw-r--r--tools/releasetools/test_common.py3
2 files changed, 8 insertions, 1 deletions
diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py
index 8a8a613c78..513fce541f 100644
--- a/tools/releasetools/common.py
+++ b/tools/releasetools/common.py
@@ -1313,7 +1313,11 @@ def MergeDynamicPartitionInfoDicts(framework_dict, vendor_dict):
key = "super_%s_partition_list" % partition_group
merged_dict[key] = uniq_concat(
framework_dict.get(key, ""), vendor_dict.get(key, ""))
-
+ # in the case that vendor is on s build, but is taking a v3 -> v3 vabc ota, we want to fallback to v2
+ if "vabc_cow_version" not in vendor_dict or "vabc_cow_version" not in framework_dict:
+ merged_dict["vabc_cow_version"] = '2'
+ else:
+ merged_dict["vabc_cow_version"] = min(vendor_dict["vabc_cow_version"], framework_dict["vabc_cow_version"])
# Various other flags should be copied from the vendor dict, if defined.
for key in ("virtual_ab", "virtual_ab_retrofit", "lpmake",
"super_metadata_device", "super_partition_error_limit",
diff --git a/tools/releasetools/test_common.py b/tools/releasetools/test_common.py
index 2989338fe8..89933a00fc 100644
--- a/tools/releasetools/test_common.py
+++ b/tools/releasetools/test_common.py
@@ -1515,6 +1515,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
'super_group_a_group_size': '1000',
'super_group_b_partition_list': 'product',
'super_group_b_group_size': '2000',
+ 'vabc_cow_version': '2',
}
self.assertEqual(merged_dict, expected_merged_dict)
@@ -1525,6 +1526,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
'dynamic_partition_list': 'system',
'super_group_a_partition_list': 'system',
'super_group_a_group_size': '5000',
+ 'vabc_cow_version': '3',
}
vendor_dict = {
'use_dynamic_partitions': 'true',
@@ -1546,6 +1548,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
'super_group_a_group_size': '1000',
'super_group_b_partition_list': 'product',
'super_group_b_group_size': '2000',
+ 'vabc_cow_version': '2',
}
self.assertEqual(merged_dict, expected_merged_dict)