)]}'
{
  "log": [
    {
      "commit": "acd20391ab989971725a8b25ca9a08e1d5a7a3c8",
      "tree": "9d9ad3f15a35d0cd064a23a48d690343cfa8a388",
      "parents": [
        "40506cd2777ca05dd166192f3ef72fd23f9125fc"
      ],
      "author": {
        "name": "Tudor Brindus",
        "email": "tbrindus@chromium.org",
        "time": "Tue Jun 19 11:46:16 2018 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Tue Jun 26 23:44:10 2018 -0700"
      },
      "message": "update_payload: Implement applying for major version 2 payloads\n\nThis commit adds payload major version 2 support to paycheck.py\napplying.\n\nBUG\u003db:794404\nTEST\u003dno errors during run_unittests and paycheck.py \u003cmajor version 2\n  payload\u003e --part_names boot system --out_dst_part_paths /tmp/boot_part\n  /tmp/system_part (./test_paycheck.sh does not pass for major version 2\n  payloads since it currently does not detect version 2 payloads, and\n  specifies rootfs/kernel as the partitions to paycheck.py instead of\n  system/boot; no regressions when running on major version 1 payloads)\n\nChange-Id: Ic411607cee6f032851d1fa9545bed68fe2d3da77\nReviewed-on: https://chromium-review.googlesource.com/1106656\nCommit-Ready: Tudor Brindus \u003ctbrindus@chromium.org\u003e\nTested-by: Tudor Brindus \u003ctbrindus@chromium.org\u003e\nReviewed-by: Amin Hassani \u003cahassani@chromium.org\u003e\n"
    },
    {
      "commit": "40506cd2777ca05dd166192f3ef72fd23f9125fc",
      "tree": "7dbd004733ac72fbe564cf035a61ba9f266c2788",
      "parents": [
        "2d22c1a70cf41462b7564c610823543f91b37eb2"
      ],
      "author": {
        "name": "Tudor Brindus",
        "email": "tbrindus@chromium.org",
        "time": "Mon Jun 18 20:18:17 2018 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Tue Jun 26 16:59:35 2018 -0700"
      },
      "message": "update_payload: Implement checking for major version 2 payloads\n\nThis commit adds payload major version 2 support to paycheck.py --check.\n\nFor consistency, report messages for affected fields are kept the same across\nboth major version 1 and 2 checks, even if the particular field name does not\nexist in one version.\n\nBUG\u003db:794404\nTEST\u003dno errors during run_unittests and paycheck.py --check \u003cmajor version 2\n  payload\u003e (./test_paycheck.sh does not pass for major version 2 payloads\n  since applying is not implemented yet; no regressions when running on major\n  version 1 payloads)\n\nChange-Id: I3c5d0cbca3336c8136326ca52b19f659c7c741c9\nReviewed-on: https://chromium-review.googlesource.com/1105610\nCommit-Ready: Tudor Brindus \u003ctbrindus@chromium.org\u003e\nTested-by: Tudor Brindus \u003ctbrindus@chromium.org\u003e\nReviewed-by: Amin Hassani \u003cahassani@chromium.org\u003e\n"
    },
    {
      "commit": "2d22c1a70cf41462b7564c610823543f91b37eb2",
      "tree": "2097ee4a77e7b7ff26700a07a65ed7e6764d3b20",
      "parents": [
        "8d05a7e15bfcc4f551a0f59be6d0d1eb083887e9"
      ],
      "author": {
        "name": "Tudor Brindus",
        "email": "tbrindus@chromium.org",
        "time": "Fri Jun 15 13:07:13 2018 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Mon Jun 25 17:20:25 2018 -0700"
      },
      "message": "update_payload: Allow specifying partition options for major version 2\n\nThis commit adds the ability to specify partition options for more than just\nkernel/rootfs.\n\nThis supersedes -p/--root-part-size, -P/--kern-part-size, --dst_kern,\n--dst_root, --src_kern, --src_root, --out_dst_kern, and --out_dst_root.\n\nThey are replaced by --part_names used in conjunction with --part_sizes,\n--dst_part_paths, --src_part_paths, and --out_dst_part_paths.\n\nBackwards-compatibility with the old flags is kept, so long as they are\nnot used alongside the new flags.\n\nBUG\u003db:794404\nTEST\u003dno errors during run_unittests and test_paycheck.sh\n\nChange-Id: Icc1118abbf89dd268be3eafe41723657c5178197\nReviewed-on: https://chromium-review.googlesource.com/1103063\nCommit-Ready: Tudor Brindus \u003ctbrindus@chromium.org\u003e\nTested-by: Tudor Brindus \u003ctbrindus@chromium.org\u003e\nReviewed-by: Amin Hassani \u003cahassani@chromium.org\u003e\n"
    },
    {
      "commit": "8d05a7e15bfcc4f551a0f59be6d0d1eb083887e9",
      "tree": "58b34442de114857e332245ee8a8128b8e5fec15",
      "parents": [
        "8b936f277f447d53e1c578d22bc7171a939473c7"
      ],
      "author": {
        "name": "Tudor Brindus",
        "email": "tbrindus@chromium.org",
        "time": "Thu Jun 14 11:18:18 2018 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Thu Jun 21 19:56:28 2018 -0700"
      },
      "message": "update_payload: De-duplicate paycheck partition handling for major version 2\n\nThis commit makes handling of major version 2 rootfs/kernel partitions more\ngeneric, with the goal of reusing the same code paths for major version 2\n(which has an arbitrary number of partitions per payload).\n\nBUG\u003db:794404\nTEST\u003dno errors during run_unittests and test_paycheck.sh\n\nChange-Id: Ic6e8cdaae557c10dfbd302dba0e52ff8b2870c9f\nReviewed-on: https://chromium-review.googlesource.com/1101500\nCommit-Ready: Tudor Brindus \u003ctbrindus@chromium.org\u003e\nTested-by: Tudor Brindus \u003ctbrindus@chromium.org\u003e\nReviewed-by: Amin Hassani \u003cahassani@chromium.org\u003e\n"
    },
    {
      "commit": "2a14d41ca514eca784b7b065791eaf97685caad8",
      "tree": "0200589c3edcdbc311ca64ff801ccf9d00d3c09e",
      "parents": [
        "8af23dfa874cf98a5ebbfc86c7783431002949c4"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@chromium.org",
        "time": "Thu May 31 13:01:09 2018 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Tue Jun 12 21:50:52 2018 -0700"
      },
      "message": "update_payload: Remove instances to au-generator\n\nWe now do paygen in chroot. There is no need for au-generator anymore. So remove\nall references to it.\n\nBUG\u003dchromium:808495\nTEST\u003dtryjob payload\n\nChange-Id: I0d0e76cc1dd7a742abdd9b3b457709044af98862\nReviewed-on: https://chromium-review.googlesource.com/1085547\nCommit-Ready: Amin Hassani \u003cahassani@chromium.org\u003e\nTested-by: Amin Hassani \u003cahassani@chromium.org\u003e\nReviewed-by: Nicolas Norvez \u003cnorvez@chromium.org\u003e\nReviewed-by: Sen Jiang \u003csenj@chromium.org\u003e\n"
    },
    {
      "commit": "8af23dfa874cf98a5ebbfc86c7783431002949c4",
      "tree": "c08ee47a1c7bd35b22b9882ed34f524cbb0c9d72",
      "parents": [
        "0eae427a1dac5d2896a388e5a94aad5b52079371",
        "3538a883700a86c8224bff075e1cc4bab552d2ed"
      ],
      "author": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Tue Jun 05 15:59:36 2018 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Tue Jun 05 15:59:36 2018 -0700"
      },
      "message": "Merge commit \u00273538a883700a86c8224bff075e1cc4bab552d2ed\u0027 into patch_branch\n\nChange-Id: I48fa7c6e8d3977813623d05353bb3c005d19ba83\n"
    },
    {
      "commit": "b4778293c31e2e16f60c245e2a2cf3f63151d52d",
      "tree": "cc8d49d45d66be828180478aa792b8877ad76788",
      "parents": [
        "ffbfdfb05d3ce4e9fe03aa103b63532870981771"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@chromium.org",
        "time": "Mon May 21 11:48:15 2018 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Mon Jun 04 17:23:28 2018 -0700"
      },
      "message": "update_engine: Rename signing variables.\n\nRename \u0027signatures\u0027 to \u0027payload_signatures\u0027 so there is a clear distinction\nbetween metadata and payload signatures and their input files.\n\nBUG\u003dchromium:845614\nTEST\u003dpayload tryjobs\nCQ-DEPEND\u003dCL:1069530\n\nChange-Id: Ic2e924871611af1b1f0ee2f1dfd7c6b9f52decc8\nReviewed-on: https://chromium-review.googlesource.com/1069527\nCommit-Ready: Amin Hassani \u003cahassani@chromium.org\u003e\nTested-by: Amin Hassani \u003cahassani@chromium.org\u003e\nReviewed-by: Nicolas Norvez \u003cnorvez@chromium.org\u003e\nReviewed-by: Xiaochu Liu \u003cxiaochu@chromium.org\u003e\n"
    },
    {
      "commit": "3538a883700a86c8224bff075e1cc4bab552d2ed",
      "tree": "cdaaf1a7f17ea4dbd3e9fe132e2c3208b646de48",
      "parents": [
        "ffbfdfb05d3ce4e9fe03aa103b63532870981771",
        "77ab7bdf2dcf7fd4aa982e654f359958ad7ab0c3"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@chromium.org",
        "time": "Thu May 31 14:11:30 2018 -0700"
      },
      "committer": {
        "name": "Amin Hassani",
        "email": "ahassani@chromium.org",
        "time": "Mon Jun 04 11:44:12 2018 -0700"
      },
      "message": "Merge remote-tracking branch \u0027cros/upstream\u0027 into cros/master\n\nBUG\u003dchromium:815356\nTEST\u003dunittest\nTEST\u003dprecq\nTEST\u003dcros flash\n\nChange-Id: I8d9c37411708d0cae61613b285123a090ce6deb1\n"
    },
    {
      "commit": "e6e0f046a33db685c1312cda3a1d2634fbf9db0f",
      "tree": "90e7aaf0d5781c883d054ebe1722476bfeae6661",
      "parents": [
        "dcaf7974410a2674c8f6b315402082c7564e14ec"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu May 24 15:40:41 2018 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue May 29 17:23:41 2018 -0700"
      },
      "message": "Add update_engine/scripts/payload_info.py\n\nCopied from cros_payload.py, renamed to payload_info.py, removed\ndependency on chromite, fixed pylint issues, changed to AOSP license.\n\nusage: payload_info.py [-h] [--list_ops] [--stats] [--signatures] payload_file\n\nShow information about an update payload.\n\npositional arguments:\n  payload_file  The update payload file.\n\noptional arguments:\n  -h, --help    show this help message and exit\n  --list_ops    List the install operations and their extents.\n  --stats       Show information about overall input/output.\n  --signatures  Show signatures stored in the payload.\n\nBug: 28797993\nTest: payload_info.py --list_ops --stats --signatures payload.bin\n\nChange-Id: Id67a939243fa6ff4a4e9683c7711f71884ee3d6d\n"
    },
    {
      "commit": "07216d6fd7a160130b0bd88b6f74db6a8c81883a",
      "tree": "d9e58cd1023cbf193befbf2495ea8c406ce6b17f",
      "parents": [
        "84f507bec3b596756e04134fd0e4ece8d53e358b"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Wed Apr 11 11:36:38 2018 -0700"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Thu Apr 19 19:03:24 2018 -0700"
      },
      "message": "Additionally look for partition files under RADIO/ in target_files zip.\n\nWith this change, we will in turn look for partition image files under\nIMAGES/ and RADIO/ in a given Android/Brillo target_files zip file.\n\nWe used to request the caller (e.g. ota_from_target_files.py) to have\nall the updatable images ready under IMAGES/, by possibly copying some\nof them from RADIO/ to IMAGES/. This CL avoids that cost, and keeps\nworking with legacy target_files zip files.\n\nBug: 77218220\nTest: `m dist` produces the same full OTA package with the matching\n      change to ota_from_target_files.py.\nTest: It keeps working with legacy target_files zip that has everything\n      under IMAGES/.\nChange-Id: I9485508991115774ddbe70c1c235adf6806d91a4\n"
    },
    {
      "commit": "771f6486a3b0333d43a2f8c743bfb945dca9db2c",
      "tree": "c72aa56680550f17c2b60621a1ede140f550aec8",
      "parents": [
        "a57d53e3edbda255a938a7dc76a2f38faeb520d4"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Apr 04 17:59:10 2018 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Apr 04 18:07:19 2018 -0700"
      },
      "message": "Correct some spellings.\n\nTest: mma\nChange-Id: Icc49a4ee76f12d302ed18982d334f2f70b7263a8\n"
    },
    {
      "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": "84e0e31e0c55ca1cec966991f22fe9f494534afa",
      "tree": "4c17bdbc93e22a0904d50fac7cb8df423cae3b28",
      "parents": [
        "f87e5cd57a7d543c54327e342cea7f46fd819a90",
        "f7006be5079ed91c93223273f3ddb69d655ba858"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Mar 08 18:07:12 2018 -0800"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Mar 09 14:32:19 2018 -0800"
      },
      "message": "Merge remote-tracking branch \u0027aosp/upstream-master\u0027.\n\nBug: 30989362\nTest: update_engine_unittests\nChange-Id: I04417ac21508f4da3ead29b1dea34886f2fc84af\nMerged-In: I04417ac21508f4da3ead29b1dea34886f2fc84af\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": "77d7cbcef1ca1afd36720ec7ec74039b5445101e",
      "tree": "6305cce22e391284bc5b06bce00928ba7fb8d69d",
      "parents": [
        "15de2fd0ff2d19a7ef36a0f28bb5df028163605c"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Wed Feb 07 16:21:33 2018 -0800"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Thu Feb 08 23:41:46 2018 -0800"
      },
      "message": "update_engine: Disable puffin in minor version 4\n\nThis patch disables puffin for minor version 4, but keeps BROTLI_BSDIFF in the\nsame minor version.  Also adds puffin for minor version 5, but it does not\nenable it.\n\nBUG\u003db:72815313\nBUG\u003dchromium:810184\nTEST\u003dupdate_engine unittests pass\nTEST\u003dupdate_payload unittests pass\nTEST\u003dtest_paycheck.sh on two images with minor version 4 pass\nTEST\u003dbrill_update_payload generate/verify pass\n\nChange-Id: I814fc126d67207501d419cff9c575cd13d877b48\nReviewed-on: https://chromium-review.googlesource.com/907223\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": "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": "ddd335f36bb8496548f31b3c9bf923074c1a7452",
      "tree": "4e4dc79b9560f1431d603ea5957818ed7e63a946",
      "parents": [
        "a548902f8e836b280439d69eaea16c85a3032237"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Thu Jan 25 15:59:44 2018 -0800"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Tue Jan 30 03:56:27 2018 -0800"
      },
      "message": "update_payload: fix an argument typo\n\nJust fix a problem in test_paycheck.py that wasn\u0027t caught in CL:834876\n\nBUG\u003dnone\nTEST\u003dtest_paycheck.py\n\nChange-Id: I54dd5bcc97d059f3977a97851204fd6c38507224\nReviewed-on: https://chromium-review.googlesource.com/887731\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": "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": "0de7f7847ff2a101a905b75d2ed0867d5ac8fba7",
      "tree": "3cd366603d173fa7ed9cb0d3ef1b7a71ce1407a0",
      "parents": [
        "840703a4cc77228e2606f45665ae3a4bd75ff7dd"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Thu Dec 07 12:13:03 2017 -0800"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Tue Jan 23 01:48:49 2018 -0800"
      },
      "message": "Relanding \u0027update_payload: Add XZ compression support\u0027\n\nThis patch adds support for checking a payload that has REPLACE_XZ\noperations. REPLACE_XZ was added in minor version 3.\n\nBUG\u003dchromium:758792\nTEST\u003dunittests pass; paycheck.py with a xz generated payload pass;\nCQ-DEPEND\u003dCL:823234\n\nChange-Id: I6ec8068e233f2d595fda93a985923d85c59f150e\nReviewed-on: https://chromium-review.googlesource.com/872124\nCommit-Ready: ChromeOS CL Exonerator Bot \u003cchromiumos-cl-exonerator@appspot.gserviceaccount.com\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": "1841408827c93f8ba7bb44ba95a8fb3438762b9d",
      "tree": "22bc43f3ff506165d006e62347255c2a2c2bf2ec",
      "parents": [
        "b19c3ec7bda83b15c7fc659f65eb6f92ca84f9c4",
        "840703a4cc77228e2606f45665ae3a4bd75ff7dd"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Jan 11 14:50:36 2018 -0800"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Jan 11 14:50:36 2018 -0800"
      },
      "message": "Merge remote-tracking branch \u0027goog/upstream-master\u0027.\n\nThe following commits were reverted:\n840703a Fix update over cellular network on guest account\neaad5d0 Do not merge to AOSP: Fixes the link to brillo-clang-format in CrOS\n740efad Reboot even if a system update is not available.\n\nFixed a few sign compare warnings.\nHad to ifdef out 2 SquashfsFilesystemTest because it depends on unsquashfs -m.\n\nTest: update_engine_unittests\nChange-Id: I6f4ca5003e78c76064ec60d0797505d8c18d00bf\nMerged-In: I6f4ca5003e78c76064ec60d0797505d8c18d00bf\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": "8adc24346405a142e7d3b65c3e4aee0515320f73",
      "tree": "8317393ef148c9ce6bbc83e8ff1ff8715f43ab05",
      "parents": [
        "5a652867dceedb7bba3e840403a00d9a1ed9e0f8"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Aug 15 18:20:24 2017 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Thu Jan 04 21:52:07 2018 -0800"
      },
      "message": "Fix pylint warnings in update_device.py\n\nWe weren\u0027t actually using our own pylintrc file in repo upload hook,\nwhich will be fixed by https://android-review.googlesource.com/#/c/platform/tools/repohooks/+/458996/\n\nEven though both camel case and snake case are allowed for function\nand method names, they still have to be consistent in a single file.\nhttps://pylint.readthedocs.io/en/latest/user_guide/options.html#multiple-naming-styles\n\nBug: 27316596\nTest: repo upload\nChange-Id: I98adba957a547115ef3d8b00fe2e3e4931707b31\n(cherry picked from commit 1048559a5c8b6c897aee6c8095035fc7724ae340)\nReviewed-on: https://chromium-review.googlesource.com/848502\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": "5a652867dceedb7bba3e840403a00d9a1ed9e0f8",
      "tree": "54e7af19f9a5436d1fb98561922b5d5ca8fca4c9",
      "parents": [
        "d9cb290966a77730010aa01f0db675c157cd5c8f"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Sep 27 16:35:03 2017 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Thu Jan 04 19:17:55 2018 -0800"
      },
      "message": "Fix pylint issue in payload.py\n\n    ************* Module update_payload.payload\n    W: 12, 0: Relative import \u0027applier\u0027, should be \u0027update_payload.applier\u0027 (relative-import)\n    W: 13, 0: Relative import \u0027block_tracer\u0027, should be \u0027update_payload.block_tracer\u0027 (relative-import)\n    W: 14, 0: Relative import \u0027checker\u0027, should be \u0027update_payload.checker\u0027 (relative-import)\n    W: 15, 0: Relative import \u0027common\u0027, should be \u0027update_payload.common\u0027 (relative-import)\n    W: 16, 0: Relative import \u0027error\u0027, should be \u0027update_payload.error\u0027 (relative-import)\n    W: 17, 0: Relative import \u0027update_metadata_pb2\u0027, should be \u0027update_payload.update_metadata_pb2\u0027 (relative-import)\n    C:222, 4: Missing function docstring (missing-docstring)\n    E:261,33: Instance of \u0027DeltaArchiveManifest\u0027 has no \u0027partitions\u0027 member (no-member)\n\nTest: repo upload\nChange-Id: Ib3e99c6a3a5ea4575b442e672a871adc7b985289\n(cherry picked from commit c2527f492e7a1389b2a3f248bd2b22d6cf5d9eb8)\nReviewed-on: https://chromium-review.googlesource.com/834874\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": "b9e91efc7f9b5bb7cb839e9c50c5969eb0f824e8",
      "tree": "a6a3303114d970c20cb6a77316dd071f84aaa43f",
      "parents": [
        "afd8cea0060751f969f7d4d20b4c4100ff37626d"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Tue Dec 19 14:04:51 2017 -0800"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Tue Jan 02 18:34:14 2018 -0800"
      },
      "message": "update_payload: add run_unittests script\n\nThis allows adding new unittests or modifying them without dealing with\nthe ebuild itself.\n\nBUG\u003dchromium:796338\nTEST\u003dunittests pass\n\nChange-Id: I0876d38a3460b07f611c49554f0a5b2357e09d1f\nReviewed-on: https://chromium-review.googlesource.com/834873\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": "b44f73baa8d302a077ab1c0c73eac63bd02350e5",
      "tree": "35b86db22317dd8be45863ee69b722666bb949a2",
      "parents": [
        "717c324c334cc3bac954101f7a127fe8ef56e4e6"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@chromium.org",
        "time": "Fri Dec 15 17:45:49 2017 +0000"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Fri Dec 15 22:19:46 2017 -0800"
      },
      "message": "Revert \"update_payload: Add XZ compression support\"\n\nThis reverts commit f1d6ceaedbcf81044d6af6b716c63ed79996f0a4.\n\nReason for revert: \u003ccanaries failing\u003e\n\nOriginal change\u0027s description:\n\u003e update_payload: Add XZ compression support\n\u003e\n\u003e This patch adds support for checking a payload that has REPLACE_XZ\n\u003e operations. REPLACE_XZ was added in minor version 3.\n\u003e\n\u003e BUG\u003dchromium:758792\n\u003e TEST\u003dunittests pass; paycheck.py with a xz generated payload pass;\n\u003e CQ-DEPEND\u003dCL:823234\n\u003e\n\u003e Change-Id: If82c767a201b189e464f459d5c19485e5278d9b1\n\u003e Reviewed-on: https://chromium-review.googlesource.com/823227\n\u003e Commit-Ready: Amin Hassani \u003cahassani@chromium.org\u003e\n\u003e Tested-by: Amin Hassani \u003cahassani@chromium.org\u003e\n\u003e Reviewed-by: Ben Chan \u003cbenchan@chromium.org\u003e\n\u003e Reviewed-by: Sen Jiang \u003csenj@chromium.org\u003e\n\nTBR\u003dbenchan@chromium.org,senj@chromium.org,ahassani@chromium.org\n\nChange-Id: I931ff3be081a41fe5fceef0e049ba4165c6acb49\nNo-Presubmit: true\nNo-Tree-Checks: true\nNo-Try: true\nBug: chromium:795313\nReviewed-on: https://chromium-review.googlesource.com/830054\nCommit-Ready: Amin Hassani \u003cahassani@chromium.org\u003e\nTested-by: Amin Hassani \u003cahassani@chromium.org\u003e\nReviewed-by: Amin Hassani \u003cahassani@chromium.org\u003e\nReviewed-by: Ben Chan \u003cbenchan@chromium.org\u003e\n"
    },
    {
      "commit": "f1d6ceaedbcf81044d6af6b716c63ed79996f0a4",
      "tree": "6d9ff030936cf241c7871ccef4266284f8fe1325",
      "parents": [
        "9fd76b6b1dc4a80f8464427e981220c29abc1d66"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Thu Dec 07 12:13:03 2017 -0800"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Thu Dec 14 15:26:58 2017 -0800"
      },
      "message": "update_payload: Add XZ compression support\n\nThis patch adds support for checking a payload that has REPLACE_XZ\noperations. REPLACE_XZ was added in minor version 3.\n\nBUG\u003dchromium:758792\nTEST\u003dunittests pass; paycheck.py with a xz generated payload pass;\nCQ-DEPEND\u003dCL:823234\n\nChange-Id: If82c767a201b189e464f459d5c19485e5278d9b1\nReviewed-on: https://chromium-review.googlesource.com/823227\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": "efa62d959cf8f225477ab85d8ff42d5150007cf8",
      "tree": "fc0c2b20c5fbf01e6ca2c53d3441f8a90524cd6a",
      "parents": [
        "02855c25944b8d64e569e9e8051be514acf40438"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Thu Nov 09 13:46:56 2017 -0800"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Wed Nov 22 17:29:40 2017 -0800"
      },
      "message": "update_engine: Adds BROTLI_BSDIFF operation\n\nBrotli compression creates on average 10%-20% smaller output than bzip2\nin addition to having faster decompressor. With recent changes in bsdiff\nto compress the its patch with brotli, we can use it in the\nupdate_engine as a new operation BROTLI_BSDIFF. This operation will be\nturned on in minor version 4. However, this CL only adds support for it\nin the client. It will not generate BROTLI_BSDIFF operations yet.\n\nBUG\u003dchromium:783437\nTEST\u003dunittests pass for both update_engine and update_payload;\n\u0027brillo_update_payload {generate|verify}\u0027 passes;\n\u0027scripts/paycheck.py payload.delta\u0027 passes;\n\nChange-Id: Ie791ba5431561c95de6fbc031a8196dbfd912288\nReviewed-on: https://chromium-review.googlesource.com/764791\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": "6fbfd7d945c69dfa7d8fe0038d3128949723b9e9",
      "tree": "1249ae360cfd945f51f1772dd3f38984d9db566e",
      "parents": [
        "34c711a0bd9d8ff0650ce18cbcaa436c6720fd6a"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Oct 31 16:16:56 2017 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Oct 31 18:46:38 2017 -0700"
      },
      "message": "update_device.py: support passing extra headers.\n\nTest: update_device.py --extra-headers \u0027SWITCH_SLOT_ON_REBOOT\u003d0\u0027 ...\nChange-Id: I5902153329243e6dc55d767d87bc974f206d32e0\n"
    },
    {
      "commit": "cdeb6e60ad4837afff97a370b6ea39dc98146a36",
      "tree": "10bc13a3eeeee5d47e0282033bbf1cc7fe70a1c9",
      "parents": [
        "672c1f54a499a825cc0bb9bc4f240bf1887550d9"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Wed Oct 11 10:15:11 2017 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Tue Oct 31 17:31:03 2017 -0700"
      },
      "message": "update_payload: Add puffdiff support.\n\nThis patch adds support for applier.py to be able to apply PUFFDIFF\noperation using puffin binary. It also fixes minor deficiencies for the\nPUFFDIFF operation.\n\nBUG\u003dchromium:768461\nTEST\u003dunittests pass;\nTEST\u003dscripts/paycheck.py payload-puffin.delta new_kern.dat new_root.dat old_kern.dat old_root.dat\n\nChange-Id: I5612ead8d8b8176e7263cfcb15403e8d36319642\nReviewed-on: https://chromium-review.googlesource.com/713540\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": "34c711a0bd9d8ff0650ce18cbcaa436c6720fd6a",
      "tree": "bc639309d73467395b882c28f823559ad33b8d02",
      "parents": [
        "908da19072b9a28bb4de87959a96bcf2df7679b4"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Oct 25 17:25:21 2017 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Oct 27 19:52:06 2017 +0000"
      },
      "message": "Remove duplicates in ab_partitions.txt\n\nab_partitions.txt is populated by AB_OTA_PARTITIONS which might be\nappended in multiple makefiles resulting in duplicates, currently\nthis will result in payload being larger because it will include the\noperations for that partition twice and the client will write that\npartition twice when applying that payload.\n\nThis patch uses awk in brillo_update_payload when reading\nab_partitions.txt to remove the duplicates.\n\nTest: generate a payload with duplicated entries in ab_partitions.txt\nChange-Id: I07bd2401a64fbc77bbdc632901016e3860dee8d9\n"
    },
    {
      "commit": "abb45a5542fedd2a7c587aa91402b21f606bc259",
      "tree": "03955220412b2bb73fa38a0f2546df7ab4ab8624",
      "parents": [
        "d4c5debc65bb35ee61c2764bda059b7f307fd093"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Wed Oct 25 11:13:03 2017 -0700"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Wed Oct 25 21:09:25 2017 +0000"
      },
      "message": "update_device.py: Handle the package push without \u0027adb root\u0027.\n\nWhen using \u0027--file\u0027 (and without \u0027--no-push\u0027), it tries to push the\npackage to /data/ota_package/debug.zip. However, that\u0027s not allowed\ndirectly with \u0027adb push\u0027, unless by restarting adb with \u0027adb root\u0027.\n\nThis CL works around the issue by pushing the file to /data/local/tmp\nfirst, then moving it over to the desired place.\n\nTest: update_device.py --file \u003cmarlin-ota.zip\u003e\nChange-Id: I608284cc90918fc01cf7584569d4d7d4165148ca\n"
    },
    {
      "commit": "8ad22ba0765dc6351bfd59da8c43e06476b56c01",
      "tree": "905728dbdd3a472f391d0268e8cd9006f653cc57",
      "parents": [
        "f5a06d8e9f709824d768d7a15f1384668e7a4858"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Wed Oct 11 10:15:11 2017 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Tue Oct 24 15:30:13 2017 -0700"
      },
      "message": "update_payload: Add zero operation support\n\nCurrenlty the applier.py and checker.py does not support ZERO\noperation. This patch adds support for it. In addition, when generating\nZERO operation, we were not clearing the source length and extent\nproperties out of the protobuf. ZERO operation has no source length or\nextent.\n\nBUG\u003dchromium:768461\nTEST\u003dunittest pass; scripts/paycheck.py --check payload.delta;\n\nChange-Id: I766deaca4380686797893c2686036d59525546f4\nReviewed-on: https://chromium-review.googlesource.com/713539\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": "5c9082dd722318d736158a90ff85a9d57bc0ffe5",
      "tree": "fd7bf6e63036f8de90696e3613f7ef187f8923af",
      "parents": [
        "684c9cdc6c43992cf700618b4a87e4a723b4c9c3"
      ],
      "author": {
        "name": "markdr",
        "email": "markdr@google.com",
        "time": "Fri Oct 20 13:58:06 2017 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Oct 21 00:14:19 2017 +0000"
      },
      "message": "Defaults update_device to use only compatible python versions\n\nupdate_device imports BaseHTTPServer, which is python2 only.\nIf python3 is the default python, an import error will be\nthrown.\n\nTest: Set default python to 3.4. Call update_device.py\nChange-Id: Id053e695c334c597736b9844e11be389264700ea\n"
    },
    {
      "commit": "ae85374770d4492d28e62d792824eea55349c981",
      "tree": "6c9a2649d1cba64a81982927d965becb318cde90",
      "parents": [
        "a6f74d62033fb0291aa1d135fef640e26ffffab5"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Wed Oct 11 10:27:27 2017 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Mon Oct 16 14:14:00 2017 -0700"
      },
      "message": "update_payload: Fix larger source issue\n\nthe _CheckOperations() function passes the new usable partition size as the old\nusable partition size.  If the source image is larger than the target image,\nthis will be errornous as some checks fail.\n\nBUG\u003dchromium:773336\nTEST\u003dscripts/paycheck.py --check delta.bin (10002.0.0 reef -\u003e 10019.0.0 reef)\n\nChange-Id: I8c30129831daff8e70df3dcb9639ff240e4a37ba\nReviewed-on: https://chromium-review.googlesource.com/713463\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": "3ba7a0819210d3e7d016f771c298865cae19efd4",
      "tree": "b7c28b4d6a98c0e8ec66466dc286b5637fed23a3",
      "parents": [
        "acd7be816579a0c13ac6f746a2555b7c73f95a3b"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Oct 06 01:23:28 2017 -0400"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Fri Oct 06 15:51:10 2017 -0700"
      },
      "message": "scripts: import blockdiff\n\nThis was added to dev/host/ for debug helping with paycheck.py,\nso move it here so it\u0027s alongside that script.\n\nBUG\u003dNone\nTEST\u003dNone\n\nChange-Id: I63ae858464cc13344335613093907673052a9859\nReviewed-on: https://chromium-review.googlesource.com/704200\nCommit-Ready: Mike Frysinger \u003cvapier@chromium.org\u003e\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nReviewed-by: Amin Hassani \u003cahassani@chromium.org\u003e\n"
    },
    {
      "commit": "3b15b599299a9a5f3ec965d568ea479383c2fe6a",
      "tree": "d7c4fbed5d023478b0f69851ffe2d9373122369c",
      "parents": [
        "c2527f492e7a1389b2a3f248bd2b22d6cf5d9eb8"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Sep 26 18:21:04 2017 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Sep 30 00:30:51 2017 +0000"
      },
      "message": "update_device.py: support OTA zip if use omaha too.\n\nPass the offset and size to UpdateHandler.\nAlso added support for payload offset in update_payload.Payload.\n\nTest: applied a local OTA\nChange-Id: Ib116ef2c23a11e298118f203814c4ea8dd1629af\n"
    },
    {
      "commit": "c2527f492e7a1389b2a3f248bd2b22d6cf5d9eb8",
      "tree": "15b7e6299fee52b7d499ea66097e62c7c1b526b4",
      "parents": [
        "144f9f8a49b83c9a1930d16e579059485e6ad9fb"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Sep 27 16:35:03 2017 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Sep 30 00:30:51 2017 +0000"
      },
      "message": "Fix pylint issue in payload.py\n\n    ************* Module update_payload.payload\n    W: 12, 0: Relative import \u0027applier\u0027, should be \u0027update_payload.applier\u0027 (relative-import)\n    W: 13, 0: Relative import \u0027block_tracer\u0027, should be \u0027update_payload.block_tracer\u0027 (relative-import)\n    W: 14, 0: Relative import \u0027checker\u0027, should be \u0027update_payload.checker\u0027 (relative-import)\n    W: 15, 0: Relative import \u0027common\u0027, should be \u0027update_payload.common\u0027 (relative-import)\n    W: 16, 0: Relative import \u0027error\u0027, should be \u0027update_payload.error\u0027 (relative-import)\n    W: 17, 0: Relative import \u0027update_metadata_pb2\u0027, should be \u0027update_payload.update_metadata_pb2\u0027 (relative-import)\n    C:222, 4: Missing function docstring (missing-docstring)\n    E:261,33: Instance of \u0027DeltaArchiveManifest\u0027 has no \u0027partitions\u0027 member (no-member)\n\nTest: repo upload\nChange-Id: Ib3e99c6a3a5ea4575b442e672a871adc7b985289\n"
    },
    {
      "commit": "144f9f8a49b83c9a1930d16e579059485e6ad9fb",
      "tree": "de9ac23e1e3f9721766805a9757d2bb5f1fe50de",
      "parents": [
        "6c863b758f1b4f367946b78f5a93ad0337924023"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Sep 26 15:49:45 2017 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Sep 30 00:30:51 2017 +0000"
      },
      "message": "update_device.py: use the appid from request.\n\nRecent changes in update_engine are now comparing the appid against\nthe product id.\n\nTest: applied a local OTA\nChange-Id: I2907e94a89bea5ebfa8236c96eec7601af8ad4e5\n"
    },
    {
      "commit": "a566cb638023f12c9a64df31d83c464c13cf4d92",
      "tree": "58417956b32927d0f20e9ff3eb2efe37e85542ce",
      "parents": [
        "209e57a848a022fd38fca31a267817fef654d56b"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Wed Aug 23 12:36:55 2017 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Aug 25 14:29:33 2017 -0700"
      },
      "message": "update_engine: fix verify for brillo major version\n\nCurrently since the major version is checked before the apply\npayload (for brillo_update_payload verify), then it fails if there are\nmore or less than two partitions. This patch forces the major version to\nwhatever the target image is. This will not impact any production\nprocedure.\n\nBUG\u003dnone\nTEST\u003dbrillo_update_payload verify --payload\u003dpayload.delta --source_image\u003d25-4k-gzip.img --target_image\u003d61-4k-gzip.img\n\nChange-Id: I0af9a56f9ad52c6b0670f7ace6c307d6071a1d7a\nReviewed-on: https://chromium-review.googlesource.com/629638\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(cherry picked from commit 70fce1e37af598f1bd28ae2bcdb62d597b64930d)\n"
    },
    {
      "commit": "70fce1e37af598f1bd28ae2bcdb62d597b64930d",
      "tree": "0746d236554e2cae38d22fa881958211b782a6b3",
      "parents": [
        "4c1b75df4c7ea89f3345fb9860b7c58b04fc5b99"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Wed Aug 23 12:36:55 2017 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Fri Aug 25 14:21:43 2017 -0700"
      },
      "message": "update_engine: fix verify for brillo major version\n\nCurrently since the major version is checked before the apply\npayload (for brillo_update_payload verify), then it fails if there are\nmore or less than two partitions. This patch forces the major version to\nwhatever the target image is. This will not impact any production\nprocedure.\n\nBUG\u003dnone\nTEST\u003dbrillo_update_payload verify --payload\u003dpayload.delta --source_image\u003d25-4k-gzip.img --target_image\u003d61-4k-gzip.img\n\nChange-Id: I0af9a56f9ad52c6b0670f7ace6c307d6071a1d7a\nReviewed-on: https://chromium-review.googlesource.com/629638\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": "49fdb09d1ff2e078fa44c26540a5b82900df0f9a",
      "tree": "8e5fd2ca126e456ce08cbcd681a0e787f5ddd92a",
      "parents": [
        "e94ece50ccff67a1948c461737dc049d9f1ae4d8"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Fri Aug 04 13:10:59 2017 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Aug 23 01:10:12 2017 +0000"
      },
      "message": "update_engine: Change imgdiff/imgpatch to a dummy puffdiff/puffpatch\n\nCurrently we never create imgdiff operation as it was never\nactivated. In near future we will be adding puffdiff and puffpatch\noperations which replaces the imgdiff. This CL does not actually adds\npuffdiff, but adds a placeholder for it.\n\nBUG\u003dnone\nTEST\u003dcros_workon_make --board\u003damd64-generic --test update_engine\n\nChange-Id: I6453048acb65c052354a1658f0c6fd41ad33e242\nReviewed-on: https://chromium-review.googlesource.com/602733\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": "1352093b7e5f1134ebfa99ad1991753ff4f3f33a",
      "tree": "38eaf22fc52d0355f3556ce3a82dc4e302416397",
      "parents": [
        "a7ee9d0e6297a16d0f10cc7825c3b68867f19b24"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Wed Jul 26 11:26:05 2017 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Aug 23 01:10:12 2017 +0000"
      },
      "message": "update_engine: Add \"verify\" support to brillo_update_payload\n\nThis change adds a new command \"verify\" to brillo_update_payload to verify the\nprocess of update by applying a delta or full payload to temporary target\npartitions and comparing them with the original target partitions. This is\nspecially usefull when manually debuggin/testing delta performer operations.\n\nBUG\u003dnone\nTEST\u003dbrillo_update_payload verify --payload\u003dpayload.delta --source_image\u003dlink_8872.49.bin --target_image\u003dlink_9000.82.bin\n\nChange-Id: I4b30bc8a1088f4f72b681c6095cca6863a715078\nReviewed-on: https://chromium-review.googlesource.com/585565\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": "a7ee9d0e6297a16d0f10cc7825c3b68867f19b24",
      "tree": "8eacc147cc768f280cca5bf8c28adbff804e0301",
      "parents": [
        "ac95cd54dd1faf398724bdcfe2c4b096fa4fc2d6"
      ],
      "author": {
        "name": "Andrey Ulanov",
        "email": "andreyu@google.com",
        "time": "Fri Jun 02 15:12:46 2017 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Aug 23 01:10:12 2017 +0000"
      },
      "message": "update_engine: Remove zlib fingerprint checking\n\nThis is not needed as imgdiff is not being used and will be replaced by\npuffin.\nPresence of this code makes updating to newer version of zlib\nimpossible. (e.g. 1.2.8-\u003e1.2.11 update introduces some changes in\ncompression algorithm which make compressed output different).\n\nBUG\u003dNone\nTEST\u003d\"ebuild zlib.ebuild test\"\n\nChange-Id: I50793f552a44faaba5771271fdcf2b4f4aeba6e4\nReviewed-on: https://chromium-review.googlesource.com/522949\nCommit-Ready: Andrey Ulanov \u003candreyu@google.com\u003e\nTested-by: Andrey Ulanov \u003candreyu@google.com\u003e\nReviewed-by: Ben Chan \u003cbenchan@chromium.org\u003e\nReviewed-by: Sen Jiang \u003csenj@chromium.org\u003e\n"
    },
    {
      "commit": "a1784b7e231b0ab2b3071c6e57485fdbac5dc057",
      "tree": "5332eb1f87226439cc187bc1a96466d5978c26b3",
      "parents": [
        "1048559a5c8b6c897aee6c8095035fc7724ae340"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Aug 09 17:42:36 2017 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Aug 16 11:19:57 2017 -0700"
      },
      "message": "Add support for omaha in update_device.py\n\nAutomatically detect if the device is running an update_engine with\nUSE_OMAHA or not, and use different command based on that.\n\nMade the http server serving payload a fake omaha server as well.\n\nAdded support for overriding the payload public key on the device.\n\nBug: 27316596\nTest: update a device that uses omaha\nChange-Id: I230d58ff105189dc8a624d46ee79cbe90c5f09b0\n"
    },
    {
      "commit": "1048559a5c8b6c897aee6c8095035fc7724ae340",
      "tree": "f6ef77bd216c698fdfb2ebc40e33d4f8dd49ea6d",
      "parents": [
        "5a46a18f4bedb1c5ee4a77050716b6809a71a9e4"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Aug 15 18:20:24 2017 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Aug 16 11:18:36 2017 -0700"
      },
      "message": "Fix pylint warnings in update_device.py\n\nWe weren\u0027t actually using our own pylintrc file in repo upload hook,\nwhich will be fixed by https://android-review.googlesource.com/#/c/platform/tools/repohooks/+/458996/\n\nEven though both camel case and snake case are allowed for function\nand method names, they still have to be consistent in a single file.\nhttps://pylint.readthedocs.io/en/latest/user_guide/options.html#multiple-naming-styles\n\nBug: 27316596\nTest: repo upload\nChange-Id: I98adba957a547115ef3d8b00fe2e3e4931707b31\n"
    },
    {
      "commit": "5ef5d4561dbc40c128d1e9bbd8e2da525adcf581",
      "tree": "3156e7bde5f17bba8940b2863424e2669fb1334a",
      "parents": [
        "489875a27f4cdc4be979b1d9fd8dd026ea0cc820"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Fri Aug 04 13:10:59 2017 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Wed Aug 09 14:05:10 2017 -0700"
      },
      "message": "update_engine: Change imgdiff/imgpatch to a dummy puffdiff/puffpatch\n\nCurrently we never create imgdiff operation as it was never\nactivated. In near future we will be adding puffdiff and puffpatch\noperations which replaces the imgdiff. This CL does not actually adds\npuffdiff, but adds a placeholder for it.\n\nBUG\u003dnone\nTEST\u003dcros_workon_make --board\u003damd64-generic --test update_engine\n\nChange-Id: I6453048acb65c052354a1658f0c6fd41ad33e242\nReviewed-on: https://chromium-review.googlesource.com/602733\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": "4b9775a26cd5ff26db61b7762667d607458082f0",
      "tree": "da1b37456dd35c2558ba846b762bd3aeb7eff966",
      "parents": [
        "73b18b83ebae881cefa6fb2b0563a0b94c17bcde"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Wed Jul 26 11:26:05 2017 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Tue Aug 01 13:01:42 2017 -0700"
      },
      "message": "update_engine: Add \"verify\" support to brillo_update_payload\n\nThis change adds a new command \"verify\" to brillo_update_payload to verify the\nprocess of update by applying a delta or full payload to temporary target\npartitions and comparing them with the original target partitions. This is\nspecially usefull when manually debuggin/testing delta performer operations.\n\nBUG\u003dnone\nTEST\u003dbrillo_update_payload verify --payload\u003dpayload.delta --source_image\u003dlink_8872.49.bin --target_image\u003dlink_9000.82.bin\n\nChange-Id: I4b30bc8a1088f4f72b681c6095cca6863a715078\nReviewed-on: https://chromium-review.googlesource.com/585565\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": "013ebf9cc81b1be2eaef6a0e1d19ff806a8fcdb8",
      "tree": "b46dd55bc145531845da546a642637eb6eb1f59d",
      "parents": [
        "a763c2ddabdb9cb51057823e0d79e53d089427af",
        "e5f6f2571d43eb65e0b27dd8d50f2c1f0b3fe30f"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Thu Jun 08 10:54:45 2017 -0700"
      },
      "committer": {
        "name": "Amin Hassani",
        "email": "ahassani@google.com",
        "time": "Thu Jun 15 16:24:38 2017 -0700"
      },
      "message": "Merge branch \u0027cros/upstream\u0027 into \u0027cros/master\u0027\n\nFixed:\n\tconnection_manager_interface.h: remove line 53-56\n\tfix the assert in common/http_fetcher_unittest.cc:637\n\nBUG\u003dnone\nTEST\u003dsent squashed merge to buildbots and HWtest was success.\n\nChange-Id: I15037921592a2b7a4dd76dff71417d03caf97cf6\n"
    },
    {
      "commit": "948ea5885a76f2d79e39aa178b83c4a955207458",
      "tree": "ea098375295d3f2a8287b0bb056f1de6fd1f2ef4",
      "parents": [
        "27d9d5399a0863949a995f631919d7745525644b"
      ],
      "author": {
        "name": "Andrey Ulanov",
        "email": "andreyu@google.com",
        "time": "Fri Jun 02 15:12:46 2017 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Mon Jun 05 16:39:50 2017 -0700"
      },
      "message": "update_engine: Remove zlib fingerprint checking\n\nThis is not needed as imgdiff is not being used and will be replaced by\npuffin.\nPresence of this code makes updating to newer version of zlib\nimpossible. (e.g. 1.2.8-\u003e1.2.11 update introduces some changes in\ncompression algorithm which make compressed output different).\n\nBUG\u003dNone\nTEST\u003d\"ebuild zlib.ebuild test\"\n\nChange-Id: I50793f552a44faaba5771271fdcf2b4f4aeba6e4\nReviewed-on: https://chromium-review.googlesource.com/522949\nCommit-Ready: Andrey Ulanov \u003candreyu@google.com\u003e\nTested-by: Andrey Ulanov \u003candreyu@google.com\u003e\nReviewed-by: Ben Chan \u003cbenchan@chromium.org\u003e\nReviewed-by: Sen Jiang \u003csenj@chromium.org\u003e\n"
    },
    {
      "commit": "04c2305d79b65a3013e3d5b329f1fcc128874479",
      "tree": "34d37d75057876bb79341ca5c6e24fbb697048d3",
      "parents": [
        "5b9b92cc642c243c3729c4014601704a4cfa7fcc"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Apr 12 18:15:30 2017 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Apr 12 18:19:05 2017 -0700"
      },
      "message": "Ignore source partitions smaller than 4 KiB.\n\nWhen rounding down source partitions to the nearest 4 KiB boundary we\nhit an error condition that checks for empty partitions. This patch\nignores partitions that are less than 4 KiB.\n\nBug: 37266429\nTest: ota_from_target_files -i target_files-3901180.zip target_files-3903096.zip ota.zip\nChange-Id: I165a3f9a9f73044d7520d042727caf1cf63a80c7\n"
    },
    {
      "commit": "6751bbe28c2bb1114a941dea0ffa489371d81ce2",
      "tree": "3d24e7eea7af3ae532ad3f1ff4d85c5b6928eca7",
      "parents": [
        "bae90be5527658af3b3b17ca4485b49dd732e0f3"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Tue Mar 21 11:20:02 2017 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Tue Mar 21 23:27:07 2017 -0700"
      },
      "message": "scripts: New script to update a device connected via adb\n\nThis new script allows to execute the update flow on an Android device\nconnected via adb to the host. At the moment, it supports both providing\nthe payload over the network with an \"adb reverse\" connection and to\npush the payload to a file on the device.\n\nBug: 35903885\nTest: system/update_engine/scripts/update_device.py ota.zip\nChange-Id: I1c6d4df97ce85b6e30367a53b351353a954efbdc\n"
    },
    {
      "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"
    }
  ],
  "next": "c11dc7338639296ab99f89964a94bcc486500ba3"
}
