)]}'
{
  "log": [
    {
      "commit": "5fbb110c73158e443efe1fcac87e6648c631b4c0",
      "tree": "a84e830302f12eb9d6a30cdecf2c8316c8cf7898",
      "parents": [
        "927e00d1e9fd046e81c84ef61d05c347eee408dc"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Jan 12 13:55:52 2017 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Jan 12 13:55:52 2017 -0800"
      },
      "message": "Use ${TMPDIR} as the default working directory.\n\nThis patch uses ${TMPDIR} as the default working directory, falling back\nto the old behaviour is /tmp was not set. This also passes the desired\nworking directory to delta_generator as a TMPDIR env variable.\n\nBug: 34250932\nTest: `strace -e trace\u003dopen -f -- brillo_update_payload generate --payload pay.bin --target_image tf.zip --work_dir /tmp/foobar 2\u003e\u00261 | grep tmp` only shows access to /tmp/foobar, not /tmp\nChange-Id: I4972a4010d7eed73b2fd1cc9c782b0775509b50c\n"
    },
    {
      "commit": "20bdc70e540e021c4a26553dfdbfd2fabe8ea432",
      "tree": "38cf6b3be7c550524e04348cb276ddbd328ccafe",
      "parents": [
        "335516c673c0b5db986e3e13bb230618860832ac"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Dec 07 21:07:11 2016 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Dec 09 12:34:47 2016 -0800"
      },
      "message": "Parse Android .map files for unknown filesystem.\n\nWhen generating a filesystem during the Android build, we also generate\na text file with .map extension with the list of files and the blocks\nin the filesystem they are located.\n\nFor filesystems unsupported in delta_generator (like squashfs) we use\nthis text file to produce efficient delta payloads.\n\nBug: 28150981\nTest: Added unittest for parsing. Generated a delta payload of a squashfs image.\n\nChange-Id: I154e72ac785c6f508290daa901fa7958b446c010\n"
    },
    {
      "commit": "135197526b9c0f5a9acac57a05129339f311bbca",
      "tree": "986e0ca3438de3f96235207597d82f9ba1965e63",
      "parents": [
        "44348e01c0c66e6baf1376f0b712ecae26fc5595"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Aug 02 16:10:52 2016 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Aug 05 11:19:04 2016 -0700"
      },
      "message": "brillo_update_payload: Show correct error when delta_generator not found.\n\nIf delta_generator is not in PATH, $(which delta_generator) will return 1\nand then the script just go ahead to cleanup because trap is set on ERR,\nbut the error message never got a chance to be showed.\n\nBug: None\nTest: run brillo_update_payload without delta_generator in PATH.\n\nChange-Id: Ie7a6943f174f69e11ca795351d72c20516792f6f\n"
    },
    {
      "commit": "d0e9a893163bb6f70b2bb003cda238d7e1a532ed",
      "tree": "ab127112d546137f1febd8f97e1ebe802f8efb7c",
      "parents": [
        "5c6bb1d8f89b87e782e26fe74789b6f510704394"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Jul 22 16:28:07 2016 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Jul 28 15:11:28 2016 -0700"
      },
      "message": "Call truncate through perl.\n\nThe binary is not available, and we can\u0027t pack it in otatools in AOSP,\nhave to use an alternative.\n\nBug: 27880501\nTest: Generate a payload for boot.img which is not multiple of 4KiB.\n\nChange-Id: I693e6cf441e3c9ea863d27704d6a31889c05cce6\n"
    },
    {
      "commit": "53f04d74f32397d8bffea9f020aaac2cafaab049",
      "tree": "aa263b78ca11e7605d300df738d6dc26a1a1fd57",
      "parents": [
        "7c1171e41da9db6be18e34f40047ff80da782af0"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Jul 13 16:43:39 2016 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Jul 13 16:48:29 2016 -0700"
      },
      "message": "Remove extra \"error:\" in error message.\n\ndie() will print \"error:\", results in double \"error:\".\n\nFor example:\n$ brillo_update_payload generate\nbrillo_update_payload: error: Error: you must specify an output filename with --payload FILENAME\n\nTest: brillo_update_payload generate\nBug: None\n\nChange-Id: I4d2adc492b217be9b02362a9934e8563c61ae113\n"
    },
    {
      "commit": "92161a7b83c3a491871a167a4d46e4e6b6101e81",
      "tree": "1f2d98a54635c484b0680b7a39cfa21c552135c5",
      "parents": [
        "14ad88ea53bd89f9c6e477e28745c4506c2f0f81"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Jun 28 16:09:38 2016 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Jun 30 19:50:49 2016 +0000"
      },
      "message": "paycheck: Support minor version 4.\n\nFrom https://chromium-review.googlesource.com/#/c/333160/\n\nBug: 27156473\nTest: ./scripts/update_payload/checker_unittest.py\n\nChange-Id: I940debd5c878f622970e214fce75588f96d78407\n"
    },
    {
      "commit": "ce47ca46a3dd74985ac96e95da22ef7a3b742d25",
      "tree": "a8ead3ebdbf56da13feeb984991f51cba1f71577",
      "parents": [
        "773f4323a4f6357b7c79debf0f87ffa658fabec4",
        "c2538fab9a7fc01c0216520874d711c8a9fbd9d3"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Mon Jun 27 12:14:03 2016 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Mon Jun 27 12:20:26 2016 -0700"
      },
      "message": "Merge dev-utils update_payload_library and the paycheck.\n\nThe update_payload library is a python library for parsing and\nhandling update payload. This library is used by the payload checker\npython script also included here.\n\nThe code is merged from this repo:\n  https://chromium.googlesource.com/chromiumos/platform/dev-util/\n\nBug: 28797993\nTEST\u003d\u0027import update_payload\u0027\n"
    },
    {
      "commit": "a479a4d0039308fcfdda21f2a8ec8d040fd716f2",
      "tree": "468b086ef5a79d718d84f9c4970d42aa4b0e1b4e",
      "parents": [
        "46a9aae85e78179a0acd0d1efd1d99685fb827bb"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed May 11 18:13:49 2016 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed May 11 18:13:49 2016 -0700"
      },
      "message": "Truncate source partitions to a multiple of 4 KiB.\n\nWhen flashing partitions that aren\u0027t a multiple of 4 KiB using fastboot,\nthe last block of these partitions would not be padded with zeros. Full\nand incremental paylaods will pad with zeros and write them on the new\ntarget partitions, but the first incremental package after flashing a\ndevice would fail.\n\nThis patch truncates the source partitions that aren\u0027t multiple of 4\nKiB, discarding the data on the last partial 4 KiB block.\n\nBug: 28626303\nTEST\u003d`brillo_update_payload generate ..` a null-incremental payload;\nboot.img includes mostly SOURCE_COPY and one REPLACE operation at the\nend.\n\nChange-Id: I25e0172fb074392488d96cd00e711c68adfa0e7f\n"
    },
    {
      "commit": "c2538fab9a7fc01c0216520874d711c8a9fbd9d3",
      "tree": "6a8c372ae4128b2e20c06136bdc32464b93835d1",
      "parents": [
        "d6122bb9df5b593a3ab1fc35fab7f1a0caa53928"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@chromium.org",
        "time": "Wed Feb 24 14:15:02 2016 -0800"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Mon Apr 04 22:08:11 2016 -0700"
      },
      "message": "update_payload: Regenerate protobuf to include IMGDIFF.\n\nGenerated from update_metadata.proto using protoc 2.5.0\n\nBUG\u003db:26456666\nTEST\u003d./checker_unittest.py\n\nChange-Id: I9dc7db00be8afb2f78e80bec910f9ca83a55a9a1\nReviewed-on: https://chromium-review.googlesource.com/329237\nCommit-Ready: Sen Jiang \u003csenj@chromium.org\u003e\nTested-by: Sen Jiang \u003csenj@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "e0d04282910d423ddc950dd38224c001efc41d42",
      "tree": "d525d878feedac223f7d541799bfc63d82fac0ce",
      "parents": [
        "021a45ebdd98bd6c34d1884c4c3a3dd5128df411"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Mar 01 14:22:52 2016 -0800"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Mar 16 03:01:09 2016 +0000"
      },
      "message": "Check if zlib is compatible.\n\nAdd a --zlib_fingerprint flag in delta_generator to check if the zlib of\nsource image is compatible, and only enable IMGDIFF operation if it is.\n\nTest: Added unittest to check /etc/zlib_fingerprint\nBug: 27156099\n\nChange-Id: Ida346a99430c95cdc8a43e1055d6efa08f07ca25\n"
    },
    {
      "commit": "788c2d9b4b4da52f0874c391bda59610625e66aa",
      "tree": "11343ac17f1ddb762445676ca04358e649e19dd2",
      "parents": [
        "a3553e42ce7255034044f364f72516b29417bbdc"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Mar 09 12:48:40 2016 -0800"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Mar 09 13:02:53 2016 -0800"
      },
      "message": "brillo_update_payload: Keep the partitions order.\n\nThe order in associative array is based on hash, but we need to make sure\nit\u0027s always rootfs and then kernel for Chrome OS.\n\nThis patch adds a PARTITIONS_ORDER array and pass it to extract_image()\nfor target image. For Android/Brillo, it will use ab_partitions_list.txt\nif found, for Chrome OS, it\u0027s always ( \"system\" \"boot\" ).\n\nBug: None\nTest: Generated payload for edison and peppy.\n\nChange-Id: I29672befa14045573cba497784b67629a21578bf\n"
    },
    {
      "commit": "98e691cc6debda3ef671acba001bebd45da36377",
      "tree": "752b34149066034689be84fe2ac7d46d309d9667",
      "parents": [
        "e88e9feb5a64c1358baeb1c8547e82aa08e1cd83"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Feb 04 21:05:45 2016 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Feb 05 11:37:37 2016 -0800"
      },
      "message": "New \"properties\" sub-command to export payload properties.\n\nThe new brillo_update_payload sub-command \"properties\" dumps a list of\nproperties for a given signed or unsigned payload. These properties are\nnormally included in the Omaha response, and extracted from python in\nchromite.\n\nThis new sub-command helps to encapsulate the properties used by the\nserver side wehn serving a payload and to let the Android application\npass these required properties.\n\nThe properties include the payload and metadata hash and size.\n\nBug: 26991255\nTEST\u003dFEATURES\u003dtest emerge-link update_engine\nTEST\u003dmmma system/update_engine\nTEST\u003d`brillo_update_payload properties` for signed and unsigned payloads.\n\nChange-Id: I4602ea4b8dc269e4cc66df4293ef9765d8dd031d\n"
    },
    {
      "commit": "61e1fa89e01952d772f4aca843fa817a7a30fe66",
      "tree": "deaae161e6eb71329b271043f2ccb399bcf96112",
      "parents": [
        "95224ddce0671a569095622b4817a34dfbaa8830"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Tue Jan 19 15:16:34 2016 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Jan 29 22:12:16 2016 +0000"
      },
      "message": "brillo_update_payload: Disable Brillo deltas for minor version \u003c\u003d 2.\n\nSupport for deltas in the client landed for Brillo with minor version\n3. While there shouldn\u0027t be any clients using such old version,\ndeveloppers may have upload these images to our server and deltas are\nexpected to fail.\n\nThis CL makes brillo_update_payload exit with error code 100 when the\nsource image does not support deltas.\n\nBug: 26193066\nTEST\u003d`brillo_update_payload` from old image failed and returned exit code 100.\n\nChange-Id: Ia092316e73e5f5fce5a560e5eb19cf7f1ed1d0d2\n"
    },
    {
      "commit": "d6122bb9df5b593a3ab1fc35fab7f1a0caa53928",
      "tree": "48ca2c6041d2b9d8dbd373c8986e4615c6854c01",
      "parents": [
        "912c4df6c4f470ddb6937b40cbe281229548783d"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@chromium.org",
        "time": "Fri Dec 11 10:27:04 2015 -0800"
      },
      "committer": {
        "name": "Aseda Aboagye",
        "email": "aaboagye@chromium.org",
        "time": "Sat Dec 12 00:54:34 2015 +0000"
      },
      "message": "paycheck: Allow minor version 3 in applier.\n\nAlso fixed nits in checker.\n\nBUG\u003dchromium:568473\nTEST\u003d./checker_unittest.py\n\nChange-Id: Ia791f4dc636e9c3a2921aeaa5f9dd01c247bf5bb\nReviewed-on: https://chromium-review.googlesource.com/317780\nTrybot-Ready: Sen Jiang \u003csenj@chromium.org\u003e\nTested-by: Sen Jiang \u003csenj@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Sen Jiang \u003csenj@chromium.org\u003e\n"
    },
    {
      "commit": "912c4df6c4f470ddb6937b40cbe281229548783d",
      "tree": "81f9df9ada172708ff698585831d4a1261ccdc67",
      "parents": [
        "349fd298f4721e359ad598b6067a7254bb137adb"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@chromium.org",
        "time": "Thu Dec 10 12:17:13 2015 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri Dec 11 01:59:21 2015 +0000"
      },
      "message": "paycheck: support minor version 3.\n\nAdded check for mandatory source operation hash in minor version 3.\n\nFixed unittest.\n\nBUG\u003dchromium:568473\nTEST\u003d./paycheck.py \u003cminor v3 payload\u003e; ./checker_unittest.py\n\nChange-Id: Id96ddce8c59f28b3449524b786c54a6c69ca798f\nReviewed-on: https://chromium-review.googlesource.com/317573\nTrybot-Ready: Sen Jiang \u003csenj@chromium.org\u003e\nTested-by: Sen Jiang \u003csenj@chromium.org\u003e\nReviewed-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": "349fd298f4721e359ad598b6067a7254bb137adb",
      "tree": "2fa15ae09d6ce71cb333eaad320c266e950e323c",
      "parents": [
        "ef49735f40d0319151fd1e50abdbe377ab49ce72"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@chromium.org",
        "time": "Mon Nov 16 17:28:09 2015 -0800"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Tue Nov 17 22:06:51 2015 -0800"
      },
      "message": "update_payload: Fix IsDelta to support payload v2.\n\nAdded check for the old_partition_info field which is used by major\nversion 2 payload.\n\nOther changes are needed in order to pass presubmit lint check.\n\nBUG\u003dNone\nTEST\u003dRun devserver with a v2 delta payload.\n\nChange-Id: I3d7057fde44bd24d768177d5ed5c36bc2d4ca94b\nReviewed-on: https://chromium-review.googlesource.com/312952\nCommit-Ready: Sen Jiang \u003csenj@chromium.org\u003e\nTested-by: Sen Jiang \u003csenj@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "6f7b22c69bef53d33ae2bbb80b6682ff7ea8006e",
      "tree": "8660f0673df75a74856c5729476ea1fdef757bfd",
      "parents": [
        "f514c54ce3b91a00abcfb2eededa5d38af8008ce"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@chromium.org",
        "time": "Thu Nov 12 15:50:39 2015 -0800"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Sun Nov 15 05:26:20 2015 -0800"
      },
      "message": "brillo_update_payload: Pass postinstall config file to delta_generator.\n\nIf the target_files.zip contains META/postinstall_config.txt, then extract\nit and pass the path to delta_generator.\n\nBUG\u003db:24537566\nTEST\u003dCalled brillo_update_payload with a target_files.zip that contains\npostinstall_config.txt\n\nChange-Id: I593c449e0194f3f72f4bcf712a03be472e12076d\nReviewed-on: https://chromium-review.googlesource.com/312550\nCommit-Ready: Sen Jiang \u003csenj@chromium.org\u003e\nTested-by: Sen Jiang \u003csenj@chromium.org\u003e\nReviewed-by: Sen Jiang \u003csenj@chromium.org\u003e\n"
    },
    {
      "commit": "f514c54ce3b91a00abcfb2eededa5d38af8008ce",
      "tree": "92f74591e0cb06cb0ebed4edef0755cdfc368e29",
      "parents": [
        "168b535ceaeef22d501b5c14a167d323758e4ed6"
      ],
      "author": {
        "name": "Jason Kusuma",
        "email": "jkusuma@google.com",
        "time": "Thu Nov 05 18:43:45 2015 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Wed Nov 11 19:24:26 2015 +0000"
      },
      "message": "brillo_payload_generator: Adding warn function and flag verification\n\n- Adding warn function\n- Add check to verify that metadata_hash_file flag is set\n\nBUG\u003db:25479363\nTEST\u003dbrillo_payload_generator called successfully in local env\n\nChange-Id: I1920c85c06be69cee93be74ef21d4f912714048d\nReviewed-on: https://chromium-review.googlesource.com/310889\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Jason Kusuma \u003cjkusuma@chromium.org\u003e\n"
    },
    {
      "commit": "168b535ceaeef22d501b5c14a167d323758e4ed6",
      "tree": "77d6769ccc6e2166c5081c42de84f9f9b988db28",
      "parents": [
        "83f2f70dd3aa3e4c8f16273bdd026b1f452b33a1"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Wed Nov 04 13:51:52 2015 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Nov 05 18:46:59 2015 +0000"
      },
      "message": "brillo_payload_generator: Pass the list of partitions to the generator.\n\nThe list of A/B partitions is specified in ab_partitions.txt in the\n.zip file. This patch parses and passes that list to the\ndelta_generator.\n\nBUG\u003db:24387863\nTEST\u003dbrillo_payload_generator logs out passing the new flags.\n\nChange-Id: I6c9955054efd3df4a72a0b1d33f2da9b59771f02\nReviewed-on: https://chromium-review.googlesource.com/310921\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Jason Kusuma \u003cjkusuma@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "83f2f70dd3aa3e4c8f16273bdd026b1f452b33a1",
      "tree": "90fcc977399f89bf9150ef443add7a4a8eb946ac",
      "parents": [
        "bf1266fec223275ff19ef9624651946be9b9112a"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Wed Oct 14 14:49:33 2015 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Wed Nov 04 07:08:40 2015 -0800"
      },
      "message": "Pass the correct major_version when generating updates.\n\nAll Chrome OS updaters support major payload version 1 (or newer) and\nall Brillo updaters support major payload version 2, so this patch\npasses those version numbers to the delta_generator.\n\nWhen generating delta payloads, we use the major_version specified by\nthe old updater.\n\nBUG\u003db:22024447\nTEST\u003d`brillo_generate_update_payload` generate, hash and sign for a recent build.\n\nChange-Id: Ib7509296a3bab79868e4fd718a0aaac163b29f69\nReviewed-on: https://chromium-review.googlesource.com/306101\nCommit-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Jason Kusuma \u003cjkusuma@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "bf1266fec223275ff19ef9624651946be9b9112a",
      "tree": "88ff1b0a9f3a2dc130998eb062ce76f29d29868d",
      "parents": [
        "957ce12832240c1e8a66af425d8524a3cbfdfd97"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@chromium.org",
        "time": "Mon Oct 26 11:29:24 2015 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Tue Oct 27 01:22:56 2015 -0700"
      },
      "message": "Pass out_hash_file to delta_generator.\n\ndelta_generator now requires out_hash_file flag to be set if\nout_metadata_hash_file flag is set, so that it can calculate both hash in\none pass.\n\nBUG\u003db:25234653\nTEST\u003dcros_generate_update_payload --out_metadata_hash_file ...\n\nChange-Id: If5a556717e722fc5a1c0f077aa2b1eebab7eb40d\nReviewed-on: https://chromium-review.googlesource.com/308960\nCommit-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Sen Jiang \u003csenj@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "ef49735f40d0319151fd1e50abdbe377ab49ce72",
      "tree": "3929a7224c23f8d899255a1644aa554f0fa02a3f",
      "parents": [
        "be5aa57d5ecb1a0ef53aaa57a67d862f72915b8e"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Oct 15 09:14:58 2015 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Thu Oct 15 19:57:01 2015 -0700"
      },
      "message": "Parse Payload v2 header.\n\nThe update payload v2 contains an extra field in the header with the\nsize of the metadata signatures and the metadata signatures stored\nright after the metadata. This patch parses the new payload format.\n\nBUG\u003db:22024447\nTEST\u003dcros payload show payload-v2.bin; served a payload v2 with devserver.py\n\nChange-Id: I8ce85af1df505f82f62a9d1cd57910cee6921f84\nReviewed-on: https://chromium-review.googlesource.com/306090\nCommit-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "957ce12832240c1e8a66af425d8524a3cbfdfd97",
      "tree": "b69032edacb2671b7754757cbc26b8bbd1f4bdea",
      "parents": [
        "9a4cae24e671face0c8786ff87e9d3de405cf4c8"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Wed Oct 14 16:02:55 2015 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Thu Oct 15 19:56:55 2015 -0700"
      },
      "message": "brillo_update_payload: Drop common.sh.\n\nThis releases us from pulling in unnecessary dependencies, which is\nuseful in some situations (like running this script in a Moblab image):\n\n1) Source shflags directly. Look at the default location, then crosutils\n   (chroot), then the current directory (for au-generator.zip).\n\n2) Define a die function locally.\n\nBUG\u003db:24909273\nTEST\u003dScript runs in Moblab.\n\nChange-Id: Id4c8764ee20635b4822fa71b3719690a46c44f4a\nReviewed-on: https://chromium-review.googlesource.com/305759\nCommit-Ready: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "9a4cae24e671face0c8786ff87e9d3de405cf4c8",
      "tree": "9bc2dc4c5cb6cfd400360bcc61e7b207e33844bb",
      "parents": [
        "c64ffd591d1f4f4f7bacce0670bc0fce70830f36"
      ],
      "author": {
        "name": "Jason Kusuma",
        "email": "jkusuma@google.com",
        "time": "Thu Oct 08 18:17:57 2015 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Wed Oct 14 14:30:21 2015 -0700"
      },
      "message": "brillo_update_payload: Add metadata_size_file flag\n\nAdd optional metadata_size_file flag to output metadata size to\nthe specified file.\n\nBUG\u003db:24751934\nTEST\u003dbrillo_update_payload with the new flag specified\n\nChange-Id: Ic43dcadbb3624bdca824e55834b287151f00c75f\nReviewed-on: https://chromium-review.googlesource.com/304932\nCommit-Ready: Jason Kusuma \u003cjkusuma@chromium.org\u003e\nTested-by: Jason Kusuma \u003cjkusuma@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Sen Jiang \u003csenj@chromium.org\u003e\n"
    },
    {
      "commit": "c64ffd591d1f4f4f7bacce0670bc0fce70830f36",
      "tree": "8d80d75c84ec2bf848019c0c05f7ca2ed98ddfc0",
      "parents": [
        "c97df43fdc7c4fcfe06a76274f43211e6aa9255c"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri Sep 25 18:10:07 2015 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Tue Sep 29 11:28:20 2015 -0700"
      },
      "message": "brillo_update_payload: Improve help message and flags.\n\nDifferent sub-commands have different flags. This patch improves the\nhelp message of each sub-command including only the flag used by that\nsub-command.\n\nBUG\u003dNone\nTEST\u003d`brillo_update_payload command --help` for the different commands.\n\nChange-Id: I2a1d5c0f0a7cb04bf6d0f4495de83fb66e134c1b\nReviewed-on: https://chromium-review.googlesource.com/302625\nCommit-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Jason Kusuma \u003cjkusuma@chromium.org\u003e\n"
    },
    {
      "commit": "c97df43fdc7c4fcfe06a76274f43211e6aa9255c",
      "tree": "8007c8c03d278d5afe7c7ce24e6a83bbf6ba7a03",
      "parents": [
        "48b502ab0cd56bf948602a45b990448f51e3e6b5"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri Sep 25 17:23:52 2015 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Tue Sep 29 11:28:20 2015 -0700"
      },
      "message": "brillo_update_payload: Parse minor version from the metadata.\n\nMETA/update_engine_config.txt contains KEY\u003dvalue config options with\nthe supported version. This patch uses the supported minor version from\nthe source image to generate the right delta payload.\n\nBUG\u003db:24406755\nTEST\u003dbrillo_update_payload with old/new taget_files including and not including the update_engine_config.txt file.\n\nChange-Id: I3dacaeeeda9bbde3991a95fbf7834542af0b5780\nReviewed-on: https://chromium-review.googlesource.com/302624\nCommit-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Jason Kusuma \u003cjkusuma@chromium.org\u003e\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "be5aa57d5ecb1a0ef53aaa57a67d862f72915b8e",
      "tree": "6e07dd7e6674900e35c5827b36019eef8f574ff0",
      "parents": [
        "d41f59ed278039e03ac21c1a3cfd1a0055fbec25"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Wed Sep 23 18:11:31 2015 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Thu Sep 24 12:46:33 2015 -0700"
      },
      "message": "paycheck: Update generated protobuf code.\n\nThis patch updates the generated update_metadata_pb2.py file with the\nlatest changes in the udpate_metadata.proto file.\n\nBUG\u003dNone\nTEST\u003dpaycheck unittests\n\nChange-Id: Ibba40eb94535496654447c23895677cacb69f26b\nReviewed-on: https://chromium-review.googlesource.com/302191\nCommit-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "48b502ab0cd56bf948602a45b990448f51e3e6b5",
      "tree": "2adeb75d19b51e678cdc8503f75e066eee1ab336",
      "parents": [
        "89ff9e3221c358977f9c3124930ee6b559853740"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Sep 17 19:00:18 2015 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Fri Sep 18 19:21:14 2015 -0700"
      },
      "message": "brillo_update_payload: Extract Android target_files.zip.\n\nWhen generating payloads for Brillo, we need to extract the partitions\nfrom the target_files.zip image. This patch detects the format of the\nold/new image and extract them accordingly.\n\nCQ-DEPEND\u003dCL:300654\nBUG\u003db:23599483\nTEST\u003dbrillo_update_payload generate --target_image dragonboard-target_files-2238075.zip --payload full-2238075.bin\n\nChange-Id: I6e38bad35ef9d904e12232a10947f379fcd2acd7\nReviewed-on: https://chromium-review.googlesource.com/300626\nCommit-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Jason Kusuma \u003cjkusuma@chromium.org\u003e\n"
    },
    {
      "commit": "89ff9e3221c358977f9c3124930ee6b559853740",
      "tree": "4af9c683f0372cdb5dfef1cf20125a0bc2cfa36a",
      "parents": [
        "be998f47ccb02c5f118f73e79729e9187c39e919"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Tue Sep 15 19:29:01 2015 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Wed Sep 16 22:21:58 2015 -0700"
      },
      "message": "brillo_update_payload: Refactor code to extract_image_cros\n\nTo support extracting images from either Android or Chrome OS format,\nthis patch refactors the partition extraction function to a new\nextract_image_cros function called twice. This will then be wrapped\nwith a extract_image function that will handle either format.\n\nThe function stores the partition name-\u003efilename mapping in a bash\nassociative array which then will be used to pass the filenames and\npartition names to delta_generator.\n\nThis patch also includes the missing --metadata_signature_file flags.\n\nBUG\u003db:23599483\nTEST\u003dRan brillo_update_payload generate with various full/delta images.\n\nChange-Id: I55e0c6f951b12e6b3e89ffb9fcd2240a2e2593cc\nReviewed-on: https://chromium-review.googlesource.com/299971\nCommit-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "d41f59ed278039e03ac21c1a3cfd1a0055fbec25",
      "tree": "2cd5866ed82007cb6bfb8e6367af83bab954e6bb",
      "parents": [
        "2846677f9ec7725d9cf9513768477c873c19ba78"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Tue Sep 15 09:36:59 2015 -0700"
      },
      "committer": {
        "name": "Puthikorn Voravootivat",
        "email": "puthik@chromium.org",
        "time": "Tue Sep 15 17:43:18 2015 +0000"
      },
      "message": "update_payload: Regenerate protobuf with protoc 2.5\n\nGoobuntu trusty uses protobuf 2.5.0 python modules, but the chroot uses\nversion 2.6.1. Protobufs compiled with protoc 2.6.1 (inside the chroot)\nare not compatible with the python modules installed in trusty, so they\ncan only run inside the chroot. Nevertheless, protobufs compiled with\nprotoc 2.5.0 work with the new library version.\n\nBUG\u003dchromium:531884\nTEST\u003d`./paycheck.py` inside and outside the chroot with libprotobuf 2.5.0\n\nChange-Id: Ifeaf203a9c891156dd487249673a8264c74fd7e3\nReviewed-on: https://chromium-review.googlesource.com/299814\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": "2846677f9ec7725d9cf9513768477c873c19ba78",
      "tree": "61e9a4c2a66d499c0151a4f2b3bdd359b5c04305",
      "parents": [
        "53b62278d049a50c20e6693aeaefe9675ccb8407"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri Sep 11 17:16:44 2015 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Mon Sep 14 18:53:36 2015 -0700"
      },
      "message": "paycheck: Update generated protobuf code.\n\nThis patch updates the generated update_metadata_pb2.py file with the\nlatest changes in the udpate_metadata.proto file. Some other changes in\nthe update_payload library were required to match the changes in the\n.proto file.\n\nBUG\u003db:23179128\nTEST\u003dpaycheck unittests\n\nChange-Id: I482d67d4a35f69438a26395eea77286994108b7a\nReviewed-on: https://chromium-review.googlesource.com/299498\nCommit-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "be998f47ccb02c5f118f73e79729e9187c39e919",
      "tree": "f912965a39fc55ff101102fc0c8395a1f847348c",
      "parents": [
        "fb51ab2c7198aaeb3829fc691199c4cddf136b7b"
      ],
      "author": {
        "name": "Jason Kusuma",
        "email": "jkusuma@google.com",
        "time": "Thu Sep 03 15:53:13 2015 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Wed Sep 09 20:36:19 2015 -0700"
      },
      "message": "Initial implemetation of brillo_update_payload script\n\nBUG\u003db:23599483\nTEST\u003dRun locally with various commands/args combinations\n\nChange-Id: I9d8449450cc215b65cf199e0d0b221ca450ccd8e\nReviewed-on: https://chromium-review.googlesource.com/297600\nCommit-Ready: Jason Kusuma \u003cjkusuma@chromium.org\u003e\nTested-by: Jason Kusuma \u003cjkusuma@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "53b62278d049a50c20e6693aeaefe9675ccb8407",
      "tree": "dcb2e8a2714e7dd990838f3a4926b30a48a6a063",
      "parents": [
        "e4beff7dacb170298f86bb5bde1946b9b827b174"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Thu Jul 16 16:33:00 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Wed Jul 22 05:02:51 2015 +0000"
      },
      "message": "paycheck: Small improvements to the block tracer utility.\n\nThis prepends the current block number to the output, simplifies some\nlogic, and tightens argument validation in the command-line parser.\n\nBUG\u003dNone\nTEST\u003dpaycheck -B/-b works.\n\nChange-Id: I90d5cdf721612cdd12e49f4e4181849fc699807f\nReviewed-on: https://chromium-review.googlesource.com/286547\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\n"
    },
    {
      "commit": "e4beff7dacb170298f86bb5bde1946b9b827b174",
      "tree": "3f7d46a4881dcd7867b5e00cab1fab8a5242161f",
      "parents": [
        "4b8f4c2f76dcbac32dc7729458f846bd6eed5c63"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@google.com",
        "time": "Thu Jul 16 14:14:03 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Jul 17 01:46:06 2015 +0000"
      },
      "message": "paycheck: Fix printing of operation index while tracing.\n\nThe block tracer is meant to scan operations in reverse order, to\ndiscover the latest operation that writes to a block. Strangely, it only\nreversed the operation indexes but scanned the actual operations in the\noriginal order, which is both incorrect in the general case, but even\nwhen it works the printed results are confusing (operations shown with\nthe wrong index). This fixes it.\n\nAlso some cosmetic changes to pacify the linter.\n\nBUG\u003dchromium:510909\nTEST\u003dpaycheck -B now prints the correct operation indexes.\n\nChange-Id: I65c44eeb450c229a2d5251737a0953716e124687\nReviewed-on: https://chromium-review.googlesource.com/286220\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\n"
    },
    {
      "commit": "4b8f4c2f76dcbac32dc7729458f846bd6eed5c63",
      "tree": "5161ff3d365cb6c436204438d2631e97874226e4",
      "parents": [
        "06eea33088be4418264d12820f94c700977e3fa6"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@google.com",
        "time": "Thu Jul 16 11:45:39 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Jul 17 00:06:07 2015 +0000"
      },
      "message": "paycheck: Disambiguate hash error messages.\n\nBefore we\u0027ve been emitting the exact same error message when failing to\nverify the hash of either pre- or post-update partition. This prefixes\nthe partition name with \"old\" or \"new\", respectively.\n\nBUG\u003dchromium:510909\nTEST\u003dNone\n\nChange-Id: Icf302d0a3b26d3f9860c4ccb03dba38493296794\nReviewed-on: https://chromium-review.googlesource.com/286143\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": "06eea33088be4418264d12820f94c700977e3fa6",
      "tree": "3c2c1d424bb8009cef625351b376bc6c33960198",
      "parents": [
        "b92167f787b4d9ea4db453b2464509489e1e606b"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Mon Jul 13 18:06:33 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Jul 17 00:06:02 2015 +0000"
      },
      "message": "paycheck: Properly infer usable target partition size.\n\nThe payload checker used to restrict read/write block indexes to the\nreported target filesystem size, unless explicitly given a partition\nsize value to use instead. So far this value was easy for clients (like\npaygen) to come up with, because it was constant at 2GB for all known\nboards.  However this is no longer the case, and there is no an easy way\nfor clients to know the actual target partition size after the payload\nhas been generated (nor is it encoded in the payload). This adds logic\nfor inferring the usable target partition size into PayloadChecker()\nitself, as follows:\n\n1) If a partition size was given, use that.\n\n2) Else, if this is an old delta (minor version \u003c 2), use the\n   aforementioned default. This is necessary because older deltas may\n   actually read/write data beyond the filesystem size. It is also\n   sufficient because any old delta payload we generate should write to\n   a 2GB target partition.\n\n3) In all other cases, just use the new filesystem size, as encoded in\n   the payload. This is a safe choice for full updates and newer deltas.\n\nThe command-line tool is updated accordingly. Note that the usable\nkernel partition size inference remains unaffected.\n\nBUG\u003dchromium:508566\nTEST\u003dUnit tests (revised)\n\nChange-Id: I987f28fdfe1d82d0f6f565ae9852b7b11bce13e8\nReviewed-on: https://chromium-review.googlesource.com/285447\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "b92167f787b4d9ea4db453b2464509489e1e606b",
      "tree": "308e8c4c29e98ba76596fc70494bcca30d79fef2",
      "parents": [
        "0d575cde18a1b44e386181dc1abbc611b9ae7a59"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Wed Jul 15 16:49:00 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Jul 17 00:05:57 2015 +0000"
      },
      "message": "paycheck: Fix linter errors.\n\nBUG\u003dNone\nTEST\u003dNone\n\nChange-Id: Ife881c35ee090c494307e7f55e3ce0a1a22eb1b1\nReviewed-on: https://chromium-review.googlesource.com/285999\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": "0d575cde18a1b44e386181dc1abbc611b9ae7a59",
      "tree": "5dde485b98dab00b337f49fa3133eee2b594c558",
      "parents": [
        "0d7a8d4f8ca7a111b6211c8469ce80355810ae28"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Mon Jul 13 17:29:21 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Jul 17 00:05:51 2015 +0000"
      },
      "message": "paycheck: Improve minor_version checking.\n\n1) We explicitly catch whether this field is not set. This means we\n   might fail payloads generated by an old delta_generator, but ensures\n   that we catch such a failure in current payload generation.  Test\n   logic slightly restructured to reduce duplication.\n\n2) Slight changes to the checker method signature, for better uniformity\n   with the rest of the code. This also lets us test that we actually\n   read the minor_version field.\n\nBUG\u003dchromium:508566\nTEST\u003dUnit tests (revised)\n\nChange-Id: Ib2d1999964ba892ef778ffc16bd1ca1c7d02bcd5\nReviewed-on: https://chromium-review.googlesource.com/285446\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "0d7a8d4f8ca7a111b6211c8469ce80355810ae28",
      "tree": "a41f1736c358952d9a1126968836b46e92f53152",
      "parents": [
        "25c18211b66715d35236259fcd0d3e6c0980780a"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@google.com",
        "time": "Thu Jul 16 11:49:34 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Jul 17 00:05:45 2015 +0000"
      },
      "message": "paycheck: Fix linter errors.\n\nAll whitespace related.\n\nBUG\u003dNone\nTEST\u003dNone\n\nChange-Id: I18694b7f3f86b3970de31fa0d366560234767632\nReviewed-on: https://chromium-review.googlesource.com/286142\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\n"
    },
    {
      "commit": "25c18211b66715d35236259fcd0d3e6c0980780a",
      "tree": "0d19801a84dc6fd878e8c8d401935c92a69be6d7",
      "parents": [
        "cf6f30dd7ef1db9955f2e318c0e47ee00271f358"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Tue Jul 14 09:55:07 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Wed Jul 15 23:15:58 2015 +0000"
      },
      "message": "Fix linter errors.\n\nBUG\u003dNone\nTEST\u003dNone\n\nChange-Id: I65434c5e7d00006b89d71aadb5a4721ee16ff289\nReviewed-on: https://chromium-review.googlesource.com/285445\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "cf6f30dd7ef1db9955f2e318c0e47ee00271f358",
      "tree": "39e768d51cbfa0e5d2e6f201d2fed0e8709825b6",
      "parents": [
        "b065e13f600d0efc7f089a382611ffd93a8afce9"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Jun 11 13:51:46 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Sat Jun 13 02:53:27 2015 +0000"
      },
      "message": "update_payload: Remove ctypes dependency.\n\nctypes requires libffi.so to be installed in the system, but old\ntest_images don\u0027t have it, preventing \"cros flash\" to work there.\nThis patch removes the need for ctypes from common.py so cros flash\ncan work.\n\nBUG\u003dNone\nTEST\u003dcros flash from R29 on link.\n\nChange-Id: Idd0732660780081c26375a5214167b53f625e3ed\nReviewed-on: https://chromium-review.googlesource.com/277070\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": "b065e13f600d0efc7f089a382611ffd93a8afce9",
      "tree": "07f1240c5c2fd9d08b430114a8d41de37d5d70f7",
      "parents": [
        "12f59aa1cffec0ee531daccc6de7469870f86302"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Fri Apr 24 10:20:27 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Mon Apr 27 23:29:30 2015 +0000"
      },
      "message": "paycheck: Check MOVE operations for start block 0.\n\npaycheck now blocks payloads that read or write to block 0 in a MOVE\noperation. It must do this because old versions of PReadAll and\nPWriteAll could not seek to 0.\n\nBUG\u003dchromium:480751\nTEST\u003dunit tests, test_paycheck.sh\n\nChange-Id: I042de444c92896496795af235e9386dca6c77be2\nReviewed-on: https://chromium-review.googlesource.com/267088\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\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": "12f59aa1cffec0ee531daccc6de7469870f86302",
      "tree": "556511e734922e8b9c1568375a1188b479d41797",
      "parents": [
        "fb04d30e433eed1d7e7b78114c1a747c89091362"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Mon Apr 06 11:05:12 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Wed Apr 15 04:50:56 2015 +0000"
      },
      "message": "update_payload: Add SOURCE operations to applier.\n\nAdd support for SOURCE_COPY and SOURCE_BSDIFF to paycheck by adding\nfunctions to apply these operations in applier. Also remove the source\nto destination partition copy in the applier when minor version is 2.\n\nAdds constants for source and inplace minor versions to common.py.\n\nBUG\u003dchromium:461635\nTEST\u003dunit tests and ./test_paycheck.sh with sample payloads.\nCQ-DEPEND\u003dCL:263747\n\nChange-Id: I72d354d0609d205aab374dbdca6f30eb4de6a819\nReviewed-on: https://chromium-review.googlesource.com/264931\nTested-by: Allie Wood \u003calliewood@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Allie Wood \u003calliewood@chromium.org\u003e\nTrybot-Ready: Allie Wood \u003calliewood@chromium.org\u003e\n"
    },
    {
      "commit": "fb04d30e433eed1d7e7b78114c1a747c89091362",
      "tree": "63aea6f15a51fb9c092aa661ecbff83ecf5db423",
      "parents": [
        "7cf9f13f2715d0a033c6300a244b40302d8eb7b7"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Fri Apr 03 14:25:48 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Mon Apr 06 21:50:28 2015 +0000"
      },
      "message": "update_payload: Fix checker unittests.\n\nChecker unittests failed when fail_bad_type\u003dTrue in\nDoCheckOperationsTest. When the operation was added (in AddOperation), a\nValueError was raised because an invalid enum value (for op.type) was\ngiven. For now, fail_bad_type tests have been removed.\n\nBUG\u003dNone\nTEST\u003d`./checker_unittest.py`\n\nChange-Id: I19220e295c576b4ddc6f427dedd4bc037908483d\nReviewed-on: https://chromium-review.googlesource.com/264005\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": "7cf9f13f2715d0a033c6300a244b40302d8eb7b7",
      "tree": "dbeb852fd4e2b49de94a039e9a0245daa506712c",
      "parents": [
        "f5c4f3e2a6e7c93e5b4c09272091f23a935fab86"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Thu Feb 26 14:28:19 2015 -0800"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Feb 27 07:08:02 2015 +0000"
      },
      "message": "update_payload: Move minor version checks to CheckOperation.\n\nVarious small fixes. Move checks for operation and minor version\ncompatibility to CheckOperation.\n\nBUG\u003dnone\nTEST\u003d`./checker_unittest.py` and running paycheck on payloads.\n\nChange-Id: I6abd0ec200c1d4d885b09dfb84ee7e6cfad4172c\nReviewed-on: https://chromium-review.googlesource.com/254345\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": "f5c4f3e2a6e7c93e5b4c09272091f23a935fab86",
      "tree": "f19a21b9f08d9712d49a95fd3c007973bdef29bc",
      "parents": [
        "8907e795aff7b3c3fc939ea74098c401ca8d379d"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Fri Feb 20 16:57:46 2015 -0800"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Thu Feb 26 02:03:31 2015 +0000"
      },
      "message": "update_payload: Add checks for new operations and minor version.\n\nPaycheck now checks to make sure delta payloads with minor version 1 do\nnot have SOURCE_COPY or SOURCE_BSDIFF operations and that payloads with\nminor version 2 do not have MOVE or BSDIFF operations. It also checks that\nthe minor version given matches the payload type (delta or full).\n\nBUG\u003dchromium:459799\nTEST\u003d`./checker_unittest.py` and running paycheck on payloads.\n\nChange-Id: I2a61e44760ae2b672015acdf8683501327b5d197\nReviewed-on: https://chromium-review.googlesource.com/253050\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": "8907e795aff7b3c3fc939ea74098c401ca8d379d",
      "tree": "41b7c9c7094935b03af57a9f9fa5112acbe68a8d",
      "parents": [
        "c11dc7338639296ab99f89964a94bcc486500ba3"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Wed Feb 25 12:49:03 2015 -0800"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Thu Feb 26 00:49:45 2015 +0000"
      },
      "message": "update_payload: Remove assertIsNone.\n\nunittest.assertIsNone was introduced in python 2.7 but at the time\nour servers were running an older python version. We have migrated to\npython 2.7 so we can drop the local wrapper now.\n\nBUG\u003dNone\nTEST\u003dran unittest.\n\nChange-Id: I1c43d027361ab7f8f5fad83cc900361e5a6ee137\nReviewed-on: https://chromium-review.googlesource.com/253610\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": "c11dc7338639296ab99f89964a94bcc486500ba3",
      "tree": "30cbb35058c64d9f88acf3cba3c1ac6baab89481",
      "parents": [
        "847e59386f01cab8cd48dcbf9cd543d0e9a6ad5b"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Wed Feb 18 15:53:05 2015 -0800"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Feb 20 20:51:14 2015 +0000"
      },
      "message": "update_payload: Regenerate proto file with new operation codes.\n\nRegenerate update_metadata_pb2.py to include SOURCE_COPY and\nSOURCE_BSDIFF, the new a to b operations for delta minor version 2.\n\nBUG\u003dchromium:459363\nTEST\u003dunit tests and `cbuildbot --remote link-release --hwtest`\n\nChange-Id: I3631c7af97f57d48f86a34c37f97ec8c3cef088d\nReviewed-on: https://chromium-review.googlesource.com/250954\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Allie Wood \u003calliewood@chromium.org\u003e\nTested-by: Allie Wood \u003calliewood@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\n"
    },
    {
      "commit": "847e59386f01cab8cd48dcbf9cd543d0e9a6ad5b",
      "tree": "49303c678d5a9dbadcd53cbbe001011b932d8097",
      "parents": [
        "5bc7fbea01f944192f146b97cd83050858cddcc5"
      ],
      "author": {
        "name": "Allie Wood",
        "email": "alliewood@chromium.org",
        "time": "Fri Feb 06 11:29:10 2015 -0800"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Mon Feb 09 22:17:21 2015 +0000"
      },
      "message": "update_payload: Regenerate protobuf file.\n\nRegenerate update_metadata_pb2.py so that it includes minor_version\nfield.\n\nBUG\u003dNone\nTEST\u003dunit tests and `cbuildbot --remote link-release --hwtest`\n\nChange-Id: I05a09f2e9afa424aeeb7791982040211c0152957\nReviewed-on: https://chromium-review.googlesource.com/247162\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\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": "5bc7fbea01f944192f146b97cd83050858cddcc5",
      "tree": "ca173b4f18aca3b5a8f238140b4359ac7e104cbc",
      "parents": [
        "f583a7d7c5255ec0e2321db60b7690c25e58c290"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Thu Feb 05 13:01:09 2015 -0800"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Feb 06 14:17:20 2015 +0000"
      },
      "message": "paycheck: Allow payloads with no operations.\n\nDue to a fix to the delta generator (CL:246670) we may actually end up\nwith delta payloads that contain no operations (e.g. a delta from an\nimage to itself). This is a good thing and we want paycheck to not rule\nout trivial deltas such as these.\n\nBUG\u003dchromium:453659\nTEST\u003dEmpty delta verification passes\n\nChange-Id: I461f48bba743a5b96b77aa3f55697ffc5cb8ea0e\nReviewed-on: https://chromium-review.googlesource.com/246673\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "f583a7d7c5255ec0e2321db60b7690c25e58c290",
      "tree": "33ebd71e52df77075cfcc7a91dbd7fb9bef0e9ed",
      "parents": [
        "a7aa0bcfa25b0d303447482980eca0973d4e939a"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Thu Feb 05 13:23:55 2015 -0800"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Feb 06 05:20:19 2015 +0000"
      },
      "message": "paycheck: Fix format compliance errors.\n\nBUG\u003dNone\nTEST\u003dNone\n\nChange-Id: I2d810bae961387a63495ba5bbe85b7222b5f86ef\nReviewed-on: https://chromium-review.googlesource.com/246672\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\n"
    },
    {
      "commit": "a7aa0bcfa25b0d303447482980eca0973d4e939a",
      "tree": "8805ed1206b412c7bc49c333da5537e09cfe7d74",
      "parents": [
        "6a3a3878daddc2536a2ac9033189274cfc5ef52d"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Tue Nov 12 08:18:08 2013 -0800"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Tue Nov 12 21:10:21 2013 +0000"
      },
      "message": "paycheck: strip newlines off of hash digest strings\n\nThis is an annoyance I\u0027d like to get rid of.\n\nBUG\u003dNone\nTEST\u003dNone\n\nChange-Id: I6119163ffc4944dd2f857bad055822b37229a692\nReviewed-on: https://chromium-review.googlesource.com/176478\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": "6a3a3878daddc2536a2ac9033189274cfc5ef52d",
      "tree": "a969f9169908b5ea4c73c1608238f3d5244575eb",
      "parents": [
        "cb638915dbc2e0898b0562c98019c077d7fc1e8a"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Fri Oct 04 18:18:45 2013 -0700"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Mon Oct 07 18:31:12 2013 +0000"
      },
      "message": "paycheck: fix errors around percentage / formatting of zero sizes\n\nThis fixes two problems, both having to do with histogram generation:\n\n* When the total number of elements is zero, paycheck would crash due to\n  a division by zero; further, even if the crash is fixed (returning,\n  say, None) the histogram will contain a meaningless value in\n  parenthesis, which we might as well drop. Both are fixed here.\n\n* When some size (say, bytes) is zero, its formatter\n  (bytes-to-human-readable) returns None, which shows up as is in the\n  final report. This should be checked and avoided.\n\nBUG\u003dNone\nTEST\u003dCrash fixed; None percentage/formatted value omitted.\n\nChange-Id: I8bb5fbc47e1cde9dcbee7f7b96bcb63ef3a0935e\nReviewed-on: https://chromium-review.googlesource.com/172046\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "cb638915dbc2e0898b0562c98019c077d7fc1e8a",
      "tree": "892cbe1bf2b1bbdfe44a88a738143020f2d29d02",
      "parents": [
        "21a0250e767dd6fc787252b9cc05657405332774"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Mon Jun 24 04:57:11 2013 -0700"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu Sep 12 19:10:19 2013 +0000"
      },
      "message": "paycheck: fixes to checker module (readability review)\n\nBUG\u003dNone\nTEST\u003dPasses unit tests\nTEST\u003dPasses integration tests\n\nChange-Id: Ifd502af9d2755b2c23805cd03857ebbf0e633732\nReviewed-on: https://chromium-review.googlesource.com/59752\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "21a0250e767dd6fc787252b9cc05657405332774",
      "tree": "1152a5ae33e938bd3a6a670e025a7042138c5e13",
      "parents": [
        "9753f3d28bda5d2abd7d17eb79022f7e02cb65b9"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Thu Aug 22 16:59:48 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Mon Aug 26 16:02:59 2013 -0700"
      },
      "message": "paycheck: allow to pass an explicit path to bspatch\n\nThe bspatch binary is used when applying update payloads. By default, we\nwere using whatever bspatch that was found via path expansion in\nos.execvp, however there are cases where we want to be specific about\nwhere the bspatch binary is that we need to be using (such as during\npaygen runs).\n\nBUG\u003dchromium:277072\nTEST\u003dNon-default bspatch binary used\n\nChange-Id: I85ffd28aeb26938cbf5ea428fa97d29af0353a7d\nReviewed-on: https://gerrit.chromium.org/gerrit/66736\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": "9753f3d28bda5d2abd7d17eb79022f7e02cb65b9",
      "tree": "d5d58f94ec8f51cf8be977b02f332b3c6048b359",
      "parents": [
        "0990f51671e3e392a3e19027b9a4ac4f69f36ba1"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Tue Jul 23 08:34:45 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Tue Jul 23 12:37:03 2013 -0700"
      },
      "message": "paycheck: accommodate \u003e 255 block reads/writes\n\nIt turns out that, in some delta payloads, we\u0027re read/writing specific\nblocks as many as 270 times. Therefore, the unsigned char counters we\u0027ve\nused for recording these accesses overflow and cause the execution to\ndie unexpectedly (also failing paygen when that happens). This change\nincreases the counter size to an unsigned short.\n\nIt should be noted that the fact that we have such frequently accessed\nblocks through the course of an update is somewhat troubling by itself,\nand should be investigated.\n\nBUG\u003dchromium:261417\nTEST\u003dChecking a previously failed payload now passes\n\nChange-Id: I47903cde9971c142cd33382b485b22a88a06b80f\nReviewed-on: https://gerrit.chromium.org/gerrit/63040\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\n"
    },
    {
      "commit": "0990f51671e3e392a3e19027b9a4ac4f69f36ba1",
      "tree": "06daa5971e725ff1eaedfb45ecfd35b7c527d060",
      "parents": [
        "f69065c07bb2eccc88499ba34429f62f707e19b8"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Thu May 30 17:09:31 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Mon Jun 10 17:12:16 2013 -0700"
      },
      "message": "update_payload library: TODO + bug references\n\nBUG\u003dchromium:243559\nTEST\u003dNone\n\nChange-Id: I6837b87ff6f0b845ebbca97fdfa4190dc2d1282a\nReviewed-on: https://gerrit.chromium.org/gerrit/57179\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\n"
    },
    {
      "commit": "f69065c07bb2eccc88499ba34429f62f707e19b8",
      "tree": "69f555cced23e268843fe855af2793850049f22a",
      "parents": [
        "e5fdf189ce3a4628f02a0bd5e09694bf7b815cdf"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Mon May 27 16:54:59 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Mon Jun 03 14:31:57 2013 -0700"
      },
      "message": "paycheck/applier: stop using fallocate\n\nIt appears that fallocate is not supported on certain filesystems (e.g.\nfailing on paygen genati instances). It also appears that we can do just\nfine without it when applying a full update, without significant impact\non performance.  In the interest of making the update_payload library\nmore portable, we therefore drop the fallocate call and replace it with\na simple create/truncate code (all Python standard lib calls).\n\nBUG\u003dchromium:244091\nTEST\u003dIntegration tests\n\nChange-Id: I57f7dec19e8131050c1d56d891e486714d4f7128\nReviewed-on: https://gerrit.chromium.org/gerrit/56762\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Matt Tennant \u003cmtennant@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "e5fdf189ce3a4628f02a0bd5e09694bf7b815cdf",
      "tree": "5a3a186031be7d878a309eda61ac01ff97b8d820",
      "parents": [
        "7a7edfd034e37663337049ccb0aa59467f3b8fd1"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Thu May 23 16:13:38 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Fri May 24 11:36:49 2013 -0700"
      },
      "message": "paycheck: truncate partitions resulting from applying a payload\n\nSince the correctness of the result only encompasses the filesystem (or\notherwise \"meaningful data\") on the target partition, it is desirable to\nactually get rid of whatever is past that point. There are different\nreasons for the presence of such extra space in delta updates, including\nremnants from a source partition that served as baseline for a delta\nupdate, or scratch space used by MOVE operations for breaking cycles.\n\nWe make truncation the default behavior, although it can be suppressed\nby passing the right flag (truncate_to_expected_size\u003dFalse). Note that\nthis change is necessary for comparing the results of applying a payload\nto the partitions as they are extracted from a target image, which is to\nbe attempted during payload generation.\n\nThis also fixes tiny gpylint complaints.\n\nBUG\u003dchromium:241283\nTEST\u003dEmitted partition files truncated as expected\n\nChange-Id: Ibb71e4f2305ec41224afdc503168ae02c312f6fe\nReviewed-on: https://gerrit.chromium.org/gerrit/56532\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "7a7edfd034e37663337049ccb0aa59467f3b8fd1",
      "tree": "ac451d1fd1f8b8ac8666f151141602510e9f38e0",
      "parents": [
        "18f4f9fab192e75a3477979c03a89381c35fd974"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Wed May 22 17:21:58 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Thu May 23 13:24:50 2013 -0700"
      },
      "message": "paycheck: close metadata signature file\n\nPaycheck used to open it but not closing it. Cleaned up now.\n\nBUG\u003dNone\nTEST\u003dIntegration tests\n\nChange-Id: I101f2acd394bcbe5e5d683b5eecc6170ab1bcf2d\nReviewed-on: https://gerrit.chromium.org/gerrit/56336\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "18f4f9fab192e75a3477979c03a89381c35fd974",
      "tree": "7179808d6448dffaa0f196fe90c5a774dd2e5652",
      "parents": [
        "9b90c93edcaa16f6c734f421ccf00201a474d9ea"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Tue Apr 02 16:24:41 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Wed May 22 19:15:56 2013 -0700"
      },
      "message": "paycheck: move stuff from checker_unittest.py to test_utils.py\n\nThis is all stuff that\u0027ll come in handy when testing other modules.\n\nBUG\u003dchromium:217039,chromium:215780,chromium:189855\nTEST\u003dPasses unittests\n\nChange-Id: I57d1fae97330f22748885f8028352f07b5058396\nReviewed-on: https://gerrit.chromium.org/gerrit/47615\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": "9b90c93edcaa16f6c734f421ccf00201a474d9ea",
      "tree": "791c5a1c3c7ee0076d98cfc3d465fc8832781f69",
      "parents": [
        "432d601e236bf8b9110fdb497e5f5c87899346e2"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Wed May 22 17:12:56 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Wed May 22 19:15:54 2013 -0700"
      },
      "message": "paycheck: move default pubkey handling inside the library\n\nThis is a more sensible choice given that the pubkey ships within the\nlibrary directory and hence should not be specified explicitly by an\noutside entity (like paycheck). From the practical standpoint, it makes\nthis useful feature available to clients who use the library directly.\n\nBUG\u003dchromium:241283\nTEST\u003dUnit + integration tests\n\nChange-Id: I059302326af1e0e394829466ee97ad2f60de4986\nReviewed-on: https://gerrit.chromium.org/gerrit/56335\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": "432d601e236bf8b9110fdb497e5f5c87899346e2",
      "tree": "987f4a1da85832be2f2ebdf9bab1ae2b8264344f",
      "parents": [
        "4f50b413c60a5ef8d642b9d7493baa92c8eedd09"
      ],
      "author": {
        "name": "Don Garrett",
        "email": "dgarrett@google.com",
        "time": "Fri May 10 15:01:36 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Wed May 15 18:42:55 2013 -0700"
      },
      "message": "Update paycheck to understand the updated update_metadata fields.\n\nWhen checking a payload, always start by printing a description of the\npayload being checked.\n\nRecompiled (with protoc) the updated update_metadata.proto from the\nupdate_engine.\n\nBUG\u003dchromium:226310\nTEST\u003dManual Run\nCQ-DEPEND\u003dCL:47347\n\nChange-Id: Ib60c6e6978d30444db7b65ef6d09540c9ffacdb8\nReviewed-on: https://gerrit.chromium.org/gerrit/50899\nCommit-Queue: Don Garrett \u003cdgarrett@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nTested-by: Don Garrett \u003cdgarrett@chromium.org\u003e\n"
    },
    {
      "commit": "4f50b413c60a5ef8d642b9d7493baa92c8eedd09",
      "tree": "69d8701d45ac7c74617282f4b1ca474823a73306",
      "parents": [
        "658185a5bd909c0abe8a55523a4e3cab3f9b26c8"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Tue May 14 09:19:17 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Tue May 14 20:43:26 2013 -0700"
      },
      "message": "paycheck: allow src_extents to span the whole new partition size\n\nIn a previous fix, we allowed paycheck to consider the whole new\npartition (beyond just the filesystem) as valid range for write\noperations. However, since updates are done in place, they should also\nbe considered valid for read operations. This is now fixed.\n\nBUG\u003dchromium:240726\nTEST\u003dPreviously failing delta update now verified successfully\n\nChange-Id: Ib904c0265e2fd61ab0768169b3257c4131441888\nReviewed-on: https://gerrit.chromium.org/gerrit/51138\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "658185a5bd909c0abe8a55523a4e3cab3f9b26c8",
      "tree": "b37fdf7e581d59d29e70ac5be22264f876d1703d",
      "parents": [
        "272a499e2db9d72a64490ca5ccbebe8155fc2966"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Wed May 08 17:57:54 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Mon May 13 19:31:12 2013 -0700"
      },
      "message": "paycheck: applier honors sparse holes\n\nUp until now, paycheck\u0027s applier ignored sparse (aka pseudo-) extents\ncompletely, except for REPLACE operations (where a sparse extent is an\nindicator for a signature blob). This is now fixed.\n\nBUG\u003dchromium:221846\nTEST\u003dPasses integration test\n\nChange-Id: I8b7fde6e4bb20912a59ce9a509a20c00c5c0751b\nReviewed-on: https://gerrit.chromium.org/gerrit/50558\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": "272a499e2db9d72a64490ca5ccbebe8155fc2966",
      "tree": "d43741ced85b1740f1acbc26da3b94da0b4dddcb",
      "parents": [
        "16416600a92a60294cd57aceec170a13ed72ed19"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Wed May 08 13:12:53 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Mon May 13 19:31:11 2013 -0700"
      },
      "message": "paycheck: support for in-place BSDIFF operations\n\nWhen applying BSDIFF operations in payloads, we used to extract the\nblock sequences from the old partition and serialize it into a temporary\nfile, and vice versa for the new partition. This worked but did not\nallow us to test bspatch as it is actually being used by the update\nengine.\n\nThis CLs allows paycheck to invoke bspatch so that it reads/writes block\nextents directly from/to the partition file, in the same way it\u0027s being\nused by the update engine. Since performance is the same, this is the\nnew default behavior; users can opt for the aforementioned old behavior\nusing a command-line flag (-x or --extract-bsdiff).\n\nBUG\u003dchromium:229705\nTEST\u003dbspatch invoked differently depending on the -x flag\nTEST\u003dPasses unit/integration tests\n\nChange-Id: I8821754e1163b357617ece6befa42d1c2e575930\nReviewed-on: https://gerrit.chromium.org/gerrit/50486\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Darin Petkov \u003cpetkov@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "16416600a92a60294cd57aceec170a13ed72ed19",
      "tree": "9c03d70c288b726e10279952311b6f36ab3cf767",
      "parents": [
        "2ca9f145a8f7abe5893ad43021dc2901072315be"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Sat May 04 21:40:39 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Mon May 13 15:54:25 2013 -0700"
      },
      "message": "paycheck: src/dst -\u003e old/new in applier code\n\nThe old/new terminology is consistent with that used in update payload\nmanifest, as well as other parts of the update_payload library (e.g.\nchecker).\n\nBUG\u003dNone\nTEST\u003dUnit/integration test passes\n\nChange-Id: I91244ae8adf073b958e8cd7e7670341f056c848e\nReviewed-on: https://gerrit.chromium.org/gerrit/50130\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": "2ca9f145a8f7abe5893ad43021dc2901072315be",
      "tree": "7d26ba0cae76a7b701caf02df608b9354606c3b2",
      "parents": [
        "d013028f4c07bec6db9563a04b14d465c3c06b05"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Mon May 13 12:29:58 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Mon May 13 14:23:43 2013 -0700"
      },
      "message": "paycheck: improved test script error message\n\nMakes it clear what exactly is not found (i.e. the paycheck.py at the\nsame location as test_paycheck.sh).\n\nBUG\u003dNone\nTEST\u003dError message as expected\n\nChange-Id: I240c75ecb38c1003882aff76a65f92b661f8a607\nReviewed-on: https://gerrit.chromium.org/gerrit/51011\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": "d013028f4c07bec6db9563a04b14d465c3c06b05",
      "tree": "d9552fe5634ce54687788788c40f14885a16fe22",
      "parents": [
        "43116436524744f065ff29cfbe31e045339a1204"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Mon May 13 08:12:39 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Mon May 13 14:23:41 2013 -0700"
      },
      "message": "paycheck: fix integration test script\n\nNow that paycheck comes equipped with the Chrome OS standard public key\nand infers metadata signature filenames automatically, we don\u0027t need\nthese extra arguments handed to the test script. Also, fixes a small bug\nin option inference during paycheck invocation.\n\nBUG\u003dNone\nTEST\u003dintegration test script works as intended\n\nChange-Id: If2c0d512c2e9476c3788e9c7179e954ba2502657\nReviewed-on: https://gerrit.chromium.org/gerrit/50985\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": "43116436524744f065ff29cfbe31e045339a1204",
      "tree": "a61d28dae87f322d00438b8dfdd16bde27925595",
      "parents": [
        "03959b7eaeb9f14cc86a5e053b5e569590c8a44b"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Tue May 07 17:12:50 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Wed May 08 18:41:13 2013 -0700"
      },
      "message": "paycheck: make gpyling happy\n\nSmall conformance issues, now fixed.\n\nBUG\u003dNone\nTEST\u003dStill running\n\nChange-Id: I96a085d4fdc22edff65629b8b01d6d595f1f7b2d\nReviewed-on: https://gerrit.chromium.org/gerrit/50393\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "03959b7eaeb9f14cc86a5e053b5e569590c8a44b",
      "tree": "622d31962db288388c9edc596a87f89b12947926",
      "parents": [
        "4f8c17cdb113fe1d3743cbd2827b5d38a1f1e51d"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Tue May 07 17:08:18 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Wed May 08 18:41:13 2013 -0700"
      },
      "message": "paycheck: fixed an undefined variable bug\n\nBUG\u003dNone\nTEST\u003dIt is running now\n\nChange-Id: I7ed7c17811700f34e7556bac89182db6b8e29992\nReviewed-on: https://gerrit.chromium.org/gerrit/50392\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "4f8c17cdb113fe1d3743cbd2827b5d38a1f1e51d",
      "tree": "23b2241974ddcc69d4a2014b9979a5b687de258e",
      "parents": [
        "9640537ac1b6abfae866424a11e6869228fb7cac"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Sat May 04 22:57:45 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Tue May 07 00:03:24 2013 -0700"
      },
      "message": "paycheck: refined default metadata signature logic\n\nWe now only discover and use a default metadata signature when check is\nactually triggered and a public key provided; otherwise, we could be\nforcing the check to fail. This also avoids unnecessary output and\ndirects informational output to stderr.\n\nBUG\u003dchromium:238507\nTEST\u003dUnit/integration tests pass\n\nChange-Id: I39df4060afd12a5d54869a6803141bc3e0d2f89b\nReviewed-on: https://gerrit.chromium.org/gerrit/50138\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: David James \u003cdavidjames@chromium.org\u003e\n"
    },
    {
      "commit": "9640537ac1b6abfae866424a11e6869228fb7cac",
      "tree": "8223bad816120a0f9a9a2182e9aefd1b8deca776",
      "parents": [
        "382df5ce2f4b67bf0998b01c6fedcdb5c35ebef9"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Sat May 04 00:24:58 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Tue May 07 00:03:15 2013 -0700"
      },
      "message": "paycheck: use base64 encoding for SHA256 hashes throughout\n\nTurns out we were using base64 when adding SHA256 data to a payload\nreport, but intermittently using hex encoding in error messages. This is\nnow fixed.\n\nBUG\u003dNone\nTEST\u003dNo mention of hex encoding in the code\nTEST\u003dgpylinted correctly\nTEST\u003dPasses unit tests\n\nChange-Id: Id2dc2fcd154d4647cc1a076579dde7a789c09e40\nReviewed-on: https://gerrit.chromium.org/gerrit/50104\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: David James \u003cdavidjames@chromium.org\u003e\n"
    },
    {
      "commit": "382df5ce2f4b67bf0998b01c6fedcdb5c35ebef9",
      "tree": "f134f56266c93512a10f7d8fff5bd06bd15e70a5",
      "parents": [
        "e73dad9a9ea7121c9e80448dbda154c2510a860f"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Fri May 03 12:49:28 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Tue May 07 00:03:14 2013 -0700"
      },
      "message": "paycheck: enforce physical partition size correctly\n\nDuring payload checking, payload has wrongly interpreted the size\nreported in the update payload to be the physical partition size,\nwhereas this is in fact the size of the filesystem portion only (a\nmisnomer). This sometimes caused it to emit errors on out-of-bounds\noperations, which are otherwise harmless in real-world scenarios.\n\nThis CL makes a clear distinction between the two, with the following\nsemantics:\n\n- The payload\u0027s embedded filesystem size must by \u003c\u003d the physical\n  partition sizes.\n\n- Reading/writing from/to the new partition must be within the physical\n  partition size boundaries, and not the filesystem ones.\n\n- Reading from the old partition is only allowed from filesystem\n  boundaries; this is unchanged from current behavior and appears to be\n  consistent with how we perform delta updates.\n\n- Old/new SHA256 verification during payload application is now limited\n  to the allotted filesystem portion only (and not the full partition\n  size). This is consistent with the update engine\u0027s semantics.\n\n- Other than that, this change currently has no further effect on\n  payload application, which remains more permissive wrt to partition\n  sizes.  This also means that the sizes of partitions resulting from\n  a payload application will not necessarily abide by the predetermined\n  physical partition sizes.  This is in line with the prevailing\n  division of responsibilities between payload checking (strict) and\n  application (relaxed).\n\nBUG\u003dchromium:221847\nTEST\u003dPayload checking respects partition size override\nTEST\u003dUnit tests pass\nTEST\u003dIntegration tests pass\n\nChange-Id: I0dbc88d538c0cc53b7551f4dfa8f543bcf480cd5\nReviewed-on: https://gerrit.chromium.org/gerrit/50103\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: David James \u003cdavidjames@chromium.org\u003e\n"
    },
    {
      "commit": "e73dad9a9ea7121c9e80448dbda154c2510a860f",
      "tree": "219139bafadf53c4aba7448b7904f3f66a07d8b9",
      "parents": [
        "be8ceab2a94fc68a4e4521e1f3e818a671c44414"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Fri May 03 08:36:06 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Tue May 07 00:03:14 2013 -0700"
      },
      "message": "paycheck: --disalbed_tests implies --check\n\nThis is in line with other check-related options whose use implies\n--check.\n\nBUG\u003dNone\nTEST\u003dIntegrity check is implied as expected\n\nChange-Id: I5c2d964d9b6462c76747358129900acbba411d04\nReviewed-on: https://gerrit.chromium.org/gerrit/50102\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nCommit-Queue: David James \u003cdavidjames@chromium.org\u003e\n"
    },
    {
      "commit": "be8ceab2a94fc68a4e4521e1f3e818a671c44414",
      "tree": "ad112f2a03836937178294f2f6b518aba17d777c",
      "parents": [
        "30027fdb6dec1418ad92270cf4932c3635bd2b3d"
      ],
      "author": {
        "name": "Don Garrett",
        "email": "dgarrett@google.com",
        "time": "Tue Apr 30 18:42:29 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Mon May 06 17:48:27 2013 -0700"
      },
      "message": "Add public update key as default.\n\nThis adds the key, and makes it default.\n\nBUG\u003dchromium:237064\nTEST\u003dRan tool manually.\n\nChange-Id: I0c47515980dd0349e6d427524b933ff812b61318\nReviewed-on: https://gerrit.chromium.org/gerrit/49704\nTested-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nCommit-Queue: Don Garrett \u003cdgarrett@chromium.org\u003e\n"
    },
    {
      "commit": "30027fdb6dec1418ad92270cf4932c3635bd2b3d",
      "tree": "c632c181ecf1fd9021a0c53b066a014d3523fc4d",
      "parents": [
        "9157a1a5b4c9f8df3e5b151aec4797f9e39ad13d"
      ],
      "author": {
        "name": "Don Garrett",
        "email": "dgarrett@google.com",
        "time": "Wed May 01 16:56:16 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Thu May 02 18:54:15 2013 -0700"
      },
      "message": "Add default name for the metadata signature file.\n\nIf the metadata signature file isn\u0027t specified, and a file exists with the\nname \u003cpayload_file\u003e.metadata-signature, use it for the metadata signature.\n\nBUG\u003dNone\nTEST\u003dManual\n\nChange-Id: I193dcbeece659e6fa9da8a7a22b871aa53622ceb\nReviewed-on: https://gerrit.chromium.org/gerrit/49832\nCommit-Queue: Don Garrett \u003cdgarrett@chromium.org\u003e\nTested-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\n"
    },
    {
      "commit": "9157a1a5b4c9f8df3e5b151aec4797f9e39ad13d",
      "tree": "5973e3c8ba002f91eac4cd096177a9c87c11c482",
      "parents": [
        "eaed0d1371d781d3f5effa1475f5202dea9467e7"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Tue Apr 30 15:40:01 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Thu May 02 15:46:44 2013 -0700"
      },
      "message": "paycheck: test script puts temporary files in /tmp\n\nAvoids bloating the platform/dev directory, which affects emerge time.\n\nBUG\u003dNone\nTEST\u003dEmerge time reduced dramatically\n\nChange-Id: I09ce977a011adca3276682997022d8b1f2acc2b1\nReviewed-on: https://gerrit.chromium.org/gerrit/49677\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "eaed0d1371d781d3f5effa1475f5202dea9467e7",
      "tree": "47579dbb2323becb26c525d85da1e33b459ee1ef",
      "parents": [
        "4fbe409cb84e9ae89f22c6f3e80580ee49dbc0a2"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Tue Apr 30 15:38:22 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Thu May 02 15:46:43 2013 -0700"
      },
      "message": "paycheck: allow to disable specific checks\n\nThis became necessary as the delta generator appears to generate\npayloads that fail certain checks (e.g. during update_engine unit\ntesting).\n\nBUG\u003dNone\nTEST\u003dDisabled checks not being triggered\n\nChange-Id: I4491e0cb32ef44f85e11ffb0402b40d1371525ae\nReviewed-on: https://gerrit.chromium.org/gerrit/49676\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "4fbe409cb84e9ae89f22c6f3e80580ee49dbc0a2",
      "tree": "e2067593237107b4183be8ff823de7d3db743a88",
      "parents": [
        "5502b56f34f9703cf053be46e4ea5685c0c9ac26"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Wed Apr 17 10:00:55 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Tue Apr 23 10:39:12 2013 -0700"
      },
      "message": "paycheck: perform payload integrity check by default\n\nCurrently, paycheck requires that --check, or one of its sub-options\n(e.g.  --type), is specified explicitly on the command-line in order to\ntrigger full payload checking. This means that invoking paycheck without\n*any* optional arguments will amount to loading the payload manifest and\nquitting. This is not a useful behavior.\n\nInstead, we want payload integrity check to be the default behavior when\nnothing else is requested. This also edits the help text to clarify the\ndistinction between verifying/applying a payload, and what guarantees\nare provided wrt the actual CrOS update engine.\n\nBUG\u003dNone\nTEST\u003dPayload checking triggered when no other argument is given; passes\nunit/integrity testing.\n\nChange-Id: I8199813d4654f5598fcf152a3cdc62efbfc533da\nReviewed-on: https://gerrit.chromium.org/gerrit/48373\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Darin Petkov \u003cpetkov@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "5502b56f34f9703cf053be46e4ea5685c0c9ac26",
      "tree": "5d1eb5c4d0fb8016ae03698d5a89451fcde5bde7",
      "parents": [
        "857223b4118d7b4d9bd988d996db00d7ea313029"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Fri Mar 08 13:22:31 2013 -0800"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Fri Apr 05 17:02:56 2013 -0700"
      },
      "message": "paycheck: unit tests + fixes to checker module\n\nThis adds missing unit tests for the checker module, bundled with fixes\nto some bugs that surfaced due to unit tests. This includes:\n\n* A fake extent (signified by start_block \u003d\u003d UINT64_MAX) that\n  accompanies a signature data blob bears different requirements than\n  previously implemented.  Specifically, the extent sequence must have\n  exactly one extent; and the number of blocks is not necessarily one,\n  rather it is the correct number that corresponds to the actual length\n  of the signature blob.\n\n* REPLACE/REPLACE_BZ operations must contain data.\n\n* MOVE operation validation must ensure that all of the actual message\n  extents are being used.\n\n* BSDIFF operation must contain data (the diff).\n\n* Signature pseudo-operation should be a REPLACE.\n\nBUG\u003dchromium-os:34911,chromium-os:33607,chromium-os:7597\nTEST\u003dPasses unittests (upcoming); works with actual payloads.\n\nChange-Id: I4d839d1d4da1fbb4a493b208958a139368e2c8ca\nReviewed-on: https://gerrit.chromium.org/gerrit/45429\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "857223b4118d7b4d9bd988d996db00d7ea313029",
      "tree": "a87ec077e1f364dfb885a7c10faac5824d69b8b6",
      "parents": [
        "aa55d1a133cced2e084e69d5b1dd4d17c0e0d054"
      ],
      "author": {
        "name": "Chris Sosa",
        "email": "sosa@chromium.org",
        "time": "Fri Mar 29 14:31:43 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Fri Mar 29 22:37:37 2013 -0700"
      },
      "message": "Modify paycheck to print out hashes in base64.\n\nBoth the update engine and sha256_partitions.sh print out hashes in\nbase64 encoding. Let\u0027s stay consistent with ourselves so we can diagnose\nhash mismatches correctly.\n\nBUG\u003dNone\nTEST\u003dRan it with a delta payload and compared hashes with sha256_partitions.sh\nand logs from applying it in the update_engine.\n\nChange-Id: I90c511b936792a073fbe069065ff53c24f47041c\nReviewed-on: https://gerrit.chromium.org/gerrit/46910\nCommit-Queue: Chris Sosa \u003csosa@chromium.org\u003e\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nTested-by: Chris Sosa \u003csosa@chromium.org\u003e\n"
    },
    {
      "commit": "aa55d1a133cced2e084e69d5b1dd4d17c0e0d054",
      "tree": "db717fba16213ecbca4e12567c6f28f7cbacfbea",
      "parents": [
        "553b0ec49bc64fc4b7df4358cd31396a87276d2b"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Fri Mar 08 12:05:59 2013 -0800"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Fri Mar 15 15:04:31 2013 -0700"
      },
      "message": "Fix update out-of-bounds check for partition boundary.\n\nThis is an off-by-one error caught during the implementation of unit\ntests.\n\nBUG\u003dNone\nTEST\u003dUnit tests (upcoming) pass as expected.\n\nChange-Id: I9a5da10588f0ac4314e9a35280ff1f38c34c88ac\nReviewed-on: https://gerrit.chromium.org/gerrit/44953\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\n"
    },
    {
      "commit": "553b0ec49bc64fc4b7df4358cd31396a87276d2b",
      "tree": "ae430c299339c9480d12c2d2da0be419426aa55d",
      "parents": [
        "516f0f7a3d13b74f7bf6f5fb8573f5900c1eb94f"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Sat Jan 26 01:00:39 2013 -0800"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Fri Mar 08 12:01:42 2013 -0800"
      },
      "message": "Update payload library + command-line tool\n\nAn initial implementation of a Python module for parsing, checking and\napplying a Chrome OS update payload. Comes with a command-line tool\n(paycheck.py) for applying such operations on payload files, and a test\nscript (test_paycheck.sh) for ensuring that the library and tool are\nworking correctly.\n\nSince update_payload is introduced as a package, we\u0027re moving some\npreviously merged utilities into the package\u0027s directory.\n\n(Unit testing for this code will be uploaded on a separate CL; see\nchromium-os:39663)\n\nBUG\u003dchromium-os:34911,chromium-os:33607,chromium-os:7597\nTEST\u003dtest_paycheck.sh successful on MP-signed payloads\nCQ-DEPEND\u003dI5746a1d80e822a575f0d96f94d0b4e765fc64507\n\nChange-Id: I77123a1fffbb2059c239b7145c6922968fdffb6a\nReviewed-on: https://gerrit.chromium.org/gerrit/43041\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nReviewed-by: Jay Srinivasan \u003cjaysri@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "516f0f7a3d13b74f7bf6f5fb8573f5900c1eb94f",
      "tree": "5cd340da981c44b58b41785656565787f1316eaa",
      "parents": [
        "9c950103182df9867b32f77756dda64a49439cf1"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Fri Feb 22 12:14:16 2013 -0800"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Tue Feb 26 14:48:12 2013 -0800"
      },
      "message": "Move update_metadata_pb2.py to host/lib/update_payload\n\nThis is necessary for proper packaging of the upcoming update_payload\nlibrary. Has to be done in a separate CL so that pylint checks can be\ndisabled (--no-verify).\n\nBUG\u003dNone\n\nTEST\u003dNone\n\nChange-Id: I5746a1d80e822a575f0d96f94d0b4e765fc64507\nReviewed-on: https://gerrit.chromium.org/gerrit/43809\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    }
  ]
}
