summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/dynamic_partition_control_interface.h3
-rw-r--r--common/dynamic_partition_control_stub.cc5
-rw-r--r--common/dynamic_partition_control_stub.h1
-rw-r--r--dynamic_partition_control_android.cc5
-rw-r--r--dynamic_partition_control_android.h1
5 files changed, 15 insertions, 0 deletions
diff --git a/common/dynamic_partition_control_interface.h b/common/dynamic_partition_control_interface.h
index b092f7a3..39daf75c 100644
--- a/common/dynamic_partition_control_interface.h
+++ b/common/dynamic_partition_control_interface.h
@@ -50,6 +50,9 @@ class DynamicPartitionControlInterface {
// Return the feature flags of Virtual A/B on this device.
virtual FeatureFlag GetVirtualAbFeatureFlag() = 0;
+ // Checks if the provided InstallOperation can be skipped on this device.
+ virtual bool ShouldSkipOperation(const InstallOperation& operation) = 0;
+
// Do necessary cleanups before destroying the object.
virtual void Cleanup() = 0;
diff --git a/common/dynamic_partition_control_stub.cc b/common/dynamic_partition_control_stub.cc
index 86f75aa0..06f6b3c2 100644
--- a/common/dynamic_partition_control_stub.cc
+++ b/common/dynamic_partition_control_stub.cc
@@ -32,6 +32,11 @@ FeatureFlag DynamicPartitionControlStub::GetVirtualAbFeatureFlag() {
return FeatureFlag(FeatureFlag::Value::NONE);
}
+bool DynamicPartitionControlStub::ShouldSkipOperation(
+ const InstallOperation& operation) {
+ return false;
+}
+
void DynamicPartitionControlStub::Cleanup() {}
bool DynamicPartitionControlStub::PreparePartitionsForUpdate(
diff --git a/common/dynamic_partition_control_stub.h b/common/dynamic_partition_control_stub.h
index e7895dee..c62758bd 100644
--- a/common/dynamic_partition_control_stub.h
+++ b/common/dynamic_partition_control_stub.h
@@ -29,6 +29,7 @@ class DynamicPartitionControlStub : public DynamicPartitionControlInterface {
public:
FeatureFlag GetDynamicPartitionsFeatureFlag() override;
FeatureFlag GetVirtualAbFeatureFlag() override;
+ bool ShouldSkipOperation(const InstallOperation& operation) override;
void Cleanup() override;
bool PreparePartitionsForUpdate(uint32_t source_slot,
uint32_t target_slot,
diff --git a/dynamic_partition_control_android.cc b/dynamic_partition_control_android.cc
index 464cdf13..c24aee90 100644
--- a/dynamic_partition_control_android.cc
+++ b/dynamic_partition_control_android.cc
@@ -104,6 +104,11 @@ FeatureFlag DynamicPartitionControlAndroid::GetVirtualAbFeatureFlag() {
return virtual_ab_;
}
+bool DynamicPartitionControlAndroid::ShouldSkipOperation(
+ const InstallOperation& operation) {
+ return false;
+}
+
bool DynamicPartitionControlAndroid::MapPartitionInternal(
const std::string& super_device,
const std::string& target_partition_name,
diff --git a/dynamic_partition_control_android.h b/dynamic_partition_control_android.h
index c1837e07..2bfbcb15 100644
--- a/dynamic_partition_control_android.h
+++ b/dynamic_partition_control_android.h
@@ -35,6 +35,7 @@ class DynamicPartitionControlAndroid : public DynamicPartitionControlInterface {
~DynamicPartitionControlAndroid();
FeatureFlag GetDynamicPartitionsFeatureFlag() override;
FeatureFlag GetVirtualAbFeatureFlag() override;
+ bool ShouldSkipOperation(const InstallOperation& operation) override;
void Cleanup() override;
bool PreparePartitionsForUpdate(uint32_t source_slot,