)]}'
{
  "log": [
    {
      "commit": "0103c36caa2e38e034e0d22185736b9ccfb35c58",
      "tree": "8724a008f71586acf1b33c67fc972ba15b742cf2",
      "parents": [
        "3317b88ea8006e9d2fae5dbb3abd7187bacdeefa"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Wed Jan 20 07:56:15 2016 -0800"
      },
      "committer": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Wed Jan 20 09:34:58 2016 -0800"
      },
      "message": "update_engine: Update libchrome APIs to r369476\n\nThe new libchrome has been ported from Chromium and some APIs have\nchanged. Make necessary changes at call sites.\n\nChange-Id: I42e65bda7f1dbdf6f6e0ebf356d2cfea6b729193\n"
    },
    {
      "commit": "542c19bf271011913a9f352f58e140224c936736",
      "tree": "6dfbc767c2f92676b2f21dd1d0473833ffb46865",
      "parents": [
        "33e91e78bfe98c063b0c3b6d590976e275685686"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Dec 03 07:43:31 2015 -0300"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Dec 04 19:27:41 2015 -0800"
      },
      "message": "Remove SystemState references from DeltaPerformer.\n\nDeltaPerformer is used as part of the DownloadAction and had\nreferences to the global SystemState. The common references to\nBootControlInterface (to query the partitions based on the names\nfrom the payload) and the HardwareInterface (for dev-mode bits) are\nnow referenced directly from the DeltaPerformer. The calls to\nUpdateAttempter and PayloadState were moved to the\nDownloadActionDelegate since these calls are received by classes\noutside the payload_consumer.\n\nBug: 25773375\nTEST\u003dFEATURES\u003dtest emerge-link update_engine\n\nChange-Id: Id2e81d5ccf835cad22f03b069c681dcce104c456\n"
    },
    {
      "commit": "05feee0fc8f4f10b425f04e1f5cdd4831bbfb969",
      "tree": "be025e659930e6cfbad43c91583ad773bba617ab",
      "parents": [
        "39910dcd1d68987ccee7c3031dc269233a8490bb"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Nov 11 15:59:49 2015 -0800"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Nov 12 10:15:39 2015 -0800"
      },
      "message": "delta_generator: Include postinstall calls in the payload major version 2.\n\nAdded a new flag --new_postinstall_config_file which takes a path to a key\nvalue store config file and saves this information to the PartitionUpdate\nfield.\n\nThe config file looks like this:\nRUN_POSTINSTALL_root\u003dtrue\nPOSTINSTALL_PATH_root\u003dpostinstall\nFILESYSTEM_TYPE_root\u003dext4\n\n\"root\" can be changed to any partition name.\n\nBug: 24537566\nTEST\u003dGenerated a payload v2 with postinstall.\nTEST\u003dAdded unittest.\n\nChange-Id: Ied3c7bc2cfb54f4bcc69207f1e5bd473f72024fe\n"
    },
    {
      "commit": "39910dcd1d68987ccee7c3031dc269233a8490bb",
      "tree": "b7569d7ff83b001d244eda59bb2efdee9a6f15ec",
      "parents": [
        "82352f97b4621dbf6af8308ff0b0b17b0968b53a"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Mon Nov 09 17:04:30 2015 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Nov 12 02:17:50 2015 +0000"
      },
      "message": "Split payload application code into a subdirectory.\n\nThis patch splits from the main libupdate_engine code the part that\nis strictly used to download and apply a payload into a new static\nlibrary, moving the code to subdirectories. The new library is divided\nin two subdirectories: common/ and payload_consumer/, and should not\ndepend on other update_engine files outside those two subdirectories.\nThe main difference between those two is that the common/ tools are more\ngeneric and not tied to the payload consumer process, but otherwise they\nare both compiled together.\n\nThere are still dependencies from the new libpayload_consumer library\ninto the main directory files and DBus generated files. Those will be\naddressed in follow up CLs.\n\nBug: 25197634\nTest: FEATURES\u003dtest emerge-link update_engine; `mm` on Brillo.\n\nChange-Id: Id8d0204ea573627e6e26ca9ea17b9592ca95bc23\n"
    },
    {
      "commit": "82352f97b4621dbf6af8308ff0b0b17b0968b53a",
      "tree": "2e6afbd0ed99c4ddd02dce4ecf9f000565c4c908",
      "parents": [
        "9fded1eee295295d33da477f00d9c9a240623e91"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Mon Nov 09 16:36:53 2015 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 11 02:06:51 2015 +0000"
      },
      "message": "delta_generator: Include per-operation source hash.\n\nThis adds a src_sha256_hash field in the operation if minor version is 3.\n\nBug: 23182225\nTEST\u003dcros_workon_make update_engine --test\nTEST\u003dGenerated a minor version 3 payload, the manifest is about 50% larger.\n\nChange-Id: I0e363fca4de24bae64ac83930afdd42a6ddc21c9\n"
    },
    {
      "commit": "af1575fc52d529436856ecbce3c3cd0593016b25",
      "tree": "f7c07db361163cd8fe7bd84ba8ae9d80f75660df",
      "parents": [
        "dbe13b471c061dcb61395b8b37201a3a6ea18116"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Mon Nov 09 13:34:16 2015 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 10 01:20:13 2015 +0000"
      },
      "message": "Fix logging percentage in BlobFileWriter.\n\nShould clear number of stored blobs when enable logging.\n\nBug: 25293923\nTEST\u003dGenerated a full payload, the percentage is correct.\n\nChange-Id: Ie779d699db1b12105bbf77fbae3a02c41d28401b\n"
    },
    {
      "commit": "3e728feb92bfd5514bff55aa7dc455da80e18906",
      "tree": "80e33b9fd7199886c60c414f28a747972834e531",
      "parents": [
        "35f358b50915a9346f7de005bf561102b4a3b0e6"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Nov 05 11:37:23 2015 -0800"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Nov 05 13:27:40 2015 -0800"
      },
      "message": "Do not include signature dummy operation in major version 2.\n\nIt only exists for compatibility reason, for major version 2, there\u0027s no\npoint to add this any more.\n\nBug: None\nTEST\u003dApplied the new payload to a device.\n\nChange-Id: I5803ab755415a1ba3d7460d82956bfe6e9fd4547\n"
    },
    {
      "commit": "644f618b8bbaa096c1fcdcf7d6ed06e2538ea83c",
      "tree": "303c1ddfcbcb51950ab86cee2f347ea1313146b3",
      "parents": [
        "720df3eeaecfc9ad229440c59e08c8d52f13dc1e"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Oct 06 16:45:57 2015 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Oct 23 10:09:21 2015 -0700"
      },
      "message": "delta_generator: Include metadata signature in major version 2.\n\n--metadata_signature_file flag does what it should now.\nNote that you should only pass this flag if the payload you are signing is\nversion 2.\n\nBug: 23981164\nTEST\u003dunit test added.\n\nChange-Id: I613cd6a5fef188eca37c46c3f8a0a41d1c22f2fd\n"
    },
    {
      "commit": "720df3eeaecfc9ad229440c59e08c8d52f13dc1e",
      "tree": "fe07787244ec3eb0ce2147c17973627ea99147dd",
      "parents": [
        "abdc0115548985d8ca3f3f2aeb1283741ce409a6"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Oct 01 13:10:44 2015 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Oct 22 13:16:07 2015 -0700"
      },
      "message": "Skip metadata signature when hashing payload in major version 2.\n\nWe should skip metadata signature when hashing the payload, so that the\npayload signature won\u0027t depend on metadata signature.\n\nVerifySignedPayload will also verify metadata signature now if it exist.\n\nBug: 23981164\nTEST\u003dcros_workon_make update_engine --test\nChange-Id: I3e52b7bf8ddf1539bbb6934e8a5ec1112b94ae62\n"
    },
    {
      "commit": "abdc0115548985d8ca3f3f2aeb1283741ce409a6",
      "tree": "6d85c3d98886d845afb01f620726ed078f243e47",
      "parents": [
        "14e7dde6cfc533b273cf4dfac2116733bfeb9377"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Oct 22 11:53:12 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Oct 22 11:57:52 2015 -0700"
      },
      "message": "Fix building delta_generator.\n\nPrevious CL had a few include renames missing.\n\nBug: None\nTest: sudo emerge update_engine\n\nChange-Id: Ifcdf5f11d52561cf3f976f18c0d66b95dd3c0d66\n"
    },
    {
      "commit": "0bc2611b49aba30202fdb9c23871430eb67e4738",
      "tree": "cacca795dfef0d930b89223c81158d0839576ea4",
      "parents": [
        "1016ae1251f9e9f82389194c2175b3dd024b7ddb"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Mon Oct 19 20:54:57 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Oct 22 17:47:39 2015 +0000"
      },
      "message": "Move bzip.h to payload_generator.\n\nThe in-memory bzip compression and decompression functions are only\nused during payload generation and testing. This patch moves those\nfunctions to the payload_generator/ directory and keeps the streamed\nversion (bzip_extent_writter.h) in the update_engine daemon.\n\nBug: None\nTest: FEATURES\u003dtest emerge-link update_engine; `mm` on Brillo.\n\nChange-Id: I78227fdac15df6461b23debb41c72207b22fb5db\n"
    },
    {
      "commit": "aef1c6f0b5a0059a103251a9a93bd0be43bd50a2",
      "tree": "449ca1323764d609b5fd3c3bd721a8e232726fc9",
      "parents": [
        "35b3584ab4041aa32e1d049bd6ddff5941b03df2"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Oct 07 10:05:32 2015 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Oct 20 14:29:22 2015 -0700"
      },
      "message": "PayloadVerifier should not depend on DeltaPerformer to load payload.\n\nThe implementation in DeltaPerformer is designed for situation that payload\nmight only partially available, but in PayloadVerifier we already have the\nwhole payload. So I implemented LoadPayload in PayloadSigner which logic is\nsimpler and supports both version 1 and 2.\n\nVerifySignedPayload is also moved to PayloadSigner since it\u0027s not used in\nupdate engine daemon.\nThis patch also fixed wrong metadata size out in version 2 and misspelling\nof metadata in WritePayload in PayloadFile.\n\nBug: 23981164\nTEST\u003dunit test added.\n\nChange-Id: Id1917fc891dbf2075978a273d1a4ee3c4ecf0571\n"
    },
    {
      "commit": "8241ffb63697b9ae7e91b52e71d36fe17470e43c",
      "tree": "42baeedef7e32b8854de65920e72c275097910d3",
      "parents": [
        "906191f88cb2448691e54f7a6a3b464854053154"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Oct 15 10:36:44 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Oct 15 10:53:42 2015 -0700"
      },
      "message": "Print operation names using InstallOperationTypeName().\n\nPayloadFile had a local array to convert from the operation type enum\nto a human-readable string name. Since the enum is converted to an int\nthis method will not fail to compile whenever new operations are added.\n\nThis patch removes such array and uses the existing\nInstallOperationTypeName() function to convert the enum to string. This\nfixes a buffer overflow in test code that generates new operations.\n\nBug: chromium:543593\nTest: USE\u003d\"clang asan\" FEATURES\u003dtest emerge-link update_engine\n\nChange-Id: Ib8d80711d039edf18a323aefaad4ce96e5dfc2e3\n"
    },
    {
      "commit": "3f39d5cc753905874d8d93bef94f857b8808f19e",
      "tree": "09c75380469065d508a1a59e27e4a4dd5b28763d",
      "parents": [
        "25fbdf83064c78dfb4d9143be25f080ee2c56730"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Tue Oct 13 09:27:13 2015 -0700"
      },
      "committer": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Tue Oct 13 09:44:07 2015 -0700"
      },
      "message": "update_engine: Rename \"chromeos\" -\u003e \"brillo\" in include paths and namespaces\n\nlibchromeos is transitioning to libbrillo and chromeos namespaces\nand include directory is changing to brillo.\n\nBug: 24872993\nChange-Id: I770659a95be380a50fe3b2ba9f91d65818f40945\n"
    },
    {
      "commit": "25fbdf83064c78dfb4d9143be25f080ee2c56730",
      "tree": "459f2b5e61de0513f13e2e528a235edee79beefb",
      "parents": [
        "6dd160ab4a0e631fdf1faf33eb7cb746ddf5ccdb",
        "d8ae872e3b5395580b3679cc92f1c5e52e409c16"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Oct 13 00:16:20 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 13 00:16:20 2015 +0000"
      },
      "message": "Merge \"delta_generator: Add --out_metadata_size_file flag.\""
    },
    {
      "commit": "e5e5fe926e9ea45b1a381af1bee91a86643ffd72",
      "tree": "565bfeb73b56ae711ea976ad9756ef5a2f158ea2",
      "parents": [
        "93417cd690867a8c5411b0dfadad525b02445355"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Mon Oct 05 09:28:19 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Oct 09 17:07:51 2015 -0700"
      },
      "message": "Move InstallPlan partitions to a list of partitions.\n\nThis patch changes the InstallPlan instance from having hard-coded\nrootfs and kernel paritions to have a list of partitions with a\nname, source and target information.\n\nThe FilesystemVerifierAction, DeltaPerformer and PostInstallAction were\nadapter to use the list of partitions instead.\n\nIn delta payloads (only supported in the current major version 1) the\nlist of operations is still fixed: the rootfs first and the kernel.\nThis list is now populated by the FilesystemVerifierAction including\nthe size of these partitions, until the whole source partition hash\nchecking is deprecated (b/23182225).\n\nThe PostIntallAction now relies on the DeltaPerformer to populate the\npost-install information from the payload. This means that in rollback\nwe won\u0027t run any device-specific post-install operation, and will\nsimply flip the slots in the bootloader.\n\nBug: 24667689\nTest: Updated unittests. Tested on a dragonboard and a link.\n\nChange-Id: I8277e3190ac74e57832a58dc0730e3713f48af8a\n"
    },
    {
      "commit": "d8ae872e3b5395580b3679cc92f1c5e52e409c16",
      "tree": "e3b3a423b5810ffd6ce9e49953f2f08f759fcb38",
      "parents": [
        "7e13b005a84763110ce539ba8f64d08b47c016c9"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Oct 08 15:21:09 2015 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Oct 09 09:52:57 2015 -0700"
      },
      "message": "delta_generator: Add --out_metadata_size_file flag.\n\ndelta_generator will write the metadata size in text to the given file.\nThis flag will only be accepted when generating or signing the payload.\n\nBug: 24751934\nTEST\u003dcalled delta_generator with this flag.\n\nChange-Id: I824079dc4c18534a80ded77902f4ea8f6dbbd20f\n"
    },
    {
      "commit": "7e13b005a84763110ce539ba8f64d08b47c016c9",
      "tree": "29b205b815d17b73f706ec8de9b1dd766eeec6a5",
      "parents": [
        "4279178313363424af6a4945489400f0a804f6b1",
        "5df68364fb035040059e86c13b9f49d32a51dd98"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Oct 09 16:48:13 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 09 16:48:13 2015 +0000"
      },
      "message": "Merge \"delta_generator: Accept a list of partitions in the command line.\""
    },
    {
      "commit": "b8060e435f0edb8efef4891a99fa18f642e01aa2",
      "tree": "03b651f537ac25203882f32610d5ebe8c3119121",
      "parents": [
        "981eb1151f42480ea10cb5283ab2108454a16c92"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Sep 24 17:30:50 2015 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Mon Oct 05 15:41:51 2015 -0700"
      },
      "message": "Parse metadata signature size in payload version 2.\n\nThis patch only parse the field and skip the signature without verifying it.\n\nBug: 23946683\nTEST\u003dunit test added.\n\nChange-Id: I53e049c35f8c21d325aeb415ac9a2daf980fcda1\n"
    },
    {
      "commit": "5df68364fb035040059e86c13b9f49d32a51dd98",
      "tree": "ce40fca284cc29464d3d0adbfd5bc258cb0e4d5c",
      "parents": [
        "981eb1151f42480ea10cb5283ab2108454a16c92"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Sep 22 11:35:51 2015 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Mon Oct 05 15:02:04 2015 -0700"
      },
      "message": "delta_generator: Accept a list of partitions in the command line.\n\nNew flags are old_partitions, new_partitions and partition_names.\nThey all accecpt a colon separated string.\n\nBug: 24387911\nTEST\u003dCalled delta_generator with the new flags to generate a payload.\n\nChange-Id: Iad0669e53a3326410700902e4e2d45ca7ca067c1\n"
    },
    {
      "commit": "981eb1151f42480ea10cb5283ab2108454a16c92",
      "tree": "c1e77affea61e3adf9c9b57a2501c9fd66f9a093",
      "parents": [
        "0d04ce38f933c06b34a696c5f56f776baa0925b8"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Aug 25 17:03:18 2015 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Oct 02 15:53:19 2015 -0700"
      },
      "message": "Support multiple partitions in ImageConfig\n\nImageConfig now have a vector of partitions instead of hardcoded rootfs and\nkernel.\n\nBug: 23420126\nTEST\u003dcros_workon_make update_engine --test\n\nChange-Id: Id226cc04628b44f1fcbd58f03038809867bf9e40\n"
    },
    {
      "commit": "0d04ce38f933c06b34a696c5f56f776baa0925b8",
      "tree": "8f06ccd99e357423bd34373e1a1822fbd55c75b1",
      "parents": [
        "2d621a3cf2da7ff3b2a178594cb97ada6c4350d3",
        "f2af4c6a44bfc9fdb31b3cceea14a9fb2d63d61a"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Oct 02 17:03:56 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 02 17:03:56 2015 +0000"
      },
      "message": "Merge \"Use file size instead of filesystem size for all partitions.\""
    },
    {
      "commit": "2d621a3cf2da7ff3b2a178594cb97ada6c4350d3",
      "tree": "99c1211b414c1bbef7f2cc37554b52efa62fc924",
      "parents": [
        "2e71f90d6af955a5359853132085931f1e0479e0"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Oct 01 11:09:01 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Oct 01 14:06:56 2015 -0700"
      },
      "message": "Implement REPLACE_XZ on the update_engine.\n\nThis patch introduces the REPLACE_XZ operation, very similar to\nREPLACE_BZ but using the XzExtentWriter instead. Minor cleanup of the\ngrowing list of operations included in this patch.\n\nBug: 23604708\nTest: Added unittests.\n\nChange-Id: Iefa9e2cda609fceab9311add16b7369cb88c98a2\n"
    },
    {
      "commit": "f2af4c6a44bfc9fdb31b3cceea14a9fb2d63d61a",
      "tree": "f60ac8b12ce48397db89999179c4a9c542c7ea74",
      "parents": [
        "a59304af39a65c9e9105d5f23cd14e064f0ff9c4"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Sep 30 16:38:09 2015 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Sep 30 18:27:29 2015 -0700"
      },
      "message": "Use file size instead of filesystem size for all partitions.\n\nBug: 23420126\nTEST\u003dcros_workon_make update_engine --test\n\nChange-Id: I994f527403a31234d7a3fed82ba43220149a555f\n"
    },
    {
      "commit": "a59304af39a65c9e9105d5f23cd14e064f0ff9c4",
      "tree": "2114bb92fa663e136d9eb78cbf29be79843599ac",
      "parents": [
        "b552a68af39efa42d462a9272d3dc47eb39c6db8",
        "f4bb3e6fec85d1243d27c47af2a1778586c9919e"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Sep 30 18:40:52 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 30 18:40:52 2015 +0000"
      },
      "message": "Merge \"Add metadata signature size field in payload major version 2.\""
    },
    {
      "commit": "b552a68af39efa42d462a9272d3dc47eb39c6db8",
      "tree": "53faa7503c8acb0ffcf28fbc881fe3aee86fdc20",
      "parents": [
        "05322879380a15f7042f4023b4ce4fec4b8bf50b"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Sep 30 09:36:49 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Sep 30 18:38:05 2015 +0000"
      },
      "message": "Check all signatures regardless of the version.\n\nThe update_engine daemon had a fixed version number for the public key\nused to verify both the metadata and whole payload signatures. The\npublic key itself is installed by the signer, implying that the source\ncode and the signer need to be in sync if we ever need to roll the\npayload key.\n\nThis situation becomes more of a problem if we don\u0027t control when the\nversion number included in the source code is updated in the built\nimage sent for payload generation and signing.\n\nThis patch makes update_engine ignore the version number associated\nwith a signature and instead tries to verify all the signatures\nincluded in the payload against the public key found in the code. This\neffectively deprecates the key version number. To be compatible with\nold versions, the version number 1 is included in all signatures.\n\nBug: 23601118\nTest: Added unittests.\n\nChange-Id: I4f96cc207ad6b9c011def5ce586d0e0e85af28ab\n"
    },
    {
      "commit": "f4bb3e6fec85d1243d27c47af2a1778586c9919e",
      "tree": "174f14727c70c9cc122f32f24cb824476711f639",
      "parents": [
        "7599e6cd37cba44d63b3adb278499ced01c81ef0"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Sep 29 11:12:09 2015 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Sep 30 10:23:47 2015 -0700"
      },
      "message": "Add metadata signature size field in payload major version 2.\n\nThis field is always 0 for now.\n\nBug: 23981164\nTEST\u003dGenerated a v2 payload, it has this field now.\n\nChange-Id: Ie6cff3c7ff478e83cf46bf6ac378f95ef197cad3\n"
    },
    {
      "commit": "cbf09896be9a627cd04dd54ef6875bed88daa3d8",
      "tree": "6f246abca6973648085cb24323156da70b11531c",
      "parents": [
        "2d528b4cd15682a7c84a415ae3cb15b7616d2b5d"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Sep 11 16:13:16 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Mon Sep 28 17:18:35 2015 -0700"
      },
      "message": "Include the major version in update_engine.conf\n\nThis patch moves all the payload definition version numbers to\npayload_constants.h and exposes the supported one in the .conf file.\n\nBug: 23946683\nTest: Added unittest to match the .conf file with the code.\n\nChange-Id: I7d84d2aa3c85d2b4d5da8bf102aa9bf99acc0136\n"
    },
    {
      "commit": "b9ef491e87c17d809368ede0196569d8a106b963",
      "tree": "7d60755919c056f24485f0344f71c3935240dade",
      "parents": [
        "60d1cfa646fd6084100ad3cf5dc128ad27a96fba"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Mon Sep 21 15:06:13 2015 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Mon Sep 21 17:04:15 2015 -0700"
      },
      "message": "Move partition info to PartitionUpdate in payload verison 2.\n\nold_kernel_info, old_rootfs_info is now old_partition_info.\nnew_kernel_info, new_rootfs_info is now new_partition_info.\n\nAddPartitionOperations is renamed to AddPartition because it now adds\npartition info too.\n\nBug: 23694580\nTEST\u003dcros_workon_make update_engine --test\nGenerated a version 2 payload with delta_generator.\n\nChange-Id: I07c7fc21198307e935679e62861cdac4b406c84f\n"
    },
    {
      "commit": "625406cee9a90ac2ed895f480286b7f0e8497f38",
      "tree": "3d81611764c757d7a07b685aca5a28d35c69589c",
      "parents": [
        "70a6ab091beb261a501012bc09955de452dd4736"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Sep 16 16:35:23 2015 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Sep 18 14:35:59 2015 -0700"
      },
      "message": "payload_generator: Remove PartitionName enum.\n\npayload_generator should be able to generate payload for any partition name\nin major version 2, so we should use a string for partition name.\n\nBug: 23620828\nTEST\u003dcros_workon_make update_engine --test\n\nChange-Id: Iee92af5d82e74b9be6ae793850a4ae6c31e008c5\n"
    },
    {
      "commit": "70a6ab091beb261a501012bc09955de452dd4736",
      "tree": "252b2c67e0535aec5a0f1439c1b911528475f1fe",
      "parents": [
        "5fc5e10aaaa476bce655efa86a3bf3ec25210620"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Aug 28 13:23:27 2015 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Sep 18 12:30:46 2015 -0700"
      },
      "message": "Move install operations to partitions field in major version 2.\n\ninstall_operations and kernel_install_operations will be empty in major\nversion 2, they are now present in partitions field.\n\npartition_info are still in old location, more refactoring are needed before\nmoving them.\n\nThis patch also moves the kLegancyPartitionName constants from install_plan.h\nto payload_constants.h.\n\nTEST\u003dcros_generate_update_payload generate same payload version 1 as before.\nCall delta_generator manually with --major_version\u003d2, then cros payload show.\ncros_workon_make update_engine --test\n\nBug: 23694580\nChange-Id: If9e9531656480b1174e13b39af7ecb6a81060aac\n"
    },
    {
      "commit": "7d9bd921a8f92338ca44a6ee368c58450da594df",
      "tree": "ee160a8495bdec6c9ecc069f60b2f87ceff5abd7",
      "parents": [
        "a240d4a5c2808c698b52242a93d4bcd5c4516feb"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Mon Sep 14 12:33:10 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Mon Sep 14 12:33:10 2015 -0700"
      },
      "message": "Include missing REPLACE_XZ switch case.\n\nThe operation was included in the .proto file but not in this switch\ncase.\n\nBug: 23179128\nTest: emerge-link update_engine\n\nChange-Id: I99887a1dbcf6237d268bcd0c117d3766f113df64\n"
    },
    {
      "commit": "ef366e126180b537e085e31f1e514741f021a054",
      "tree": "acd9744b9c16c872b98bf951b0f9bb46381cca0f",
      "parents": [
        "758dd53cf503adbcb049909f25f54603d411be09"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Sep 10 18:06:46 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Sep 11 15:40:06 2015 -0700"
      },
      "message": "delta_generator: Accept --metadata_signature_file flag.\n\nThe flag currently doesn\u0027t actually include the signature in the\npayload, but need the binary to accept the flag before we update\nthe caller script.\n\nBug: 23981164\nTest: `delta_generator --metadata_signature_file\u003dfoo` doesn\u0027t complain\n\nChange-Id: I81dd4b17be4f66482bc041a0310c8ef13e9bb566\n"
    },
    {
      "commit": "262c7be2e5ca3ea6d0a814200392895fd3faa931",
      "tree": "42e5219faa34c2a245bf6fac6f1c1ed9b3a16a2c",
      "parents": [
        "b17327ce55e7132da1f64039040df93a8c260fef"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Tue Sep 08 18:49:19 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Sep 09 09:33:04 2015 -0700"
      },
      "message": "Remove Chrome OS specific verity_utils module.\n\nThe size of the updated region in the partition should match the size\nthe verified boot chain requires, or at least be bigger. In Chrome OS,\nthe kernel partition includes a command line with the size of the\nrootfs verity will verify, but the rootfs partition is significantly\nbigger (about 800 MB more) so we only update what is required.\n\nIn the more general Brillo case, the size of the updated area depends\non how verity is used. This patch removes this logic from the\ndelta_generator and uses the size of the filesystem, which should\nmatch the size of the verity region in Chrome OS devices using ext2.\n\nBug: 23084776\nTest: sudo emerge_update; `mma` on AOSP\n\nChange-Id: I37f341263d86f127d937b4afc24e9d085131cb08\n"
    },
    {
      "commit": "6f20dd4fc8861d93d188cd27323d2f9746464aaf",
      "tree": "418a78a045d310b13879f1b4f14d85f04fcbd743",
      "parents": [
        "749c176a9ef80204e967d420a6cdc9164f2f8f3e"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Tue Aug 18 16:42:46 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Sep 04 10:08:58 2015 -0700"
      },
      "message": "Fix includes and DBus headers to build on Android.\n\nThis patch include a set of small changes to includes and names in\norder to be compatible with the Android build system.\n\nFirst, the DBus .xml file needs to be renamed to .dbus-xml and the\noutput directory must match the soruce directory, since the headers are\ngenerated with automatic Makefile rules.\n\nSome headers required by bionic were missing, such as endian.h and\nxattr.h. In the xattr.h case, we include the header from the glibc\n(or bionic) instead of libattr, since libattr is not available in\nAOSP in the first place, and we are not linking against it Chrome OS,\nso we shold include the right headers.\n\nBug: 23084776\nTEST\u003d`FEATURES\u003dtest emerge-link update_engine` works; `mma` in AOSP doesn\u0027t have these errors anymore (but still doesn\u0027t build).\n\nChange-Id: Ifeedfe9d894ca78baa03940ac55563cfcd464e76\n"
    },
    {
      "commit": "46e9b1735a16518d563b3c7e7227408f8fc3e891",
      "tree": "0713a72c4afdd1ae6416d881763752ad6701dcf9",
      "parents": [
        "0e659381738dc72711a7c538a43ef75c817386b1"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Mon Aug 31 14:11:01 2015 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Sep 01 11:14:05 2015 -0700"
      },
      "message": "Add major_version flag in delta_generator.\n\nOnly affects major version number in the payload for now, actual implementation\nof major version 2 will follow.\n\nTEST\u003dCall delta_generator manually with --major_version\u003d2 then cros payload\nshow.\n\nBug: 23694580\nChange-Id: I5baca5a868ec00dc2f6ea63d89e295d43283fd32\n"
    },
    {
      "commit": "ebdf17d4202c67933764135bfc1cece629829201",
      "tree": "739f42dfe79577c9c095ecb72fdac5e1eef7beff",
      "parents": [
        "5476a472a335ff42e1bf2a104f607dd401f50053"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Aug 19 11:53:27 2015 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Aug 26 17:33:44 2015 -0700"
      },
      "message": "Generate update operations per partition\n\nIn order to support multiple partitions, OperationsGenerator should take one\npartition at a time, and be called multiple times. This also reduce code\nrepetition.\n\nTEST\u003dFEATURES\u003dtest emerge-peppy update_engine; cros_generate_update_payload\ngenerate same payload as before.\n\nBUG: 23037923\nChange-Id: Iefbe87401217873e6dbdc616791667cfd1ec76a3\n"
    },
    {
      "commit": "5456c19a2115ad1f44357eb82fe75cb36039f4c8",
      "tree": "dab370e829bb5d635d59b3cc40a97b2d317e6645",
      "parents": [
        "b8803bbfe96abce0ae792a93bc975d478d98d16a"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Aug 19 15:01:16 2015 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Aug 20 17:37:50 2015 -0700"
      },
      "message": "Call SetOperationBlob in ChunkProcessor\n\nBUG\u003dNone\nTEST\u003dFEATURES\u003dtest emerge-peppy update_engine\n\nChange-Id: I0b946ce2ad945088f9f57cff4a13a1913e022769\n"
    },
    {
      "commit": "aea4c1cea20dda7ae7e85fc8924a2d784f70d806",
      "tree": "a8934ac4c258cf942ecc2423fe94f1458acfa64f",
      "parents": [
        "d2956cc4b5c60d3d670eb7bf0f1ba800c8a16d62"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Aug 19 20:24:43 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Aug 19 20:24:43 2015 -0700"
      },
      "message": "Re-license update_engine to Apache2\n\nThis patch automatically replaced the license on all text files from\nChromium OS (BSD style) to AOSP (Apache2), keeping the original year as\na reference.\n\nThe license header was added to .gyp and .gypi files, the NOTICE was\nreplaced with a copy of the Apache2 license and MODULE_LICENSE_* file\nwas updated.\n\nBUG\u003db/23084294\nTEST\u003dgrep \u0027Chromium OS Authors\u0027 doesn\u0027t find anything.\n\nChange-Id: Ie5083750755f5180a8a785b24fe67dbf9195cd10\n"
    },
    {
      "commit": "ac6246ae239518a27ab4e89ee01ba1b1d76d440f",
      "tree": "7593c43e985af59ea00b625416df0c581ff03483",
      "parents": [
        "a12ee11c78ac6d7c2605921a4006b6a7416e0c35"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Aug 13 14:00:22 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Sat Aug 15 04:26:42 2015 +0000"
      },
      "message": "update_engine: Extend payload metadata with Brillo fields.\n\nIn order to update more than two partitions, we moved the partition\nupdate description to a new message PartitionUpdate.\n\nThe InstallOperation message is extended with a per-operation source\ndata hash to validate the source data right before we apply the\noperation instead of relying on the slow whole-partition hash.\n\nThis patch also includes two new operation types: ZERO and DISCARD to\nbe included starting with delta minor_version\u003d3 and full payloads in\nBrillo. It doesn\u0027t include the implementation for those yet.\n\nBUG\u003db:23179128\nTEST\u003dUnittest still pass.\n\nChange-Id: I5b5fc8e2af6684ce655bf1fa1b82d1d2285a4e3a\nReviewed-on: https://chromium-review.googlesource.com/293505\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "a12ee11c78ac6d7c2605921a4006b6a7416e0c35",
      "tree": "24ca78164d476399a3c6a1a8f19dcb259c560e3e",
      "parents": [
        "c00c98a1dad941e5cc04ce0b0e766d40b3b384e1"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Wed Aug 12 22:19:32 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Sat Aug 15 04:26:36 2015 +0000"
      },
      "message": "update_engine: Move InstallOperation to the top level.\n\nThe InstallOperation message in the protobuf is a nested message\ninside the DeltaArchiveManifest message, making all references to\noperation types be very long names like\nDeltaArchiveManifest_InstallOperation_Type_REPLACE_BZ while most other\nmessages are not nested in the DeltaArchiveManifest message.\n\nTo improve readability and to prepare for future update metadata\nchanges, this patch moves the InstallOperation message to the top level\nand replaces all references to operation types with the new shorter\nversion like InstallOperation::REPLACE_BZ.\n\nThis change only impacts the scope of the generated classes and the\nserialized format of the protobuf. This exact same question was\naddressed by protobuf maintainers here:\n\nhttps://groups.google.com/forum/#!topic/protobuf/azWAPa6hP4A\n\nFinally coding style and indentation was automatically updated due to\nthe shorter names.\n\nBUG\u003db:23179128\nTEST\u003dUnittest still pass.\n\nChange-Id: I55add54265934cd1fd3e9cb786c5d3f784902d17\nReviewed-on: https://chromium-review.googlesource.com/293504\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "0b3db6b6040f53eb9859e614f7fe4c681213d33a",
      "tree": "3617cac41c1a518db08491667856e79bd0733bc0",
      "parents": [
        "305345001d85ca2282112c2a30fe75c7a4773491"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Mon Aug 10 15:19:37 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Aug 14 02:26:00 2015 +0000"
      },
      "message": "update_engine: Remove all references to glib.\n\nThe message loop in production code switched from\nchromeos::GlibMessageLoop to chromeos::BaseMessageLoop used in\nchromeos::Dameon. This patch moves all the unittests also to use\nchromeos::BaseMessageLoop or chromeos::FakeMessageLoop when I/O is not\nrequired.\n\nThis patch removes all (now unused) references to glib.\n\nBUG\u003dchromium:499886\nTEST\u003d`grep glib[^c] . -R` return no results. Also, unittests work.\n\nChange-Id: Iddfb17def501829d932ed1f70faad3e00268898e\nReviewed-on: https://chromium-review.googlesource.com/292157\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "8cc502dacbccdab96824d42287f230ce04004784",
      "tree": "1e5cf087e09bb55ee76545414385d18c1f8478fc",
      "parents": [
        "535f3b738b0bcbca23a6e361c84bf84145d6a3e6"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@chromium.org",
        "time": "Mon Aug 10 10:04:54 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Thu Aug 13 21:40:57 2015 +0000"
      },
      "message": "update_engine: Change OperationsGenerator to use BlobFileWriter\n\nBUG\u003dchromium:517280\nTEST\u003dUnit test for BlobFileWriter\n\nChange-Id: Ib49925676331acee97ff6b4cec38a81ca8b157a1\nReviewed-on: https://chromium-review.googlesource.com/291441\nTested-by: Sen Jiang \u003csenj@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Sen Jiang \u003csenj@chromium.org\u003e\n"
    },
    {
      "commit": "461b259af8815d782200782c5ba3599d8de4a66c",
      "tree": "328c5f5a2cfd0ac76ae0eff35c6402a0c0d126d2",
      "parents": [
        "7fad7b7d3d7dcdaa7b17855fe333fcc4da000b46"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri Jul 24 20:10:52 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Wed Jul 29 21:18:40 2015 +0000"
      },
      "message": "update_engine: Use libchromeos to launch subprocesses.\n\nThe Subprocess class handles the execution of suprocesses in the\nupdate_engine such as the post-install script and bspatch operations.\n\nThis patch migrates this class from using glib functions to use\nlibchromeos classes with equivalent functionality.\n\nCallsites and unittests were updated to match the new interface.\n\nBUG\u003dchromium:499886\nTEST\u003dUnittest still pass. Deployed on link and cros flash another image\nusing a delta payload.\n\nChange-Id: Ia64d39734e220675113f393a6049e9a9b0fe8409\nReviewed-on: https://chromium-review.googlesource.com/288837\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "7fad7b7d3d7dcdaa7b17855fe333fcc4da000b46",
      "tree": "92add175ab0f4d34aa03e83492604faf7d63fb98",
      "parents": [
        "cfe8c15afc6c725a9626577db6504675310498d8"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Tue Jul 21 22:22:47 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Jul 24 04:17:15 2015 +0000"
      },
      "message": "update_engine: Replace gthread with libchrome equivalents.\n\nThis patch replaces the gthread usage in the multi-threaded full\npayload generator with equivalent functions from libchrome. In the\nnew code, a thread-pool is used instead of creating one thread per\nwork and waiting for the threads to finish.\n\nBUG\u003dchromium:499886\nTEST\u003dunittests still pass.\n\nChange-Id: I00fd56de2a789b5f007f1a4ab88680809bbeb5f0\nReviewed-on: https://chromium-review.googlesource.com/287635\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "cfe8c15afc6c725a9626577db6504675310498d8",
      "tree": "043b8f708c3815691cd06c3aeb5cd09923e518f7",
      "parents": [
        "2d3b2d635e50c6886e285afb86c3187d9e0bd360"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri Jul 17 18:56:37 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Thu Jul 23 09:59:35 2015 +0000"
      },
      "message": "update_engine: Set a sane chunk_size default.\n\nWhen generating deltas of normal ChromeOS images, the expected maximum\nsize of a file is about 120 MiB, which is reasonble to handle in\nmemory during payload generation and application. Nevertheless, if we\nfind a very big file (or pseudo-file) we could easilly run out of\nmemory when trying to produce a BSDIFF for it. This patch limits\nthe chunk_size to 200 MiB, which should not impact any normal\nChromeOS payload.\n\nBUG\u003dchromium:485397\nTEST\u003dcros_generate_update_payload produces the same payload.\n\nChange-Id: I1c43e619f424253cab20f0d384c7e90d10bd707d\nReviewed-on: https://chromium-review.googlesource.com/286535\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "2d3b2d635e50c6886e285afb86c3187d9e0bd360",
      "tree": "c06e70c4b7a7c2e4b545ba84559a64534f544012",
      "parents": [
        "da73df5a2c384ac190effacc59a4ae9a6e92928a"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri Jul 17 17:34:36 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Thu Jul 23 09:59:31 2015 +0000"
      },
      "message": "update_engine: Implement soft/hard chunk size limits.\n\nThe current approach uses a single chunk_size value, that defaults to\n-1 (or \"whole files\") for delta payloads. The \"whole files\" default is\nthe preferred value since BSDIFF and SOURCE_BSDIFF operations (the most\ncommon operations in real delta payloads) will benefit from having\naccess to the whole file in the old and new partition, in particular in\ncases like the chrome binary (~120 MiB in size).\n\nOn the other hand, very big chunks have a big memory footprint in most\ncases. Current implementations of BSDIFF, REPLACE_BZ and REPLACE will\nrequire as much private memory as the destination chunk_size or more.\nBecause of this and due to the lack of old data, a  small chunk_size\n(1 MiB) is used for full payloads.\n\nTo break this tension between having a big chunk_size for operations\nthat will benefit from it versus having a small chunk_size for cases\nwhere it doesn\u0027t change anything, this patch introduces two chunk\nsize values: a hard and soft limit.\n\nThe hard_chunk_size has the same meaning as the old chunk_size: no\noperation should have a destination bigger than the provided hard\nlimit. The soft_chunk_size is the preferred chunk size for an\noperation when a bigger chunk will not benefit significantly the\nfinal payload size. Having a small chunk size for operations like\nREPLACE_BZ, REPLACE, SOURCE_COPY and MOVE is important to keep the\nmemory footprint low when it the extra memory is not required.\n\nThe new soft_chunk_size limit is used when merging operations\n(previously hard-coded to 1 MiB) and when generating new\noperations for zeroed and moved blocks.\n\nBUG\u003dchromium:485397\nTEST\u003dRun cros_generate_update_payload for full and delta payloads.\nInspected the chunk size in the resulting payloads.\n\nChange-Id: I370048a81913ad23a151cfef6690627b7fff7277\nReviewed-on: https://chromium-review.googlesource.com/286568\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "56a088eded3be1fde86ae471c583483881c0a013",
      "tree": "8fd3294cc0c24375f6069e0dce715688c4dc5cfd",
      "parents": [
        "896fdbaa1cc9a422ac36ef455d02c3cef1f27816"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Mon Jul 20 12:15:21 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Tue Jul 21 19:56:25 2015 +0000"
      },
      "message": "update_engine: Remove deprecated flags.\n\nThese flags are not passed from cros_generate_update_payload anymore.\n\nBUG\u003dchromium:305832\nTEST\u003d`cros_generate_update_payload --old_image $FOO --image $BAR` still\nworks.\n\nChange-Id: I6fb009de677398b28ed09146d5f7c9877efd4210\nReviewed-on: https://chromium-review.googlesource.com/286890\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "896fdbaa1cc9a422ac36ef455d02c3cef1f27816",
      "tree": "471df12e868980e160ff36d1fe4c1400487f031a",
      "parents": [
        "3b2c7d0e6d859e6fc75c82b3417f87cf5968a49d"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Jul 16 15:25:18 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Tue Jul 21 01:34:30 2015 +0000"
      },
      "message": "update_engine: Prevent the InplaceGenerator to add MOVEs to block 0.\n\nWhile we normally don\u0027t generate MOVE operations to/from the block 0,\nthe cycle breaker logic can use the block 0 as scratch space, creating\nMOVE operations to and from the block 0.\n\nThis patch prevents it from picking the block 0 as scratch space and\nlogs a message when that would happend.\n\nBUG\u003dchromium:480751,chromium:500423\nTEST\u003dAdded unittest.\n\nChange-Id: I91f1b3c426a9d06aae5b685e2e901c7e448d8677\nReviewed-on: https://chromium-review.googlesource.com/286623\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "3b2c7d0e6d859e6fc75c82b3417f87cf5968a49d",
      "tree": "66f1290ffef4c222be3879d1466a917be244400b",
      "parents": [
        "f6165357bfbb74b22a4da5780a474f439611e167"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Jul 16 16:08:16 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Jul 17 10:57:30 2015 +0000"
      },
      "message": "update_engine: Sort full operations by destination.\n\nThe inplace generator moves all the full operations to the end of the\nlist. This patch sorts those operations by the destination.\n\nThis patch also cleans up the Vertex class by using the new\nAnnotatedOperation class instead of the operation and file_name\nseparated.\n\nBUG\u003dNone\nTEST\u003dUnittest still pass. minor_version\u003d1 full operations appear in\norder according to \"cros payload\".\n\nChange-Id: Ia0c15939086cec52dc855cbc3afa913f8cbebf6b\nReviewed-on: https://chromium-review.googlesource.com/286213\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "f6165357bfbb74b22a4da5780a474f439611e167",
      "tree": "affa95d2b70131ae58d5ebe136ebaf57595545a5",
      "parents": [
        "f0061358b5f741baeeb9177b838b289d2ce318f3"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Jul 16 15:15:57 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Jul 17 10:57:24 2015 +0000"
      },
      "message": "update_engine: Resolve read-after-write dependencies in the kernel.\n\nBUG\u003dchromium:510909\nTEST\u003dRan delta_generator on rambi from 6415.1.0 to 7272.0.0 dev-channel.\nResulting kernel operations are in order.\n\nChange-Id: I8843c1497b095af7520404d9845db9037bb5e262\nReviewed-on: https://chromium-review.googlesource.com/286212\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "f0061358b5f741baeeb9177b838b289d2ce318f3",
      "tree": "d09d4af158c38a42d6db6bdda5ebf0b37c21e7f4",
      "parents": [
        "957cf4d90694c88b0f698cfaa6ae2386f7c8ce63"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Wed Jul 01 14:59:15 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Thu Jul 16 05:15:35 2015 +0000"
      },
      "message": "update_engine: Handle moved and zero blocks in payload generation.\n\nDelta generation uses only the file name to detect when files changed.\nTherefore, renaming a file doesn\u0027t get detected and the new name is\nassumed to be a new file. On the other hand, free-space blocks are\noften just zeros so they can be easilly encoded independently from the\nrest.\n\nThis patch detects blocks that moved and blocks with zeros and handles\nthose blocks beforehand regardless of where are they in the filesystem\n(file data, metadata, free space, etc). For blocks that moved,\nSOURCE_COPY or MOVE operations are created as needed. For blocks with\nzeros we use REPLACE_BZ operations.\n\nBlocks processed in this way will be excluded from other files,\nmetadata or free space processing done. This solves perfomance issues\nwhen trying to process with bsdiff files with very long runs of zeros.\n\nCQ-DEPEND\u003dCL:283643\nBUG\u003dchromium:504445\nTEST\u003dUnittest added. Run delta_generator between cid canary 7195 and\n7201 and it doesn\u0027t take forever to finish.\n\nChange-Id: I892fe7456608e83a2946133da335eb4fbd19a645\nReviewed-on: https://chromium-review.googlesource.com/283172\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "b42b98db059a12c44110588fc0b3d5f82d32a2f8",
      "tree": "caf69b98901f93d8caa59446c16f2394557f8a7a",
      "parents": [
        "2e9533be9eb2e022d653400f47a354a7f06bf9db"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Mon Jul 06 17:42:38 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Thu Jul 09 01:17:52 2015 +0000"
      },
      "message": "update_engine: Load minor_version from the FilesystemInterface.\n\nIn the normal use case, cros_generate_update_payload doesn\u0027t pass the\nrequested minor_version to delta_generator which means we need to detect\nit from the old image. To detect it, we where looking at the\nupdate_engine.conf file in the mounted source directory. This patch uses\nthe recently added FilesystemInterface::LoadSettings() method to read\nthe update_engine.conf settings from the source rootfs partition.\n\nIn order to make this information available when autodetecting the\nminor_version and to help future FilesystemInterface mocking for\ntesting, we move the FilesystemInterface instance from inside the\nOperationsGenerator class to the PartitionConfig, so the filesystems are\nopened before calling GenerateUpdatePayloadFile.\n\nThis patch then deprecates the --old_dir flag removing the requirement\nto run delta_generator and cros_generate_update_payload as root when\ngenerating deltas.\n\nBUG\u003dchromium:305832\nTEST\u003dRan cros_generate_update_payload to generate deltas from old (link\nFSI) and new (ToT link) images.\n\nChange-Id: I915679d62aae2d1a2acee68cc8c1ec691cc363ad\nReviewed-on: https://chromium-review.googlesource.com/283643\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "2e9533be9eb2e022d653400f47a354a7f06bf9db",
      "tree": "1f70cfce9819476bb1065bda730833b89502d62d",
      "parents": [
        "13e0dd63e68f2003b46d413d499760b5a7631a03"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri Jun 26 20:57:06 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Thu Jul 02 03:02:58 2015 +0000"
      },
      "message": "update_engine: Expose the update_engine.conf in the FilesystemInterface.\n\nThe old image contains a /etc/update_engine.conf file that states the\npayload version supported by that image. Currently we read this file\ndirectly from the mounted filesystem and parse its contents. To stop\nmounting the filesystem we need to retrieve the information on this file\nsomehow.\n\nThis patch extends the FilesystemInterface with a method to load the\nupdate_engine.conf settings from the filesystem and implemets it using\next2fs on ext2 filesystems.\n\nCQ-DEPED\u003dCL:282380\nBUG\u003dchromium:305832\nTEST\u003dAdded new unittests with and without this file.\n\nChange-Id: I41b41e8aac58c645fb40aabfe340cde8821e405a\nReviewed-on: https://chromium-review.googlesource.com/282381\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "14158570d3995008dc93a628004118b87a6bca01",
      "tree": "575271d90c0bdfc105dafa43413d80d66975d723",
      "parents": [
        "6c396a9b3020df9b0b58886fd6f36523bec29d3a"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Sat Jun 13 03:37:08 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Wed Jul 01 09:35:37 2015 +0000"
      },
      "message": "update_engine: Split delta_diff_generator file.\n\nThe DeltaDiffGenerator class includes both an OperationsGenerator using the\nA-to-B operations and a set of common methods used also by the inplace generator.\nThe delta_diff_generator.{h,cc} files also include a single function to generate\nthe payload (GenerateUpdatePayloadFile) that centralizes the logic of generating\nthe operations and writing the payload.\n\nThis patch splits these three parts in different files. The common delta diff\nfunction are moved to the delta_diff_utils.{h,cc} files. The operations generator\nclass that uses A-to-B operations is now in a new ab_generator.{h,cc} pair of files\nthat implement the ABGenerator() class. Finally, the payload file writing methods\nare now in a single PayloadFile class.\n\nThis allow us to create payload files without the need to generate images and\ntheir deltas. This will be used in a follow up CL to remove the image generation\nlogic from the unittests.\n\nBUG\u003dchromium:351589\nTEST\u003dRan unittests. Regenerate a payload with and without this patch; got the same results.\n\nChange-Id: I6816d2c805ba8c0c5c9423c720131a100a15ebaa\nReviewed-on: https://chromium-review.googlesource.com/280838\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "6c396a9b3020df9b0b58886fd6f36523bec29d3a",
      "tree": "657541a2fdd7284738fdc1c76d04a206d4d6a992",
      "parents": [
        "8e66534e4c76de1b2882ef637cdb8f3c361cb48f"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Tue Jun 30 19:00:51 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Wed Jul 01 08:01:51 2015 +0000"
      },
      "message": "update_engine: Fix full payload generation when using chunk_size.\n\nWe already check that the partition size and the chunk_size are multiples\nof the block_size, but we assume that the partition size is a multiple of the\nchunk_size and that was mostly always the case. This patch fixes that by\nsetting the right operation size for the last rootfs and kernel operation.\n\nBUG\u003dchromium:485397\nTEST\u003dAdded unit test to check this case.\n\nChange-Id: Ia025d299c07bbe0732cf8554b75f4d40b6e063f9\nReviewed-on: https://chromium-review.googlesource.com/282758\nReviewed-by: Gabe Black \u003cgabeblack@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "8e66534e4c76de1b2882ef637cdb8f3c361cb48f",
      "tree": "c543fc43e18df9bbae8fc4b9ba9eb98889c8014e",
      "parents": [
        "00d79acf5b081e80978fb0e07caeae77b99f0372"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Wed Jul 01 01:54:54 2015 +0000"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Wed Jul 01 05:27:51 2015 +0000"
      },
      "message": "Revert \"update_engine: Change the default chunk_size to 200MB\"\n\nThe chunk_size handling in payload_generator has some problems. This commit break the full payload generation due to some bugs when the chunk_size is not a divisor of the partition size, breaking paygen in canaries.\n\nThis patch is not required for chromium:504447 since the bzip2 bug was already fixed.\n\nThis reverts commit def5fe30d2c5f38915f4e5986bdc54661f20ec3e.\n\nBUG\u003dchromium:504447\nTEST\u003dcros_generate_update_payload for a full payload doesn\u0027t generate a 200MiB kernel image.\n\nChange-Id: I505afd84ca10c7256b66cd84f288c6db03a4d88e\nReviewed-on: https://chromium-review.googlesource.com/282767\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "2a9cb2af7c21b93f380d8ce28d932acdf6e25df7",
      "tree": "e649efe5e8ccd2fe73e28f412a25f79c3202a112",
      "parents": [
        "2b6b1db46c3e8193c162d74f704cf789d0db6272"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri Jun 26 20:56:23 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Tue Jun 30 12:21:23 2015 +0000"
      },
      "message": "update_engine: Remove unused ext2_utils.h\n\nThis file is not used anymore.\n\nBUG\u003dNone\nTEST\u003dFEATURES\u003dtest emerge-link update_engine.\n\nChange-Id: I9fce8b912c7126f137db01060351d9278a7b43aa\nReviewed-on: https://chromium-review.googlesource.com/282359\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "2b6b1db46c3e8193c162d74f704cf789d0db6272",
      "tree": "1f4922d5d681445ad698766a2fde22f5a4adcd20",
      "parents": [
        "8d2bbe38da10c8461437fb14454ec20886bc212c"
      ],
      "author": {
        "name": "Kevin Cernekee",
        "email": "cernekee@chromium.org",
        "time": "Thu Jun 25 11:17:42 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Tue Jun 30 10:47:56 2015 +0000"
      },
      "message": "update_engine: Change the default chunk_size to 200MB\n\ncros_generate_update_payload can fail generating deltas for images\ncontaining very large (2GB) files.  To work around this, we can set a\nsmaller default chunk size.\n\nOn standard Chrome OS builds, the largest single file is the Chrome\nbrowser binary, weighing in at 130MB.  So this change should not affect\nthose builds at all.\n\nBUG\u003dchromium:504447\nTEST\u003dtrybot run\n\nChange-Id: I5469d1cb70fd4f241a72e6a0c8507d289016c6fe\nSigned-off-by: Kevin Cernekee \u003ccernekee@chromium.org\u003e\nReviewed-on: https://chromium-review.googlesource.com/281827\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "249fbf5be69e8de37fbac33c1570a58f902b1f6f",
      "tree": "5c37812d0e87dcab3a174b74ce883ac99f11ab10",
      "parents": [
        "509dd5376f47e38d18fe7d29da776e3dc9a9786d"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Tue Jun 16 09:03:28 2015 -0700"
      },
      "committer": {
        "name": "Filipe Brandenburger",
        "email": "filbranden@chromium.org",
        "time": "Tue Jun 16 20:58:46 2015 +0000"
      },
      "message": "update_engine: Avoid emitting a MOVE to 0.\n\nWorkaround the bug where we can\u0027t emit a MOVE to the block 0 by excluding\nit from the inplace generator graph and re-adding the operation later.\n\nBUG\u003dchromium:500423\nTEST\u003ddelta_generator from lulu-R43-6946.31.0 to R45-7174.0.0, test image.\n\nChange-Id: I3f16c2ae58b0f31869a39af6a45f7798960c722b\nReviewed-on: https://chromium-review.googlesource.com/278020\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTrybot-Ready: Filipe Brandenburger \u003cfilbranden@chromium.org\u003e\n"
    },
    {
      "commit": "a50870549b0fc16b659250449fffbd3eacc57d8b",
      "tree": "7086bc2fa50c97450560c6db9ef21d1d64ad0494",
      "parents": [
        "bfeeb2e85b7881ec16badb0e104c600639102ce2"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri Jun 12 12:18:56 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Jun 12 23:51:58 2015 +0000"
      },
      "message": "update_engine: Fix memory leak on new ext2_filesystem code.\n\next2fs_get_pathname() allocates new memory to store the pathname and we\nare supposed to free it. This patch adds the missing call to\next2fs_free_mem().\n\nBUG\u003dNone\nTEST\u003d`FEATURES\u003dtest USE\u003d\"clang asan\" VERBOSE\u003d1 GTEST_FILTER\u003d\"Ext2*\" emerge-link update_engine` works now and didn\u0027t work before\n\nChange-Id: I5244e7f9721875590c3b2455d469866d28c70c09\nReviewed-on: https://chromium-review.googlesource.com/277277\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Daisuke Nojiri \u003cdnojiri@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "bfeeb2e85b7881ec16badb0e104c600639102ce2",
      "tree": "9bee306392c7bf6f6c9a9fa6398919611abc4511",
      "parents": [
        "218b45f38da5290a76f2f3621b59bb684e80a47c"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Jun 11 20:15:07 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Jun 12 19:36:32 2015 +0000"
      },
      "message": "update_engine: Fix temp file leak in unittest.\n\nThis patch removes temp files when the test ends using the\nScopedPathUnlinker.\n\nBUG\u003dNone\nTEST\u003dRan unittest; ls /tmp doesn\u0027t show these files.\n\nChange-Id: I41d0db07b5f1f08f816a116c5ece5accb9030291\nReviewed-on: https://chromium-review.googlesource.com/277088\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "1beda780333ce51d7872603b70712772eb2383fb",
      "tree": "6a0a12e6d875db74aa92ea6d875c90ca6956bfc2",
      "parents": [
        "35589c2b9a0e20b42661b132890128d8025c1954"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Sun Jun 07 23:01:25 2015 +0200"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Jun 12 16:38:10 2015 +0000"
      },
      "message": "update_engine: Remove unused IsIdempotentOperation().\n\nAll the minor-version\u003d2 are idempotent, so since we switched to minor\nversion 2, this function becomes trivial now. This patch removes this\nfunction from the code and moves the ExtentRanges class to the\npayload_generator/ directory since now it is only used there.\n\nBUG\u003dNone\nTEST\u003dUnittest still pass.\n\nChange-Id: Ib9dbbdded0ca2ef2128bb6c470de7a00720c4038\nReviewed-on: https://chromium-review.googlesource.com/275806\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "35589c2b9a0e20b42661b132890128d8025c1954",
      "tree": "010572208967e7e60bd99146a2a5304df6dd23b3",
      "parents": [
        "6b9e38ef1180efe55e4a82bb18536d1b53fe493d"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Sun Jun 07 17:33:18 2015 +0200"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Jun 12 16:37:58 2015 +0000"
      },
      "message": "update_engine: Remove rootfs_mountpt from ImageConfig.\n\nThe mounted rootfs is not used anymore during opeartions generation so\nthis patch removes the setting from the ImageConfig. The --new_dir flag\nis now deprecated because of this.\n\nThe --old_dir is still being used when no --minor_version is passed, to\nautodetect the minor version of the old image.\n\nWith this patch, the rootfs and kernel partitions have a more generic\ndescription in the config.\n\nBUG\u003dNone\nTEST\u003dUnittest still pass.\n\nChange-Id: I0398493a44f8c09159a93a716f2168f45e8f8df9\nReviewed-on: https://chromium-review.googlesource.com/275805\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "6b9e38ef1180efe55e4a82bb18536d1b53fe493d",
      "tree": "78fe0f4cefaf61a1988eecec8ff13f6dd13ee15c",
      "parents": [
        "2b19cfbcdb1aa8c5d1f338d19312fe14b6734bd5"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri Jun 05 00:26:37 2015 +0200"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Jun 12 16:37:49 2015 +0000"
      },
      "message": "update_engine: Use the FilesystemInterface to generate deltas.\n\nThis patch removes the FilesystemIterator used to iterate the file data\nblocks, the metadata.{cc,h} files used to iterate the metadata blocks and\nthe ReadUnwrittenBlocks() method used to process the rest of the blocks.\nInstead, these three cases are handled by the same DeltaReadFilesystem()\nmethod using the FilesystemInterface abstraction for ext2.\n\nThe sub-file block handling was changed from (filename, offset, size) to\njust the list of blocks (or Extents) and the parsing of the filesystem\nwas removed from the methods that produce operations. The filename is\nkept just as a label for logging purposes.\n\nThis patch implies that the filesystem doesn\u0027t need to be mounted in\norder to generate the payload, as all the data is accessed as blocks\nin a partition. The mountpoint was removed from all the operations\ngenerators, but it is still required to mount the old filesystem to\ndetect the minor version supported by the old update_engine. Also,\nsince the list of blocks is never accessed using the FIGETBSZ ioctl,\nno payload_generator/ test require root privileges, nor the\ndelta_generator binary.\n\nBUG\u003dchromium:305832,chromium:331965\nTEST\u003dUpdated unittest to use extents.\n\nChange-Id: Ia2ea9433190258f70e3bce09f896b18326a7abf9\nReviewed-on: https://chromium-review.googlesource.com/275804\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "2b19cfbcdb1aa8c5d1f338d19312fe14b6734bd5",
      "tree": "bd78c7fd410543e3ae0b2f90af34641ff3986a15",
      "parents": [
        "a376a6e9007539531e99d3e879bc72ad1273f72f"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Mar 26 00:35:07 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Jun 12 16:37:45 2015 +0000"
      },
      "message": "update_engine: Introduce FilesystemInterface abstraction.\n\nThe interaction with the filesystem in the payload generation process\nis hard-coded in several places, making it hard to mock out or use a\ndifferent filesystem like squashfs for delta generation. For example,\nthe metadata, regular file data and non-file data are handled by three\ndifferent functions in a similar way, but with different code.\n\nThis patch introcudes a filesystem abstraction to map files or\npseudo-files (like the metadata, free-space, etc) into the same interface.\nThe interface includes three implementations: for parsing ext2 filesystems\nusing ext2fs (already used by the metadata parsing but not by the file\ndata processing), a raw one for monolitic partitions like the kernel\nand a fake one used for testing without requiring to build/parse a real\next2 filesystem.\n\nBUG\u003dchromium:331965\nTEST\u003dFEATURES\u003dtest emerge-link update_engine\n\nChange-Id: I1e14cf8f3883c8e9a1d471c8193c8da60776aa7c\nReviewed-on: https://chromium-review.googlesource.com/275803\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "52490e776a9d34a94fb18ab1fe7d416425e94dda",
      "tree": "b5ea2d031ec48ea135d32287bd1a635648f08ad9",
      "parents": [
        "2350445d4e713652ae65ee2783a191e3e68f6cba"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Jun 04 14:53:44 2015 +0200"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Tue Jun 09 05:29:05 2015 +0000"
      },
      "message": "update_engine: Further move Extent manipulation to extent_utils.\n\nThis patch moves more Extent manipulation functions to extent_utils.\nIt moves NormalizeExtents() and creates a new ExtentsSublist() function\nthat will be used by a follow up CL.\n\nBUG\u003dNone\nTEST\u003dAdded unittests.\n\nChange-Id: Icf0ef0af208aa45c9f44e1a73662b3efd8bbbb45\nReviewed-on: https://chromium-review.googlesource.com/275801\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "2350445d4e713652ae65ee2783a191e3e68f6cba",
      "tree": "253c090b094a781e9f34e59473b71658145947b8",
      "parents": [
        "5c6c65570013bbdbd67f9bf6391dd295ef5b5ee6"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Jun 04 13:32:52 2015 +0200"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Mon Jun 08 19:25:46 2015 +0000"
      },
      "message": "update_engine: Remove duplicated function.\n\nBlocksInExtents() is now exposed in extent_utils.cc\n\nBUG\u003dNone\nTEST\u003dUnittest still pass.\n\nChange-Id: Ie4cab3adee1c5ec232b229e9c73ef4a311cf4fb6\nReviewed-on: https://chromium-review.googlesource.com/275800\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "5c6c65570013bbdbd67f9bf6391dd295ef5b5ee6",
      "tree": "c2655ce831e0428ff87d3c065a9702b9b3564b82",
      "parents": [
        "cef5cd6acf26b518523511f6d633a730baef4d7e"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Wed Jun 03 19:06:50 2015 +0200"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Thu Jun 04 10:43:16 2015 +0000"
      },
      "message": "update_engine: Split Extent utils from graph_utils.\n\n\"Graph\" related utils should only concern parts of the code using the\ninplace generator, since other generators don\u0027t use a dependency graph.\n\nThis patch splits the Extent related utils from the graph related ones\ncreating a new extent_utils.h file.\n\nBUG\u003dNone\nTEST\u003dunittest still pass.\n\nChange-Id: I0941698b0a47a6cc222e8dc062fc54eb3cdf4de2\nReviewed-on: https://chromium-review.googlesource.com/274899\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "46bd4e20c20d6cb1a2f18d39237b9345d576669e",
      "tree": "4204498d276d91248008b532d08ca7090bbd1315",
      "parents": [
        "14c0f1b1e2ada315b3ee63084435b899e51c5bc5"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Wed May 13 18:59:32 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Tue May 19 20:29:13 2015 +0000"
      },
      "message": "update_engine: Fix splitting and merging of operation.\n\nAs previously implemented, these features retained the original\noperation type, thus potentially violating an invariant of the delta\nformat by which an operation must have the minimum possible size. This\ncould take form in either direction; in one case, we\u0027ve seen this fail\npayload verification when a large REPLACE_BZ was split into small\noperations and the compressed blob of one was larger than the size of\nthe written blocks (i.e. compression was disadvantageous).\n\nInstead, when splitting and merging operations we now choose an optimal\noperation type among REPLACE and REPLACE_BZ. This means that every\nsplit/merged data blob is compressed and its size compared to its\nuncompressed form, storing the smaller of the two and setting the\noperation type accordingly.\n\nThis also refactors unit tests and adds more test cases to ensure that\noperation types are chosen optimally and that the conversion is correct\nin both directions.\n\nFinally, this re-enables the splitting of REPLACE_BZ operations, which\nwas disabled (CL:270581) to prevent payload breakages.\n\nBUG\u003dchromium:487595\nTEST\u003dUnit tests\n\nChange-Id: Ib348b76a96eba6dd612cafa412e1231c43389f96\nReviewed-on: https://chromium-review.googlesource.com/271277\nTrybot-Ready: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nReviewed-by: David Zeuthen \u003czeuthen@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "14c0f1b1e2ada315b3ee63084435b899e51c5bc5",
      "tree": "1672ab23e8d4a4d83ecd4239552f6bcd43e1cd06",
      "parents": [
        "41e3474eebe3748a45aba4b297a7a313a1006c6c"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Tue May 12 18:16:23 2015 -0700"
      },
      "committer": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Wed May 13 01:27:57 2015 +0000"
      },
      "message": "update_engine: Disable splitting of fragmented REPLACE_BZ operations.\n\nThe said feature was introduced in CL:269130 and violated an invariant\nof the delta payload format. This leaves most of the logic in place but\ndisables invoking it during delta generation. It will be re-enabled once\nthe logic is fixed.\n\nBUG\u003dchromium:487436\nTEST\u003dUnit tests\n\nChange-Id: I59bf79749f0548d2935aecf489849ac2f9cb1f1e\nReviewed-on: https://chromium-review.googlesource.com/270581\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Richard Barnette \u003cjrbarnette@chromium.org\u003e\n"
    },
    {
      "commit": "41e3474eebe3748a45aba4b297a7a313a1006c6c",
      "tree": "0035e8094b65894d8ed20eb12e4ffc4c81280c41",
      "parents": [
        "542032d92433045a66e888588d133a47c7fcf956"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Mon May 11 11:31:50 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Tue May 12 20:54:31 2015 +0000"
      },
      "message": "update_engine: Merge contiguous operations (reprise).\n\nThis is reapplying CL:269604 with a small fix that prevents it from\nadding spurious src_length fields when merging payload operations. This\nalso revises relevant unit tests to catch the said error. The original\nchange is described below.\n\nMerges operations of type SOURCE_COPY, REPLACE, or REPLACE_BZ if they\nhave the same type, are contiguous, have only one destination extent,\nand their combined block count does not exceed the chunk size.\n\nBUG\u003dchromium:461651\nBUG\u003dchromium:486497\nTEST\u003dUnit test (fails before fix, passes after)\nTEST\u003dTrybot\n\nChange-Id: I9f3d7f653454e27177428f2d7c0e6485184a7f8b\nReviewed-on: https://chromium-review.googlesource.com/270268\nTrybot-Ready: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "542032d92433045a66e888588d133a47c7fcf956",
      "tree": "66c44ba6fe8528426c1940f551760f70641387f9",
      "parents": [
        "c31e4a742b56c122b50febc1f78fd1c3772ab7fd"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Mon May 11 04:44:55 2015 +0000"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Mon May 11 11:51:35 2015 +0000"
      },
      "message": "Revert \"update_engine: Merge contiguous operations.\"\n\nThis reverts commit 6a3ea94766bb4972abbd629779914d80dada1245.\n\nThe CL is suspected to close the tree due to paygen failures.\nSee comments inline (delta_diff_generator.cc) for the culprit.\n\nBUG\u003dchromium:486497\nTEST\u003dtrybot\n\nChange-Id: Iaed694a79371e7de208b0de90f8e9cefd61dd7e6\nReviewed-on: https://chromium-review.googlesource.com/270183\nTrybot-Ready: Mike Frysinger \u003cvapier@chromium.org\u003e\nReviewed-by: Cheng-Yi Chiang \u003ccychiang@chromium.org\u003e\nCommit-Queue: Cheng-Yi Chiang \u003ccychiang@chromium.org\u003e\nTested-by: Cheng-Yi Chiang \u003ccychiang@chromium.org\u003e\n"
    },
    {
      "commit": "c31e4a742b56c122b50febc1f78fd1c3772ab7fd",
      "tree": "c9b9a6c5a2fa043d0b8a93b8ff699175dc36cbb4",
      "parents": [
        "58455ae7fe87a312ae648d871a92e1485d0e9989"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu May 07 05:51:31 2015 -0400"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Sun May 10 15:07:57 2015 +0000"
      },
      "message": "update_engine: drop SYSROOT checks\n\nSince unittests are run inside of the sysroot now, the specific checks\nfor them in the tests are pointless.  Delete all the related logic.\n\nBUG\u003dchromium:401872\nTEST\u003dprecq passes (runs unittests)\n\nChange-Id: I12cb5e6717718a35c0dda2510e63c7bbcfa1f470\nReviewed-on: https://chromium-review.googlesource.com/269643\nTrybot-Ready: Mike Frysinger \u003cvapier@chromium.org\u003e\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "58455ae7fe87a312ae648d871a92e1485d0e9989",
      "tree": "695da16b555e7a86ea67c828f10503275e20238a",
      "parents": [
        "c4797c4c84bd7b25c83c841d65d2599a587c8c10"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Mon May 04 13:34:05 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri May 08 19:33:18 2015 +0000"
      },
      "message": "update_engine: Merge contiguous operations.\n\nMerges operations of type SOURCE_COPY, REPLACE, or REPLACE_BZ if they\nhave the same type, are contiguous, have only one destination extent,\nand their combined block count does not exceed the chunk size.\n\nBUG\u003dchromium:461651\nTEST\u003d`cros flash --src-image-to-delta`, checking generated payloads\nusing `cros payload show --list_ops`, unit tests.\nCQ-DEPEND\u003dCL:269134\n\nChange-Id: I5f71e6828561f2e0a6a8ab3e3aae4c362ea2ddde\nReviewed-on: https://chromium-review.googlesource.com/269604\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Allie Wood \u003calliewood@chromium.org\u003e\nTrybot-Ready: Allie Wood \u003calliewood@chromium.org\u003e\nTested-by: Allie Wood \u003calliewood@chromium.org\u003e\n"
    },
    {
      "commit": "c4797c4c84bd7b25c83c841d65d2599a587c8c10",
      "tree": "d0aa461244112ab00aced60cc9d5e7ccd3b53785",
      "parents": [
        "db1d5a6204ead78024bcfc854cbf084cc53f1734"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Thu May 07 22:05:06 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri May 08 19:33:14 2015 +0000"
      },
      "message": "update_engine: Delta generator should not read past old image size.\n\nThis fixes a problem that was introduced by CL:246670 and caused the\ndelta generator to fail when generating deltas from a source image\nthat\u0027s smaller than the target image.\n\nThe bug is fixed by ensuring that the reading and comparing of unused\nblocks is not attempted for block indexes that exceed the size of the\nold image. Instead, these blocks are assumed to be new and their content\npackaged into the payload.\n\nBUG\u003dchromium:477876\nTEST\u003dUnit tests\nTEST\u003ddelta_generator successfully applied to FSI version 2913.331.0\n\nChange-Id: Icc3163cca25ebeaefe05c2ba852664b6f0504053\nReviewed-on: https://chromium-review.googlesource.com/270075\nTrybot-Ready: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "db1d5a6204ead78024bcfc854cbf084cc53f1734",
      "tree": "608bb93a4e5b3ec67ab0eb3896ce93917d128264",
      "parents": [
        "0d73e03afb30dd402255fd030293b145de492af6"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Mon May 04 11:33:11 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Tue May 05 22:53:52 2015 +0000"
      },
      "message": "update_engine: Sort operations by output block.\n\nAfter fragmenting SOURCE_COPY, REPLACE, and REPLACE_BZ operations,\npayload generator will sort the operations by the start block of their\nfirst destination extents. This reduces seeking when writing during\npayload application.\n\nBUG\u003dchromium:461649\nTEST\u003d`cros flash --src-image-to-delta`, checking generated payloads\nusing `cros payload show --list_ops`.\nCQ-DEPEND\u003dCL:269130\n\nChange-Id: I1e2d8e940cd0ce66a1ec62711653ba8b34b0f0a5\nReviewed-on: https://chromium-review.googlesource.com/269134\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Allie Wood \u003calliewood@chromium.org\u003e\nTested-by: Allie Wood \u003calliewood@chromium.org\u003e\n"
    },
    {
      "commit": "0d73e03afb30dd402255fd030293b145de492af6",
      "tree": "406b46b24ba0dae293f75445f99542ab9bfb6244",
      "parents": [
        "ba4c8b7d7b331be33604bb9e417f1108ba17a868"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Fri May 01 15:02:57 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Tue May 05 03:36:20 2015 +0000"
      },
      "message": "update_engine: Split fragmented REPLACE_BZ ops.\n\nSplits REPLACE_BZ operations with multiple destination extents into\nREPLACE_BZ operations with only one destination extent each.\n\nBUG\u003dchromium:461643\nTEST\u003d`cros flash --src-image-to-delta` and unit tests.\nCQ-DEPEND\u003dCL:268520\n\nChange-Id: Ia5c055047c4bb863871507f32d028e4e28cb6af6\nReviewed-on: https://chromium-review.googlesource.com/269130\nReviewed-by: Allie Wood \u003calliewood@chromium.org\u003e\nCommit-Queue: Allie Wood \u003calliewood@chromium.org\u003e\nTrybot-Ready: Allie Wood \u003calliewood@chromium.org\u003e\nTested-by: Allie Wood \u003calliewood@chromium.org\u003e\n"
    },
    {
      "commit": "ba4c8b7d7b331be33604bb9e417f1108ba17a868",
      "tree": "3c847ff515a47e0bc7337d70bcbb32b608cba14c",
      "parents": [
        "b6656a757e8379b63597c1417a8062c5cf416651"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Tue Apr 28 12:04:32 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Tue May 05 03:36:16 2015 +0000"
      },
      "message": "update_engine: Split fragmented REPLACE operations.\n\nSplits REPLACE operations with multiple destination extents into REPLACE\noperations with only one destination extent each.\n\nBUG\u003dchromium:461643\nTEST\u003d`cros flash --src-image-to-delta` and unit tests.\nCQ-DEPEND\u003dCL:267697\n\nChange-Id: Id14ec9f23a462f94821454289857e9f25e756d24\nReviewed-on: https://chromium-review.googlesource.com/268520\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Allie Wood \u003calliewood@chromium.org\u003e\nTrybot-Ready: Allie Wood \u003calliewood@chromium.org\u003e\nTested-by: Allie Wood \u003calliewood@chromium.org\u003e\n"
    },
    {
      "commit": "b6656a757e8379b63597c1417a8062c5cf416651",
      "tree": "ccbc60f13501e8ab86cf3951a266e9c0db35de0b",
      "parents": [
        "eb9e6d8d8813b2d5a81a14e0184f7b4798573606"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Mon Apr 13 16:27:39 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri May 01 01:07:57 2015 +0000"
      },
      "message": "update_engine: Split fragmented SOURCE_COPY ops.\n\nSplits SOURCE_COPY operations with multiple destination extents into\nindividual SOURCE_COPY operations with only one destination extent each.\n\nAlso normalizes the extent lists before splitting the operation.\n\nBUG\u003dchromium:461641\nTEST\u003d`cros flash --src-image-to-delta` and unit tests.\nCQ-DEPEND\u003dCL:267360\n\nChange-Id: I4d4fbe36165d98df7f36e4a1ddacc9b62ee97002\nReviewed-on: https://chromium-review.googlesource.com/267697\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Allie Wood \u003calliewood@chromium.org\u003e\nTrybot-Ready: Allie Wood \u003calliewood@chromium.org\u003e\nTested-by: Allie Wood \u003calliewood@chromium.org\u003e\n"
    },
    {
      "commit": "fddb6d42dc7cd42e12fb543c99f1c116343700f3",
      "tree": "b32205bc47e83360cec545d1136d521891eace1c",
      "parents": [
        "9f6f0a53509476be5f0ba152ec182d46a8d3c976"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri Apr 17 16:49:03 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Tue Apr 21 00:18:34 2015 +0000"
      },
      "message": "update_engine: Fix metadata handling when inode table is in a different block group.\n\nThe inode table is stored in some metadata blocks and is local to each\nblock group in an ext2 filesystem. These tables are normally stored near\nthe beginning of the block group, together with the inode and block\nbitmaps.\n\nAppartenly, mkfs.ext2 can place the inode table for a given block group\noutside the range of blocks of that block group. We have seen smaller\nrootfs (400 MiB) where all the inode tables are grouped together near\nthe beginning of the filesystem, in the first block group.\n\nThis patch avoids an integer overflow when this happens and lets the\nReadUnwrittenBlocks() handle those tables.\n\nBUG\u003dchromium:478261\nTEST\u003dRan ./delta_generator with a cosmos test image creating the diff to\nitself.\n\nChange-Id: Id610b03bc22a9ecb1c66d6fdc0548e2657c29f9b\nReviewed-on: https://chromium-review.googlesource.com/266229\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "9f6f0a53509476be5f0ba152ec182d46a8d3c976",
      "tree": "6d8b8bffa30ae8b9dbeee969546fb5d4a6ed028c",
      "parents": [
        "18f48aa4e962997a9ff12fac8933c94aac247fd9"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Mon Mar 30 11:25:47 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Wed Apr 15 04:50:39 2015 +0000"
      },
      "message": "update_engine: Implement SOURCE_COPY/SOURCE_BSDIFF operations.\n\nImplement SOURCE_COPY and SOURCE_BSDIFF in DeltaPerformer. These new\noperations are the same as MOVE and BSDIFF, respectively, except\nthat they read from the source partition rather than the destination\npartition.\n\nAlso fills in the source paths in omaha_response_handler_action, which\nwere previously not being set.\n\nBUG\u003dchromium:461632\nTEST\u003d`FEATURES\u003dtest emerge-link update_engine` and manual testing.\n\nChange-Id: I81eba5780c73ed920a5db72702d9d7c67dbaa673\nReviewed-on: https://chromium-review.googlesource.com/263747\nReviewed-by: Allie Wood \u003calliewood@chromium.org\u003e\nCommit-Queue: Allie Wood \u003calliewood@chromium.org\u003e\nTrybot-Ready: Allie Wood \u003calliewood@chromium.org\u003e\nTested-by: Allie Wood \u003calliewood@chromium.org\u003e\n"
    },
    {
      "commit": "568734533c25a5783ea004aeb0da38244dcd3e5b",
      "tree": "95795604ad6f59dd6966036faedfc0c5e40ab58c",
      "parents": [
        "703022b71fc6a89796f2f97448b1a419007a52ca"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Fri Mar 27 17:48:40 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Wed Apr 08 03:44:01 2015 +0000"
      },
      "message": "update_engine: Remove sparse hole extents.\n\nWhenever there is an extent beginning with a sparse hole, that extent\nwill be filtered out. Extents are now read in from the partition rather\nthan the file itself in ReadFileToDiff. src/dst_length are set to the\nnumber of blocks in src/dst_extents * block_size.\n\nThis was tested manually with _GenerateSinglePayload to generate a delta\npayload between test images.\n\nBUG\u003dchromium:469792,chromium:474497\nTEST\u003d`FEATURES\u003dtest emerge-link update_engine` and manual testing.\n\nChange-Id: I384ec3f16f7fd9087159817358308f22d29e9edf\nReviewed-on: https://chromium-review.googlesource.com/264442\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Allie Wood \u003calliewood@chromium.org\u003e\nTested-by: Allie Wood \u003calliewood@chromium.org\u003e\n"
    },
    {
      "commit": "703022b71fc6a89796f2f97448b1a419007a52ca",
      "tree": "60d5981298977d33114a3fb8e4b43694db8f9227",
      "parents": [
        "8e2c4ef89b1c2c8779d003b40c70c75db1839bfb"
      ],
      "author": {
        "name": "Shawn N",
        "email": "shawnn@chromium.org",
        "time": "Tue Apr 07 17:15:00 2015 +0000"
      },
      "committer": {
        "name": "Shawn N",
        "email": "shawnn@chromium.org",
        "time": "Tue Apr 07 17:19:02 2015 +0000"
      },
      "message": "Revert \"update_engine: Remove sparse hole extents.\"\n\nSpeculatively reverting commit 96b659d794be39762e8e7fd9f72fe6f723e21ec8 due to crbug.com/474497.\n\nChange-Id: I17fd91c8568b30eafea9e70c9f2255ac2dc459a6\nReviewed-on: https://chromium-review.googlesource.com/264306\nReviewed-by: Shawn N \u003cshawnn@chromium.org\u003e\nCommit-Queue: Shawn N \u003cshawnn@chromium.org\u003e\nTested-by: Shawn N \u003cshawnn@chromium.org\u003e\n"
    },
    {
      "commit": "8e2c4ef89b1c2c8779d003b40c70c75db1839bfb",
      "tree": "43883407726e766edc0c270eb4efd304bec93852",
      "parents": [
        "b0d74eb91183eef5955974c515e40c994098372f"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Fri Mar 27 17:48:40 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Tue Apr 07 00:54:11 2015 +0000"
      },
      "message": "update_engine: Remove sparse hole extents.\n\nWhenever there is an extent beginning with a sparse hole, that extent\nwill be filtered out. Extents are now read in from the partition rather\nthan the file itself in ReadFileToDiff.\n\nBUG\u003dchromium:469792\nTEST\u003d`FEATURES\u003dtest emerge-link update_engine`\n\nChange-Id: I615df120f6e46f66d500128561e0ddfcd407c13a\nReviewed-on: https://chromium-review.googlesource.com/262965\nReviewed-by: Allie Wood \u003calliewood@chromium.org\u003e\nCommit-Queue: Allie Wood \u003calliewood@chromium.org\u003e\nTested-by: Allie Wood \u003calliewood@chromium.org\u003e\n"
    },
    {
      "commit": "b96ecdaafd27009a18e198f166d2b2f64a55d251",
      "tree": "63f5079b467222111e7def35e0faba56be07d4f3",
      "parents": [
        "3310b228740323c12bcb3dc5f317359c84a061f8"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@chromium.org",
        "time": "Thu Apr 02 14:31:10 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Apr 03 18:33:17 2015 +0000"
      },
      "message": "platform2: Explicitly use base:: namespace with CommandLine\n\nThe current revision of libchrome is removing CommandLine class\nfrom global namespace and only retain the one in base::.\n\nSweep the code to use the correct namespace in anticpation of\nlibchrome revision roll.\n\nBUG\u003dNone\nTEST\u003d./build_packages\n\nChange-Id: Ib7ca448dac1204c1e36ab053e775a5a5214997ac\nReviewed-on: https://chromium-review.googlesource.com/263785\nTrybot-Ready: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nTested-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\n"
    },
    {
      "commit": "477aec2166a571cbe28081d806c3226e8b31b6e9",
      "tree": "3f31258432bf233ceaaa1d46c9c3990c2d4c00ff",
      "parents": [
        "08d5a45ac109292ff80c877c4045335a2f0b917d"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Tue Mar 24 23:40:48 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Mar 27 04:11:05 2015 +0000"
      },
      "message": "update_engine: Refactor OperationsGenerator into a base class.\n\nThis refactor cleans up the interface of the algorithms that generate\nthe list of rootfs and kernel operations removing the mention of a\nGraph from it. The Graph class is only used by the in-place generator\nbecause it requires to keep track of dependencies between operations\nreading or writting the same block. The full update generator, using\nonly REPLACE or REPLACE_BZ doesn\u0027t need to use a graph to do that, but\nin order to reuse some code, the interface was hacked that way.\n\nThis patch now uses two vectors of \"AnnotatedOperations\", which are\na mere InstallOperation as defined by the .proto file plus a name\nused for logging purposes only. Both rootfs and kernel operations\nhave now the same type on the interface, allowing to share common\nfunctions handling those.\n\nBUG\u003dchromium:331965\nTEST\u003dFEATURES\u003dtest emerge-link update_engine\n\nChange-Id: I78566bbecb948634b7ecc8d086766ce67a79b43e\nReviewed-on: https://chromium-review.googlesource.com/262281\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "08d5a45ac109292ff80c877c4045335a2f0b917d",
      "tree": "d17e6b31d8b544d45ccd57405a09a2d08045e3c5",
      "parents": [
        "fdf005161523d9873a281f2a96d51dd4a3261f4f"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Tue Mar 24 19:09:33 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Thu Mar 26 19:56:06 2015 +0000"
      },
      "message": "update_engine: Fake out GatherExtents in all tests.\n\nDeltaDiffGenerator tests don\u0027t mock out GatherExtents(), requiring them\nto run as root for no good reason.\n\nThis patch cleans up the test initialization and tear down to fake out\nthe GatherExtents() function making it return a fixed list of extents.\nThe extents are now generated based on the size of the files used during\nthe test instead of the actual positions of the temporary files in the\nhost filesystem.\n\nBUG\u003dchromium:351589\nTEST\u003dFEATURES\u003dtest emerge-link update_engine\n\nChange-Id: I43d184722aa0d6b847977c3902330f0963232cc3\nReviewed-on: https://chromium-review.googlesource.com/262306\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Allie Wood \u003calliewood@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "fdf005161523d9873a281f2a96d51dd4a3261f4f",
      "tree": "e4acbe1153bec8388ba66fc5fc85ff5f8a4a7172",
      "parents": [
        "de942f30cf986cf6bfc55fb5f9af6d7fea4ae51b"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Mon Mar 02 13:34:55 2015 -0800"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Tue Mar 24 21:32:40 2015 +0000"
      },
      "message": "update_engine: Add fds for the source partitions.\n\nAdd new fds for the source partition, one for the rootfs and another for\nthe kernel. These are opened if we have a delta update with minor\nversion 2.\n\nThis change also adds support for changing the minor versions in tests.\nThere is a new private member, supported_minor_version_, which defaults\nto kSupportedMinorPayloadVersion. It is set in the unit tests with calls\nto SetSupportedVersion.\n\nBUG\u003dchromium:463573\nTEST\u003d`FEATURES\u003dtest emerge-link update_engine`\n\nChange-Id: Ib988c91eb450b2499c615ae65b271691dfd9c651\nReviewed-on: https://chromium-review.googlesource.com/260950\nTrybot-Ready: Allie Wood \u003calliewood@chromium.org\u003e\nTested-by: Allie Wood \u003calliewood@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Allie Wood \u003calliewood@chromium.org\u003e\n"
    },
    {
      "commit": "de942f30cf986cf6bfc55fb5f9af6d7fea4ae51b",
      "tree": "bdf7732d64b58a6fff474d1285ec0460c7129493",
      "parents": [
        "a78b28c6f202b801fe7cb85246b33afe01aeaa7a"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri Mar 13 11:57:15 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Wed Mar 18 23:07:03 2015 +0000"
      },
      "message": "update_engine: Generate valid delta files for squashfs.\n\nThis patch generates a valid (but inefficient) payload when a delta\npayload is requested for a squashfs filesystem.\n\nSince we are reusing the full payload generator for this purpose, this\npatch relaxes the requirement of chunk_size to be positive in the\nfull_update_generator.cc code, replacing it by the default value of\n1 MiB when nothing is passed.\n\nBUG\u003dchromium:430950\nTEST\u003dFEATURES\u003dtest emerge-link update_engine\nTEST\u003dcros_generate_update_payload for a delta payload works with\nsquashfs\nTEST\u003d`cros flash` a squashfs device with a delta payload works.\n\nChange-Id: I88c7a571874c4c4697f528d44c52091aa1aed0c5\nReviewed-on: https://chromium-review.googlesource.com/260444\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "a26432a8fe5981ca1bb41cb6aacddfc3765666ac",
      "tree": "984398d04b7067443b4c9cb1fdea7a93362e57fd",
      "parents": [
        "6ded6548c4d3606923d606981dd29f224bcfc723"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Mar 12 16:08:04 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Sat Mar 14 06:59:33 2015 +0000"
      },
      "message": "update_engine: Use the rootfs size specified by verity.\n\nWhen using rootfs verification and generating a payload, it is important\nto generate a payload that writes all the blocks verity expects to hash\nin the hash tree, even if those blocks are never used by the filesystem.\n\nWhen using squashfs, the filesystem is padded with zeros up to the\nfs_size provided in the disk_layout.json, which is used as the size\nof the dm-verity device. Because of this, it is important to always\ngenerate a payload that writes all that.\n\nThis patch parses the kernel using vboot_host tools and updates the\nrootfs_size value with the one specified to verity in the kernel\ncommand line. When no verity options are found or the kernel is not\nprovided (as in the case of a full kernel update in a delta payload)\nonly the filesystem part is considered for the rootfs_size. This\nmeans that the extra zeros in the source rootfs won\u0027t be used for\nthe delta payload when generating a full kernel payload, and also\nmeans that the zeros after the squashfs won\u0027t be written when\ngenerating the new rootfs with rootfs verification disabled.\n\nBUG\u003dchromium:463783\nTEST\u003dFEATURES\u003dtest emerge-link update_engine\nTEST\u003dRan delta_generator with invalind kernels (in full and delta mode).\nTEST\u003dRan cros_generate_update_payload with real images with both\nsquashfs and ext2.\n\nChange-Id: Id151063722a20d27c50724f6b27f774a3436e3ea\nReviewed-on: https://chromium-review.googlesource.com/259839\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\n"
    },
    {
      "commit": "9b244df41f1bdaddd87b7dbd8e1559556059ed1b",
      "tree": "a09b02198ba620b403fadafab494ad35de4f5b08",
      "parents": [
        "f1cbe1783dd025bd7243a8df12f20548196cc023"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Wed Mar 11 21:51:18 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Mar 13 02:24:55 2015 +0000"
      },
      "message": "update_engine: Refactor operation generation methods.\n\nWe have so far three methods to generate the list of operations to\nupdate the kernel and the rootfs partitions, which are different\nstrategies: full (using only REPLACE and REPLACE_BZ), delta \"in-place\"\n(using also MOVE and BSDIFF) and \"source\" delta, or delta minor\nversion 2 (using SOURCE_COPY and SOURCE_BSDIFF instead).\n\nAs we consider ways to support updates for squashfs, the two delta\nmethods don\u0027t support filesystems other than ext2, so we need to use\nyet another different strategy for those.\n\nThis patch splits the code that generates the list of operations for\nthe kernel and the rootfs in three methods with the same interface.\n\nNo functional changes were made. Some local functions were exposed\nas public static methods. The new graph_types.cc is added to avoid\na link-time error when the kInvalidIndex member is not inlined.\n\nBUG\u003dchromium:430950\nTEST\u003dFEATURES\u003dtest emerge-link update_engine\n\nChange-Id: Ib25ff7a6f17d0990637596dcd6b59568b9e15d26\nReviewed-on: https://chromium-review.googlesource.com/259462\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "f1cbe1783dd025bd7243a8df12f20548196cc023",
      "tree": "fe79eea785fea67e480c898eae6f97706debd13e",
      "parents": [
        "1f93d031baa4c0c4f390fcf5784b5179d15f289d"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Mar 05 15:58:37 2015 -0800"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Thu Mar 12 22:06:49 2015 +0000"
      },
      "message": "update_engine: Refactor payload generation request args in a class.\n\nThis patch introduces a new struct PayloadGenerationConfig encapsulating\nthe payload generation request performed by the user in the command\nline.\n\nSince we have several payload generation strategies that are triggered\nbased on the source image version and if there is an image version at\nall, encapsulating the request in a single struct helps splitting the\ndifferent strategies in independent classes and pass the payload\ngeneration configuration struct with the request to those classes.\n\nBUG\u003dchromium:430950\nTEST\u003dFEATURES\u003dtest emerge-link update_engine\n\nChange-Id: Ie960c6510bf02d8e10f5e1adaa847a2048c59598\nReviewed-on: https://chromium-review.googlesource.com/258520\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "1f93d031baa4c0c4f390fcf5784b5179d15f289d",
      "tree": "40df388fbc11092a9af38c49f8ce6d8cc79bc47c",
      "parents": [
        "08d493198de248281beb5c9e2f37904edccf60dc"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Tue Mar 10 18:58:32 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Thu Mar 12 05:17:19 2015 +0000"
      },
      "message": "update_engine: Make dd less verbose.\n\nupdate_engine unit tests use the \"dd\" command for setting up some test\ncases. By default, dd print the status of the operation on success.\n\nThis patch removes the status message reducing the unnecessary logs.\n\nBUG\u003dNone\nTEST\u003d`FEATURES\u003dtest emerge-link update_engine`\n\nChange-Id: I6dbb7029a8dce9acf1309da1844af558a2bdab56\nReviewed-on: https://chromium-review.googlesource.com/259190\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "fffd23e1ed1903beeb893640c611001175380186",
      "tree": "3078798438192ff40bf7a774f148078c977b1995",
      "parents": [
        "cd514b531a38da1497630fa68b6e3ef45871893d"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Wed Feb 25 18:07:15 2015 -0800"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Mar 06 08:49:50 2015 +0000"
      },
      "message": "update_engine: Payload generator emits SOURCE_COPY and SOURCE_BSDIFF ops.\n\nWhen generating delta updates, payload generator will now emit\nSOURCE_COPY and SOURCE_BSDIFF operations instead of MOVE and BSDIFF when\nthe minor version is 2.\n\nBUG\u003dchromium:461167\nTEST\u003d`FEATURES\u003dtest emerge-link update_engine`\n\nChange-Id: I1e7553312db7362d44d320d457e4a59756bfe5b9\nReviewed-on: https://chromium-review.googlesource.com/254780\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Allie Wood \u003calliewood@chromium.org\u003e\nTrybot-Ready: Allie Wood \u003calliewood@chromium.org\u003e\nTested-by: Allie Wood \u003calliewood@chromium.org\u003e\n"
    },
    {
      "commit": "cd514b531a38da1497630fa68b6e3ef45871893d",
      "tree": "e9dddf914e4bd7e36eb0f164c83fa2987e0afd29",
      "parents": [
        "3283a55293ec9e645224c48d0c3cf6f8867395e7"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Thu Feb 19 13:56:07 2015 -0800"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Thu Feb 26 00:49:45 2015 +0000"
      },
      "message": "update_engine: Refactor inplace payload generator algorithm code.\n\nCreate a class, InplaceGenerator, that contains all functionality\nrelated to the inplace delta generation method (minor version 1).\n\nBUG\u003dchromium:459701\nTEST\u003d`FEATURES\u003dtest emerge-link update_engine`\n\nChange-Id: Ib742f70030d6c2fcb1cc3138e0f4aef54eca6975\nReviewed-on: https://chromium-review.googlesource.com/251621\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Allie Wood \u003calliewood@chromium.org\u003e\nTested-by: Allie Wood \u003calliewood@chromium.org\u003e\n"
    },
    {
      "commit": "3283a55293ec9e645224c48d0c3cf6f8867395e7",
      "tree": "f2208c9da4f1712f8275719f5b60a8de8cb47e9d",
      "parents": [
        "425aa9764d6eac48cf06f726a30422d4e184c3d1"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Wed Feb 18 15:24:26 2015 -0800"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Feb 20 01:26:55 2015 +0000"
      },
      "message": "update_engine: Add new operation codes for a to b operations\n\nAdd SOURCE_COPY and SOURCE_BSDIFF operations to protobuf. These\noperations are for delta minor version 2 and their input is the source\npartition instead of the target partition.\n\nBUG\u003dchromium:459363\nTEST\u003d`FEATURES\u003dtest emerge-link update_engine`\n\nChange-Id: I2c5c83ab5063ff6ce7fc2ec8acfe809d9526b6da\nReviewed-on: https://chromium-review.googlesource.com/250951\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nCommit-Queue: Allie Wood \u003calliewood@chromium.org\u003e\nTested-by: Allie Wood \u003calliewood@chromium.org\u003e\n"
    },
    {
      "commit": "425aa9764d6eac48cf06f726a30422d4e184c3d1",
      "tree": "575137e04e6ae0f96a796de45a2e9a411bb995fb",
      "parents": [
        "78750a450ce84b2d335134402d041aa8773ab8ef"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Tue Feb 17 14:47:17 2015 -0800"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Wed Feb 18 23:53:16 2015 +0000"
      },
      "message": "update_engine: Changes to delta minor version detection\n\nDelta minor version should default to 1, the in-place algorithm minor\nversion, when the minor version is not given on the command line or in\nthe update_engine.conf file.\n\nBUG\u003dchromium:455493\nTEST\u003d`FEATURES\u003dtest emerge-link update_engine`\n\nChange-Id: I510a19c4a3b88bae656c19ad1a6d24598586b6a9\nReviewed-on: https://chromium-review.googlesource.com/250560\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Allie Wood \u003calliewood@chromium.org\u003e\nCommit-Queue: Allie Wood \u003calliewood@chromium.org\u003e\n"
    },
    {
      "commit": "78750a450ce84b2d335134402d041aa8773ab8ef",
      "tree": "86adad2e84c4f0d6f8159c8d578a1350f7a42b49",
      "parents": [
        "f68bbbc952aa9a71898e4939b5f36187fa564a50"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Wed Feb 11 15:42:11 2015 -0800"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Sat Feb 14 08:33:46 2015 +0000"
      },
      "message": "update_engine: Detect supported minor version from conf file.\n\nIf the delta minor version is not given as a command line argument, the\npayload generator will look for the minor version in\netc/update_engine.conf in the old image.\n\nBUG\u003dchromium:455493\nTEST\u003d`FEATURES\u003dtest emerge-link update_engine`\nCQ-DEPEND\u003dCL:249956\n\nChange-Id: I0f8e3f3c05432169770f2e8e283e8f1fb363def3\nReviewed-on: https://chromium-review.googlesource.com/249955\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nCommit-Queue: Allie Wood \u003calliewood@chromium.org\u003e\nTested-by: Allie Wood \u003calliewood@chromium.org\u003e\n"
    },
    {
      "commit": "f68bbbc952aa9a71898e4939b5f36187fa564a50",
      "tree": "3927ffc053db9275a052ba2a370cbae62b5c236a",
      "parents": [
        "981a9fb68ec5fe56f57b3ecb117a0dc681bf5e83"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@chromium.org",
        "time": "Mon Feb 09 12:53:18 2015 -0800"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Wed Feb 11 06:00:18 2015 +0000"
      },
      "message": "update_engine: replace std::vector\u003cchar\u003e with chromeos::Blob\n\nTo make update engine consistent with the rest of platform2 code\nreplaced std::vector\u003cchar\u003e as the container of binary data with\nchromeos::Blob.\n\nBUG\u003dNone\nTEST\u003d`FEATURES\u003dtest emerge-link update_engine`\n\nChange-Id: I6385fd2257d15aa24bfa74ac35512c2a06c33012\nReviewed-on: https://chromium-review.googlesource.com/247793\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nCommit-Queue: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\n"
    }
  ],
  "next": "981a9fb68ec5fe56f57b3ecb117a0dc681bf5e83"
}
