update_engine: Add new operation codes for a to b operations
Add SOURCE_COPY and SOURCE_BSDIFF operations to protobuf. These
operations are for delta minor version 2 and their input is the source
partition instead of the target partition.
BUG=chromium:459363
TEST=`FEATURES=test emerge-link update_engine`
Change-Id: I2c5c83ab5063ff6ce7fc2ec8acfe809d9526b6da
Reviewed-on: https://chromium-review.googlesource.com/250951
Reviewed-by: Alex Deymo <deymo@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Allie Wood <alliewood@chromium.org>
Tested-by: Allie Wood <alliewood@chromium.org>
diff --git a/payload_generator/delta_diff_generator.cc b/payload_generator/delta_diff_generator.cc
index f11b694..0855232 100644
--- a/payload_generator/delta_diff_generator.cc
+++ b/payload_generator/delta_diff_generator.cc
@@ -75,7 +75,9 @@
"REPLACE",
"REPLACE_BZ",
"MOVE",
- "BSDIFF"
+ "BSDIFF",
+ "SOURCE_COPY",
+ "SOURCE_BSDIFF"
};
} // namespace
diff --git a/payload_generator/graph_utils.cc b/payload_generator/graph_utils.cc
index dd0c873..2d8c051 100644
--- a/payload_generator/graph_utils.cc
+++ b/payload_generator/graph_utils.cc
@@ -152,6 +152,12 @@
case DeltaArchiveManifest_InstallOperation_Type_REPLACE_BZ:
type_str = "REPLACE_BZ";
break;
+ case DeltaArchiveManifest_InstallOperation_Type_SOURCE_COPY:
+ type_str = "SOURCE_COPY";
+ break;
+ case DeltaArchiveManifest_InstallOperation_Type_SOURCE_BSDIFF:
+ type_str = "SOURCE_BSDIFF";
+ break;
}
LOG(INFO) << i
<< (graph[i].valid ? "" : "-INV")
diff --git a/update_metadata.proto b/update_metadata.proto
index 1a8fd4b..923ea26 100644
--- a/update_metadata.proto
+++ b/update_metadata.proto
@@ -117,6 +117,9 @@
REPLACE_BZ = 1; // Replace destination extents w/ attached bzipped data
MOVE = 2; // Move source extents to destination extents
BSDIFF = 3; // The data is a bsdiff binary diff
+ // SOURCE_COPY and SOURCE_BSDIFF are only supported on minor version 2.
+ SOURCE_COPY = 4; // Copy from source to target partition
+ SOURCE_BSDIFF = 5; // Like BSDIFF, but read from source partition
}
required Type type = 1;
// The offset into the delta file (after the protobuf)