├── README.md ├── payload_dumper ├── __init__.py ├── dumper.py └── update_metadata_pb2.py ├── poetry.lock └── pyproject.toml /README.md: -------------------------------------------------------------------------------- 1 | # payload dumper 2 | 3 | Dumps the `payload.bin` image found in Android update images. Has significant performance gains over other tools due to using multiprocessing. 4 | 5 | ## Installation 6 | 7 | ### Requirements 8 | 9 | - Python3 10 | - pip 11 | 12 | ### Install using pip 13 | 14 | ```sh 15 | pip install --user payload_dumper 16 | ``` 17 | 18 | ## Example ASCIIcast 19 | 20 | [![asciicast](https://asciinema.org/a/UbDZGZwCXux50sSzy1fc1bhaO.svg)](https://asciinema.org/a/UbDZGZwCXux50sSzy1fc1bhaO) 21 | 22 | ## Usage 23 | 24 | ### Dumping the entirety of `payload.bin` 25 | 26 | ``` 27 | payload_dumper payload.bin 28 | ``` 29 | 30 | ### Dumping specific partitions 31 | 32 | Use a comma-separated list of partitions to dump: 33 | ``` 34 | payload_dumper --partitions boot,dtbo,vendor payload.bin 35 | ``` 36 | 37 | ### Patching older image with OTA 38 | 39 | Assuming the old partitions are in a directory named `old/`: 40 | ``` 41 | payload_dumper --diff payload.bin 42 | ``` 43 | -------------------------------------------------------------------------------- /payload_dumper/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nnsee/payload-dumper/a3c4e6cd6ada14b418d9fec8706c0c1362c8bfb8/payload_dumper/__init__.py -------------------------------------------------------------------------------- /payload_dumper/dumper.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from time import sleep 3 | import struct 4 | import hashlib 5 | import bz2 6 | import sys 7 | import argparse 8 | import bsdiff4 9 | import io 10 | import os 11 | from enlighten import get_manager 12 | import lzma 13 | from multiprocessing import cpu_count 14 | from concurrent.futures import ThreadPoolExecutor, as_completed 15 | import payload_dumper.update_metadata_pb2 as um 16 | 17 | flatten = lambda l: [item for sublist in l for item in sublist] 18 | 19 | 20 | def u32(x): 21 | return struct.unpack(">I", x)[0] 22 | 23 | 24 | def u64(x): 25 | return struct.unpack(">Q", x)[0] 26 | 27 | 28 | def verify_contiguous(exts): 29 | blocks = 0 30 | for ext in exts: 31 | if ext.start_block != blocks: 32 | return False 33 | 34 | blocks += ext.num_blocks 35 | 36 | return True 37 | 38 | 39 | class Dumper: 40 | def __init__( 41 | self, payloadfile, out, diff=None, old=None, images="", workers=cpu_count() 42 | ): 43 | self.payloadfile = payloadfile 44 | self.out = out 45 | self.diff = diff 46 | self.old = old 47 | self.images = images 48 | self.workers = workers 49 | self.validate_magic() 50 | self.manager = get_manager() 51 | 52 | def run(self): 53 | if self.images == "": 54 | partitions = self.dam.partitions 55 | else: 56 | partitions = [] 57 | for image in self.images.split(","): 58 | image = image.strip() 59 | found = False 60 | for dam_part in self.dam.partitions: 61 | if dam_part.partition_name == image: 62 | partitions.append(dam_part) 63 | found = True 64 | break 65 | if not found: 66 | print("Partition %s not found in image" % image) 67 | 68 | if len(partitions) == 0: 69 | print("Not operating on any partitions") 70 | return 0 71 | 72 | partitions_with_ops = [] 73 | for partition in partitions: 74 | operations = [] 75 | for operation in partition.operations: 76 | self.payloadfile.seek(self.data_offset + operation.data_offset) 77 | operations.append( 78 | { 79 | "operation": operation, 80 | "data": self.payloadfile.read(operation.data_length), 81 | } 82 | ) 83 | partitions_with_ops.append( 84 | { 85 | "partition": partition, 86 | "operations": operations, 87 | } 88 | ) 89 | 90 | self.payloadfile.close() 91 | 92 | self.multiprocess_partitions(partitions_with_ops) 93 | self.manager.stop() 94 | 95 | def multiprocess_partitions(self, partitions): 96 | progress_bars = {} 97 | 98 | def update_progress(partition_name, count): 99 | progress_bars[partition_name].update(count) 100 | 101 | with ThreadPoolExecutor(max_workers=self.workers) as executor: 102 | for part in partitions: 103 | partition_name = part['partition'].partition_name 104 | progress_bars[partition_name] = self.manager.counter( 105 | total=len(part["operations"]), 106 | desc=f"{partition_name}", 107 | unit="ops", 108 | leave=True, 109 | ) 110 | 111 | futures = {executor.submit(self.dump_part, part, update_progress): part for part in partitions} 112 | 113 | for future in as_completed(futures): 114 | part = futures[future] 115 | partition_name = part['partition'].partition_name 116 | try: 117 | future.result() 118 | progress_bars[partition_name].close() 119 | except Exception as exc: 120 | print(f"{partition_name} - processing generated an exception: {exc}") 121 | progress_bars[partition_name].close() 122 | 123 | 124 | def validate_magic(self): 125 | magic = self.payloadfile.read(4) 126 | assert magic == b"CrAU" 127 | 128 | file_format_version = u64(self.payloadfile.read(8)) 129 | assert file_format_version == 2 130 | 131 | manifest_size = u64(self.payloadfile.read(8)) 132 | 133 | metadata_signature_size = 0 134 | 135 | if file_format_version > 1: 136 | metadata_signature_size = u32(self.payloadfile.read(4)) 137 | 138 | manifest = self.payloadfile.read(manifest_size) 139 | self.metadata_signature = self.payloadfile.read(metadata_signature_size) 140 | self.data_offset = self.payloadfile.tell() 141 | 142 | self.dam = um.DeltaArchiveManifest() 143 | self.dam.ParseFromString(manifest) 144 | self.block_size = self.dam.block_size 145 | 146 | def data_for_op(self, operation, out_file, old_file): 147 | data = operation["data"] 148 | op = operation["operation"] 149 | 150 | # assert hashlib.sha256(data).digest() == op.data_sha256_hash, 'operation data hash mismatch' 151 | 152 | if op.type == op.REPLACE_XZ: 153 | dec = lzma.LZMADecompressor() 154 | data = dec.decompress(data) 155 | out_file.seek(op.dst_extents[0].start_block * self.block_size) 156 | out_file.write(data) 157 | elif op.type == op.REPLACE_BZ: 158 | dec = bz2.BZ2Decompressor() 159 | data = dec.decompress(data) 160 | out_file.seek(op.dst_extents[0].start_block * self.block_size) 161 | out_file.write(data) 162 | elif op.type == op.REPLACE: 163 | out_file.seek(op.dst_extents[0].start_block * self.block_size) 164 | out_file.write(data) 165 | elif op.type == op.SOURCE_COPY: 166 | if not self.diff: 167 | print("SOURCE_COPY supported only for differential OTA") 168 | sys.exit(-2) 169 | out_file.seek(op.dst_extents[0].start_block * self.block_size) 170 | for ext in op.src_extents: 171 | old_file.seek(ext.start_block * self.block_size) 172 | data = old_file.read(ext.num_blocks * self.block_size) 173 | out_file.write(data) 174 | elif op.type == op.SOURCE_BSDIFF: 175 | if not self.diff: 176 | print("SOURCE_BSDIFF supported only for differential OTA") 177 | sys.exit(-3) 178 | out_file.seek(op.dst_extents[0].start_block * self.block_size) 179 | tmp_buff = io.BytesIO() 180 | for ext in op.src_extents: 181 | old_file.seek(ext.start_block * self.block_size) 182 | old_data = old_file.read(ext.num_blocks * self.block_size) 183 | tmp_buff.write(old_data) 184 | tmp_buff.seek(0) 185 | old_data = tmp_buff.read() 186 | tmp_buff.seek(0) 187 | tmp_buff.write(bsdiff4.patch(old_data, data)) 188 | n = 0 189 | tmp_buff.seek(0) 190 | for ext in op.dst_extents: 191 | tmp_buff.seek(n * self.block_size) 192 | n += ext.num_blocks 193 | data = tmp_buff.read(ext.num_blocks * self.block_size) 194 | out_file.seek(ext.start_block * self.block_size) 195 | out_file.write(data) 196 | elif op.type == op.ZERO: 197 | for ext in op.dst_extents: 198 | out_file.seek(ext.start_block * self.block_size) 199 | out_file.write(b"\x00" * ext.num_blocks * self.block_size) 200 | else: 201 | print("Unsupported type = %d" % op.type) 202 | sys.exit(-1) 203 | 204 | return data 205 | 206 | def dump_part(self, part, update_callback): 207 | name = part["partition"].partition_name 208 | out_file = open("%s/%s.img" % (self.out, name), "wb") 209 | h = hashlib.sha256() 210 | 211 | if self.diff: 212 | old_file = open("%s/%s.img" % (self.old, name), "rb") 213 | else: 214 | old_file = None 215 | 216 | for op in part["operations"]: 217 | data = self.data_for_op(op, out_file, old_file) 218 | update_callback(part["partition"].partition_name, 1) 219 | 220 | 221 | def main(): 222 | parser = argparse.ArgumentParser(description="OTA payload dumper") 223 | parser.add_argument( 224 | "payloadfile", type=argparse.FileType("rb"), help="payload file name" 225 | ) 226 | parser.add_argument( 227 | "--out", default="output", help="output directory (default: 'output')" 228 | ) 229 | parser.add_argument( 230 | "--diff", 231 | action="store_true", 232 | help="extract differential OTA", 233 | ) 234 | parser.add_argument( 235 | "--old", 236 | default="old", 237 | help="directory with original images for differential OTA (default: 'old')", 238 | ) 239 | parser.add_argument( 240 | "--partitions", 241 | default="", 242 | help="comma separated list of partitions to extract (default: extract all)", 243 | ) 244 | parser.add_argument( 245 | "--workers", 246 | default=cpu_count(), 247 | type=int, 248 | help="numer of workers (default: CPU count - %d)" % cpu_count(), 249 | ) 250 | args = parser.parse_args() 251 | 252 | # Check for --out directory exists 253 | if not os.path.exists(args.out): 254 | os.makedirs(args.out) 255 | 256 | dumper = Dumper( 257 | args.payloadfile, 258 | args.out, 259 | diff=args.diff, 260 | old=args.old, 261 | images=args.partitions, 262 | workers=args.workers, 263 | ) 264 | dumper.run() 265 | 266 | 267 | if __name__ == "__main__": 268 | main() 269 | -------------------------------------------------------------------------------- /payload_dumper/update_metadata_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: update_metadata.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | 10 | # @@protoc_insertion_point(imports) 11 | 12 | _sym_db = _symbol_database.Default() 13 | 14 | 15 | DESCRIPTOR = _descriptor.FileDescriptor( 16 | name="update_metadata.proto", 17 | package="chromeos_update_engine", 18 | syntax="proto2", 19 | serialized_options=b"H\003", 20 | create_key=_descriptor._internal_create_key, 21 | serialized_pb=b'\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"\x9f\x01\n\nSignatures\x12@\n\nsignatures\x18\x01 \x03(\x0b\x32,.chromeos_update_engine.Signatures.Signature\x1aO\n\tSignature\x12\x13\n\x07version\x18\x01 \x01(\rB\x02\x18\x01\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x1f\n\x17unpadded_signature_size\x18\x03 \x01(\x07"+\n\rPartitionInfo\x12\x0c\n\x04size\x18\x01 \x01(\x04\x12\x0c\n\x04hash\x18\x02 \x01(\x0c"\x8f\x01\n\tImageInfo\x12\x11\n\x05\x62oard\x18\x01 \x01(\tB\x02\x18\x01\x12\x0f\n\x03key\x18\x02 \x01(\tB\x02\x18\x01\x12\x13\n\x07\x63hannel\x18\x03 \x01(\tB\x02\x18\x01\x12\x13\n\x07version\x18\x04 \x01(\tB\x02\x18\x01\x12\x19\n\rbuild_channel\x18\x05 \x01(\tB\x02\x18\x01\x12\x19\n\rbuild_version\x18\x06 \x01(\tB\x02\x18\x01"\xa6\x04\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(\x04\x12\x13\n\x0b\x64\x61ta_length\x18\x03 \x01(\x04\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"\xe5\x01\n\x04Type\x12\x0b\n\x07REPLACE\x10\x00\x12\x0e\n\nREPLACE_BZ\x10\x01\x12\x0c\n\x04MOVE\x10\x02\x1a\x02\x08\x01\x12\x0e\n\x06\x42SDIFF\x10\x03\x1a\x02\x08\x01\x12\x0f\n\x0bSOURCE_COPY\x10\x04\x12\x11\n\rSOURCE_BSDIFF\x10\x05\x12\x0e\n\nREPLACE_XZ\x10\x08\x12\x08\n\x04ZERO\x10\x06\x12\x0b\n\x07\x44ISCARD\x10\x07\x12\x11\n\rBROTLI_BSDIFF\x10\n\x12\x0c\n\x08PUFFDIFF\x10\t\x12\x0c\n\x08ZUCCHINI\x10\x0b\x12\x12\n\x0eLZ4DIFF_BSDIFF\x10\x0c\x12\x14\n\x10LZ4DIFF_PUFFDIFF\x10\r"\x81\x02\n\x11\x43owMergeOperation\x12<\n\x04type\x18\x01 \x01(\x0e\x32..chromeos_update_engine.CowMergeOperation.Type\x12\x32\n\nsrc_extent\x18\x02 \x01(\x0b\x32\x1e.chromeos_update_engine.Extent\x12\x32\n\ndst_extent\x18\x03 \x01(\x0b\x32\x1e.chromeos_update_engine.Extent\x12\x12\n\nsrc_offset\x18\x04 \x01(\r"2\n\x04Type\x12\x0c\n\x08\x43OW_COPY\x10\x00\x12\x0b\n\x07\x43OW_XOR\x10\x01\x12\x0f\n\x0b\x43OW_REPLACE\x10\x02"\xc8\x06\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\x12=\n\x15hash_tree_data_extent\x18\n \x01(\x0b\x32\x1e.chromeos_update_engine.Extent\x12\x38\n\x10hash_tree_extent\x18\x0b \x01(\x0b\x32\x1e.chromeos_update_engine.Extent\x12\x1b\n\x13hash_tree_algorithm\x18\x0c \x01(\t\x12\x16\n\x0ehash_tree_salt\x18\r \x01(\x0c\x12\x37\n\x0f\x66\x65\x63_data_extent\x18\x0e \x01(\x0b\x32\x1e.chromeos_update_engine.Extent\x12\x32\n\nfec_extent\x18\x0f \x01(\x0b\x32\x1e.chromeos_update_engine.Extent\x12\x14\n\tfec_roots\x18\x10 \x01(\r:\x01\x32\x12\x0f\n\x07version\x18\x11 \x01(\t\x12\x43\n\x10merge_operations\x18\x12 \x03(\x0b\x32).chromeos_update_engine.CowMergeOperation\x12\x19\n\x11\x65stimate_cow_size\x18\x13 \x01(\x04"L\n\x15\x44ynamicPartitionGroup\x12\x0c\n\x04name\x18\x01 \x02(\t\x12\x0c\n\x04size\x18\x02 \x01(\x04\x12\x17\n\x0fpartition_names\x18\x03 \x03(\t"\xbe\x01\n\x18\x44ynamicPartitionMetadata\x12=\n\x06groups\x18\x01 \x03(\x0b\x32-.chromeos_update_engine.DynamicPartitionGroup\x12\x18\n\x10snapshot_enabled\x18\x02 \x01(\x08\x12\x14\n\x0cvabc_enabled\x18\x03 \x01(\x08\x12\x1e\n\x16vabc_compression_param\x18\x04 \x01(\t\x12\x13\n\x0b\x63ow_version\x18\x05 \x01(\r"c\n\x08\x41pexInfo\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\x03\x12\x15\n\ris_compressed\x18\x03 \x01(\x08\x12\x19\n\x11\x64\x65\x63ompressed_size\x18\x04 \x01(\x03"C\n\x0c\x41pexMetadata\x12\x33\n\tapex_info\x18\x01 \x03(\x0b\x32 .chromeos_update_engine.ApexInfo"\x9e\x07\n\x14\x44\x65ltaArchiveManifest\x12H\n\x12install_operations\x18\x01 \x03(\x0b\x32(.chromeos_update_engine.InstallOperationB\x02\x18\x01\x12O\n\x19kernel_install_operations\x18\x02 \x03(\x0b\x32(.chromeos_update_engine.InstallOperationB\x02\x18\x01\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\x42\n\x0fold_kernel_info\x18\x06 \x01(\x0b\x32%.chromeos_update_engine.PartitionInfoB\x02\x18\x01\x12\x42\n\x0fnew_kernel_info\x18\x07 \x01(\x0b\x32%.chromeos_update_engine.PartitionInfoB\x02\x18\x01\x12\x42\n\x0fold_rootfs_info\x18\x08 \x01(\x0b\x32%.chromeos_update_engine.PartitionInfoB\x02\x18\x01\x12\x42\n\x0fnew_rootfs_info\x18\t \x01(\x0b\x32%.chromeos_update_engine.PartitionInfoB\x02\x18\x01\x12=\n\x0eold_image_info\x18\n \x01(\x0b\x32!.chromeos_update_engine.ImageInfoB\x02\x18\x01\x12=\n\x0enew_image_info\x18\x0b \x01(\x0b\x32!.chromeos_update_engine.ImageInfoB\x02\x18\x01\x12\x18\n\rminor_version\x18\x0c \x01(\r:\x01\x30\x12;\n\npartitions\x18\r \x03(\x0b\x32\'.chromeos_update_engine.PartitionUpdate\x12\x15\n\rmax_timestamp\x18\x0e \x01(\x03\x12T\n\x1a\x64ynamic_partition_metadata\x18\x0f \x01(\x0b\x32\x30.chromeos_update_engine.DynamicPartitionMetadata\x12\x16\n\x0epartial_update\x18\x10 \x01(\x08\x12\x33\n\tapex_info\x18\x11 \x03(\x0b\x32 .chromeos_update_engine.ApexInfoB\x02H\x03', 22 | ) 23 | 24 | 25 | _INSTALLOPERATION_TYPE = _descriptor.EnumDescriptor( 26 | name="Type", 27 | full_name="chromeos_update_engine.InstallOperation.Type", 28 | filename=None, 29 | file=DESCRIPTOR, 30 | create_key=_descriptor._internal_create_key, 31 | values=[ 32 | _descriptor.EnumValueDescriptor( 33 | name="REPLACE", 34 | index=0, 35 | number=0, 36 | serialized_options=None, 37 | type=None, 38 | create_key=_descriptor._internal_create_key, 39 | ), 40 | _descriptor.EnumValueDescriptor( 41 | name="REPLACE_BZ", 42 | index=1, 43 | number=1, 44 | serialized_options=None, 45 | type=None, 46 | create_key=_descriptor._internal_create_key, 47 | ), 48 | _descriptor.EnumValueDescriptor( 49 | name="MOVE", 50 | index=2, 51 | number=2, 52 | serialized_options=b"\010\001", 53 | type=None, 54 | create_key=_descriptor._internal_create_key, 55 | ), 56 | _descriptor.EnumValueDescriptor( 57 | name="BSDIFF", 58 | index=3, 59 | number=3, 60 | serialized_options=b"\010\001", 61 | type=None, 62 | create_key=_descriptor._internal_create_key, 63 | ), 64 | _descriptor.EnumValueDescriptor( 65 | name="SOURCE_COPY", 66 | index=4, 67 | number=4, 68 | serialized_options=None, 69 | type=None, 70 | create_key=_descriptor._internal_create_key, 71 | ), 72 | _descriptor.EnumValueDescriptor( 73 | name="SOURCE_BSDIFF", 74 | index=5, 75 | number=5, 76 | serialized_options=None, 77 | type=None, 78 | create_key=_descriptor._internal_create_key, 79 | ), 80 | _descriptor.EnumValueDescriptor( 81 | name="REPLACE_XZ", 82 | index=6, 83 | number=8, 84 | serialized_options=None, 85 | type=None, 86 | create_key=_descriptor._internal_create_key, 87 | ), 88 | _descriptor.EnumValueDescriptor( 89 | name="ZERO", 90 | index=7, 91 | number=6, 92 | serialized_options=None, 93 | type=None, 94 | create_key=_descriptor._internal_create_key, 95 | ), 96 | _descriptor.EnumValueDescriptor( 97 | name="DISCARD", 98 | index=8, 99 | number=7, 100 | serialized_options=None, 101 | type=None, 102 | create_key=_descriptor._internal_create_key, 103 | ), 104 | _descriptor.EnumValueDescriptor( 105 | name="BROTLI_BSDIFF", 106 | index=9, 107 | number=10, 108 | serialized_options=None, 109 | type=None, 110 | create_key=_descriptor._internal_create_key, 111 | ), 112 | _descriptor.EnumValueDescriptor( 113 | name="PUFFDIFF", 114 | index=10, 115 | number=9, 116 | serialized_options=None, 117 | type=None, 118 | create_key=_descriptor._internal_create_key, 119 | ), 120 | _descriptor.EnumValueDescriptor( 121 | name="ZUCCHINI", 122 | index=11, 123 | number=11, 124 | serialized_options=None, 125 | type=None, 126 | create_key=_descriptor._internal_create_key, 127 | ), 128 | _descriptor.EnumValueDescriptor( 129 | name="LZ4DIFF_BSDIFF", 130 | index=12, 131 | number=12, 132 | serialized_options=None, 133 | type=None, 134 | create_key=_descriptor._internal_create_key, 135 | ), 136 | _descriptor.EnumValueDescriptor( 137 | name="LZ4DIFF_PUFFDIFF", 138 | index=13, 139 | number=13, 140 | serialized_options=None, 141 | type=None, 142 | create_key=_descriptor._internal_create_key, 143 | ), 144 | ], 145 | containing_type=None, 146 | serialized_options=None, 147 | serialized_start=775, 148 | serialized_end=1004, 149 | ) 150 | _sym_db.RegisterEnumDescriptor(_INSTALLOPERATION_TYPE) 151 | 152 | _COWMERGEOPERATION_TYPE = _descriptor.EnumDescriptor( 153 | name="Type", 154 | full_name="chromeos_update_engine.CowMergeOperation.Type", 155 | filename=None, 156 | file=DESCRIPTOR, 157 | create_key=_descriptor._internal_create_key, 158 | values=[ 159 | _descriptor.EnumValueDescriptor( 160 | name="COW_COPY", 161 | index=0, 162 | number=0, 163 | serialized_options=None, 164 | type=None, 165 | create_key=_descriptor._internal_create_key, 166 | ), 167 | _descriptor.EnumValueDescriptor( 168 | name="COW_XOR", 169 | index=1, 170 | number=1, 171 | serialized_options=None, 172 | type=None, 173 | create_key=_descriptor._internal_create_key, 174 | ), 175 | _descriptor.EnumValueDescriptor( 176 | name="COW_REPLACE", 177 | index=2, 178 | number=2, 179 | serialized_options=None, 180 | type=None, 181 | create_key=_descriptor._internal_create_key, 182 | ), 183 | ], 184 | containing_type=None, 185 | serialized_options=None, 186 | serialized_start=1214, 187 | serialized_end=1264, 188 | ) 189 | _sym_db.RegisterEnumDescriptor(_COWMERGEOPERATION_TYPE) 190 | 191 | 192 | _EXTENT = _descriptor.Descriptor( 193 | name="Extent", 194 | full_name="chromeos_update_engine.Extent", 195 | filename=None, 196 | file=DESCRIPTOR, 197 | containing_type=None, 198 | create_key=_descriptor._internal_create_key, 199 | fields=[ 200 | _descriptor.FieldDescriptor( 201 | name="start_block", 202 | full_name="chromeos_update_engine.Extent.start_block", 203 | index=0, 204 | number=1, 205 | type=4, 206 | cpp_type=4, 207 | label=1, 208 | has_default_value=False, 209 | default_value=0, 210 | message_type=None, 211 | enum_type=None, 212 | containing_type=None, 213 | is_extension=False, 214 | extension_scope=None, 215 | serialized_options=None, 216 | file=DESCRIPTOR, 217 | create_key=_descriptor._internal_create_key, 218 | ), 219 | _descriptor.FieldDescriptor( 220 | name="num_blocks", 221 | full_name="chromeos_update_engine.Extent.num_blocks", 222 | index=1, 223 | number=2, 224 | type=4, 225 | cpp_type=4, 226 | label=1, 227 | has_default_value=False, 228 | default_value=0, 229 | message_type=None, 230 | enum_type=None, 231 | containing_type=None, 232 | is_extension=False, 233 | extension_scope=None, 234 | serialized_options=None, 235 | file=DESCRIPTOR, 236 | create_key=_descriptor._internal_create_key, 237 | ), 238 | ], 239 | extensions=[], 240 | nested_types=[], 241 | enum_types=[], 242 | serialized_options=None, 243 | is_extendable=False, 244 | syntax="proto2", 245 | extension_ranges=[], 246 | oneofs=[], 247 | serialized_start=49, 248 | serialized_end=98, 249 | ) 250 | 251 | 252 | _SIGNATURES_SIGNATURE = _descriptor.Descriptor( 253 | name="Signature", 254 | full_name="chromeos_update_engine.Signatures.Signature", 255 | filename=None, 256 | file=DESCRIPTOR, 257 | containing_type=None, 258 | create_key=_descriptor._internal_create_key, 259 | fields=[ 260 | _descriptor.FieldDescriptor( 261 | name="version", 262 | full_name="chromeos_update_engine.Signatures.Signature.version", 263 | index=0, 264 | number=1, 265 | type=13, 266 | cpp_type=3, 267 | label=1, 268 | has_default_value=False, 269 | default_value=0, 270 | message_type=None, 271 | enum_type=None, 272 | containing_type=None, 273 | is_extension=False, 274 | extension_scope=None, 275 | serialized_options=b"\030\001", 276 | file=DESCRIPTOR, 277 | create_key=_descriptor._internal_create_key, 278 | ), 279 | _descriptor.FieldDescriptor( 280 | name="data", 281 | full_name="chromeos_update_engine.Signatures.Signature.data", 282 | index=1, 283 | number=2, 284 | type=12, 285 | cpp_type=9, 286 | label=1, 287 | has_default_value=False, 288 | default_value=b"", 289 | message_type=None, 290 | enum_type=None, 291 | containing_type=None, 292 | is_extension=False, 293 | extension_scope=None, 294 | serialized_options=None, 295 | file=DESCRIPTOR, 296 | create_key=_descriptor._internal_create_key, 297 | ), 298 | _descriptor.FieldDescriptor( 299 | name="unpadded_signature_size", 300 | full_name="chromeos_update_engine.Signatures.Signature.unpadded_signature_size", 301 | index=2, 302 | number=3, 303 | type=7, 304 | cpp_type=3, 305 | label=1, 306 | has_default_value=False, 307 | default_value=0, 308 | message_type=None, 309 | enum_type=None, 310 | containing_type=None, 311 | is_extension=False, 312 | extension_scope=None, 313 | serialized_options=None, 314 | file=DESCRIPTOR, 315 | create_key=_descriptor._internal_create_key, 316 | ), 317 | ], 318 | extensions=[], 319 | nested_types=[], 320 | enum_types=[], 321 | serialized_options=None, 322 | is_extendable=False, 323 | syntax="proto2", 324 | extension_ranges=[], 325 | oneofs=[], 326 | serialized_start=181, 327 | serialized_end=260, 328 | ) 329 | 330 | _SIGNATURES = _descriptor.Descriptor( 331 | name="Signatures", 332 | full_name="chromeos_update_engine.Signatures", 333 | filename=None, 334 | file=DESCRIPTOR, 335 | containing_type=None, 336 | create_key=_descriptor._internal_create_key, 337 | fields=[ 338 | _descriptor.FieldDescriptor( 339 | name="signatures", 340 | full_name="chromeos_update_engine.Signatures.signatures", 341 | index=0, 342 | number=1, 343 | type=11, 344 | cpp_type=10, 345 | label=3, 346 | has_default_value=False, 347 | default_value=[], 348 | message_type=None, 349 | enum_type=None, 350 | containing_type=None, 351 | is_extension=False, 352 | extension_scope=None, 353 | serialized_options=None, 354 | file=DESCRIPTOR, 355 | create_key=_descriptor._internal_create_key, 356 | ), 357 | ], 358 | extensions=[], 359 | nested_types=[ 360 | _SIGNATURES_SIGNATURE, 361 | ], 362 | enum_types=[], 363 | serialized_options=None, 364 | is_extendable=False, 365 | syntax="proto2", 366 | extension_ranges=[], 367 | oneofs=[], 368 | serialized_start=101, 369 | serialized_end=260, 370 | ) 371 | 372 | 373 | _PARTITIONINFO = _descriptor.Descriptor( 374 | name="PartitionInfo", 375 | full_name="chromeos_update_engine.PartitionInfo", 376 | filename=None, 377 | file=DESCRIPTOR, 378 | containing_type=None, 379 | create_key=_descriptor._internal_create_key, 380 | fields=[ 381 | _descriptor.FieldDescriptor( 382 | name="size", 383 | full_name="chromeos_update_engine.PartitionInfo.size", 384 | index=0, 385 | number=1, 386 | type=4, 387 | cpp_type=4, 388 | label=1, 389 | has_default_value=False, 390 | default_value=0, 391 | message_type=None, 392 | enum_type=None, 393 | containing_type=None, 394 | is_extension=False, 395 | extension_scope=None, 396 | serialized_options=None, 397 | file=DESCRIPTOR, 398 | create_key=_descriptor._internal_create_key, 399 | ), 400 | _descriptor.FieldDescriptor( 401 | name="hash", 402 | full_name="chromeos_update_engine.PartitionInfo.hash", 403 | index=1, 404 | number=2, 405 | type=12, 406 | cpp_type=9, 407 | label=1, 408 | has_default_value=False, 409 | default_value=b"", 410 | message_type=None, 411 | enum_type=None, 412 | containing_type=None, 413 | is_extension=False, 414 | extension_scope=None, 415 | serialized_options=None, 416 | file=DESCRIPTOR, 417 | create_key=_descriptor._internal_create_key, 418 | ), 419 | ], 420 | extensions=[], 421 | nested_types=[], 422 | enum_types=[], 423 | serialized_options=None, 424 | is_extendable=False, 425 | syntax="proto2", 426 | extension_ranges=[], 427 | oneofs=[], 428 | serialized_start=262, 429 | serialized_end=305, 430 | ) 431 | 432 | 433 | _IMAGEINFO = _descriptor.Descriptor( 434 | name="ImageInfo", 435 | full_name="chromeos_update_engine.ImageInfo", 436 | filename=None, 437 | file=DESCRIPTOR, 438 | containing_type=None, 439 | create_key=_descriptor._internal_create_key, 440 | fields=[ 441 | _descriptor.FieldDescriptor( 442 | name="board", 443 | full_name="chromeos_update_engine.ImageInfo.board", 444 | index=0, 445 | number=1, 446 | type=9, 447 | cpp_type=9, 448 | label=1, 449 | has_default_value=False, 450 | default_value=b"".decode("utf-8"), 451 | message_type=None, 452 | enum_type=None, 453 | containing_type=None, 454 | is_extension=False, 455 | extension_scope=None, 456 | serialized_options=b"\030\001", 457 | file=DESCRIPTOR, 458 | create_key=_descriptor._internal_create_key, 459 | ), 460 | _descriptor.FieldDescriptor( 461 | name="key", 462 | full_name="chromeos_update_engine.ImageInfo.key", 463 | index=1, 464 | number=2, 465 | type=9, 466 | cpp_type=9, 467 | label=1, 468 | has_default_value=False, 469 | default_value=b"".decode("utf-8"), 470 | message_type=None, 471 | enum_type=None, 472 | containing_type=None, 473 | is_extension=False, 474 | extension_scope=None, 475 | serialized_options=b"\030\001", 476 | file=DESCRIPTOR, 477 | create_key=_descriptor._internal_create_key, 478 | ), 479 | _descriptor.FieldDescriptor( 480 | name="channel", 481 | full_name="chromeos_update_engine.ImageInfo.channel", 482 | index=2, 483 | number=3, 484 | type=9, 485 | cpp_type=9, 486 | label=1, 487 | has_default_value=False, 488 | default_value=b"".decode("utf-8"), 489 | message_type=None, 490 | enum_type=None, 491 | containing_type=None, 492 | is_extension=False, 493 | extension_scope=None, 494 | serialized_options=b"\030\001", 495 | file=DESCRIPTOR, 496 | create_key=_descriptor._internal_create_key, 497 | ), 498 | _descriptor.FieldDescriptor( 499 | name="version", 500 | full_name="chromeos_update_engine.ImageInfo.version", 501 | index=3, 502 | number=4, 503 | type=9, 504 | cpp_type=9, 505 | label=1, 506 | has_default_value=False, 507 | default_value=b"".decode("utf-8"), 508 | message_type=None, 509 | enum_type=None, 510 | containing_type=None, 511 | is_extension=False, 512 | extension_scope=None, 513 | serialized_options=b"\030\001", 514 | file=DESCRIPTOR, 515 | create_key=_descriptor._internal_create_key, 516 | ), 517 | _descriptor.FieldDescriptor( 518 | name="build_channel", 519 | full_name="chromeos_update_engine.ImageInfo.build_channel", 520 | index=4, 521 | number=5, 522 | type=9, 523 | cpp_type=9, 524 | label=1, 525 | has_default_value=False, 526 | default_value=b"".decode("utf-8"), 527 | message_type=None, 528 | enum_type=None, 529 | containing_type=None, 530 | is_extension=False, 531 | extension_scope=None, 532 | serialized_options=b"\030\001", 533 | file=DESCRIPTOR, 534 | create_key=_descriptor._internal_create_key, 535 | ), 536 | _descriptor.FieldDescriptor( 537 | name="build_version", 538 | full_name="chromeos_update_engine.ImageInfo.build_version", 539 | index=5, 540 | number=6, 541 | type=9, 542 | cpp_type=9, 543 | label=1, 544 | has_default_value=False, 545 | default_value=b"".decode("utf-8"), 546 | message_type=None, 547 | enum_type=None, 548 | containing_type=None, 549 | is_extension=False, 550 | extension_scope=None, 551 | serialized_options=b"\030\001", 552 | file=DESCRIPTOR, 553 | create_key=_descriptor._internal_create_key, 554 | ), 555 | ], 556 | extensions=[], 557 | nested_types=[], 558 | enum_types=[], 559 | serialized_options=None, 560 | is_extendable=False, 561 | syntax="proto2", 562 | extension_ranges=[], 563 | oneofs=[], 564 | serialized_start=308, 565 | serialized_end=451, 566 | ) 567 | 568 | 569 | _INSTALLOPERATION = _descriptor.Descriptor( 570 | name="InstallOperation", 571 | full_name="chromeos_update_engine.InstallOperation", 572 | filename=None, 573 | file=DESCRIPTOR, 574 | containing_type=None, 575 | create_key=_descriptor._internal_create_key, 576 | fields=[ 577 | _descriptor.FieldDescriptor( 578 | name="type", 579 | full_name="chromeos_update_engine.InstallOperation.type", 580 | index=0, 581 | number=1, 582 | type=14, 583 | cpp_type=8, 584 | label=2, 585 | has_default_value=False, 586 | default_value=0, 587 | message_type=None, 588 | enum_type=None, 589 | containing_type=None, 590 | is_extension=False, 591 | extension_scope=None, 592 | serialized_options=None, 593 | file=DESCRIPTOR, 594 | create_key=_descriptor._internal_create_key, 595 | ), 596 | _descriptor.FieldDescriptor( 597 | name="data_offset", 598 | full_name="chromeos_update_engine.InstallOperation.data_offset", 599 | index=1, 600 | number=2, 601 | type=4, 602 | cpp_type=4, 603 | label=1, 604 | has_default_value=False, 605 | default_value=0, 606 | message_type=None, 607 | enum_type=None, 608 | containing_type=None, 609 | is_extension=False, 610 | extension_scope=None, 611 | serialized_options=None, 612 | file=DESCRIPTOR, 613 | create_key=_descriptor._internal_create_key, 614 | ), 615 | _descriptor.FieldDescriptor( 616 | name="data_length", 617 | full_name="chromeos_update_engine.InstallOperation.data_length", 618 | index=2, 619 | number=3, 620 | type=4, 621 | cpp_type=4, 622 | label=1, 623 | has_default_value=False, 624 | default_value=0, 625 | message_type=None, 626 | enum_type=None, 627 | containing_type=None, 628 | is_extension=False, 629 | extension_scope=None, 630 | serialized_options=None, 631 | file=DESCRIPTOR, 632 | create_key=_descriptor._internal_create_key, 633 | ), 634 | _descriptor.FieldDescriptor( 635 | name="src_extents", 636 | full_name="chromeos_update_engine.InstallOperation.src_extents", 637 | index=3, 638 | number=4, 639 | type=11, 640 | cpp_type=10, 641 | label=3, 642 | has_default_value=False, 643 | default_value=[], 644 | message_type=None, 645 | enum_type=None, 646 | containing_type=None, 647 | is_extension=False, 648 | extension_scope=None, 649 | serialized_options=None, 650 | file=DESCRIPTOR, 651 | create_key=_descriptor._internal_create_key, 652 | ), 653 | _descriptor.FieldDescriptor( 654 | name="src_length", 655 | full_name="chromeos_update_engine.InstallOperation.src_length", 656 | index=4, 657 | number=5, 658 | type=4, 659 | cpp_type=4, 660 | label=1, 661 | has_default_value=False, 662 | default_value=0, 663 | message_type=None, 664 | enum_type=None, 665 | containing_type=None, 666 | is_extension=False, 667 | extension_scope=None, 668 | serialized_options=None, 669 | file=DESCRIPTOR, 670 | create_key=_descriptor._internal_create_key, 671 | ), 672 | _descriptor.FieldDescriptor( 673 | name="dst_extents", 674 | full_name="chromeos_update_engine.InstallOperation.dst_extents", 675 | index=5, 676 | number=6, 677 | type=11, 678 | cpp_type=10, 679 | label=3, 680 | has_default_value=False, 681 | default_value=[], 682 | message_type=None, 683 | enum_type=None, 684 | containing_type=None, 685 | is_extension=False, 686 | extension_scope=None, 687 | serialized_options=None, 688 | file=DESCRIPTOR, 689 | create_key=_descriptor._internal_create_key, 690 | ), 691 | _descriptor.FieldDescriptor( 692 | name="dst_length", 693 | full_name="chromeos_update_engine.InstallOperation.dst_length", 694 | index=6, 695 | number=7, 696 | type=4, 697 | cpp_type=4, 698 | label=1, 699 | has_default_value=False, 700 | default_value=0, 701 | message_type=None, 702 | enum_type=None, 703 | containing_type=None, 704 | is_extension=False, 705 | extension_scope=None, 706 | serialized_options=None, 707 | file=DESCRIPTOR, 708 | create_key=_descriptor._internal_create_key, 709 | ), 710 | _descriptor.FieldDescriptor( 711 | name="data_sha256_hash", 712 | full_name="chromeos_update_engine.InstallOperation.data_sha256_hash", 713 | index=7, 714 | number=8, 715 | type=12, 716 | cpp_type=9, 717 | label=1, 718 | has_default_value=False, 719 | default_value=b"", 720 | message_type=None, 721 | enum_type=None, 722 | containing_type=None, 723 | is_extension=False, 724 | extension_scope=None, 725 | serialized_options=None, 726 | file=DESCRIPTOR, 727 | create_key=_descriptor._internal_create_key, 728 | ), 729 | _descriptor.FieldDescriptor( 730 | name="src_sha256_hash", 731 | full_name="chromeos_update_engine.InstallOperation.src_sha256_hash", 732 | index=8, 733 | number=9, 734 | type=12, 735 | cpp_type=9, 736 | label=1, 737 | has_default_value=False, 738 | default_value=b"", 739 | message_type=None, 740 | enum_type=None, 741 | containing_type=None, 742 | is_extension=False, 743 | extension_scope=None, 744 | serialized_options=None, 745 | file=DESCRIPTOR, 746 | create_key=_descriptor._internal_create_key, 747 | ), 748 | ], 749 | extensions=[], 750 | nested_types=[], 751 | enum_types=[ 752 | _INSTALLOPERATION_TYPE, 753 | ], 754 | serialized_options=None, 755 | is_extendable=False, 756 | syntax="proto2", 757 | extension_ranges=[], 758 | oneofs=[], 759 | serialized_start=454, 760 | serialized_end=1004, 761 | ) 762 | 763 | 764 | _COWMERGEOPERATION = _descriptor.Descriptor( 765 | name="CowMergeOperation", 766 | full_name="chromeos_update_engine.CowMergeOperation", 767 | filename=None, 768 | file=DESCRIPTOR, 769 | containing_type=None, 770 | create_key=_descriptor._internal_create_key, 771 | fields=[ 772 | _descriptor.FieldDescriptor( 773 | name="type", 774 | full_name="chromeos_update_engine.CowMergeOperation.type", 775 | index=0, 776 | number=1, 777 | type=14, 778 | cpp_type=8, 779 | label=1, 780 | has_default_value=False, 781 | default_value=0, 782 | message_type=None, 783 | enum_type=None, 784 | containing_type=None, 785 | is_extension=False, 786 | extension_scope=None, 787 | serialized_options=None, 788 | file=DESCRIPTOR, 789 | create_key=_descriptor._internal_create_key, 790 | ), 791 | _descriptor.FieldDescriptor( 792 | name="src_extent", 793 | full_name="chromeos_update_engine.CowMergeOperation.src_extent", 794 | index=1, 795 | number=2, 796 | type=11, 797 | cpp_type=10, 798 | label=1, 799 | has_default_value=False, 800 | default_value=None, 801 | message_type=None, 802 | enum_type=None, 803 | containing_type=None, 804 | is_extension=False, 805 | extension_scope=None, 806 | serialized_options=None, 807 | file=DESCRIPTOR, 808 | create_key=_descriptor._internal_create_key, 809 | ), 810 | _descriptor.FieldDescriptor( 811 | name="dst_extent", 812 | full_name="chromeos_update_engine.CowMergeOperation.dst_extent", 813 | index=2, 814 | number=3, 815 | type=11, 816 | cpp_type=10, 817 | label=1, 818 | has_default_value=False, 819 | default_value=None, 820 | message_type=None, 821 | enum_type=None, 822 | containing_type=None, 823 | is_extension=False, 824 | extension_scope=None, 825 | serialized_options=None, 826 | file=DESCRIPTOR, 827 | create_key=_descriptor._internal_create_key, 828 | ), 829 | _descriptor.FieldDescriptor( 830 | name="src_offset", 831 | full_name="chromeos_update_engine.CowMergeOperation.src_offset", 832 | index=3, 833 | number=4, 834 | type=13, 835 | cpp_type=3, 836 | label=1, 837 | has_default_value=False, 838 | default_value=0, 839 | message_type=None, 840 | enum_type=None, 841 | containing_type=None, 842 | is_extension=False, 843 | extension_scope=None, 844 | serialized_options=None, 845 | file=DESCRIPTOR, 846 | create_key=_descriptor._internal_create_key, 847 | ), 848 | ], 849 | extensions=[], 850 | nested_types=[], 851 | enum_types=[ 852 | _COWMERGEOPERATION_TYPE, 853 | ], 854 | serialized_options=None, 855 | is_extendable=False, 856 | syntax="proto2", 857 | extension_ranges=[], 858 | oneofs=[], 859 | serialized_start=1007, 860 | serialized_end=1264, 861 | ) 862 | 863 | 864 | _PARTITIONUPDATE = _descriptor.Descriptor( 865 | name="PartitionUpdate", 866 | full_name="chromeos_update_engine.PartitionUpdate", 867 | filename=None, 868 | file=DESCRIPTOR, 869 | containing_type=None, 870 | create_key=_descriptor._internal_create_key, 871 | fields=[ 872 | _descriptor.FieldDescriptor( 873 | name="partition_name", 874 | full_name="chromeos_update_engine.PartitionUpdate.partition_name", 875 | index=0, 876 | number=1, 877 | type=9, 878 | cpp_type=9, 879 | label=2, 880 | has_default_value=False, 881 | default_value=b"".decode("utf-8"), 882 | message_type=None, 883 | enum_type=None, 884 | containing_type=None, 885 | is_extension=False, 886 | extension_scope=None, 887 | serialized_options=None, 888 | file=DESCRIPTOR, 889 | create_key=_descriptor._internal_create_key, 890 | ), 891 | _descriptor.FieldDescriptor( 892 | name="run_postinstall", 893 | full_name="chromeos_update_engine.PartitionUpdate.run_postinstall", 894 | index=1, 895 | number=2, 896 | type=8, 897 | cpp_type=7, 898 | label=1, 899 | has_default_value=False, 900 | default_value=False, 901 | message_type=None, 902 | enum_type=None, 903 | containing_type=None, 904 | is_extension=False, 905 | extension_scope=None, 906 | serialized_options=None, 907 | file=DESCRIPTOR, 908 | create_key=_descriptor._internal_create_key, 909 | ), 910 | _descriptor.FieldDescriptor( 911 | name="postinstall_path", 912 | full_name="chromeos_update_engine.PartitionUpdate.postinstall_path", 913 | index=2, 914 | number=3, 915 | type=9, 916 | cpp_type=9, 917 | label=1, 918 | has_default_value=False, 919 | default_value=b"".decode("utf-8"), 920 | message_type=None, 921 | enum_type=None, 922 | containing_type=None, 923 | is_extension=False, 924 | extension_scope=None, 925 | serialized_options=None, 926 | file=DESCRIPTOR, 927 | create_key=_descriptor._internal_create_key, 928 | ), 929 | _descriptor.FieldDescriptor( 930 | name="filesystem_type", 931 | full_name="chromeos_update_engine.PartitionUpdate.filesystem_type", 932 | index=3, 933 | number=4, 934 | type=9, 935 | cpp_type=9, 936 | label=1, 937 | has_default_value=False, 938 | default_value=b"".decode("utf-8"), 939 | message_type=None, 940 | enum_type=None, 941 | containing_type=None, 942 | is_extension=False, 943 | extension_scope=None, 944 | serialized_options=None, 945 | file=DESCRIPTOR, 946 | create_key=_descriptor._internal_create_key, 947 | ), 948 | _descriptor.FieldDescriptor( 949 | name="new_partition_signature", 950 | full_name="chromeos_update_engine.PartitionUpdate.new_partition_signature", 951 | index=4, 952 | number=5, 953 | type=11, 954 | cpp_type=10, 955 | label=3, 956 | has_default_value=False, 957 | default_value=[], 958 | message_type=None, 959 | enum_type=None, 960 | containing_type=None, 961 | is_extension=False, 962 | extension_scope=None, 963 | serialized_options=None, 964 | file=DESCRIPTOR, 965 | create_key=_descriptor._internal_create_key, 966 | ), 967 | _descriptor.FieldDescriptor( 968 | name="old_partition_info", 969 | full_name="chromeos_update_engine.PartitionUpdate.old_partition_info", 970 | index=5, 971 | number=6, 972 | type=11, 973 | cpp_type=10, 974 | label=1, 975 | has_default_value=False, 976 | default_value=None, 977 | message_type=None, 978 | enum_type=None, 979 | containing_type=None, 980 | is_extension=False, 981 | extension_scope=None, 982 | serialized_options=None, 983 | file=DESCRIPTOR, 984 | create_key=_descriptor._internal_create_key, 985 | ), 986 | _descriptor.FieldDescriptor( 987 | name="new_partition_info", 988 | full_name="chromeos_update_engine.PartitionUpdate.new_partition_info", 989 | index=6, 990 | number=7, 991 | type=11, 992 | cpp_type=10, 993 | label=1, 994 | has_default_value=False, 995 | default_value=None, 996 | message_type=None, 997 | enum_type=None, 998 | containing_type=None, 999 | is_extension=False, 1000 | extension_scope=None, 1001 | serialized_options=None, 1002 | file=DESCRIPTOR, 1003 | create_key=_descriptor._internal_create_key, 1004 | ), 1005 | _descriptor.FieldDescriptor( 1006 | name="operations", 1007 | full_name="chromeos_update_engine.PartitionUpdate.operations", 1008 | index=7, 1009 | number=8, 1010 | type=11, 1011 | cpp_type=10, 1012 | label=3, 1013 | has_default_value=False, 1014 | default_value=[], 1015 | message_type=None, 1016 | enum_type=None, 1017 | containing_type=None, 1018 | is_extension=False, 1019 | extension_scope=None, 1020 | serialized_options=None, 1021 | file=DESCRIPTOR, 1022 | create_key=_descriptor._internal_create_key, 1023 | ), 1024 | _descriptor.FieldDescriptor( 1025 | name="postinstall_optional", 1026 | full_name="chromeos_update_engine.PartitionUpdate.postinstall_optional", 1027 | index=8, 1028 | number=9, 1029 | type=8, 1030 | cpp_type=7, 1031 | label=1, 1032 | has_default_value=False, 1033 | default_value=False, 1034 | message_type=None, 1035 | enum_type=None, 1036 | containing_type=None, 1037 | is_extension=False, 1038 | extension_scope=None, 1039 | serialized_options=None, 1040 | file=DESCRIPTOR, 1041 | create_key=_descriptor._internal_create_key, 1042 | ), 1043 | _descriptor.FieldDescriptor( 1044 | name="hash_tree_data_extent", 1045 | full_name="chromeos_update_engine.PartitionUpdate.hash_tree_data_extent", 1046 | index=9, 1047 | number=10, 1048 | type=11, 1049 | cpp_type=10, 1050 | label=1, 1051 | has_default_value=False, 1052 | default_value=None, 1053 | message_type=None, 1054 | enum_type=None, 1055 | containing_type=None, 1056 | is_extension=False, 1057 | extension_scope=None, 1058 | serialized_options=None, 1059 | file=DESCRIPTOR, 1060 | create_key=_descriptor._internal_create_key, 1061 | ), 1062 | _descriptor.FieldDescriptor( 1063 | name="hash_tree_extent", 1064 | full_name="chromeos_update_engine.PartitionUpdate.hash_tree_extent", 1065 | index=10, 1066 | number=11, 1067 | type=11, 1068 | cpp_type=10, 1069 | label=1, 1070 | has_default_value=False, 1071 | default_value=None, 1072 | message_type=None, 1073 | enum_type=None, 1074 | containing_type=None, 1075 | is_extension=False, 1076 | extension_scope=None, 1077 | serialized_options=None, 1078 | file=DESCRIPTOR, 1079 | create_key=_descriptor._internal_create_key, 1080 | ), 1081 | _descriptor.FieldDescriptor( 1082 | name="hash_tree_algorithm", 1083 | full_name="chromeos_update_engine.PartitionUpdate.hash_tree_algorithm", 1084 | index=11, 1085 | number=12, 1086 | type=9, 1087 | cpp_type=9, 1088 | label=1, 1089 | has_default_value=False, 1090 | default_value=b"".decode("utf-8"), 1091 | message_type=None, 1092 | enum_type=None, 1093 | containing_type=None, 1094 | is_extension=False, 1095 | extension_scope=None, 1096 | serialized_options=None, 1097 | file=DESCRIPTOR, 1098 | create_key=_descriptor._internal_create_key, 1099 | ), 1100 | _descriptor.FieldDescriptor( 1101 | name="hash_tree_salt", 1102 | full_name="chromeos_update_engine.PartitionUpdate.hash_tree_salt", 1103 | index=12, 1104 | number=13, 1105 | type=12, 1106 | cpp_type=9, 1107 | label=1, 1108 | has_default_value=False, 1109 | default_value=b"", 1110 | message_type=None, 1111 | enum_type=None, 1112 | containing_type=None, 1113 | is_extension=False, 1114 | extension_scope=None, 1115 | serialized_options=None, 1116 | file=DESCRIPTOR, 1117 | create_key=_descriptor._internal_create_key, 1118 | ), 1119 | _descriptor.FieldDescriptor( 1120 | name="fec_data_extent", 1121 | full_name="chromeos_update_engine.PartitionUpdate.fec_data_extent", 1122 | index=13, 1123 | number=14, 1124 | type=11, 1125 | cpp_type=10, 1126 | label=1, 1127 | has_default_value=False, 1128 | default_value=None, 1129 | message_type=None, 1130 | enum_type=None, 1131 | containing_type=None, 1132 | is_extension=False, 1133 | extension_scope=None, 1134 | serialized_options=None, 1135 | file=DESCRIPTOR, 1136 | create_key=_descriptor._internal_create_key, 1137 | ), 1138 | _descriptor.FieldDescriptor( 1139 | name="fec_extent", 1140 | full_name="chromeos_update_engine.PartitionUpdate.fec_extent", 1141 | index=14, 1142 | number=15, 1143 | type=11, 1144 | cpp_type=10, 1145 | label=1, 1146 | has_default_value=False, 1147 | default_value=None, 1148 | message_type=None, 1149 | enum_type=None, 1150 | containing_type=None, 1151 | is_extension=False, 1152 | extension_scope=None, 1153 | serialized_options=None, 1154 | file=DESCRIPTOR, 1155 | create_key=_descriptor._internal_create_key, 1156 | ), 1157 | _descriptor.FieldDescriptor( 1158 | name="fec_roots", 1159 | full_name="chromeos_update_engine.PartitionUpdate.fec_roots", 1160 | index=15, 1161 | number=16, 1162 | type=13, 1163 | cpp_type=3, 1164 | label=1, 1165 | has_default_value=True, 1166 | default_value=2, 1167 | message_type=None, 1168 | enum_type=None, 1169 | containing_type=None, 1170 | is_extension=False, 1171 | extension_scope=None, 1172 | serialized_options=None, 1173 | file=DESCRIPTOR, 1174 | create_key=_descriptor._internal_create_key, 1175 | ), 1176 | _descriptor.FieldDescriptor( 1177 | name="version", 1178 | full_name="chromeos_update_engine.PartitionUpdate.version", 1179 | index=16, 1180 | number=17, 1181 | type=9, 1182 | cpp_type=9, 1183 | label=1, 1184 | has_default_value=False, 1185 | default_value=b"".decode("utf-8"), 1186 | message_type=None, 1187 | enum_type=None, 1188 | containing_type=None, 1189 | is_extension=False, 1190 | extension_scope=None, 1191 | serialized_options=None, 1192 | file=DESCRIPTOR, 1193 | create_key=_descriptor._internal_create_key, 1194 | ), 1195 | _descriptor.FieldDescriptor( 1196 | name="merge_operations", 1197 | full_name="chromeos_update_engine.PartitionUpdate.merge_operations", 1198 | index=17, 1199 | number=18, 1200 | type=11, 1201 | cpp_type=10, 1202 | label=3, 1203 | has_default_value=False, 1204 | default_value=[], 1205 | message_type=None, 1206 | enum_type=None, 1207 | containing_type=None, 1208 | is_extension=False, 1209 | extension_scope=None, 1210 | serialized_options=None, 1211 | file=DESCRIPTOR, 1212 | create_key=_descriptor._internal_create_key, 1213 | ), 1214 | _descriptor.FieldDescriptor( 1215 | name="estimate_cow_size", 1216 | full_name="chromeos_update_engine.PartitionUpdate.estimate_cow_size", 1217 | index=18, 1218 | number=19, 1219 | type=4, 1220 | cpp_type=4, 1221 | label=1, 1222 | has_default_value=False, 1223 | default_value=0, 1224 | message_type=None, 1225 | enum_type=None, 1226 | containing_type=None, 1227 | is_extension=False, 1228 | extension_scope=None, 1229 | serialized_options=None, 1230 | file=DESCRIPTOR, 1231 | create_key=_descriptor._internal_create_key, 1232 | ), 1233 | ], 1234 | extensions=[], 1235 | nested_types=[], 1236 | enum_types=[], 1237 | serialized_options=None, 1238 | is_extendable=False, 1239 | syntax="proto2", 1240 | extension_ranges=[], 1241 | oneofs=[], 1242 | serialized_start=1267, 1243 | serialized_end=2107, 1244 | ) 1245 | 1246 | 1247 | _DYNAMICPARTITIONGROUP = _descriptor.Descriptor( 1248 | name="DynamicPartitionGroup", 1249 | full_name="chromeos_update_engine.DynamicPartitionGroup", 1250 | filename=None, 1251 | file=DESCRIPTOR, 1252 | containing_type=None, 1253 | create_key=_descriptor._internal_create_key, 1254 | fields=[ 1255 | _descriptor.FieldDescriptor( 1256 | name="name", 1257 | full_name="chromeos_update_engine.DynamicPartitionGroup.name", 1258 | index=0, 1259 | number=1, 1260 | type=9, 1261 | cpp_type=9, 1262 | label=2, 1263 | has_default_value=False, 1264 | default_value=b"".decode("utf-8"), 1265 | message_type=None, 1266 | enum_type=None, 1267 | containing_type=None, 1268 | is_extension=False, 1269 | extension_scope=None, 1270 | serialized_options=None, 1271 | file=DESCRIPTOR, 1272 | create_key=_descriptor._internal_create_key, 1273 | ), 1274 | _descriptor.FieldDescriptor( 1275 | name="size", 1276 | full_name="chromeos_update_engine.DynamicPartitionGroup.size", 1277 | index=1, 1278 | number=2, 1279 | type=4, 1280 | cpp_type=4, 1281 | label=1, 1282 | has_default_value=False, 1283 | default_value=0, 1284 | message_type=None, 1285 | enum_type=None, 1286 | containing_type=None, 1287 | is_extension=False, 1288 | extension_scope=None, 1289 | serialized_options=None, 1290 | file=DESCRIPTOR, 1291 | create_key=_descriptor._internal_create_key, 1292 | ), 1293 | _descriptor.FieldDescriptor( 1294 | name="partition_names", 1295 | full_name="chromeos_update_engine.DynamicPartitionGroup.partition_names", 1296 | index=2, 1297 | number=3, 1298 | type=9, 1299 | cpp_type=9, 1300 | label=3, 1301 | has_default_value=False, 1302 | default_value=[], 1303 | message_type=None, 1304 | enum_type=None, 1305 | containing_type=None, 1306 | is_extension=False, 1307 | extension_scope=None, 1308 | serialized_options=None, 1309 | file=DESCRIPTOR, 1310 | create_key=_descriptor._internal_create_key, 1311 | ), 1312 | ], 1313 | extensions=[], 1314 | nested_types=[], 1315 | enum_types=[], 1316 | serialized_options=None, 1317 | is_extendable=False, 1318 | syntax="proto2", 1319 | extension_ranges=[], 1320 | oneofs=[], 1321 | serialized_start=2109, 1322 | serialized_end=2185, 1323 | ) 1324 | 1325 | 1326 | _DYNAMICPARTITIONMETADATA = _descriptor.Descriptor( 1327 | name="DynamicPartitionMetadata", 1328 | full_name="chromeos_update_engine.DynamicPartitionMetadata", 1329 | filename=None, 1330 | file=DESCRIPTOR, 1331 | containing_type=None, 1332 | create_key=_descriptor._internal_create_key, 1333 | fields=[ 1334 | _descriptor.FieldDescriptor( 1335 | name="groups", 1336 | full_name="chromeos_update_engine.DynamicPartitionMetadata.groups", 1337 | index=0, 1338 | number=1, 1339 | type=11, 1340 | cpp_type=10, 1341 | label=3, 1342 | has_default_value=False, 1343 | default_value=[], 1344 | message_type=None, 1345 | enum_type=None, 1346 | containing_type=None, 1347 | is_extension=False, 1348 | extension_scope=None, 1349 | serialized_options=None, 1350 | file=DESCRIPTOR, 1351 | create_key=_descriptor._internal_create_key, 1352 | ), 1353 | _descriptor.FieldDescriptor( 1354 | name="snapshot_enabled", 1355 | full_name="chromeos_update_engine.DynamicPartitionMetadata.snapshot_enabled", 1356 | index=1, 1357 | number=2, 1358 | type=8, 1359 | cpp_type=7, 1360 | label=1, 1361 | has_default_value=False, 1362 | default_value=False, 1363 | message_type=None, 1364 | enum_type=None, 1365 | containing_type=None, 1366 | is_extension=False, 1367 | extension_scope=None, 1368 | serialized_options=None, 1369 | file=DESCRIPTOR, 1370 | create_key=_descriptor._internal_create_key, 1371 | ), 1372 | _descriptor.FieldDescriptor( 1373 | name="vabc_enabled", 1374 | full_name="chromeos_update_engine.DynamicPartitionMetadata.vabc_enabled", 1375 | index=2, 1376 | number=3, 1377 | type=8, 1378 | cpp_type=7, 1379 | label=1, 1380 | has_default_value=False, 1381 | default_value=False, 1382 | message_type=None, 1383 | enum_type=None, 1384 | containing_type=None, 1385 | is_extension=False, 1386 | extension_scope=None, 1387 | serialized_options=None, 1388 | file=DESCRIPTOR, 1389 | create_key=_descriptor._internal_create_key, 1390 | ), 1391 | _descriptor.FieldDescriptor( 1392 | name="vabc_compression_param", 1393 | full_name="chromeos_update_engine.DynamicPartitionMetadata.vabc_compression_param", 1394 | index=3, 1395 | number=4, 1396 | type=9, 1397 | cpp_type=9, 1398 | label=1, 1399 | has_default_value=False, 1400 | default_value=b"".decode("utf-8"), 1401 | message_type=None, 1402 | enum_type=None, 1403 | containing_type=None, 1404 | is_extension=False, 1405 | extension_scope=None, 1406 | serialized_options=None, 1407 | file=DESCRIPTOR, 1408 | create_key=_descriptor._internal_create_key, 1409 | ), 1410 | _descriptor.FieldDescriptor( 1411 | name="cow_version", 1412 | full_name="chromeos_update_engine.DynamicPartitionMetadata.cow_version", 1413 | index=4, 1414 | number=5, 1415 | type=13, 1416 | cpp_type=3, 1417 | label=1, 1418 | has_default_value=False, 1419 | default_value=0, 1420 | message_type=None, 1421 | enum_type=None, 1422 | containing_type=None, 1423 | is_extension=False, 1424 | extension_scope=None, 1425 | serialized_options=None, 1426 | file=DESCRIPTOR, 1427 | create_key=_descriptor._internal_create_key, 1428 | ), 1429 | ], 1430 | extensions=[], 1431 | nested_types=[], 1432 | enum_types=[], 1433 | serialized_options=None, 1434 | is_extendable=False, 1435 | syntax="proto2", 1436 | extension_ranges=[], 1437 | oneofs=[], 1438 | serialized_start=2188, 1439 | serialized_end=2378, 1440 | ) 1441 | 1442 | 1443 | _APEXINFO = _descriptor.Descriptor( 1444 | name="ApexInfo", 1445 | full_name="chromeos_update_engine.ApexInfo", 1446 | filename=None, 1447 | file=DESCRIPTOR, 1448 | containing_type=None, 1449 | create_key=_descriptor._internal_create_key, 1450 | fields=[ 1451 | _descriptor.FieldDescriptor( 1452 | name="package_name", 1453 | full_name="chromeos_update_engine.ApexInfo.package_name", 1454 | index=0, 1455 | number=1, 1456 | type=9, 1457 | cpp_type=9, 1458 | label=1, 1459 | has_default_value=False, 1460 | default_value=b"".decode("utf-8"), 1461 | message_type=None, 1462 | enum_type=None, 1463 | containing_type=None, 1464 | is_extension=False, 1465 | extension_scope=None, 1466 | serialized_options=None, 1467 | file=DESCRIPTOR, 1468 | create_key=_descriptor._internal_create_key, 1469 | ), 1470 | _descriptor.FieldDescriptor( 1471 | name="version", 1472 | full_name="chromeos_update_engine.ApexInfo.version", 1473 | index=1, 1474 | number=2, 1475 | type=3, 1476 | cpp_type=2, 1477 | label=1, 1478 | has_default_value=False, 1479 | default_value=0, 1480 | message_type=None, 1481 | enum_type=None, 1482 | containing_type=None, 1483 | is_extension=False, 1484 | extension_scope=None, 1485 | serialized_options=None, 1486 | file=DESCRIPTOR, 1487 | create_key=_descriptor._internal_create_key, 1488 | ), 1489 | _descriptor.FieldDescriptor( 1490 | name="is_compressed", 1491 | full_name="chromeos_update_engine.ApexInfo.is_compressed", 1492 | index=2, 1493 | number=3, 1494 | type=8, 1495 | cpp_type=7, 1496 | label=1, 1497 | has_default_value=False, 1498 | default_value=False, 1499 | message_type=None, 1500 | enum_type=None, 1501 | containing_type=None, 1502 | is_extension=False, 1503 | extension_scope=None, 1504 | serialized_options=None, 1505 | file=DESCRIPTOR, 1506 | create_key=_descriptor._internal_create_key, 1507 | ), 1508 | _descriptor.FieldDescriptor( 1509 | name="decompressed_size", 1510 | full_name="chromeos_update_engine.ApexInfo.decompressed_size", 1511 | index=3, 1512 | number=4, 1513 | type=3, 1514 | cpp_type=2, 1515 | label=1, 1516 | has_default_value=False, 1517 | default_value=0, 1518 | message_type=None, 1519 | enum_type=None, 1520 | containing_type=None, 1521 | is_extension=False, 1522 | extension_scope=None, 1523 | serialized_options=None, 1524 | file=DESCRIPTOR, 1525 | create_key=_descriptor._internal_create_key, 1526 | ), 1527 | ], 1528 | extensions=[], 1529 | nested_types=[], 1530 | enum_types=[], 1531 | serialized_options=None, 1532 | is_extendable=False, 1533 | syntax="proto2", 1534 | extension_ranges=[], 1535 | oneofs=[], 1536 | serialized_start=2380, 1537 | serialized_end=2479, 1538 | ) 1539 | 1540 | 1541 | _APEXMETADATA = _descriptor.Descriptor( 1542 | name="ApexMetadata", 1543 | full_name="chromeos_update_engine.ApexMetadata", 1544 | filename=None, 1545 | file=DESCRIPTOR, 1546 | containing_type=None, 1547 | create_key=_descriptor._internal_create_key, 1548 | fields=[ 1549 | _descriptor.FieldDescriptor( 1550 | name="apex_info", 1551 | full_name="chromeos_update_engine.ApexMetadata.apex_info", 1552 | index=0, 1553 | number=1, 1554 | type=11, 1555 | cpp_type=10, 1556 | label=3, 1557 | has_default_value=False, 1558 | default_value=[], 1559 | message_type=None, 1560 | enum_type=None, 1561 | containing_type=None, 1562 | is_extension=False, 1563 | extension_scope=None, 1564 | serialized_options=None, 1565 | file=DESCRIPTOR, 1566 | create_key=_descriptor._internal_create_key, 1567 | ), 1568 | ], 1569 | extensions=[], 1570 | nested_types=[], 1571 | enum_types=[], 1572 | serialized_options=None, 1573 | is_extendable=False, 1574 | syntax="proto2", 1575 | extension_ranges=[], 1576 | oneofs=[], 1577 | serialized_start=2481, 1578 | serialized_end=2548, 1579 | ) 1580 | 1581 | 1582 | _DELTAARCHIVEMANIFEST = _descriptor.Descriptor( 1583 | name="DeltaArchiveManifest", 1584 | full_name="chromeos_update_engine.DeltaArchiveManifest", 1585 | filename=None, 1586 | file=DESCRIPTOR, 1587 | containing_type=None, 1588 | create_key=_descriptor._internal_create_key, 1589 | fields=[ 1590 | _descriptor.FieldDescriptor( 1591 | name="install_operations", 1592 | full_name="chromeos_update_engine.DeltaArchiveManifest.install_operations", 1593 | index=0, 1594 | number=1, 1595 | type=11, 1596 | cpp_type=10, 1597 | label=3, 1598 | has_default_value=False, 1599 | default_value=[], 1600 | message_type=None, 1601 | enum_type=None, 1602 | containing_type=None, 1603 | is_extension=False, 1604 | extension_scope=None, 1605 | serialized_options=b"\030\001", 1606 | file=DESCRIPTOR, 1607 | create_key=_descriptor._internal_create_key, 1608 | ), 1609 | _descriptor.FieldDescriptor( 1610 | name="kernel_install_operations", 1611 | full_name="chromeos_update_engine.DeltaArchiveManifest.kernel_install_operations", 1612 | index=1, 1613 | number=2, 1614 | type=11, 1615 | cpp_type=10, 1616 | label=3, 1617 | has_default_value=False, 1618 | default_value=[], 1619 | message_type=None, 1620 | enum_type=None, 1621 | containing_type=None, 1622 | is_extension=False, 1623 | extension_scope=None, 1624 | serialized_options=b"\030\001", 1625 | file=DESCRIPTOR, 1626 | create_key=_descriptor._internal_create_key, 1627 | ), 1628 | _descriptor.FieldDescriptor( 1629 | name="block_size", 1630 | full_name="chromeos_update_engine.DeltaArchiveManifest.block_size", 1631 | index=2, 1632 | number=3, 1633 | type=13, 1634 | cpp_type=3, 1635 | label=1, 1636 | has_default_value=True, 1637 | default_value=4096, 1638 | message_type=None, 1639 | enum_type=None, 1640 | containing_type=None, 1641 | is_extension=False, 1642 | extension_scope=None, 1643 | serialized_options=None, 1644 | file=DESCRIPTOR, 1645 | create_key=_descriptor._internal_create_key, 1646 | ), 1647 | _descriptor.FieldDescriptor( 1648 | name="signatures_offset", 1649 | full_name="chromeos_update_engine.DeltaArchiveManifest.signatures_offset", 1650 | index=3, 1651 | number=4, 1652 | type=4, 1653 | cpp_type=4, 1654 | label=1, 1655 | has_default_value=False, 1656 | default_value=0, 1657 | message_type=None, 1658 | enum_type=None, 1659 | containing_type=None, 1660 | is_extension=False, 1661 | extension_scope=None, 1662 | serialized_options=None, 1663 | file=DESCRIPTOR, 1664 | create_key=_descriptor._internal_create_key, 1665 | ), 1666 | _descriptor.FieldDescriptor( 1667 | name="signatures_size", 1668 | full_name="chromeos_update_engine.DeltaArchiveManifest.signatures_size", 1669 | index=4, 1670 | number=5, 1671 | type=4, 1672 | cpp_type=4, 1673 | label=1, 1674 | has_default_value=False, 1675 | default_value=0, 1676 | message_type=None, 1677 | enum_type=None, 1678 | containing_type=None, 1679 | is_extension=False, 1680 | extension_scope=None, 1681 | serialized_options=None, 1682 | file=DESCRIPTOR, 1683 | create_key=_descriptor._internal_create_key, 1684 | ), 1685 | _descriptor.FieldDescriptor( 1686 | name="old_kernel_info", 1687 | full_name="chromeos_update_engine.DeltaArchiveManifest.old_kernel_info", 1688 | index=5, 1689 | number=6, 1690 | type=11, 1691 | cpp_type=10, 1692 | label=1, 1693 | has_default_value=False, 1694 | default_value=None, 1695 | message_type=None, 1696 | enum_type=None, 1697 | containing_type=None, 1698 | is_extension=False, 1699 | extension_scope=None, 1700 | serialized_options=b"\030\001", 1701 | file=DESCRIPTOR, 1702 | create_key=_descriptor._internal_create_key, 1703 | ), 1704 | _descriptor.FieldDescriptor( 1705 | name="new_kernel_info", 1706 | full_name="chromeos_update_engine.DeltaArchiveManifest.new_kernel_info", 1707 | index=6, 1708 | number=7, 1709 | type=11, 1710 | cpp_type=10, 1711 | label=1, 1712 | has_default_value=False, 1713 | default_value=None, 1714 | message_type=None, 1715 | enum_type=None, 1716 | containing_type=None, 1717 | is_extension=False, 1718 | extension_scope=None, 1719 | serialized_options=b"\030\001", 1720 | file=DESCRIPTOR, 1721 | create_key=_descriptor._internal_create_key, 1722 | ), 1723 | _descriptor.FieldDescriptor( 1724 | name="old_rootfs_info", 1725 | full_name="chromeos_update_engine.DeltaArchiveManifest.old_rootfs_info", 1726 | index=7, 1727 | number=8, 1728 | type=11, 1729 | cpp_type=10, 1730 | label=1, 1731 | has_default_value=False, 1732 | default_value=None, 1733 | message_type=None, 1734 | enum_type=None, 1735 | containing_type=None, 1736 | is_extension=False, 1737 | extension_scope=None, 1738 | serialized_options=b"\030\001", 1739 | file=DESCRIPTOR, 1740 | create_key=_descriptor._internal_create_key, 1741 | ), 1742 | _descriptor.FieldDescriptor( 1743 | name="new_rootfs_info", 1744 | full_name="chromeos_update_engine.DeltaArchiveManifest.new_rootfs_info", 1745 | index=8, 1746 | number=9, 1747 | type=11, 1748 | cpp_type=10, 1749 | label=1, 1750 | has_default_value=False, 1751 | default_value=None, 1752 | message_type=None, 1753 | enum_type=None, 1754 | containing_type=None, 1755 | is_extension=False, 1756 | extension_scope=None, 1757 | serialized_options=b"\030\001", 1758 | file=DESCRIPTOR, 1759 | create_key=_descriptor._internal_create_key, 1760 | ), 1761 | _descriptor.FieldDescriptor( 1762 | name="old_image_info", 1763 | full_name="chromeos_update_engine.DeltaArchiveManifest.old_image_info", 1764 | index=9, 1765 | number=10, 1766 | type=11, 1767 | cpp_type=10, 1768 | label=1, 1769 | has_default_value=False, 1770 | default_value=None, 1771 | message_type=None, 1772 | enum_type=None, 1773 | containing_type=None, 1774 | is_extension=False, 1775 | extension_scope=None, 1776 | serialized_options=b"\030\001", 1777 | file=DESCRIPTOR, 1778 | create_key=_descriptor._internal_create_key, 1779 | ), 1780 | _descriptor.FieldDescriptor( 1781 | name="new_image_info", 1782 | full_name="chromeos_update_engine.DeltaArchiveManifest.new_image_info", 1783 | index=10, 1784 | number=11, 1785 | type=11, 1786 | cpp_type=10, 1787 | label=1, 1788 | has_default_value=False, 1789 | default_value=None, 1790 | message_type=None, 1791 | enum_type=None, 1792 | containing_type=None, 1793 | is_extension=False, 1794 | extension_scope=None, 1795 | serialized_options=b"\030\001", 1796 | file=DESCRIPTOR, 1797 | create_key=_descriptor._internal_create_key, 1798 | ), 1799 | _descriptor.FieldDescriptor( 1800 | name="minor_version", 1801 | full_name="chromeos_update_engine.DeltaArchiveManifest.minor_version", 1802 | index=11, 1803 | number=12, 1804 | type=13, 1805 | cpp_type=3, 1806 | label=1, 1807 | has_default_value=True, 1808 | default_value=0, 1809 | message_type=None, 1810 | enum_type=None, 1811 | containing_type=None, 1812 | is_extension=False, 1813 | extension_scope=None, 1814 | serialized_options=None, 1815 | file=DESCRIPTOR, 1816 | create_key=_descriptor._internal_create_key, 1817 | ), 1818 | _descriptor.FieldDescriptor( 1819 | name="partitions", 1820 | full_name="chromeos_update_engine.DeltaArchiveManifest.partitions", 1821 | index=12, 1822 | number=13, 1823 | type=11, 1824 | cpp_type=10, 1825 | label=3, 1826 | has_default_value=False, 1827 | default_value=[], 1828 | message_type=None, 1829 | enum_type=None, 1830 | containing_type=None, 1831 | is_extension=False, 1832 | extension_scope=None, 1833 | serialized_options=None, 1834 | file=DESCRIPTOR, 1835 | create_key=_descriptor._internal_create_key, 1836 | ), 1837 | _descriptor.FieldDescriptor( 1838 | name="max_timestamp", 1839 | full_name="chromeos_update_engine.DeltaArchiveManifest.max_timestamp", 1840 | index=13, 1841 | number=14, 1842 | type=3, 1843 | cpp_type=2, 1844 | label=1, 1845 | has_default_value=False, 1846 | default_value=0, 1847 | message_type=None, 1848 | enum_type=None, 1849 | containing_type=None, 1850 | is_extension=False, 1851 | extension_scope=None, 1852 | serialized_options=None, 1853 | file=DESCRIPTOR, 1854 | create_key=_descriptor._internal_create_key, 1855 | ), 1856 | _descriptor.FieldDescriptor( 1857 | name="dynamic_partition_metadata", 1858 | full_name="chromeos_update_engine.DeltaArchiveManifest.dynamic_partition_metadata", 1859 | index=14, 1860 | number=15, 1861 | type=11, 1862 | cpp_type=10, 1863 | label=1, 1864 | has_default_value=False, 1865 | default_value=None, 1866 | message_type=None, 1867 | enum_type=None, 1868 | containing_type=None, 1869 | is_extension=False, 1870 | extension_scope=None, 1871 | serialized_options=None, 1872 | file=DESCRIPTOR, 1873 | create_key=_descriptor._internal_create_key, 1874 | ), 1875 | _descriptor.FieldDescriptor( 1876 | name="partial_update", 1877 | full_name="chromeos_update_engine.DeltaArchiveManifest.partial_update", 1878 | index=15, 1879 | number=16, 1880 | type=8, 1881 | cpp_type=7, 1882 | label=1, 1883 | has_default_value=False, 1884 | default_value=False, 1885 | message_type=None, 1886 | enum_type=None, 1887 | containing_type=None, 1888 | is_extension=False, 1889 | extension_scope=None, 1890 | serialized_options=None, 1891 | file=DESCRIPTOR, 1892 | create_key=_descriptor._internal_create_key, 1893 | ), 1894 | _descriptor.FieldDescriptor( 1895 | name="apex_info", 1896 | full_name="chromeos_update_engine.DeltaArchiveManifest.apex_info", 1897 | index=16, 1898 | number=17, 1899 | type=11, 1900 | cpp_type=10, 1901 | label=3, 1902 | has_default_value=False, 1903 | default_value=[], 1904 | message_type=None, 1905 | enum_type=None, 1906 | containing_type=None, 1907 | is_extension=False, 1908 | extension_scope=None, 1909 | serialized_options=None, 1910 | file=DESCRIPTOR, 1911 | create_key=_descriptor._internal_create_key, 1912 | ), 1913 | ], 1914 | extensions=[], 1915 | nested_types=[], 1916 | enum_types=[], 1917 | serialized_options=None, 1918 | is_extendable=False, 1919 | syntax="proto2", 1920 | extension_ranges=[], 1921 | oneofs=[], 1922 | serialized_start=2551, 1923 | serialized_end=3477, 1924 | ) 1925 | 1926 | _SIGNATURES_SIGNATURE.containing_type = _SIGNATURES 1927 | _SIGNATURES.fields_by_name["signatures"].message_type = _SIGNATURES_SIGNATURE 1928 | _INSTALLOPERATION.fields_by_name["type"].enum_type = _INSTALLOPERATION_TYPE 1929 | _INSTALLOPERATION.fields_by_name["src_extents"].message_type = _EXTENT 1930 | _INSTALLOPERATION.fields_by_name["dst_extents"].message_type = _EXTENT 1931 | _INSTALLOPERATION_TYPE.containing_type = _INSTALLOPERATION 1932 | _COWMERGEOPERATION.fields_by_name["type"].enum_type = _COWMERGEOPERATION_TYPE 1933 | _COWMERGEOPERATION.fields_by_name["src_extent"].message_type = _EXTENT 1934 | _COWMERGEOPERATION.fields_by_name["dst_extent"].message_type = _EXTENT 1935 | _COWMERGEOPERATION_TYPE.containing_type = _COWMERGEOPERATION 1936 | _PARTITIONUPDATE.fields_by_name[ 1937 | "new_partition_signature" 1938 | ].message_type = _SIGNATURES_SIGNATURE 1939 | _PARTITIONUPDATE.fields_by_name["old_partition_info"].message_type = _PARTITIONINFO 1940 | _PARTITIONUPDATE.fields_by_name["new_partition_info"].message_type = _PARTITIONINFO 1941 | _PARTITIONUPDATE.fields_by_name["operations"].message_type = _INSTALLOPERATION 1942 | _PARTITIONUPDATE.fields_by_name["hash_tree_data_extent"].message_type = _EXTENT 1943 | _PARTITIONUPDATE.fields_by_name["hash_tree_extent"].message_type = _EXTENT 1944 | _PARTITIONUPDATE.fields_by_name["fec_data_extent"].message_type = _EXTENT 1945 | _PARTITIONUPDATE.fields_by_name["fec_extent"].message_type = _EXTENT 1946 | _PARTITIONUPDATE.fields_by_name["merge_operations"].message_type = _COWMERGEOPERATION 1947 | _DYNAMICPARTITIONMETADATA.fields_by_name["groups"].message_type = _DYNAMICPARTITIONGROUP 1948 | _APEXMETADATA.fields_by_name["apex_info"].message_type = _APEXINFO 1949 | _DELTAARCHIVEMANIFEST.fields_by_name[ 1950 | "install_operations" 1951 | ].message_type = _INSTALLOPERATION 1952 | _DELTAARCHIVEMANIFEST.fields_by_name[ 1953 | "kernel_install_operations" 1954 | ].message_type = _INSTALLOPERATION 1955 | _DELTAARCHIVEMANIFEST.fields_by_name["old_kernel_info"].message_type = _PARTITIONINFO 1956 | _DELTAARCHIVEMANIFEST.fields_by_name["new_kernel_info"].message_type = _PARTITIONINFO 1957 | _DELTAARCHIVEMANIFEST.fields_by_name["old_rootfs_info"].message_type = _PARTITIONINFO 1958 | _DELTAARCHIVEMANIFEST.fields_by_name["new_rootfs_info"].message_type = _PARTITIONINFO 1959 | _DELTAARCHIVEMANIFEST.fields_by_name["old_image_info"].message_type = _IMAGEINFO 1960 | _DELTAARCHIVEMANIFEST.fields_by_name["new_image_info"].message_type = _IMAGEINFO 1961 | _DELTAARCHIVEMANIFEST.fields_by_name["partitions"].message_type = _PARTITIONUPDATE 1962 | _DELTAARCHIVEMANIFEST.fields_by_name[ 1963 | "dynamic_partition_metadata" 1964 | ].message_type = _DYNAMICPARTITIONMETADATA 1965 | _DELTAARCHIVEMANIFEST.fields_by_name["apex_info"].message_type = _APEXINFO 1966 | DESCRIPTOR.message_types_by_name["Extent"] = _EXTENT 1967 | DESCRIPTOR.message_types_by_name["Signatures"] = _SIGNATURES 1968 | DESCRIPTOR.message_types_by_name["PartitionInfo"] = _PARTITIONINFO 1969 | DESCRIPTOR.message_types_by_name["ImageInfo"] = _IMAGEINFO 1970 | DESCRIPTOR.message_types_by_name["InstallOperation"] = _INSTALLOPERATION 1971 | DESCRIPTOR.message_types_by_name["CowMergeOperation"] = _COWMERGEOPERATION 1972 | DESCRIPTOR.message_types_by_name["PartitionUpdate"] = _PARTITIONUPDATE 1973 | DESCRIPTOR.message_types_by_name["DynamicPartitionGroup"] = _DYNAMICPARTITIONGROUP 1974 | DESCRIPTOR.message_types_by_name["DynamicPartitionMetadata"] = _DYNAMICPARTITIONMETADATA 1975 | DESCRIPTOR.message_types_by_name["ApexInfo"] = _APEXINFO 1976 | DESCRIPTOR.message_types_by_name["ApexMetadata"] = _APEXMETADATA 1977 | DESCRIPTOR.message_types_by_name["DeltaArchiveManifest"] = _DELTAARCHIVEMANIFEST 1978 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 1979 | 1980 | Extent = _reflection.GeneratedProtocolMessageType( 1981 | "Extent", 1982 | (_message.Message,), 1983 | { 1984 | "DESCRIPTOR": _EXTENT, 1985 | "__module__": "update_metadata_pb2" 1986 | # @@protoc_insertion_point(class_scope:chromeos_update_engine.Extent) 1987 | }, 1988 | ) 1989 | _sym_db.RegisterMessage(Extent) 1990 | 1991 | Signatures = _reflection.GeneratedProtocolMessageType( 1992 | "Signatures", 1993 | (_message.Message,), 1994 | { 1995 | "Signature": _reflection.GeneratedProtocolMessageType( 1996 | "Signature", 1997 | (_message.Message,), 1998 | { 1999 | "DESCRIPTOR": _SIGNATURES_SIGNATURE, 2000 | "__module__": "update_metadata_pb2" 2001 | # @@protoc_insertion_point(class_scope:chromeos_update_engine.Signatures.Signature) 2002 | }, 2003 | ), 2004 | "DESCRIPTOR": _SIGNATURES, 2005 | "__module__": "update_metadata_pb2" 2006 | # @@protoc_insertion_point(class_scope:chromeos_update_engine.Signatures) 2007 | }, 2008 | ) 2009 | _sym_db.RegisterMessage(Signatures) 2010 | _sym_db.RegisterMessage(Signatures.Signature) 2011 | 2012 | PartitionInfo = _reflection.GeneratedProtocolMessageType( 2013 | "PartitionInfo", 2014 | (_message.Message,), 2015 | { 2016 | "DESCRIPTOR": _PARTITIONINFO, 2017 | "__module__": "update_metadata_pb2" 2018 | # @@protoc_insertion_point(class_scope:chromeos_update_engine.PartitionInfo) 2019 | }, 2020 | ) 2021 | _sym_db.RegisterMessage(PartitionInfo) 2022 | 2023 | ImageInfo = _reflection.GeneratedProtocolMessageType( 2024 | "ImageInfo", 2025 | (_message.Message,), 2026 | { 2027 | "DESCRIPTOR": _IMAGEINFO, 2028 | "__module__": "update_metadata_pb2" 2029 | # @@protoc_insertion_point(class_scope:chromeos_update_engine.ImageInfo) 2030 | }, 2031 | ) 2032 | _sym_db.RegisterMessage(ImageInfo) 2033 | 2034 | InstallOperation = _reflection.GeneratedProtocolMessageType( 2035 | "InstallOperation", 2036 | (_message.Message,), 2037 | { 2038 | "DESCRIPTOR": _INSTALLOPERATION, 2039 | "__module__": "update_metadata_pb2" 2040 | # @@protoc_insertion_point(class_scope:chromeos_update_engine.InstallOperation) 2041 | }, 2042 | ) 2043 | _sym_db.RegisterMessage(InstallOperation) 2044 | 2045 | CowMergeOperation = _reflection.GeneratedProtocolMessageType( 2046 | "CowMergeOperation", 2047 | (_message.Message,), 2048 | { 2049 | "DESCRIPTOR": _COWMERGEOPERATION, 2050 | "__module__": "update_metadata_pb2" 2051 | # @@protoc_insertion_point(class_scope:chromeos_update_engine.CowMergeOperation) 2052 | }, 2053 | ) 2054 | _sym_db.RegisterMessage(CowMergeOperation) 2055 | 2056 | PartitionUpdate = _reflection.GeneratedProtocolMessageType( 2057 | "PartitionUpdate", 2058 | (_message.Message,), 2059 | { 2060 | "DESCRIPTOR": _PARTITIONUPDATE, 2061 | "__module__": "update_metadata_pb2" 2062 | # @@protoc_insertion_point(class_scope:chromeos_update_engine.PartitionUpdate) 2063 | }, 2064 | ) 2065 | _sym_db.RegisterMessage(PartitionUpdate) 2066 | 2067 | DynamicPartitionGroup = _reflection.GeneratedProtocolMessageType( 2068 | "DynamicPartitionGroup", 2069 | (_message.Message,), 2070 | { 2071 | "DESCRIPTOR": _DYNAMICPARTITIONGROUP, 2072 | "__module__": "update_metadata_pb2" 2073 | # @@protoc_insertion_point(class_scope:chromeos_update_engine.DynamicPartitionGroup) 2074 | }, 2075 | ) 2076 | _sym_db.RegisterMessage(DynamicPartitionGroup) 2077 | 2078 | DynamicPartitionMetadata = _reflection.GeneratedProtocolMessageType( 2079 | "DynamicPartitionMetadata", 2080 | (_message.Message,), 2081 | { 2082 | "DESCRIPTOR": _DYNAMICPARTITIONMETADATA, 2083 | "__module__": "update_metadata_pb2" 2084 | # @@protoc_insertion_point(class_scope:chromeos_update_engine.DynamicPartitionMetadata) 2085 | }, 2086 | ) 2087 | _sym_db.RegisterMessage(DynamicPartitionMetadata) 2088 | 2089 | ApexInfo = _reflection.GeneratedProtocolMessageType( 2090 | "ApexInfo", 2091 | (_message.Message,), 2092 | { 2093 | "DESCRIPTOR": _APEXINFO, 2094 | "__module__": "update_metadata_pb2" 2095 | # @@protoc_insertion_point(class_scope:chromeos_update_engine.ApexInfo) 2096 | }, 2097 | ) 2098 | _sym_db.RegisterMessage(ApexInfo) 2099 | 2100 | ApexMetadata = _reflection.GeneratedProtocolMessageType( 2101 | "ApexMetadata", 2102 | (_message.Message,), 2103 | { 2104 | "DESCRIPTOR": _APEXMETADATA, 2105 | "__module__": "update_metadata_pb2" 2106 | # @@protoc_insertion_point(class_scope:chromeos_update_engine.ApexMetadata) 2107 | }, 2108 | ) 2109 | _sym_db.RegisterMessage(ApexMetadata) 2110 | 2111 | DeltaArchiveManifest = _reflection.GeneratedProtocolMessageType( 2112 | "DeltaArchiveManifest", 2113 | (_message.Message,), 2114 | { 2115 | "DESCRIPTOR": _DELTAARCHIVEMANIFEST, 2116 | "__module__": "update_metadata_pb2" 2117 | # @@protoc_insertion_point(class_scope:chromeos_update_engine.DeltaArchiveManifest) 2118 | }, 2119 | ) 2120 | _sym_db.RegisterMessage(DeltaArchiveManifest) 2121 | 2122 | 2123 | DESCRIPTOR._options = None 2124 | _SIGNATURES_SIGNATURE.fields_by_name["version"]._options = None 2125 | _IMAGEINFO.fields_by_name["board"]._options = None 2126 | _IMAGEINFO.fields_by_name["key"]._options = None 2127 | _IMAGEINFO.fields_by_name["channel"]._options = None 2128 | _IMAGEINFO.fields_by_name["version"]._options = None 2129 | _IMAGEINFO.fields_by_name["build_channel"]._options = None 2130 | _IMAGEINFO.fields_by_name["build_version"]._options = None 2131 | _INSTALLOPERATION_TYPE.values_by_name["MOVE"]._options = None 2132 | _INSTALLOPERATION_TYPE.values_by_name["BSDIFF"]._options = None 2133 | _DELTAARCHIVEMANIFEST.fields_by_name["install_operations"]._options = None 2134 | _DELTAARCHIVEMANIFEST.fields_by_name["kernel_install_operations"]._options = None 2135 | _DELTAARCHIVEMANIFEST.fields_by_name["old_kernel_info"]._options = None 2136 | _DELTAARCHIVEMANIFEST.fields_by_name["new_kernel_info"]._options = None 2137 | _DELTAARCHIVEMANIFEST.fields_by_name["old_rootfs_info"]._options = None 2138 | _DELTAARCHIVEMANIFEST.fields_by_name["new_rootfs_info"]._options = None 2139 | _DELTAARCHIVEMANIFEST.fields_by_name["old_image_info"]._options = None 2140 | _DELTAARCHIVEMANIFEST.fields_by_name["new_image_info"]._options = None 2141 | # @@protoc_insertion_point(module_scope) 2142 | -------------------------------------------------------------------------------- /poetry.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. 2 | 3 | [[package]] 4 | name = "ansicon" 5 | version = "1.89.0" 6 | description = "Python wrapper for loading Jason Hood's ANSICON" 7 | optional = false 8 | python-versions = "*" 9 | files = [ 10 | {file = "ansicon-1.89.0-py2.py3-none-any.whl", hash = "sha256:f1def52d17f65c2c9682cf8370c03f541f410c1752d6a14029f97318e4b9dfec"}, 11 | {file = "ansicon-1.89.0.tar.gz", hash = "sha256:e4d039def5768a47e4afec8e89e83ec3ae5a26bf00ad851f914d1240b444d2b1"}, 12 | ] 13 | 14 | [[package]] 15 | name = "blessed" 16 | version = "1.20.0" 17 | description = "Easy, practical library for making terminal apps, by providing an elegant, well-documented interface to Colors, Keyboard input, and screen Positioning capabilities." 18 | optional = false 19 | python-versions = ">=2.7" 20 | files = [ 21 | {file = "blessed-1.20.0-py2.py3-none-any.whl", hash = "sha256:0c542922586a265e699188e52d5f5ac5ec0dd517e5a1041d90d2bbf23f906058"}, 22 | {file = "blessed-1.20.0.tar.gz", hash = "sha256:2cdd67f8746e048f00df47a2880f4d6acbcdb399031b604e34ba8f71d5787680"}, 23 | ] 24 | 25 | [package.dependencies] 26 | jinxed = {version = ">=1.1.0", markers = "platform_system == \"Windows\""} 27 | six = ">=1.9.0" 28 | wcwidth = ">=0.1.4" 29 | 30 | [[package]] 31 | name = "bsdiff4" 32 | version = "1.2.4" 33 | description = "binary diff and patch using the BSDIFF4-format" 34 | optional = false 35 | python-versions = "*" 36 | files = [ 37 | {file = "bsdiff4-1.2.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3266eeca8db0398a5f7251fd41877b1942912a3c719db59a3696f2eb4acf9a57"}, 38 | {file = "bsdiff4-1.2.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7d93ed903a670665c71f0fc0809f18e86684c92c48c17ab3fe3871df726900af"}, 39 | {file = "bsdiff4-1.2.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cd579125eb0611109e66c41f72a9bca411dc2af98768367910a27012159c5e37"}, 40 | {file = "bsdiff4-1.2.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e1af9e58dbb9fb1e76f6684712cd8d493393101554f912feea5d2da150aa772"}, 41 | {file = "bsdiff4-1.2.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f7c4873669c6096ed7d3f9393848fd5e0f3a4285e93a16ba4aeb3335ee930f5"}, 42 | {file = "bsdiff4-1.2.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c730dde9239571449d5e43b9918b681cc4d54f51126e16f21501c0a215186a93"}, 43 | {file = "bsdiff4-1.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:665a89b5a31f2dc46299a8d3a6aded0cda5883fb468dc6bc66dc23db1a62cbbc"}, 44 | {file = "bsdiff4-1.2.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:65f7bd1c2d77483102ce2d5e6aaa5413d57ff08e9d4f710b7dc64eb9d9e31a8c"}, 45 | {file = "bsdiff4-1.2.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e123981fa6003a8645dfc27dbe57bc2a9084c33648562046aae31f03dc417eb9"}, 46 | {file = "bsdiff4-1.2.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ad72a52925601ee6f5739332c26eb44cfd78b91dfcea5eba716cf35b66178cb9"}, 47 | {file = "bsdiff4-1.2.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:6d6f5e79cfe92ff963e6ae2808d7c59d7669e3025973301f9959cbaec09b8786"}, 48 | {file = "bsdiff4-1.2.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:aa04d36531b65bc30b4482e4f70b6b23336fbea55adc715dfbf4b5b6f450027b"}, 49 | {file = "bsdiff4-1.2.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:342b4589a4c85502fab7e82eb7cb60734bf865a726af0c5cf64ae3e7bfbee981"}, 50 | {file = "bsdiff4-1.2.4-cp310-cp310-win32.whl", hash = "sha256:b53bf2403766658025824a2bebab9beea790562e6b95312cbdc8f0bd7276e4cf"}, 51 | {file = "bsdiff4-1.2.4-cp310-cp310-win_amd64.whl", hash = "sha256:bf874938fe13400840dd1e680c8996d658aca431387fce0b16d0fc51c463cd5f"}, 52 | {file = "bsdiff4-1.2.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e8ec9708317727875d216e9ed23be90db99e111590177dd015607e95031db479"}, 53 | {file = "bsdiff4-1.2.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d0927d70573cac8bf1df07509e1365cd5e6eda1d84049522316e1c0131fda8bb"}, 54 | {file = "bsdiff4-1.2.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1338373f492555c4130061dd9763343526167f160afbbff6c68d9547000d2dd3"}, 55 | {file = "bsdiff4-1.2.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab72a2af903c146af4fd8cc59042564b509a4b01c57682ade21cb153a1969085"}, 56 | {file = "bsdiff4-1.2.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2f1053180f18c39f9d0b694307dbdcf415470bfdfb9cc9456bce32b6bf0edcd5"}, 57 | {file = "bsdiff4-1.2.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c8b57f65a6cdb4a1d31a9660416e86c7bb31a47c9e3746e3490b43816a9834e"}, 58 | {file = "bsdiff4-1.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14c39e4c2f4ad32c19f56d31b659b83d94ed992f4f3274f3ab973b339f780b8c"}, 59 | {file = "bsdiff4-1.2.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f89101f3d611ccdeed5b8ffef37b8d00989a13f6b84ba60f77b15fcb92980e45"}, 60 | {file = "bsdiff4-1.2.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f8765301c5bf8ca723788c0b6e2bca39f7348d9c154e4118ebd3167b826dd79c"}, 61 | {file = "bsdiff4-1.2.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8ac57ebbf84b30a5af51d3c2b49f7675280002a52b16d6de4594a03a596e5888"}, 62 | {file = "bsdiff4-1.2.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:cf6a8d3646ea5e5a8ed2f24e8b11f7517529dddace08d1b461228243d903214c"}, 63 | {file = "bsdiff4-1.2.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:e80a70edbab32dee8d592cc0d417f98055afa3c55331c05c24bc0c230b501da6"}, 64 | {file = "bsdiff4-1.2.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f97cd2043a5882b632fb7f5307fe960e4363450f825c0a0d642850f8b2d5de89"}, 65 | {file = "bsdiff4-1.2.4-cp311-cp311-win32.whl", hash = "sha256:bc648bf6ea3e9dbbe3319561ccee43c69f4ffa284ad940577a0109ee18c7a59d"}, 66 | {file = "bsdiff4-1.2.4-cp311-cp311-win_amd64.whl", hash = "sha256:d4f018112f498b8ee99c1270f1580f16eada1ea505bc9074fdc734d193db9d89"}, 67 | {file = "bsdiff4-1.2.4-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ef4bc3db56129a13fd7e90ea100e496a57e22623e8e7856db76bf58d0c949186"}, 68 | {file = "bsdiff4-1.2.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:07cfe4b26434d64f412f5b35f5f11f72a2dd8d7deb0e19dd1c7c4a54b09a30d7"}, 69 | {file = "bsdiff4-1.2.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e0113db077f5f613b871d7c745e38b8d821fc9795fcd5c2c29afb7a50d7b71a5"}, 70 | {file = "bsdiff4-1.2.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9335bf349ef8fcd2a412443a3e854ed17a2716a4ea46af0b066f56fcdd42d0ec"}, 71 | {file = "bsdiff4-1.2.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:066fc5fee32787b8515b855a5b5c46b580512a5fd64981c5cea1bfa2d1c4528a"}, 72 | {file = "bsdiff4-1.2.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe3f467a29bc7e445789bb433a2230f68e8519a0741772d4f661f6b08c55d73c"}, 73 | {file = "bsdiff4-1.2.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5cc9c84464411f406b37ee2b0833c9feb58f93e504c8989aad5120077abcc9c2"}, 74 | {file = "bsdiff4-1.2.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a9edb5dcb1d7fe522a8fd03942069dbf5df373732c233fdad3b3f5123df9bbb"}, 75 | {file = "bsdiff4-1.2.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:47c062b67e4a2e31ecbebc520fba8273fd5deb8a7141e0ecd1c6d923bc9f6c90"}, 76 | {file = "bsdiff4-1.2.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:b24dc4f050efda0fe1527dc7bbb61bdfa9e094ef2fad64f646c460aff086c5df"}, 77 | {file = "bsdiff4-1.2.4-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:1ff1f182da5665d7bf2eb1497eed95caad8e24764e281c8cd2440ad7e747d598"}, 78 | {file = "bsdiff4-1.2.4-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:55bae7a41a4fb2e1ef3cda8b4fe1c06210cb013397e5432883585d0dd318a871"}, 79 | {file = "bsdiff4-1.2.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5e51557891f0a8696470e04bf208b515ec1d62dcf3dd273f321279cfdef05c08"}, 80 | {file = "bsdiff4-1.2.4-cp312-cp312-win32.whl", hash = "sha256:783f3ba01fdde0d9252face5d56735319fbef5070cb0eda12c44e378e43bf0de"}, 81 | {file = "bsdiff4-1.2.4-cp312-cp312-win_amd64.whl", hash = "sha256:475f2077e66b1a4e7aa19de1b9b328d87d53ee28c9c20e27b40646d814b03f5f"}, 82 | {file = "bsdiff4-1.2.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:89d9dcd647f66065c09cf8af5b31cf7625575f20f2758d96f24153ef44015643"}, 83 | {file = "bsdiff4-1.2.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f67e5f7e14375d08554bfe1bab73a380718b48b4b503ee32f080f2d16793b011"}, 84 | {file = "bsdiff4-1.2.4-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:68fed243cf2f48534684b1a4e92b24fbe7877e8ab62a87879887981b24904d26"}, 85 | {file = "bsdiff4-1.2.4-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:039ef8a39a4a4ad12ed989a9b46b3583a3ae50cc6631e5a1261319d7148f7507"}, 86 | {file = "bsdiff4-1.2.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8164f1b6fafab4707561f2fd6ba81628ba3d0b30ec7f09b9c75dd3203c8325f7"}, 87 | {file = "bsdiff4-1.2.4-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:33bb050fce1749db0f9d65e5f564e02cc9325dc4c3951dd0cc15e255d6d9cab9"}, 88 | {file = "bsdiff4-1.2.4-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e29ad686f0a91cf2c58493758e1c4db99f6ce95d8463d63c6ce6b315b4986771"}, 89 | {file = "bsdiff4-1.2.4-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:b1058e954fb35b9241145c56383fd71b3eabb7b422a07084b80b349c804a3c2f"}, 90 | {file = "bsdiff4-1.2.4-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:81abcb3c73ed4ea494555664f677907018b8261b00270c19455030359a08121e"}, 91 | {file = "bsdiff4-1.2.4-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:f084673f73caaffbef1c4eb5163453caeaa2d6b280e7a1ab627edb8c314157d5"}, 92 | {file = "bsdiff4-1.2.4-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bfc60dff6ab2899b6454875fc6f9b7f0208b88ab9f52a94d8d49637863306510"}, 93 | {file = "bsdiff4-1.2.4-cp36-cp36m-win32.whl", hash = "sha256:9693ee80ae170979632c438c179cca1b8f473152ec3cbbaa8a15518e31bda639"}, 94 | {file = "bsdiff4-1.2.4-cp36-cp36m-win_amd64.whl", hash = "sha256:1b6fa5a7471407732b1f9d161c950669ae972a337423006ea95810aae02f77ba"}, 95 | {file = "bsdiff4-1.2.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dbe5e5e7d8864bb2aa9a5d032b39162e4786149be6d35ccc40a2495955200a04"}, 96 | {file = "bsdiff4-1.2.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69e8cccf1744c2b1aa84ef1125a56fe72db232ba4647f85c267418fc63a21e57"}, 97 | {file = "bsdiff4-1.2.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5ea6b1cfe933f527cf212b0232fa886932fa16f88b8c0d806a9765a33e2e24d"}, 98 | {file = "bsdiff4-1.2.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40cf69af97e1be18f3e7709d58fcff959af6fa175cc470142853d4c55a5ed0f5"}, 99 | {file = "bsdiff4-1.2.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3eb9ef7bba7deb338b3902ec0021faf79c97feaddd39e725162b393698e375d0"}, 100 | {file = "bsdiff4-1.2.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:599a7ba70f086768735dc00b2db54ada7f53e421ffdab05fb4545c297ae3c0cd"}, 101 | {file = "bsdiff4-1.2.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ab05f3f03f5e3b4eb2d6bd90e99012e2997dfdb4a27d76a3f11efae038d8bbc3"}, 102 | {file = "bsdiff4-1.2.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a443a88a3abecd4654f1349473979302fcbfd3c0dabe40beccc030547f26ba3e"}, 103 | {file = "bsdiff4-1.2.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:db15692a4b77934864a7088b775ecc9aac2667bba6819cff672ea739167666e8"}, 104 | {file = "bsdiff4-1.2.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:fbfdaddbe7702a3a40463782c89ad5a1efc2deafb989750bc0818d635df65dc4"}, 105 | {file = "bsdiff4-1.2.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a5849c4db93894cdcdf90eb2347664634b7cb2db017aa2cbb8bc7f1f5fc8baae"}, 106 | {file = "bsdiff4-1.2.4-cp37-cp37m-win32.whl", hash = "sha256:7e823499a93b318301585852a41c193dd02f02ce22874044fe64c75c0a2f4210"}, 107 | {file = "bsdiff4-1.2.4-cp37-cp37m-win_amd64.whl", hash = "sha256:ed6daa183f267698d4935f7e89a3d723ba165750714e0c9a926f21498b138b2e"}, 108 | {file = "bsdiff4-1.2.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95ef3e01778e054cb468c4b8740de3459f2ac6ff139df799f25e31cac48a3efd"}, 109 | {file = "bsdiff4-1.2.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:921878e25bd34ef95b686c50e7f7f95e7f98900eeb9bf50a36faa3d5a2c76953"}, 110 | {file = "bsdiff4-1.2.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f68a0ab9d7deb8643703eb17b0c7dcb73feaa1a7e44daaa0ef075ea2fbc46e1e"}, 111 | {file = "bsdiff4-1.2.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ff3bdaa3a99b1fc70cb7dd671a7ef9a58781aa9bcf2a29507703883d6063d3c"}, 112 | {file = "bsdiff4-1.2.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a6c8380ee122af4a07605a5925a1807d270efa2a900fc282b6b360ebb0b0942f"}, 113 | {file = "bsdiff4-1.2.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8a3c1d8b146d41d98777189048ffe34a3ceb60be73320613b979cff7f2c671b8"}, 114 | {file = "bsdiff4-1.2.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:746092703ce5a6f8cbe72f8f6042b104a0af7d91d36e301a78cc3464fbc6ada5"}, 115 | {file = "bsdiff4-1.2.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a78b88e84c179d998f65e696424fba66ef3b58a7b7582facf639a202534fe5e4"}, 116 | {file = "bsdiff4-1.2.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1eada02fafe5062e7146dc9ecf855e4532e0f0510ae61d56b2462b56231e490d"}, 117 | {file = "bsdiff4-1.2.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:958c13458ae6aa0aa369e8afb798de5d3e0c9cb5d2bffc6d6d19c9e354c87922"}, 118 | {file = "bsdiff4-1.2.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:3fec9d4cf72fcc72643e648a8bfb3167dc6568091aeb7de7247d497490628618"}, 119 | {file = "bsdiff4-1.2.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:809ad6cdbdff0b72387cb45d2227e0109d35e3322fe0c57bb09b0b5d01c4b05e"}, 120 | {file = "bsdiff4-1.2.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:41ae3d033ab66652bd291bd189a274e609966a996e941d75259734e2d36e6f28"}, 121 | {file = "bsdiff4-1.2.4-cp38-cp38-win32.whl", hash = "sha256:d23dec30978393643aa6fa75aaf567ad36864f32297eb618e64d06da57a8af0c"}, 122 | {file = "bsdiff4-1.2.4-cp38-cp38-win_amd64.whl", hash = "sha256:6d10f6e3220ceffbb8c8cfad4dc5da2ed0376cbc2e606159288253cd6081fdb4"}, 123 | {file = "bsdiff4-1.2.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:cea9d428aa938e2a03b0b866cd285596df8ed32102f8bba24a902a9233ff89f9"}, 124 | {file = "bsdiff4-1.2.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dc1e5748013509d1200119c0198c138f08abafba90d28af05e8e6d1f9c094dd9"}, 125 | {file = "bsdiff4-1.2.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:97ac7fa4784f85a5e1167b4991a0fbfc0861611596199b158ebe19f823616866"}, 126 | {file = "bsdiff4-1.2.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56240c887cdb7e4e4b90a1f8446eeb17daeed71090990092d1c79e0a67838cb9"}, 127 | {file = "bsdiff4-1.2.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:699e5da51906f2640cbd544f3d5dacbc4ec12aac8c92b57f205d16ce7373093c"}, 128 | {file = "bsdiff4-1.2.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:46977631e747c717175154060a004c72c2844fb04f4a3e1ed3dae88e72e45552"}, 129 | {file = "bsdiff4-1.2.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:567d38930b37626fb71c47095975969a117662a2725234175738b82fd40eca91"}, 130 | {file = "bsdiff4-1.2.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a39f0ef2e8406490fb2a30629ea9fa45f3f408b58aa1e1f38b9828a70f19c05"}, 131 | {file = "bsdiff4-1.2.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a4827e43e6253b83e6639154a545130fd2134797603401d34b14f6d369e3a48b"}, 132 | {file = "bsdiff4-1.2.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:03512007c74680ce4c401603ed5eb5c4a072f53fd6dfd328b6506879ba2adf18"}, 133 | {file = "bsdiff4-1.2.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:31d8f011573abfd0c4f9b083ff9374cb84bf2d74e04603d16555a022d67ca8a1"}, 134 | {file = "bsdiff4-1.2.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:d5fef32a733c36a08b75323d7d7afae4c5d4eaeeb4a6ad5e31dc0717cfbb8fdf"}, 135 | {file = "bsdiff4-1.2.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:56cb1b0b59c9f110e3dd4a86cfae7e299ce157b153838be9c55e91ca684831c0"}, 136 | {file = "bsdiff4-1.2.4-cp39-cp39-win32.whl", hash = "sha256:e161d0511ae6b254a651d70890af8fab660c6e2a3d4f8eac953796fb4b7ecacc"}, 137 | {file = "bsdiff4-1.2.4-cp39-cp39-win_amd64.whl", hash = "sha256:2d6583cbfffc9624f4e29ce20463d8dfdb189b848a518692c71c5f0a1721bf00"}, 138 | {file = "bsdiff4-1.2.4-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ef5b8ded889b574586e73fe8cb1b27d1c2d6791dbaabc44d28711c5a7db822bd"}, 139 | {file = "bsdiff4-1.2.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2259da32686261948d99ced907a1a76b038d5e55007cc0874911eb35fdebb19"}, 140 | {file = "bsdiff4-1.2.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:547734ac8132320dff7e68b05c4873219258c4f6732739e3f52f63691c9091cf"}, 141 | {file = "bsdiff4-1.2.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cc2d29fb8dde779127cea831558227d1652715cb46dd9c2cea8bebd7f6fd5085"}, 142 | {file = "bsdiff4-1.2.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:8df89e307c7676eff847a85b89397371fe045f665b7cb6d05e35a28cd93dc156"}, 143 | {file = "bsdiff4-1.2.4-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8aa63c34e3499529472223ad88895ec88aec7dcfbfce96c542baae52b167e3fb"}, 144 | {file = "bsdiff4-1.2.4-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e145bda6e1e94338cc8b07da4ef96e766f351bf17482c5ed820b243b896b3263"}, 145 | {file = "bsdiff4-1.2.4-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5de55b381243fd3ea4f0682493e82f2fa6bfa347b51d964f7bfbaf877ee702af"}, 146 | {file = "bsdiff4-1.2.4-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:28f91bdce79e22f492d96d17599b412fd0246647919a55aa2ec4326ee07f4728"}, 147 | {file = "bsdiff4-1.2.4-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ff9ef91c8313d03c24b9d5857acc577616a6d830c81af3165fc593fe8bc1af85"}, 148 | {file = "bsdiff4-1.2.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c7ff8946e599afcc13f07892207c48061ab6d966478abc4da674497daec7522d"}, 149 | {file = "bsdiff4-1.2.4-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:899a823330ffdbc93f58aea4c956bddbb489d762fe9c0b6032760fee57a104b3"}, 150 | {file = "bsdiff4-1.2.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fbeff47a3579bd91b92431230b46b219dfb2d1817e78135c726c815c85afa906"}, 151 | {file = "bsdiff4-1.2.4-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c69a2a05d53359a4ef73ec671ffcee19305a3daee5a3f452129fa1a5cdccd2cc"}, 152 | {file = "bsdiff4-1.2.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:8af5fbed7fd5e71b0aa574a9bbcc103fd8ba84b88e31834d768043f00d75d37f"}, 153 | {file = "bsdiff4-1.2.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a2959d37ef5083358c716eb18660a94096387340c194540921f171b9a8611f65"}, 154 | {file = "bsdiff4-1.2.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c43f9dae2b93425210a9034059543c1e9f44c997c5b65af974871e3b568b320"}, 155 | {file = "bsdiff4-1.2.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bcca384623c0391eaed5967ac12f2e2af5f292120670a152b451c77db6ef7f5e"}, 156 | {file = "bsdiff4-1.2.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:351d179e7ab0e1b4630fb03ef04480b9c318d9098f3a76812f9c6cbee74dc2aa"}, 157 | {file = "bsdiff4-1.2.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4f079fb1db9a3cd6089d0e0193bbc63cb9dcd8e67f5240226dadedb9fd51d058"}, 158 | {file = "bsdiff4-1.2.4.tar.gz", hash = "sha256:1d7129a8121860731e8cce2901d3183e14aec70244f64e8f74563275dc388067"}, 159 | ] 160 | 161 | [[package]] 162 | name = "enlighten" 163 | version = "1.12.4" 164 | description = "Enlighten Progress Bar" 165 | optional = false 166 | python-versions = "*" 167 | files = [ 168 | {file = "enlighten-1.12.4-py2.py3-none-any.whl", hash = "sha256:5c53c57441bc5986c1d02f2f539aead9d59a206783641953a49b8d995db6b584"}, 169 | {file = "enlighten-1.12.4.tar.gz", hash = "sha256:75f3d92b49e0ef5e454fc1a0f39dc0ab8f6d9946cbe534db3ded3010217d5b5f"}, 170 | ] 171 | 172 | [package.dependencies] 173 | blessed = ">=1.17.7" 174 | prefixed = ">=0.3.2" 175 | 176 | [[package]] 177 | name = "jinxed" 178 | version = "1.2.1" 179 | description = "Jinxed Terminal Library" 180 | optional = false 181 | python-versions = "*" 182 | files = [ 183 | {file = "jinxed-1.2.1-py2.py3-none-any.whl", hash = "sha256:37422659c4925969c66148c5e64979f553386a4226b9484d910d3094ced37d30"}, 184 | {file = "jinxed-1.2.1.tar.gz", hash = "sha256:30c3f861b73279fea1ed928cfd4dfb1f273e16cd62c8a32acfac362da0f78f3f"}, 185 | ] 186 | 187 | [package.dependencies] 188 | ansicon = {version = "*", markers = "platform_system == \"Windows\""} 189 | 190 | [[package]] 191 | name = "prefixed" 192 | version = "0.7.0" 193 | description = "Prefixed alternative numeric library" 194 | optional = false 195 | python-versions = "*" 196 | files = [ 197 | {file = "prefixed-0.7.0-py2.py3-none-any.whl", hash = "sha256:537b0e4ff4516c4578f277a41d7104f769d6935ae9cdb0f88fed82ec7b3c0ca5"}, 198 | {file = "prefixed-0.7.0.tar.gz", hash = "sha256:0b54d15e602eb8af4ac31b1db21a37ea95ce5890e0741bb0dd9ded493cefbbe9"}, 199 | ] 200 | 201 | [[package]] 202 | name = "protobuf" 203 | version = "3.20.3" 204 | description = "Protocol Buffers" 205 | optional = false 206 | python-versions = ">=3.7" 207 | files = [ 208 | {file = "protobuf-3.20.3-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:f4bd856d702e5b0d96a00ec6b307b0f51c1982c2bf9c0052cf9019e9a544ba99"}, 209 | {file = "protobuf-3.20.3-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9aae4406ea63d825636cc11ffb34ad3379335803216ee3a856787bcf5ccc751e"}, 210 | {file = "protobuf-3.20.3-cp310-cp310-win32.whl", hash = "sha256:28545383d61f55b57cf4df63eebd9827754fd2dc25f80c5253f9184235db242c"}, 211 | {file = "protobuf-3.20.3-cp310-cp310-win_amd64.whl", hash = "sha256:67a3598f0a2dcbc58d02dd1928544e7d88f764b47d4a286202913f0b2801c2e7"}, 212 | {file = "protobuf-3.20.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:899dc660cd599d7352d6f10d83c95df430a38b410c1b66b407a6b29265d66469"}, 213 | {file = "protobuf-3.20.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e64857f395505ebf3d2569935506ae0dfc4a15cb80dc25261176c784662cdcc4"}, 214 | {file = "protobuf-3.20.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:d9e4432ff660d67d775c66ac42a67cf2453c27cb4d738fc22cb53b5d84c135d4"}, 215 | {file = "protobuf-3.20.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:74480f79a023f90dc6e18febbf7b8bac7508420f2006fabd512013c0c238f454"}, 216 | {file = "protobuf-3.20.3-cp37-cp37m-win32.whl", hash = "sha256:b6cc7ba72a8850621bfec987cb72623e703b7fe2b9127a161ce61e61558ad905"}, 217 | {file = "protobuf-3.20.3-cp37-cp37m-win_amd64.whl", hash = "sha256:8c0c984a1b8fef4086329ff8dd19ac77576b384079247c770f29cc8ce3afa06c"}, 218 | {file = "protobuf-3.20.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:de78575669dddf6099a8a0f46a27e82a1783c557ccc38ee620ed8cc96d3be7d7"}, 219 | {file = "protobuf-3.20.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:f4c42102bc82a51108e449cbb32b19b180022941c727bac0cfd50170341f16ee"}, 220 | {file = "protobuf-3.20.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:44246bab5dd4b7fbd3c0c80b6f16686808fab0e4aca819ade6e8d294a29c7050"}, 221 | {file = "protobuf-3.20.3-cp38-cp38-win32.whl", hash = "sha256:c02ce36ec760252242a33967d51c289fd0e1c0e6e5cc9397e2279177716add86"}, 222 | {file = "protobuf-3.20.3-cp38-cp38-win_amd64.whl", hash = "sha256:447d43819997825d4e71bf5769d869b968ce96848b6479397e29fc24c4a5dfe9"}, 223 | {file = "protobuf-3.20.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:398a9e0c3eaceb34ec1aee71894ca3299605fa8e761544934378bbc6c97de23b"}, 224 | {file = "protobuf-3.20.3-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:bf01b5720be110540be4286e791db73f84a2b721072a3711efff6c324cdf074b"}, 225 | {file = "protobuf-3.20.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:daa564862dd0d39c00f8086f88700fdbe8bc717e993a21e90711acfed02f2402"}, 226 | {file = "protobuf-3.20.3-cp39-cp39-win32.whl", hash = "sha256:819559cafa1a373b7096a482b504ae8a857c89593cf3a25af743ac9ecbd23480"}, 227 | {file = "protobuf-3.20.3-cp39-cp39-win_amd64.whl", hash = "sha256:03038ac1cfbc41aa21f6afcbcd357281d7521b4157926f30ebecc8d4ea59dcb7"}, 228 | {file = "protobuf-3.20.3-py2.py3-none-any.whl", hash = "sha256:a7ca6d488aa8ff7f329d4c545b2dbad8ac31464f1d8b1c87ad1346717731e4db"}, 229 | {file = "protobuf-3.20.3.tar.gz", hash = "sha256:2e3427429c9cffebf259491be0af70189607f365c2f41c7c3764af6f337105f2"}, 230 | ] 231 | 232 | [[package]] 233 | name = "six" 234 | version = "1.16.0" 235 | description = "Python 2 and 3 compatibility utilities" 236 | optional = false 237 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" 238 | files = [ 239 | {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, 240 | {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, 241 | ] 242 | 243 | [[package]] 244 | name = "wcwidth" 245 | version = "0.2.13" 246 | description = "Measures the displayed width of unicode strings in a terminal" 247 | optional = false 248 | python-versions = "*" 249 | files = [ 250 | {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, 251 | {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, 252 | ] 253 | 254 | [metadata] 255 | lock-version = "2.0" 256 | python-versions = "^3.10" 257 | content-hash = "e679196d78f527fed08e04cc6e2f2a0116ce15b4fe44366d2baa478602f55707" 258 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "payload_dumper" 3 | version = "0.3.0" 4 | description = "Dump partitions from Android's payload.bin" 5 | authors = ["Rasmus Moorats "] 6 | readme = "README.md" 7 | repository = "https://github.com/nnsee/payload-dumper" 8 | homepage = "https://github.com/nnsee/payload-dumper" 9 | 10 | [tool.poetry.dependencies] 11 | python = "^3.10" 12 | protobuf = "^3.19.1" 13 | bsdiff4 = "^1.2.1" 14 | enlighten = "^1.12.2" 15 | 16 | [tool.poetry.dev-dependencies] 17 | 18 | [tool.poetry.scripts] 19 | payload_dumper = "payload_dumper:dumper.main" 20 | 21 | [build-system] 22 | requires = ["poetry-core>=1.0.0"] 23 | build-backend = "poetry.core.masonry.api" 24 | --------------------------------------------------------------------------------