Get desktop application:
View/edit binary Protocol Buffers messages
Only present in major version = 1. List of install operations for the kernel and rootfs partitions. For major version = 2 see the |partitions| field.
(At time of writing) usually 4096
If signatures are present, the offset into the blobs, generally tacked onto the end of the file, and the length. We use an offset rather than a bool to allow for more flexibility in future file formats. If either is absent, it means signatures aren't supported in this file.
Only present in major version = 1. Partition metadata used to validate the update. For major version = 2 see the |partitions| field.
old_image_info will only be present for delta images.
The minor version, also referred as "delta version", of the payload.
Only present in major version >= 2. List of partitions that will be updated, in the order they will be updated. This field replaces the |install_operations|, |kernel_install_operations| and the |{old,new}_{kernel,rootfs}_info| fields used in major version = 1. This array can have more than two partitions if needed, and they are identified by the partition name.
The maximum timestamp of the OS allowed to apply this payload. Can be used to prevent downgrading the OS.
Metadata related to all dynamic partitions.
Used in:
Name of the group.
Maximum size of the group. The sum of sizes of all partitions in the group must not exceed the maximum size of the group.
A list of partitions that belong to the group.
Metadata related to all dynamic partitions.
Used in:
All updateable groups present in |partitions| of this DeltaArchiveManifest. - If an updatable group is on the device but not in the manifest, it is not updated. Hence, the group will not be resized, and partitions cannot be added to or removed from the group. - If an updatable group is in the manifest but not on the device, the group is added to the device.
Used in:
,Describe an image we are based on in a human friendly way. Examples: dev-channel, x86-alex, 1.2.3, mp-v3 nplusone-channel, x86-alex, 1.2.4, mp-v3, dev-channel, 1.2.3 All fields will be set, if this message is present.
Used in:
If these values aren't present, they should be assumed to match the equivalent value above. They are normally only different for special image types such as nplusone images.
Used in:
,Only minor version 6 or newer support 64 bits |data_offset| and |data_length|, older client will read them as uint32. The offset into the delta file (after the protobuf) where the data (if any) is stored
The length of the data in the delta file
Ordered list of extents that are read from (if any) and written to.
Byte length of src, equal to the number of blocks in src_extents * block_size. It is used for BSDIFF and SOURCE_BSDIFF, because we need to pass that external program the number of bytes to read from the blocks we pass it. This is not used in any other operation.
Byte length of dst, equal to the number of blocks in dst_extents * block_size. Used for BSDIFF and SOURCE_BSDIFF, but not in any other operation.
Optional SHA 256 hash of the blob associated with this operation. This is used as a primary validation for http-based downloads and as a defense-in-depth validation for https-based downloads. If the operation doesn't refer to any blob, this field will have zero bytes.
Indicates the SHA 256 hash of the source data referenced in src_extents at the time of applying the operation. If present, the update_engine daemon MUST read and verify the source data before applying the operation.
Used in:
Replace destination extents w/ attached data.
Replace destination extents w/ attached bzipped data.
Move source extents to target extents.
The data is a bsdiff binary diff.
On minor version 2 or newer, these operations are supported:
Copy from source to target partition
Like BSDIFF, but read from source partition
On minor version 3 or newer and on major version 2 or newer, these operations are supported:
Replace destination extents w/ attached xz data.
On minor version 4 or newer, these operations are supported:
Write zeros in the destination.
Discard the destination blocks, reading as undefined.
Like SOURCE_BSDIFF, but compressed with brotli.
On minor version 5 or newer, these operations are supported:
The data is in puffdiff format.
Used in:
,Describes the update to apply to a single partition.
Used in:
A platform-specific name to identify the partition set being updated. For example, in Chrome OS this could be "ROOT" or "KERNEL".
Whether this partition carries a filesystem with post-install program that must be run to finalize the update process. See also |postinstall_path| and |filesystem_type|.
The path of the executable program to run during the post-install step, relative to the root of this filesystem. If not set, the default "postinst" will be used. This setting is only used when |run_postinstall| is set and true.
The filesystem type as passed to the mount(2) syscall when mounting the new filesystem to run the post-install program. If not set, a fixed list of filesystems will be attempted. This setting is only used if |run_postinstall| is set and true.
If present, a list of signatures of the new_partition_info.hash signed with different keys. If the update_engine daemon requires vendor-signed images and has its public key installed, one of the signatures should be valid for /postinstall to run.
The list of operations to be performed to apply this PartitionUpdate. The associated operation blobs (in operations[i].data_offset, data_length) should be stored contiguously and in the same order.
Whether a failure in the postinstall step for this partition should be ignored.
The extent for data covered by verity hash tree.
The extent to store verity hash tree.
The hash algorithm used in verity hash tree.
The salt used for verity hash tree.
The extent for data covered by FEC.
The extent to store FEC.
The number of FEC roots.
Used in:
,