summaryrefslogtreecommitdiff
path: root/dynamic_partition_control_android.h
diff options
context:
space:
mode:
authorYifan Hong <elsk@google.com>2020-08-13 13:59:54 -0700
committerTreehugger Robot <treehugger-gerrit@google.com>2020-08-19 18:42:31 +0000
commit8d6df9ac7a70f4b07ebb86f50fb3548b693acad5 (patch)
tree0173db33bc1bd984878ca8bd254a8f0b4e3b051d /dynamic_partition_control_android.h
parentb753e0e9258170dce7c62733eed78e616b4a37b2 (diff)
Check allocatable space correctly when sideloading on VAB
On a device with Virtual A/B, when sideloading and there's not enough space in super partition to hold CoW, update_engine falls back to overwriting all source partitions. In that case, the allocatable space should be the whole super partition, not a half of it. Also update doc comments. Test: unit test. RecoveryErrorShouldDeleteSource fails without the patch but succeeds with the patch. Bug: 163613538 Change-Id: I6bd6895a7eabeb4e8436e57b0ac6830c11d1e98f
Diffstat (limited to 'dynamic_partition_control_android.h')
-rw-r--r--dynamic_partition_control_android.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/dynamic_partition_control_android.h b/dynamic_partition_control_android.h
index 9ee85db6..49967f6c 100644
--- a/dynamic_partition_control_android.h
+++ b/dynamic_partition_control_android.h
@@ -203,8 +203,11 @@ class DynamicPartitionControlAndroid : public DynamicPartitionControlInterface {
bool force_writable,
std::string* path);
- // Update |builder| according to |partition_metadata|, assuming the device
- // does not have Virtual A/B.
+ // Update |builder| according to |partition_metadata|.
+ // - In Android mode, this is only called when the device
+ // does not have Virtual A/B.
+ // - When sideloading, this maybe called as a fallback path if CoW cannot
+ // be created.
bool UpdatePartitionMetadata(android::fs_mgr::MetadataBuilder* builder,
uint32_t target_slot,
const DeltaArchiveManifest& manifest);