update_engine: Change imgdiff/imgpatch to a dummy puffdiff/puffpatch
am: 49fdb09d1f
Change-Id: Ib43fe4304a9d6e55476241d4cbaf2dfc80e3c59f
diff --git a/Android.mk b/Android.mk
index d3018fa..5acedc9 100644
--- a/Android.mk
+++ b/Android.mk
@@ -686,8 +686,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := delta_generator
LOCAL_REQUIRED_MODULES := \
- bsdiff \
- imgdiff
+ bsdiff
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_CPP_EXTENSION := .cc
LOCAL_CFLAGS := $(ue_common_cflags)
diff --git a/payload_consumer/delta_performer.cc b/payload_consumer/delta_performer.cc
index 12d3654..b8904cb 100644
--- a/payload_consumer/delta_performer.cc
+++ b/payload_consumer/delta_performer.cc
@@ -587,7 +587,6 @@
// and stores an action exit code in |error|.
bool DeltaPerformer::Write(const void* bytes, size_t count, ErrorCode *error) {
*error = ErrorCode::kSuccess;
-
const char* c_bytes = reinterpret_cast<const char*>(bytes);
// Update the total byte downloaded count and the progress logs.
@@ -740,8 +739,8 @@
case InstallOperation::SOURCE_BSDIFF:
op_result = PerformSourceBsdiffOperation(op, error);
break;
- case InstallOperation::IMGDIFF:
- // TODO(deymo): Replace with PUFFIN operation.
+ case InstallOperation::PUFFDIFF:
+ // TODO(ahassani): Later add PerformPuffdiffOperation(op, error);
op_result = false;
break;
default:
diff --git a/payload_consumer/payload_constants.cc b/payload_consumer/payload_constants.cc
index 4c11d7a..7d396b6 100644
--- a/payload_consumer/payload_constants.cc
+++ b/payload_consumer/payload_constants.cc
@@ -25,7 +25,7 @@
const uint32_t kInPlaceMinorPayloadVersion = 1;
const uint32_t kSourceMinorPayloadVersion = 2;
const uint32_t kOpSrcHashMinorPayloadVersion = 3;
-const uint32_t kImgdiffMinorPayloadVersion = 4;
+const uint32_t kPuffdiffMinorPayloadVersion = 4;
const char kLegacyPartitionNameKernel[] = "boot";
const char kLegacyPartitionNameRoot[] = "system";
@@ -52,8 +52,8 @@
return "DISCARD";
case InstallOperation::REPLACE_XZ:
return "REPLACE_XZ";
- case InstallOperation::IMGDIFF:
- return "IMGDIFF";
+ case InstallOperation::PUFFDIFF:
+ return "PUFFDIFF";
}
return "<unknown_op>";
}
diff --git a/payload_consumer/payload_constants.h b/payload_consumer/payload_constants.h
index 76d740f..1e2e810 100644
--- a/payload_consumer/payload_constants.h
+++ b/payload_consumer/payload_constants.h
@@ -43,9 +43,8 @@
// The minor version that allows per-operation source hash.
extern const uint32_t kOpSrcHashMinorPayloadVersion;
-// The minor version that allows IMGDIFF operation.
-extern const uint32_t kImgdiffMinorPayloadVersion;
-
+// The minor version that allows PUFFDIFF operation.
+extern const uint32_t kPuffdiffMinorPayloadVersion;
// The kernel and rootfs partition names used by the BootControlInterface when
// handling update payloads with a major version 1. The names of the updated
diff --git a/payload_generator/delta_diff_utils.cc b/payload_generator/delta_diff_utils.cc
index e928912..b013bfa 100644
--- a/payload_generator/delta_diff_utils.cc
+++ b/payload_generator/delta_diff_utils.cc
@@ -51,7 +51,6 @@
namespace {
const char* const kBsdiffPath = "bsdiff";
-const char* const kImgdiffPath = "imgdiff";
// The maximum destination size allowed for bsdiff. In general, bsdiff should
// work for arbitrary big files, but the payload generation and payload
@@ -60,10 +59,10 @@
// Chrome binary in ASan builders.
const uint64_t kMaxBsdiffDestinationSize = 200 * 1024 * 1024; // bytes
-// The maximum destination size allowed for imgdiff. In general, imgdiff should
-// work for arbitrary big files, but the payload application is quite memory
-// intensive, so we limit these operations to 50 MiB.
-const uint64_t kMaxImgdiffDestinationSize = 50 * 1024 * 1024; // bytes
+// The maximum destination size allowed for puffdiff. In general, puffdiff
+// should work for arbitrary big files, but the payload application is quite
+// memory intensive, so we limit these operations to 50 MiB.
+const uint64_t kMaxPuffdiffDestinationSize = 50 * 1024 * 1024; // bytes
// Process a range of blocks from |range_start| to |range_end| in the extent at
// position |*idx_p| of |extents|. If |do_remove| is true, this range will be
@@ -160,15 +159,6 @@
return removed_bytes;
}
-// Returns true if the given blob |data| contains gzip header magic.
-bool ContainsGZip(const brillo::Blob& data) {
- const uint8_t kGZipMagic[] = {0x1f, 0x8b, 0x08, 0x00};
- return std::search(data.begin(),
- data.end(),
- std::begin(kGZipMagic),
- std::end(kGZipMagic)) != data.end();
-}
-
} // namespace
namespace diff_utils {
@@ -657,7 +647,7 @@
uint64_t blocks_to_read = BlocksInExtents(old_extents);
uint64_t blocks_to_write = BlocksInExtents(new_extents);
- // Disable bsdiff and imgdiff when the data is too big.
+ // Disable bsdiff, and puffdiff when the data is too big.
bool bsdiff_allowed =
version.OperationAllowed(InstallOperation::SOURCE_BSDIFF) ||
version.OperationAllowed(InstallOperation::BSDIFF);
@@ -668,12 +658,12 @@
bsdiff_allowed = false;
}
- bool imgdiff_allowed = version.OperationAllowed(InstallOperation::IMGDIFF);
- if (imgdiff_allowed &&
- blocks_to_read * kBlockSize > kMaxImgdiffDestinationSize) {
- LOG(INFO) << "imgdiff blacklisted, data too big: "
+ bool puffdiff_allowed = version.OperationAllowed(InstallOperation::PUFFDIFF);
+ if (puffdiff_allowed &&
+ blocks_to_read * kBlockSize > kMaxPuffdiffDestinationSize) {
+ LOG(INFO) << "puffdiff blacklisted, data too big: "
<< blocks_to_read * kBlockSize << " bytes";
- imgdiff_allowed = false;
+ puffdiff_allowed = false;
}
// Make copies of the extents so we can modify them.
@@ -711,7 +701,7 @@
? InstallOperation::SOURCE_COPY
: InstallOperation::MOVE);
data_blob = brillo::Blob();
- } else if (bsdiff_allowed || imgdiff_allowed) {
+ } else if (bsdiff_allowed || puffdiff_allowed) {
// If the source file is considered bsdiff safe (no bsdiff bugs
// triggered), see if BSDIFF encoding is smaller.
base::FilePath old_chunk;
@@ -738,25 +728,9 @@
data_blob = std::move(bsdiff_delta);
}
}
- if (imgdiff_allowed && ContainsGZip(old_data) && ContainsGZip(new_data)) {
- brillo::Blob imgdiff_delta;
- // Imgdiff might fail in some cases, only use the result if it succeed,
- // otherwise print the extents to analyze.
- if (DiffFiles(kImgdiffPath,
- old_chunk.value(),
- new_chunk.value(),
- &imgdiff_delta) &&
- imgdiff_delta.size() > 0) {
- if (imgdiff_delta.size() < data_blob.size()) {
- operation.set_type(InstallOperation::IMGDIFF);
- data_blob = std::move(imgdiff_delta);
- }
- } else {
- LOG(ERROR) << "Imgdiff failed with source extents: "
- << ExtentsToString(src_extents)
- << ", destination extents: "
- << ExtentsToString(dst_extents);
- }
+ if (puffdiff_allowed) {
+ LOG(ERROR) << "puffdiff is not supported yet!";
+ return false;
}
}
}
@@ -783,11 +757,10 @@
*out_data = std::move(data_blob);
*out_op = operation;
-
return true;
}
-// Runs the bsdiff or imgdiff tool in |diff_path| on two files and returns the
+// Runs the bsdiff tool in |diff_path| on two files and returns the
// resulting delta in |out|. Returns true on success.
bool DiffFiles(const string& diff_path,
const string& old_file,
diff --git a/payload_generator/delta_diff_utils.h b/payload_generator/delta_diff_utils.h
index c9fef17..b4f3fc0 100644
--- a/payload_generator/delta_diff_utils.h
+++ b/payload_generator/delta_diff_utils.h
@@ -93,7 +93,7 @@
// fills in |out_op|. If there's no change in old and new files, it creates a
// MOVE or SOURCE_COPY operation. If there is a change, the smallest of the
// operations allowed in the given |version| (REPLACE, REPLACE_BZ, BSDIFF,
-// SOURCE_BSDIFF or IMGDIFF) wins.
+// SOURCE_BSDIFF, or PUFFDIFF) wins.
// |new_extents| must not be empty. Returns true on success.
bool ReadExtentsToDiff(const std::string& old_part,
const std::string& new_part,
@@ -103,7 +103,7 @@
brillo::Blob* out_data,
InstallOperation* out_op);
-// Runs the bsdiff or imgdiff tool in |diff_path| on two files and returns the
+// Runs the bsdiff tool in |diff_path| on two files and returns the
// resulting delta in |out|. Returns true on success.
bool DiffFiles(const std::string& diff_path,
const std::string& old_file,
diff --git a/payload_generator/delta_diff_utils_unittest.cc b/payload_generator/delta_diff_utils_unittest.cc
index 232eab7..bb83942 100644
--- a/payload_generator/delta_diff_utils_unittest.cc
+++ b/payload_generator/delta_diff_utils_unittest.cc
@@ -131,7 +131,6 @@
uint32_t minor_version) {
BlobFileWriter blob_file(blob_fd_, &blob_size_);
PayloadVersion version(kChromeOSMajorPayloadVersion, minor_version);
- version.imgdiff_allowed = true; // Assume no fingerprint mismatch.
return diff_utils::DeltaMovedAndZeroBlocks(&aops_,
old_part_.path,
new_part_.path,
diff --git a/payload_generator/payload_generation_config.cc b/payload_generator/payload_generation_config.cc
index e85d693..e2fec21 100644
--- a/payload_generator/payload_generation_config.cc
+++ b/payload_generator/payload_generation_config.cc
@@ -128,7 +128,7 @@
minor == kInPlaceMinorPayloadVersion ||
minor == kSourceMinorPayloadVersion ||
minor == kOpSrcHashMinorPayloadVersion ||
- minor == kImgdiffMinorPayloadVersion);
+ minor == kPuffdiffMinorPayloadVersion);
return true;
}
@@ -151,7 +151,7 @@
// The implementation of these operations had a bug in earlier versions
// that prevents them from being used in any payload. We will enable
// them for delta payloads for now.
- return minor >= kImgdiffMinorPayloadVersion;
+ return minor >= kPuffdiffMinorPayloadVersion;
// Delta operations:
case InstallOperation::MOVE:
@@ -165,8 +165,8 @@
case InstallOperation::SOURCE_BSDIFF:
return minor >= kSourceMinorPayloadVersion;
- case InstallOperation::IMGDIFF:
- return minor >= kImgdiffMinorPayloadVersion && imgdiff_allowed;
+ case InstallOperation::PUFFDIFF:
+ return minor >= kPuffdiffMinorPayloadVersion;
}
return false;
}
diff --git a/payload_generator/payload_generation_config.h b/payload_generator/payload_generation_config.h
index 8617d14..ca6fb04 100644
--- a/payload_generator/payload_generation_config.h
+++ b/payload_generator/payload_generation_config.h
@@ -137,10 +137,6 @@
// The minor version of the payload.
uint32_t minor;
-
- // Wheter the IMGDIFF operation is allowed based on the available compressor
- // in the delta_generator and the one supported by the target.
- bool imgdiff_allowed = false;
};
// The PayloadGenerationConfig struct encapsulates all the configuration to
diff --git a/scripts/update_payload/applier.py b/scripts/update_payload/applier.py
index e3708c7..fa419bd 100644
--- a/scripts/update_payload/applier.py
+++ b/scripts/update_payload/applier.py
@@ -195,14 +195,14 @@
"""
def __init__(self, payload, bsdiff_in_place=True, bspatch_path=None,
- imgpatch_path=None, truncate_to_expected_size=True):
+ puffpatch_path=None, truncate_to_expected_size=True):
"""Initialize the applier.
Args:
payload: the payload object to check
bsdiff_in_place: whether to perform BSDIFF operation in-place (optional)
bspatch_path: path to the bspatch binary (optional)
- imgpatch_path: path to the imgpatch binary (optional)
+ puffpatch_path: path to the puffpatch binary (optional)
truncate_to_expected_size: whether to truncate the resulting partitions
to their expected sizes, as specified in the
payload (optional)
@@ -213,7 +213,7 @@
self.minor_version = payload.manifest.minor_version
self.bsdiff_in_place = bsdiff_in_place
self.bspatch_path = bspatch_path or 'bspatch'
- self.imgpatch_path = imgpatch_path or 'imgpatch'
+ self.puffpatch_path = puffpatch_path or 'imgpatch'
self.truncate_to_expected_size = truncate_to_expected_size
def _ApplyReplaceOperation(self, op, op_name, out_data, part_file, part_size):
@@ -347,7 +347,7 @@
def _ApplyDiffOperation(self, op, op_name, patch_data, old_part_file,
new_part_file):
- """Applies a SOURCE_BSDIFF or IMGDIFF operation.
+ """Applies a SOURCE_BSDIFF or PUFFDIFF operation.
Args:
op: the operation object
@@ -373,7 +373,7 @@
if (hasattr(new_part_file, 'fileno') and
((not old_part_file) or hasattr(old_part_file, 'fileno')) and
- op.type != common.OpType.IMGDIFF):
+ op.type != common.OpType.PUFFDIFF):
# Construct input and output extents argument for bspatch.
in_extents_arg, _, _ = _ExtentsToBspatchArg(
op.src_extents, block_size, '%s.src_extents' % op_name,
@@ -411,8 +411,8 @@
# Invoke bspatch.
patch_cmd = [self.bspatch_path, in_file_name, out_file_name,
patch_file_name]
- if op.type == common.OpType.IMGDIFF:
- patch_cmd[0] = self.imgpatch_path
+ if op.type == common.OpType.PUFFDIFF:
+ patch_cmd[0] = self.puffpatch_path
subprocess.check_call(patch_cmd)
# Read output.
@@ -468,7 +468,7 @@
elif op.type == common.OpType.SOURCE_COPY:
self._ApplySourceCopyOperation(op, op_name, old_part_file,
new_part_file)
- elif op.type in (common.OpType.SOURCE_BSDIFF, common.OpType.IMGDIFF):
+ elif op.type in (common.OpType.SOURCE_BSDIFF, common.OpType.PUFFDIFF):
self._ApplyDiffOperation(op, op_name, data, old_part_file,
new_part_file)
else:
@@ -504,7 +504,7 @@
shutil.copyfile(old_part_file_name, new_part_file_name)
elif (self.minor_version == common.SOURCE_MINOR_PAYLOAD_VERSION or
self.minor_version == common.OPSRCHASH_MINOR_PAYLOAD_VERSION or
- self.minor_version == common.IMGDIFF_MINOR_PAYLOAD_VERSION):
+ self.minor_version == common.PUFFDIFF_MINOR_PAYLOAD_VERSION):
# In minor version >= 2, we don't want to copy the partitions, so
# instead just make the new partition file.
open(new_part_file_name, 'w').close()
diff --git a/scripts/update_payload/checker.py b/scripts/update_payload/checker.py
index e13ea13..3144395 100644
--- a/scripts/update_payload/checker.py
+++ b/scripts/update_payload/checker.py
@@ -816,7 +816,7 @@
raise error.PayloadError('%s: excess dst blocks.' % op_name)
def _CheckAnyDiffOperation(self, data_length, total_dst_blocks, op_name):
- """Specific checks for BSDIFF, SOURCE_BSDIFF and IMGDIFF operations.
+ """Specific checks for BSDIFF, SOURCE_BSDIFF and PUFFDIFF operations.
Args:
data_length: The length of the data blob associated with the operation.
@@ -981,7 +981,7 @@
elif op.type == common.OpType.SOURCE_BSDIFF and self.minor_version >= 2:
self._CheckAnyDiffOperation(data_length, total_dst_blocks, op_name)
self._CheckAnySourceOperation(op, total_src_blocks, op_name)
- elif op.type == common.OpType.IMGDIFF and self.minor_version >= 4:
+ elif op.type == common.OpType.PUFFDIFF and self.minor_version >= 4:
self._CheckAnyDiffOperation(data_length, total_dst_blocks, op_name)
self._CheckAnySourceOperation(op, total_src_blocks, op_name)
else:
@@ -1041,7 +1041,7 @@
common.OpType.BSDIFF: 0,
common.OpType.SOURCE_COPY: 0,
common.OpType.SOURCE_BSDIFF: 0,
- common.OpType.IMGDIFF: 0,
+ common.OpType.PUFFDIFF: 0,
}
# Total blob sizes for each operation type.
op_blob_totals = {
@@ -1051,7 +1051,7 @@
common.OpType.BSDIFF: 0,
# SOURCE_COPY operations don't have blobs.
common.OpType.SOURCE_BSDIFF: 0,
- common.OpType.IMGDIFF: 0,
+ common.OpType.PUFFDIFF: 0,
}
# Counts of hashed vs unhashed operations.
blob_hash_counts = {
diff --git a/scripts/update_payload/checker_unittest.py b/scripts/update_payload/checker_unittest.py
index 56b1a30..a0a5056 100755
--- a/scripts/update_payload/checker_unittest.py
+++ b/scripts/update_payload/checker_unittest.py
@@ -38,7 +38,7 @@
'ZERO': common.OpType.ZERO,
'DISCARD': common.OpType.DISCARD,
'REPLACE_XZ': common.OpType.REPLACE_XZ,
- 'IMGDIFF': common.OpType.IMGDIFF,
+ 'PUFFDIFF': common.OpType.PUFFDIFF,
}
return op_name_to_type[op_name]
diff --git a/scripts/update_payload/common.py b/scripts/update_payload/common.py
index 678fc5d..bab8a4f 100644
--- a/scripts/update_payload/common.py
+++ b/scripts/update_payload/common.py
@@ -27,7 +27,7 @@
INPLACE_MINOR_PAYLOAD_VERSION = 1
SOURCE_MINOR_PAYLOAD_VERSION = 2
OPSRCHASH_MINOR_PAYLOAD_VERSION = 3
-IMGDIFF_MINOR_PAYLOAD_VERSION = 4
+PUFFDIFF_MINOR_PAYLOAD_VERSION = 4
#
# Payload operation types.
@@ -45,9 +45,9 @@
ZERO = _CLASS.ZERO
DISCARD = _CLASS.DISCARD
REPLACE_XZ = _CLASS.REPLACE_XZ
- IMGDIFF = _CLASS.IMGDIFF
+ PUFFDIFF = _CLASS.PUFFDIFF
ALL = (REPLACE, REPLACE_BZ, MOVE, BSDIFF, SOURCE_COPY, SOURCE_BSDIFF, ZERO,
- DISCARD, REPLACE_XZ, IMGDIFF)
+ DISCARD, REPLACE_XZ, PUFFDIFF)
NAMES = {
REPLACE: 'REPLACE',
REPLACE_BZ: 'REPLACE_BZ',
@@ -58,7 +58,7 @@
ZERO: 'ZERO',
DISCARD: 'DISCARD',
REPLACE_XZ: 'REPLACE_XZ',
- IMGDIFF: 'IMGDIFF',
+ PUFFDIFF: 'PUFFDIFF',
}
def __init__(self):
diff --git a/scripts/update_payload/update_metadata_pb2.py b/scripts/update_payload/update_metadata_pb2.py
index 46c475e..8cf87e3 100644
--- a/scripts/update_payload/update_metadata_pb2.py
+++ b/scripts/update_payload/update_metadata_pb2.py
@@ -13,7 +13,7 @@
DESCRIPTOR = _descriptor.FileDescriptor(
name='update_metadata.proto',
package='chromeos_update_engine',
- serialized_pb='\n\x15update_metadata.proto\x12\x16\x63hromeos_update_engine\"1\n\x06\x45xtent\x12\x13\n\x0bstart_block\x18\x01 \x01(\x04\x12\x12\n\nnum_blocks\x18\x02 \x01(\x04\"z\n\nSignatures\x12@\n\nsignatures\x18\x01 \x03(\x0b\x32,.chromeos_update_engine.Signatures.Signature\x1a*\n\tSignature\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"+\n\rPartitionInfo\x12\x0c\n\x04size\x18\x01 \x01(\x04\x12\x0c\n\x04hash\x18\x02 \x01(\x0c\"w\n\tImageInfo\x12\r\n\x05\x62oard\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\x0f\n\x07\x63hannel\x18\x03 \x01(\t\x12\x0f\n\x07version\x18\x04 \x01(\t\x12\x15\n\rbuild_channel\x18\x05 \x01(\t\x12\x15\n\rbuild_version\x18\x06 \x01(\t\"\xd2\x03\n\x10InstallOperation\x12;\n\x04type\x18\x01 \x02(\x0e\x32-.chromeos_update_engine.InstallOperation.Type\x12\x13\n\x0b\x64\x61ta_offset\x18\x02 \x01(\r\x12\x13\n\x0b\x64\x61ta_length\x18\x03 \x01(\r\x12\x33\n\x0bsrc_extents\x18\x04 \x03(\x0b\x32\x1e.chromeos_update_engine.Extent\x12\x12\n\nsrc_length\x18\x05 \x01(\x04\x12\x33\n\x0b\x64st_extents\x18\x06 \x03(\x0b\x32\x1e.chromeos_update_engine.Extent\x12\x12\n\ndst_length\x18\x07 \x01(\x04\x12\x18\n\x10\x64\x61ta_sha256_hash\x18\x08 \x01(\x0c\x12\x17\n\x0fsrc_sha256_hash\x18\t \x01(\x0c\"\x91\x01\n\x04Type\x12\x0b\n\x07REPLACE\x10\x00\x12\x0e\n\nREPLACE_BZ\x10\x01\x12\x08\n\x04MOVE\x10\x02\x12\n\n\x06\x42SDIFF\x10\x03\x12\x0f\n\x0bSOURCE_COPY\x10\x04\x12\x11\n\rSOURCE_BSDIFF\x10\x05\x12\x08\n\x04ZERO\x10\x06\x12\x0b\n\x07\x44ISCARD\x10\x07\x12\x0e\n\nREPLACE_XZ\x10\x08\x12\x0b\n\x07IMGDIFF\x10\t\"\x88\x03\n\x0fPartitionUpdate\x12\x16\n\x0epartition_name\x18\x01 \x02(\t\x12\x17\n\x0frun_postinstall\x18\x02 \x01(\x08\x12\x18\n\x10postinstall_path\x18\x03 \x01(\t\x12\x17\n\x0f\x66ilesystem_type\x18\x04 \x01(\t\x12M\n\x17new_partition_signature\x18\x05 \x03(\x0b\x32,.chromeos_update_engine.Signatures.Signature\x12\x41\n\x12old_partition_info\x18\x06 \x01(\x0b\x32%.chromeos_update_engine.PartitionInfo\x12\x41\n\x12new_partition_info\x18\x07 \x01(\x0b\x32%.chromeos_update_engine.PartitionInfo\x12<\n\noperations\x18\x08 \x03(\x0b\x32(.chromeos_update_engine.InstallOperation\"\xc4\x05\n\x14\x44\x65ltaArchiveManifest\x12\x44\n\x12install_operations\x18\x01 \x03(\x0b\x32(.chromeos_update_engine.InstallOperation\x12K\n\x19kernel_install_operations\x18\x02 \x03(\x0b\x32(.chromeos_update_engine.InstallOperation\x12\x18\n\nblock_size\x18\x03 \x01(\r:\x04\x34\x30\x39\x36\x12\x19\n\x11signatures_offset\x18\x04 \x01(\x04\x12\x17\n\x0fsignatures_size\x18\x05 \x01(\x04\x12>\n\x0fold_kernel_info\x18\x06 \x01(\x0b\x32%.chromeos_update_engine.PartitionInfo\x12>\n\x0fnew_kernel_info\x18\x07 \x01(\x0b\x32%.chromeos_update_engine.PartitionInfo\x12>\n\x0fold_rootfs_info\x18\x08 \x01(\x0b\x32%.chromeos_update_engine.PartitionInfo\x12>\n\x0fnew_rootfs_info\x18\t \x01(\x0b\x32%.chromeos_update_engine.PartitionInfo\x12\x39\n\x0eold_image_info\x18\n \x01(\x0b\x32!.chromeos_update_engine.ImageInfo\x12\x39\n\x0enew_image_info\x18\x0b \x01(\x0b\x32!.chromeos_update_engine.ImageInfo\x12\x18\n\rminor_version\x18\x0c \x01(\r:\x01\x30\x12;\n\npartitions\x18\r \x03(\x0b\x32\'.chromeos_update_engine.PartitionUpdateB\x02H\x03')
+ serialized_pb='\n\x15update_metadata.proto\x12\x16\x63hromeos_update_engine\"1\n\x06\x45xtent\x12\x13\n\x0bstart_block\x18\x01 \x01(\x04\x12\x12\n\nnum_blocks\x18\x02 \x01(\x04\"z\n\nSignatures\x12@\n\nsignatures\x18\x01 \x03(\x0b\x32,.chromeos_update_engine.Signatures.Signature\x1a*\n\tSignature\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"+\n\rPartitionInfo\x12\x0c\n\x04size\x18\x01 \x01(\x04\x12\x0c\n\x04hash\x18\x02 \x01(\x0c\"w\n\tImageInfo\x12\r\n\x05\x62oard\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\x0f\n\x07\x63hannel\x18\x03 \x01(\t\x12\x0f\n\x07version\x18\x04 \x01(\t\x12\x15\n\rbuild_channel\x18\x05 \x01(\t\x12\x15\n\rbuild_version\x18\x06 \x01(\t\"\xd3\x03\n\x10InstallOperation\x12;\n\x04type\x18\x01 \x02(\x0e\x32-.chromeos_update_engine.InstallOperation.Type\x12\x13\n\x0b\x64\x61ta_offset\x18\x02 \x01(\r\x12\x13\n\x0b\x64\x61ta_length\x18\x03 \x01(\r\x12\x33\n\x0bsrc_extents\x18\x04 \x03(\x0b\x32\x1e.chromeos_update_engine.Extent\x12\x12\n\nsrc_length\x18\x05 \x01(\x04\x12\x33\n\x0b\x64st_extents\x18\x06 \x03(\x0b\x32\x1e.chromeos_update_engine.Extent\x12\x12\n\ndst_length\x18\x07 \x01(\x04\x12\x18\n\x10\x64\x61ta_sha256_hash\x18\x08 \x01(\x0c\x12\x17\n\x0fsrc_sha256_hash\x18\t \x01(\x0c\"\x92\x01\n\x04Type\x12\x0b\n\x07REPLACE\x10\x00\x12\x0e\n\nREPLACE_BZ\x10\x01\x12\x08\n\x04MOVE\x10\x02\x12\n\n\x06\x42SDIFF\x10\x03\x12\x0f\n\x0bSOURCE_COPY\x10\x04\x12\x11\n\rSOURCE_BSDIFF\x10\x05\x12\x08\n\x04ZERO\x10\x06\x12\x0b\n\x07\x44ISCARD\x10\x07\x12\x0e\n\nREPLACE_XZ\x10\x08\x12\x0c\n\x08PUFFDIFF\x10\t\"\xa6\x03\n\x0fPartitionUpdate\x12\x16\n\x0epartition_name\x18\x01 \x02(\t\x12\x17\n\x0frun_postinstall\x18\x02 \x01(\x08\x12\x18\n\x10postinstall_path\x18\x03 \x01(\t\x12\x17\n\x0f\x66ilesystem_type\x18\x04 \x01(\t\x12M\n\x17new_partition_signature\x18\x05 \x03(\x0b\x32,.chromeos_update_engine.Signatures.Signature\x12\x41\n\x12old_partition_info\x18\x06 \x01(\x0b\x32%.chromeos_update_engine.PartitionInfo\x12\x41\n\x12new_partition_info\x18\x07 \x01(\x0b\x32%.chromeos_update_engine.PartitionInfo\x12<\n\noperations\x18\x08 \x03(\x0b\x32(.chromeos_update_engine.InstallOperation\x12\x1c\n\x14postinstall_optional\x18\t \x01(\x08\"\xc4\x05\n\x14\x44\x65ltaArchiveManifest\x12\x44\n\x12install_operations\x18\x01 \x03(\x0b\x32(.chromeos_update_engine.InstallOperation\x12K\n\x19kernel_install_operations\x18\x02 \x03(\x0b\x32(.chromeos_update_engine.InstallOperation\x12\x18\n\nblock_size\x18\x03 \x01(\r:\x04\x34\x30\x39\x36\x12\x19\n\x11signatures_offset\x18\x04 \x01(\x04\x12\x17\n\x0fsignatures_size\x18\x05 \x01(\x04\x12>\n\x0fold_kernel_info\x18\x06 \x01(\x0b\x32%.chromeos_update_engine.PartitionInfo\x12>\n\x0fnew_kernel_info\x18\x07 \x01(\x0b\x32%.chromeos_update_engine.PartitionInfo\x12>\n\x0fold_rootfs_info\x18\x08 \x01(\x0b\x32%.chromeos_update_engine.PartitionInfo\x12>\n\x0fnew_rootfs_info\x18\t \x01(\x0b\x32%.chromeos_update_engine.PartitionInfo\x12\x39\n\x0eold_image_info\x18\n \x01(\x0b\x32!.chromeos_update_engine.ImageInfo\x12\x39\n\x0enew_image_info\x18\x0b \x01(\x0b\x32!.chromeos_update_engine.ImageInfo\x12\x18\n\rminor_version\x18\x0c \x01(\r:\x01\x30\x12;\n\npartitions\x18\r \x03(\x0b\x32\'.chromeos_update_engine.PartitionUpdateB\x02H\x03')
@@ -60,14 +60,14 @@
options=None,
type=None),
_descriptor.EnumValueDescriptor(
- name='IMGDIFF', index=9, number=9,
+ name='PUFFDIFF', index=9, number=9,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=712,
- serialized_end=857,
+ serialized_end=858,
)
@@ -347,7 +347,7 @@
is_extendable=False,
extension_ranges=[],
serialized_start=391,
- serialized_end=857,
+ serialized_end=858,
)
@@ -414,6 +414,13 @@
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
+ _descriptor.FieldDescriptor(
+ name='postinstall_optional', full_name='chromeos_update_engine.PartitionUpdate.postinstall_optional', index=8,
+ number=9, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
],
extensions=[
],
@@ -423,8 +430,8 @@
options=None,
is_extendable=False,
extension_ranges=[],
- serialized_start=860,
- serialized_end=1252,
+ serialized_start=861,
+ serialized_end=1283,
)
@@ -535,8 +542,8 @@
options=None,
is_extendable=False,
extension_ranges=[],
- serialized_start=1255,
- serialized_end=1963,
+ serialized_start=1286,
+ serialized_end=1994,
)
_SIGNATURES_SIGNATURE.containing_type = _SIGNATURES;
diff --git a/update_metadata.proto b/update_metadata.proto
index 454c736..4fe5fd3 100644
--- a/update_metadata.proto
+++ b/update_metadata.proto
@@ -164,7 +164,7 @@
REPLACE_XZ = 8; // Replace destination extents w/ attached xz data.
// On minor version 4 or newer, these operations are supported:
- IMGDIFF = 9; // The data is in imgdiff format.
+ PUFFDIFF = 9; // The data is in puffdiff format.
}
required Type type = 1;
// The offset into the delta file (after the protobuf)