diff --git a/payload_consumer/filesystem_verifier_action.cc b/payload_consumer/filesystem_verifier_action.cc
index 634f03f..e3a3e34 100644
--- a/payload_consumer/filesystem_verifier_action.cc
+++ b/payload_consumer/filesystem_verifier_action.cc
@@ -167,7 +167,7 @@
   LOG(INFO) << "Hashing partition " << partition_index_ << " ("
             << partition.name << ") on device " << part_path;
   auto success = false;
-  if (dynamic_control_->GetVirtualAbCompressionFeatureFlag().IsEnabled() &&
+  if (dynamic_control_->UpdateUsesSnapshotCompression() &&
       dynamic_control_->IsDynamicPartition(partition.name) &&
       verifier_step_ == VerifierStep::kVerifyTargetHash) {
     success = InitializeFdVABC();
diff --git a/payload_consumer/filesystem_verifier_action_unittest.cc b/payload_consumer/filesystem_verifier_action_unittest.cc
index 658ebe1..d163ec2 100644
--- a/payload_consumer/filesystem_verifier_action_unittest.cc
+++ b/payload_consumer/filesystem_verifier_action_unittest.cc
@@ -415,14 +415,14 @@
 
   ON_CALL(dynamic_control, GetDynamicPartitionsFeatureFlag())
       .WillByDefault(Return(FeatureFlag(FeatureFlag::Value::LAUNCH)));
-  ON_CALL(dynamic_control, GetVirtualAbCompressionFeatureFlag())
-      .WillByDefault(Return(FeatureFlag(FeatureFlag::Value::LAUNCH)));
+  ON_CALL(dynamic_control, UpdateUsesSnapshotCompression())
+      .WillByDefault(Return(true));
   ON_CALL(dynamic_control, OpenCowReader(_, _, _))
       .WillByDefault(Return(nullptr));
   ON_CALL(dynamic_control, IsDynamicPartition(part.name))
       .WillByDefault(Return(true));
 
-  EXPECT_CALL(dynamic_control, GetVirtualAbCompressionFeatureFlag())
+  EXPECT_CALL(dynamic_control, UpdateUsesSnapshotCompression())
       .Times(AtLeast(1));
   EXPECT_CALL(dynamic_control, OpenCowReader(part.name, {part.source_path}, _))
       .Times(1);
diff --git a/payload_consumer/partition_writer_factory_android.cc b/payload_consumer/partition_writer_factory_android.cc
index 0c9f7ea..184e2d5 100644
--- a/payload_consumer/partition_writer_factory_android.cc
+++ b/payload_consumer/partition_writer_factory_android.cc
@@ -30,8 +30,7 @@
     size_t block_size,
     bool is_interactive,
     bool is_dynamic_partition) {
-  if (dynamic_control &&
-      dynamic_control->GetVirtualAbCompressionFeatureFlag().IsEnabled() &&
+  if (dynamic_control && dynamic_control->UpdateUsesSnapshotCompression() &&
       is_dynamic_partition) {
     LOG(INFO)
         << "Virtual AB Compression Enabled, using VABC Partition Writer for `"
diff --git a/payload_consumer/postinstall_runner_action.cc b/payload_consumer/postinstall_runner_action.cc
index 58d045b..e3e305b 100644
--- a/payload_consumer/postinstall_runner_action.cc
+++ b/payload_consumer/postinstall_runner_action.cc
@@ -76,7 +76,7 @@
   CHECK(dynamic_control);
 
   // Mount snapshot partitions for Virtual AB Compression Compression.
-  if (dynamic_control->GetVirtualAbCompressionFeatureFlag().IsEnabled()) {
+  if (dynamic_control->UpdateUsesSnapshotCompression()) {
     // Before calling MapAllPartitions to map snapshot devices, all CowWriters
     // must be closed, and MapAllPartitions() should be called.
     dynamic_control->UnmapAllPartitions();
