update-payload-extractor: Import master update_payload
Change-Id: I94798f08b2e02677390024abcd43d45af7f585ee
This commit is contained in:
@@ -16,8 +16,11 @@
|
||||
|
||||
"""Utilities for update payload processing."""
|
||||
|
||||
from __future__ import absolute_import
|
||||
from __future__ import print_function
|
||||
|
||||
import base64
|
||||
|
||||
from update_payload import update_metadata_pb2
|
||||
from update_payload.error import PayloadError
|
||||
|
||||
@@ -25,23 +28,25 @@ from update_payload.error import PayloadError
|
||||
#
|
||||
# Constants.
|
||||
#
|
||||
PSEUDO_EXTENT_MARKER = (1L << 64) - 1 # UINT64_MAX
|
||||
|
||||
SIG_ASN1_HEADER = (
|
||||
'\x30\x31\x30\x0d\x06\x09\x60\x86'
|
||||
'\x48\x01\x65\x03\x04\x02\x01\x05'
|
||||
'\x00\x04\x20'
|
||||
b'\x30\x31\x30\x0d\x06\x09\x60\x86'
|
||||
b'\x48\x01\x65\x03\x04\x02\x01\x05'
|
||||
b'\x00\x04\x20'
|
||||
)
|
||||
|
||||
CHROMEOS_MAJOR_PAYLOAD_VERSION = 1
|
||||
BRILLO_MAJOR_PAYLOAD_VERSION = 2
|
||||
|
||||
INPLACE_MINOR_PAYLOAD_VERSION = 1
|
||||
SOURCE_MINOR_PAYLOAD_VERSION = 2
|
||||
OPSRCHASH_MINOR_PAYLOAD_VERSION = 3
|
||||
BROTLI_BSDIFF_MINOR_PAYLOAD_VERSION = 4
|
||||
PUFFDIFF_MINOR_PAYLOAD_VERSION = 5
|
||||
|
||||
KERNEL = 'kernel'
|
||||
ROOTFS = 'root'
|
||||
# Tuple of (name in system, name in protobuf).
|
||||
CROS_PARTITIONS = ((KERNEL, KERNEL), (ROOTFS, 'rootfs'))
|
||||
|
||||
|
||||
#
|
||||
# Payload operation types.
|
||||
#
|
||||
@@ -50,8 +55,6 @@ class OpType(object):
|
||||
_CLASS = update_metadata_pb2.InstallOperation
|
||||
REPLACE = _CLASS.REPLACE
|
||||
REPLACE_BZ = _CLASS.REPLACE_BZ
|
||||
MOVE = _CLASS.MOVE
|
||||
BSDIFF = _CLASS.BSDIFF
|
||||
SOURCE_COPY = _CLASS.SOURCE_COPY
|
||||
SOURCE_BSDIFF = _CLASS.SOURCE_BSDIFF
|
||||
ZERO = _CLASS.ZERO
|
||||
@@ -59,13 +62,11 @@ class OpType(object):
|
||||
REPLACE_XZ = _CLASS.REPLACE_XZ
|
||||
PUFFDIFF = _CLASS.PUFFDIFF
|
||||
BROTLI_BSDIFF = _CLASS.BROTLI_BSDIFF
|
||||
ALL = (REPLACE, REPLACE_BZ, MOVE, BSDIFF, SOURCE_COPY, SOURCE_BSDIFF, ZERO,
|
||||
ALL = (REPLACE, REPLACE_BZ, SOURCE_COPY, SOURCE_BSDIFF, ZERO,
|
||||
DISCARD, REPLACE_XZ, PUFFDIFF, BROTLI_BSDIFF)
|
||||
NAMES = {
|
||||
REPLACE: 'REPLACE',
|
||||
REPLACE_BZ: 'REPLACE_BZ',
|
||||
MOVE: 'MOVE',
|
||||
BSDIFF: 'BSDIFF',
|
||||
SOURCE_COPY: 'SOURCE_COPY',
|
||||
SOURCE_BSDIFF: 'SOURCE_BSDIFF',
|
||||
ZERO: 'ZERO',
|
||||
@@ -141,7 +142,7 @@ def Read(file_obj, length, offset=None, hasher=None):
|
||||
|
||||
try:
|
||||
data = file_obj.read(length)
|
||||
except IOError, e:
|
||||
except IOError as e:
|
||||
raise PayloadError('error reading from file (%s): %s' % (file_obj.name, e))
|
||||
|
||||
if len(data) != length:
|
||||
@@ -162,13 +163,12 @@ def FormatExtent(ex, block_size=0):
|
||||
end_block = ex.start_block + ex.num_blocks
|
||||
if block_size:
|
||||
return '%d->%d * %d' % (ex.start_block, end_block, block_size)
|
||||
else:
|
||||
return '%d->%d' % (ex.start_block, end_block)
|
||||
return '%d->%d' % (ex.start_block, end_block)
|
||||
|
||||
|
||||
def FormatSha256(digest):
|
||||
"""Returns a canonical string representation of a SHA256 digest."""
|
||||
return digest.encode('base64').strip()
|
||||
return base64.b64encode(digest).decode('utf-8')
|
||||
|
||||
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user