diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2023-01-15 15:46:06 -0800 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@localhost> | 2023-01-15 15:46:06 -0800 |
commit | 6222f8d45f9f4e9a96c60144f36f53aa2e806bf4 (patch) | |
tree | 2dd5636ff95f228ed4459b59f182f96366ccd339 | |
parent | 7565c863a18f5b31533b1dfb1f923b8cdc2629af (diff) | |
parent | 1f80083e23233f8741042e328593a9b0690cd28e (diff) |
Merge 1f80083e23233f8741042e328593a9b0690cd28e on remote branch
Change-Id: I0a6fe9332121cc584e72bce25b9af0dfbc3fffea
-rw-r--r-- | aosp/dynamic_partition_control_android.cc | 9 | ||||
-rw-r--r-- | aosp/update_attempter_android.cc | 1 |
2 files changed, 9 insertions, 1 deletions
diff --git a/aosp/dynamic_partition_control_android.cc b/aosp/dynamic_partition_control_android.cc index 27d1d541..334ccdc2 100644 --- a/aosp/dynamic_partition_control_android.cc +++ b/aosp/dynamic_partition_control_android.cc @@ -98,7 +98,8 @@ constexpr std::chrono::milliseconds kMapTimeout{1000}; constexpr std::chrono::milliseconds kMapSnapshotTimeout{10000}; DynamicPartitionControlAndroid::~DynamicPartitionControlAndroid() { - Cleanup(); + UnmapAllPartitions(); + metadata_device_.reset(); } static FeatureFlag GetFeatureFlag(const char* enable_prop, @@ -312,6 +313,12 @@ bool DynamicPartitionControlAndroid::UnmapAllPartitions() { void DynamicPartitionControlAndroid::Cleanup() { UnmapAllPartitions(); metadata_device_.reset(); + if (GetVirtualAbFeatureFlag().IsEnabled()) { + snapshot_ = SnapshotManager::New(); + } else { + snapshot_ = SnapshotManagerStub::New(); + } + CHECK(snapshot_ != nullptr) << "Cannot initialize SnapshotManager."; } bool DynamicPartitionControlAndroid::DeviceExists(const std::string& path) { diff --git a/aosp/update_attempter_android.cc b/aosp/update_attempter_android.cc index a3485eac..1d35b5e7 100644 --- a/aosp/update_attempter_android.cc +++ b/aosp/update_attempter_android.cc @@ -263,6 +263,7 @@ bool UpdateAttempterAndroid::ApplyPayload( install_plan_.is_resume = !payload_id.empty() && DeltaPerformer::CanResumeUpdate(prefs_, payload_id); if (!install_plan_.is_resume) { + boot_control_->GetDynamicPartitionControl()->Cleanup(); // No need to reset dynamic_partititon_metadata_updated. If previous calls // to AllocateSpaceForPayload uses the same payload_id, reuse preallocated // space. Otherwise, DeltaPerformer re-allocates space when the payload is |