)]}'
{
  "log": [
    {
      "commit": "a86b108fc604d296edbd3f6c158a17175ef6f9fe",
      "tree": "676c8ff56725a680fecc47584223d1164d09f46d",
      "parents": [
        "89afe86b007d21d11f3d4b6e139d300b411d2e17"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Thu Mar 08 15:48:59 2018 -0800"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Fri Mar 23 14:51:11 2018 -0700"
      },
      "message": "update_payload: Allow check for given metadata size\n\nAllow passing metadata size to check_update_payload so we can verify the\nmetadata size in omaha equals to the one in the payload.\n\nBUG\u003dchromium:820243\nTEST\u003drun paycheck.py with both valid and invalid metadata sizes reports as expected\nTEST\u003dunittests\n\nChange-Id: Ib41ce77af77636fffec6752201c363e7fbbf868d\nReviewed-on: https://chromium-review.googlesource.com/955679\nCommit-Ready: Amin Hassani \u003cahassani@chromium.org\u003e\nTested-by: Amin Hassani \u003cahassani@chromium.org\u003e\nReviewed-by: Ben Chan \u003cbenchan@chromium.org\u003e\n"
    },
    {
      "commit": "e20eb915eb1d9777bbcdcffb324ce92014cafa79",
      "tree": "8f026a68a3cd4d595cc8cb1b41ccdfe4a3aa1dd7",
      "parents": [
        "13ca39f04b9d9db5571a93944809af010a1feb2c"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Wed Feb 21 12:39:42 2018 -0800"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Mon Mar 05 18:34:39 2018 -0800"
      },
      "message": "update_payload: Allow paycheck.py to compare apply results.\n\nCurrently paycheck.py only applies the payloads. The responsibility of checking\nif the final root and kernel partitions are what we wanted is out of\npaycheck.py. Currently when paycheck.py runs and applies a payload files passed\nby --dst_kern and --dst_root are populated with the newly generated partitions\nby applier.py. This patch adds two new flags --out_dst_kern and --out_dst_root\nso instead paychek.py outputs the new partitions into paths passed by these\nflags and --dst_kern and --dst_root is reserved for passing the actual original\npartitions that newly generated partitions need to be compared to. This allows\npaycheck.py to check the newly generated partitions against the given ones and\nmake sure they are equal.\n\nBUG\u003dchromium:808495\nTEST\u003dtest_paycheck.sh old.full delta.bin new.full\n\nChange-Id: I57a476de1477e3cba7557d0564b49ec03253c047\nReviewed-on: https://chromium-review.googlesource.com/929652\nCommit-Ready: Amin Hassani \u003cahassani@chromium.org\u003e\nTested-by: Amin Hassani \u003cahassani@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nReviewed-by: Ben Chan \u003cbenchan@chromium.org\u003e\nReviewed-by: Sen Jiang \u003csenj@chromium.org\u003e\n"
    },
    {
      "commit": "f94b643ff1bb0f07204ec9f15289b55ac5fedacd",
      "tree": "4ea3f6f7d1afa56c9b48ddf3eee261d19cf32259",
      "parents": [
        "ddd335f36bb8496548f31b3c9bf923074c1a7452"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Fri Jan 26 17:39:47 2018 -0800"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Tue Jan 30 14:54:19 2018 -0800"
      },
      "message": "update_payload: migrate the license headers to AOSP\n\nupdate_engine/scripts/* have CROS license but the rest of UE have android\nlicense. This cl just migrates all CROS licenses to AOSP.\n\nBUG\u003dNone\nTEST\u003drepo upload did not complain about the mismatched licenses.\n\nChange-Id: Id947be3e860baf7a523163965336f47d268c6808\nReviewed-on: https://chromium-review.googlesource.com/891688\nCommit-Ready: Amin Hassani \u003cahassani@chromium.org\u003e\nTested-by: Amin Hassani \u003cahassani@chromium.org\u003e\nReviewed-by: Amin Hassani \u003cahassani@chromium.org\u003e\n"
    },
    {
      "commit": "a548902f8e836b280439d69eaea16c85a3032237",
      "tree": "4de3962e21db83eb0781d0bb206440b53448c32b",
      "parents": [
        "cb2da0df4382f546efd4269851ce814842a4b7fd"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Fri Jan 26 11:23:26 2018 -0800"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Mon Jan 29 16:38:32 2018 -0800"
      },
      "message": "update_payload: remove block tracer\n\nblock tracing was useful for minor version 1 with move operations (before having\nA/B updates). But, we do not create that operation anymore and we are in the\nprocess of moving to major version 2. So this needs to go\n\nBUG\u003dchromium:794404\nTEST\u003dunit tests\n\nChange-Id: I56d24ef81e8f37c481669d47e5878eb3a321131f\nReviewed-on: https://chromium-review.googlesource.com/888546\nCommit-Ready: Amin Hassani \u003cahassani@chromium.org\u003e\nTested-by: Amin Hassani \u003cahassani@chromium.org\u003e\nReviewed-by: Ben Chan \u003cbenchan@chromium.org\u003e\n"
    },
    {
      "commit": "52b6039e9c79c20786793e2d1215e20b258f2284",
      "tree": "24ca54298fb7fb5da38123a73296571f331bacb6",
      "parents": [
        "0de7f7847ff2a101a905b75d2ed0867d5ac8fba7"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Tue Dec 19 10:53:24 2017 -0800"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Tue Jan 23 17:41:54 2018 -0800"
      },
      "message": "update_payload: use argparse\n\noptparse is deprecated (or going to be). Change paycheck.py and\nblockdiff.py to use argparse instead. Both of these files are being used\nmanually and it would be a good time to fix these before major changes\nin update_payload.\n\npaycheck.sh -h:\n\nusage: paycheck.py [-h] [-c] [-D] [-r FILE] [-t {full,delta}] [-z NUM] [-u]\n                   [-d] [-k FILE] [-m FILE] [-p NUM] [-P NUM] [-x]\n                   [--bspatch-path FILE] [--puffpatch-path FILE]\n                   [--dst_kern FILE] [--dst_root FILE] [--src_kern FILE]\n                   [--src_root FILE] [-b BLOCK] [-B BLOCK] [-s NUM]\n                   PAYLOAD\n\nApplies a Chrome OS update PAYLOAD to src_kern and src_root emitting dst_kern and dst_root, respectively. src_kern and src_root are only needed for delta payloads. When no partitions are provided, verifies the payload integrity.\n\npositional arguments:\n  PAYLOAD               the payload file\n\noptional arguments:\n  -h, --help            show this help message and exit\n\nChecking payload integrity:\n  -c, --check           force payload integrity check (e.g. before applying)\n  -D, --describe        Print a friendly description of the payload.\n  -r FILE, --report FILE\n                        dump payload report (`-\u0027 for stdout)\n  -t {full,delta}, --type {full,delta}\n                        assert the payload type\n  -z NUM, --block-size NUM\n                        assert a non-default (4096) payload block size\n  -u, --allow-unhashed  allow unhashed operations\n  -d , --disabled_tests\n                        space separated list of tests to disable. allowed\n                        options include: dst-pseudo-extents, move-same-src-\n                        dst-block, payload-sig\n  -k FILE, --key FILE   override standard key used for signature validation\n  -m FILE, --meta-sig FILE\n                        verify metadata against its signature\n  -p NUM, --root-part-size NUM\n                        override rootfs partition size auto-inference\n  -P NUM, --kern-part-size NUM\n                        override kernel partition size auto-inference\n\nApplying payload:\n  -x, --extract-bsdiff  use temp input/output files with BSDIFF operations\n                        (not in-place)\n  --bspatch-path FILE   use the specified bspatch binary\n  --puffpatch-path FILE\n                        use the specified puffpatch binary\n  --dst_kern FILE       destination kernel partition file\n  --dst_root FILE       destination root partition file\n  --src_kern FILE       source kernel partition file\n  --src_root FILE       source root partition file\n\nBlock tracing:\n  -b BLOCK, --root-block BLOCK\n                        trace the origin for a rootfs block\n  -B BLOCK, --kern-block BLOCK\n                        trace the origin for a kernel block\n  -s NUM, --skip NUM    skip first NUM occurrences of traced block\n\nNote: a payload may verify correctly but fail to apply, and vice versa; this is by design and can be thought of as static vs dynamic correctness. A payload that both verifies and applies correctly should be safe for use by the Chrome OS Update Engine. Use --check to verify a payload prior to applying it.\n\nBUG\u003dchromium:796338\nTEST\u003dunitests\nTEST\u003dtest_paycheck.sh\nTEST\u003dblockdiff.py\n\nChange-Id: I794b5f61e6ba6f92939947c97c432f9fea0b6b3c\nReviewed-on: https://chromium-review.googlesource.com/834876\nCommit-Ready: Amin Hassani \u003cahassani@chromium.org\u003e\nTested-by: Amin Hassani \u003cahassani@chromium.org\u003e\nReviewed-by: Ben Chan \u003cbenchan@chromium.org\u003e\nReviewed-by: Sen Jiang \u003csenj@chromium.org\u003e\n"
    },
    {
      "commit": "b05a65a748bd2e2542e7b05f629d3bc69c8d8135",
      "tree": "ed736d196e5f908deeb450ffdacdc16432d74b77",
      "parents": [
        "8adc24346405a142e7d3b65c3e4aee0515320f73"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Mon Dec 18 15:15:32 2017 -0800"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Fri Jan 05 18:37:15 2018 -0800"
      },
      "message": "update_payload: Fix most of lint styling issues.\n\nThis patch fixes a lot of pylint issues in the update_engine scripts. Majority\nof this changes are based on recommendation found in:\n\thttps://www.chromium.org/chromium-os/python-style-guidelines\n\nIt is a good idea to do these changes now, because if there are many pylint\nerrors when performing \u0027repo upload\u0027, serious problems can be overshadowed by a\nlot of noise and eventually cause problems.\n\nThese fixes include:\n\t- Fixing executable shebangs to /usr/bin/python2.\n\t- Fixing import-error problems by disabiling them.\n\t- Removing pylint disables that are not valid anymore.\n\t- Changing all imports to proper absolute import format.\n\t- Change the import of PayloadError from update_payload.PayloadError for\n\t  simplicity.\n\t- Add pydoc strings for functions and classes that were missing.\n\nThe remaining unchanged pylint problmes include:\n\n\t- The header files of these scripts are in CrOS copyright format, but the\n      the cros lint hook is configured to AoSP copyright format.\n\t- The test* functions in unittests are not compatible with CamelCase format.\n\nBUG\u003dchromium:796338\nTEST\u003dunittests pass\nTEST\u003dstart_devserver\nTEST\u003dcros flash\nTEST\u003dscripts/paycheck.py\n\nChange-Id: I7eed4d1625eb7c510c7949fada120de5a6a26c7b\nReviewed-on: https://chromium-review.googlesource.com/834875\nCommit-Ready: Amin Hassani \u003cahassani@chromium.org\u003e\nTested-by: Amin Hassani \u003cahassani@chromium.org\u003e\nReviewed-by: Ben Chan \u003cbenchan@chromium.org\u003e\nReviewed-by: Sen Jiang \u003csenj@chromium.org\u003e\n"
    },
    {
      "commit": "6be716878b4027e6c2617bb7c3ce2c877331d1d2",
      "tree": "54424828536dd8d3082e9a065a7d472e37e9047f",
      "parents": [
        "7bc9c02869b90a5876bd74a97693a866f1c5ea5e"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Fri Dec 01 10:46:45 2017 -0800"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Fri Dec 01 20:32:30 2017 -0800"
      },
      "message": "update_payload: Add puffin binary path to paycheck.py\n\nWe forgot to add the path to the puffin binary to paycheck.py and payload.py and\nthis caused the canary builds fail for minor version 4. This patch fixes it.\n\nBUG\u003dchromium:791079\nTEST\u003dtryjob\n\nChange-Id: I194ab9d9d0b93fc9d456b994f73424d7dedbf181\nReviewed-on: https://chromium-review.googlesource.com/803656\nCommit-Ready: Amin Hassani \u003cahassani@chromium.org\u003e\nTested-by: Amin Hassani \u003cahassani@chromium.org\u003e\nReviewed-by: Andrew de los Reyes \u003cadlr@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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    }
  ]
}
