)]}'
{
  "log": [
    {
      "commit": "cbe8e633f29fa63a5734cd5b43dc7842b024efdc",
      "tree": "3a3ba902c7f722ae759d99f41f559445cc14dca7",
      "parents": [
        "0c1648cbf215894a0418bc9994b21d351327b1d7"
      ],
      "author": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Tue Apr 25 12:43:43 2023 -0700"
      },
      "committer": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Wed Apr 26 10:31:19 2023 -0700"
      },
      "message": "Changed delta_generator to make use of --max_threads\n\nAdding an option to configure max number of threads used during\nota_from_target_files\n\nBug: 277794445\nTest: tested ota_from_target_files\nChange-Id: I9bae92ee43c21926434ab04563a2b4f0678b73eb\n"
    },
    {
      "commit": "cfc531fda3771ab7b485dad42ecbc8a2bde5cdcd",
      "tree": "b5dc00fa18c4ab612e211d04f573004dd2d8500c",
      "parents": [
        "b7162c1efd8d90b8561b7e017c888c5b3a8568b0"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Aug 24 17:58:53 2022 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 29 23:26:53 2022 +0000"
      },
      "message": "Add security patch level to update manifest\n\nWhen installing a full OTA, the target build might have a newer\ntimestamp but older SPL. In these caess, update_engine will fail to\nrecognize the SPL downgrade and skip data wipe, causing /data decryption\nto fail on next reboot. To fix this issue, add a SPL field to update\nmanifest. update_engine will check this field on OTA install and\nschedule data wipe as needed.\n\nTest: install OTA with newer timestamp but older SPL, make sure data wipe is scheduled\nBug: 242812845\n\n\nChange-Id: I9d1dd73b46323939bbf990e29da5cc0ba79f86e2\n"
    },
    {
      "commit": "8389dfe4fe4ae7d4ae226cea8b4532707d0c0ed8",
      "tree": "1d5ca992636abd6bae22ab4034e06fb4895f9f9c",
      "parents": [
        "e67e5431f95cec885aa256512fdb23036a3eb041"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Jan 13 12:47:11 2022 -0800"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Jan 18 14:01:39 2022 -0800"
      },
      "message": "Add erofs compression param\n\nTest: th\nBug: 206729162\nChange-Id: I774918693262c8e48a2656d82d5acaeb4e3aaed2\n"
    },
    {
      "commit": "907b0e67f785f92dc23fb611f82b6982285e6015",
      "tree": "c7d9de2fa00583d66fe7103afb700bf63f86c231",
      "parents": [
        "84fe9da3c2ba05d7ec2c9e26687fc196e0f3c90a"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Mon Jan 10 06:23:10 2022 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 13 20:33:15 2022 +0000"
      },
      "message": "Add brillow_update_payload option to enable lz4diff\n\nTest: th\nBug: 206729162\nChange-Id: If155b7d59b2e6b32da16a7f227f32f7e5e1d801a\n"
    },
    {
      "commit": "22987987aa4af1f787dbf07215dff07c6e7c6915",
      "tree": "531aa99ee85b97eea2a994960eb0c721c6fe028c",
      "parents": [
        "cb2dc889c4654e2365751e10ac82a2046b776156"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Jan 04 14:37:28 2022 -0800"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Sat Jan 08 11:27:29 2022 -0800"
      },
      "message": "Add option to enable zucchini\n\nTest: th\nBug: 194237829\n\nChange-Id: Ie3ddf889e6b02165039eb155c457832e0eb7c13a\n"
    },
    {
      "commit": "0aa4fae74ad4c25aa6b4f184350b7dbaab68642b",
      "tree": "c1a52c6b3791af9655ff3104906239e0300576f4",
      "parents": [
        "0e00a0daecdcc6583f7b0b86f76c00a92501ec94"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Oct 28 09:15:27 2021 -0700"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Nov 02 17:05:11 2021 -0700"
      },
      "message": "Add --compressor_types option\n\nE2E test time of OTA is approaching ~40 minutes. Add an option to\ndisable brotli compression to speed up unit tests. From our past\nexperience, compressino algorithms are hardly sources of bugs. So no\nneed to test compression algorihtms in presubmit test.\n\nTest: th\nChange-Id: I7660efd6eb3d5c305c74d1a9fef63f8121653ea0\n"
    },
    {
      "commit": "3e73ec6d2975564e30f81b997091c5de2b304980",
      "tree": "74b425770524558048bf60d4884cd7adb8de8df1",
      "parents": [
        "4ee648e294de22f7af99126e4d5666d8d9e73b06",
        "f4502bb26e5e423f8b86482833025f713b9c44b2"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Fri Sep 10 06:00:42 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Sep 10 06:00:42 2021 +0000"
      },
      "message": "Add option to override minor version am: f4502bb26e\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1822953\n\nChange-Id: Ia205c9ddfd6bf1e0ae817fe189862e53ef2d1760\n"
    },
    {
      "commit": "f4502bb26e5e423f8b86482833025f713b9c44b2",
      "tree": "7a9c1b61ef536dce3ed117ad7e6c80b72500f4fa",
      "parents": [
        "8c856553239fb61678bfa2b15c5f23e4ce77d341"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Wed Sep 08 19:08:53 2021 -0700"
      },
      "committer": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Thu Sep 09 12:12:44 2021 -0700"
      },
      "message": "Add option to override minor version\n\nWe want to fully test zucchini before pushing it to droidfood. So we plan\nto add an option to override the minor version, and enable zucchini in\ntradefed test first.\n\nAlso temporarily disble the config version test because we haven\u0027t bumped\nthe minor version yet.\n\nBug: 197361113\nTest: TH\nChange-Id: Ibdae57611b1dbf23d8a7d0e706ca3109d22088f9\n"
    },
    {
      "commit": "c68f39c5560eedaba85bc9fa20db5eea048f0602",
      "tree": "1c97456309d5ae37e90be1792bb6eb413adc67e7",
      "parents": [
        "4a7d2d442bcf90b7cb8402f95f98898226ad9aa7",
        "f8919b90278899dc7ce6d40debfdc298586662ed"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Sat Jul 24 01:00:27 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jul 24 01:00:27 2021 +0000"
      },
      "message": "Emit XOR ops at OTA generation time am: 02df21bb45 am: f8919b9027\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1542964\n\nChange-Id: Iea6531395871bf091de760a532083c4c78631c47\n"
    },
    {
      "commit": "02df21bb4570a57dfa9e41f31d4785bdf4a7b76a",
      "tree": "d629d50892260108898aefb4ea114815922ec9aa",
      "parents": [
        "7cfc94ac3bfdff4d826effab4dda3ec6ea11b78c"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Jan 07 14:55:18 2021 -0500"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Jul 21 19:42:44 2021 -0400"
      },
      "message": "Emit XOR ops at OTA generation time\n\n1. Add a new merge operation type: COW_XOR\n2. When running bsdiff, extract similar blocks and record them in\nannotated operations\n3. During merge sequence generation, include COW_XOR ops as well\n\nTest: treehugger\nBug: 177104308\n\nChange-Id: If894736859b572e761e83be5a9498235caa68866\n"
    },
    {
      "commit": "375a539c6d5398375be7d6c62571502423d978db",
      "tree": "de292a70ddc2edd6da37d3d9b370debd8b80b88f",
      "parents": [
        "c3fb9aad34062122052e65050763ba5c8d75ae70",
        "5eb828f56205c1d8382607562231b898ffe3bac4"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Mar 10 15:43:53 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Mar 10 15:43:53 2021 +0000"
      },
      "message": "Allow disable_vabc flag in full OTA am: 413982e445 am: 8b76e5667b am: 5eb828f562\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1613459\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: Ib02b1bf358bebe2ea05543f264551e9f4c7a600b\n"
    },
    {
      "commit": "413982e4450453ed458e525f47df2c43a1855aca",
      "tree": "67ae300574d4ec08380dd5e170da1e659a587a6e",
      "parents": [
        "0e1c7fd2729c9de9ae10abe96eb41a35285eada5"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Mar 02 15:34:50 2021 -0500"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Mar 10 13:43:03 2021 +0000"
      },
      "message": "Allow disable_vabc flag in full OTA\n\nPreviously, brillo_update_payload only honors --disable_vabc flag for\nincremental OTA. Respect this flag for full OTA as well.\n\nTest: Generate a full OTA with --disable_vabc\nChange-Id: Ic18dfdffd3e43ab139d1ea0704679ea38dd082c2\n"
    },
    {
      "commit": "f66cf2fffc7821afcf2f02ca804780a63f5f793f",
      "tree": "67411317e457449330dda2e3981ac9b4536c1230",
      "parents": [
        "f98af0721a0e2f540a7f61501e67fbe822af67e0",
        "2fe04512c3327a67a52470baba5ec868fb7c0b3d"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Feb 11 06:54:21 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 11 06:54:21 2021 +0000"
      },
      "message": "Reland: Pass apex_info.pb file to delta_generator am: deb34459c3 am: 4ea1673ece am: 2fe04512c3\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1567661\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I9b5205d9a3be96073e307acc567f79792020666e\n"
    },
    {
      "commit": "deb34459c3a14a30b1824c267daadc02812255dc",
      "tree": "6331c202ac5be21091b2ec05bf8d5ebc3279ce85",
      "parents": [
        "bab11c59e6f894022ef87aacbd89baca4556ee8e"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Jan 21 11:54:36 2021 -0500"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 11 05:02:06 2021 +0000"
      },
      "message": "Reland: Pass apex_info.pb file to delta_generator\n\ntarget_files contain META/apex_info.pb, which contains metadata about\ncompressed apexes. Extract this file from target_file.zip, and pass it\nto delta_generator. delta_generator will then copy these data to\nupdate_metadata\n\nTest: generate an OTA, make sure a device running an older build can\ninstall the OTA\nBug: 172911822\n\nChange-Id: If0e185a32262a849d533c3316ffdf205cb6628b6\n"
    },
    {
      "commit": "378e2a41dc529a3f33690edb4c54b3a5153e12ec",
      "tree": "b70821ba5d764068d977d7c7c4bf432505af44ec",
      "parents": [
        "bf6ce918c9fb58a8e482db61c7210e72371d12a6",
        "02d7ffcd99bc1516275b414561770620f4488d5a"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Feb 09 03:44:17 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 09 03:44:17 2021 +0000"
      },
      "message": "Add a flag to manually override VABC am: 9101ff33e2 am: 430c647738 am: 02d7ffcd99\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1554575\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I1612e3f50614f6f418be7cd1752b128638affb1a\n"
    },
    {
      "commit": "9101ff33e2140575ef390fc9bf7b9dd84d5b1298",
      "tree": "aa6242bad18527d8fb7875f0565e5a57fbeb7f41",
      "parents": [
        "6a4d1ec1d024c37dffe0a0db293a337f8c1fd851"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Jan 19 15:48:53 2021 -0500"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 09 01:14:48 2021 +0000"
      },
      "message": "Add a flag to manually override VABC\n\nTest: generate an OTA with --disable_vabc\nChange-Id: I4a42319584dc1388d097dba343fe3ace82479bec\n"
    },
    {
      "commit": "68b8fbd17cfb7cbceee3fdef569f6a0a2614af62",
      "tree": "694086dd73a5cc6285fcf10174e60ac0d8899530",
      "parents": [
        "7767168f318d82d2318f3cc20b59a2ca00530f10",
        "715cadfe7bae6876a4c9f9c5c5934fb358f44c1c"
      ],
      "author": {
        "name": "Tianjie Xu",
        "email": "xunchang@google.com",
        "time": "Sun Jan 31 03:27:34 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sun Jan 31 03:27:34 2021 +0000"
      },
      "message": "Revert \"Pass apex_info.pb file to delta_generator\" am: 195d0a9e38 am: db5a575ca1 am: 715cadfe7b\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1567042\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I6774ab6639bc9ebd1b4dec2d273e4e9daab2b5e0\n"
    },
    {
      "commit": "195d0a9e38a6f53ab2756b91f5cdda2ec466a356",
      "tree": "1173db93bffda2cf3bdbdeedc759548c003d1163",
      "parents": [
        "2e3cdae869b4bc6ca5070b9dcd11fb737016ceb9"
      ],
      "author": {
        "name": "Tianjie Xu",
        "email": "xunchang@google.com",
        "time": "Sat Jan 30 22:00:45 2021 +0000"
      },
      "committer": {
        "name": "Tianjie Xu",
        "email": "xunchang@google.com",
        "time": "Sat Jan 30 22:01:19 2021 +0000"
      },
      "message": "Revert \"Pass apex_info.pb file to delta_generator\"\n\nThis reverts commit 4e5da3e9d7459e3d983db943ebf3cb4c36af9c60.\n\nReason for revert:  b/178908708\n\nChange-Id: I616da64ffda5b94044f3493861d6d01aebfaad61\n"
    },
    {
      "commit": "c637bb14caa6c68bbfb33036f62b80ccf68bbbe8",
      "tree": "d5ac5b28f6e8d2e1d842a53a17bb2e13d1196e32",
      "parents": [
        "4139c1ab5787d1eef630f29c813e73b76f14a342",
        "1a29996d03157aa6e9d178271ef8749a730398b3"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Fri Jan 29 23:34:39 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jan 29 23:34:39 2021 +0000"
      },
      "message": "Pass apex_info.pb file to delta_generator am: 4e5da3e9d7 am: 2b54133144 am: 1a29996d03\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1562573\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: Ia769e0a068dab2245d47cc95b7de0f990bf53383\n"
    },
    {
      "commit": "4e5da3e9d7459e3d983db943ebf3cb4c36af9c60",
      "tree": "cfea34ac39f02a7b9823a2903a6067e94bcfdd71",
      "parents": [
        "838793dc39746fd0eba99daaa0f62f8a402777e5"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Jan 21 11:54:36 2021 -0500"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Jan 28 16:56:59 2021 -0500"
      },
      "message": "Pass apex_info.pb file to delta_generator\n\ntarget_files contain META/apex_info.pb, which contains metadata about\ncompressed apexes. Extract this file from target_file.zip, and pass it\nto delta_generator. delta_generator will then copy these data to\nupdate_metadata\n\nTest: generate an OTA\nBug: 172911822\nChange-Id: Ia4babb9e711a92f2b78ef8e1dd6ad35d0a2bb5a8\n"
    },
    {
      "commit": "fee8551686d39b8b03d02e6f656d879332534362",
      "tree": "3ec68f94ea35ca3e6db2d1848f6fc7c121392a77",
      "parents": [
        "5487e65acec022a0c1bce14c11f6e9e8138878bd",
        "dba36e84df066d2c5ae1e8d209aa92e6a761610c"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Mon Nov 23 21:22:38 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Nov 23 21:22:38 2020 +0000"
      },
      "message": "Add --disable_verity_computation flag to delta_generator am: 098e79a0c3 am: 6e5ef9f8d0 am: dba36e84df\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1507098\n\nChange-Id: Idf9a5586cb6749827b70ea7aed1e89583f1df163\n"
    },
    {
      "commit": "098e79a0c348d2636fd102db081b4e03cb30ef9d",
      "tree": "c968214af0a4060c3b1b27f20283937081881089",
      "parents": [
        "52cb1d75b6992f880058c56d43428b97bb4ed107"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Nov 19 17:40:56 2020 -0500"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Mon Nov 23 19:43:28 2020 +0000"
      },
      "message": "Add --disable_verity_computation flag to delta_generator\n\nVABC doesn\u0027t support writing hash tree yet, provide an option to disable\nfor now\n\nTest: treehugger\nBug: 168554689\nChange-Id: I7bbb76b33b46b44101fc3ca6cee2c9ee85e2e82d\n"
    },
    {
      "commit": "f45dffb0403fc00f83915bf4a87e018a5f0ddf25",
      "tree": "42929cde23200c5ad91892f352168a1208add950",
      "parents": [
        "a8064e39f82b5387f8a99db8795be58d117d8a70",
        "5437ec4377157cf0e7aa06e7db1d65ce7d678216"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Sat Nov 21 01:06:30 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Nov 21 01:06:30 2020 +0000"
      },
      "message": "define full_boot flag in brillo_update_payload am: dde2ef4d52 am: 928feede41 am: 5437ec4377\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1507099\n\nChange-Id: I0be236540dbeca991023fe251dbc3bbcb2e12231\n"
    },
    {
      "commit": "dde2ef4d525af1076b9ccd1a4f736b4de961b2e6",
      "tree": "e2226e2776de36a6afd3eefda912a46395a15c7d",
      "parents": [
        "8212f53f9d05472ce6f25b2cb5c9f4537a5e71a3"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Fri Nov 20 12:26:19 2020 -0500"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Fri Nov 20 12:27:23 2020 -0500"
      },
      "message": "define full_boot flag in brillo_update_payload\n\nTest: ota_from_target_files.py --full_boot\nChange-Id: Id910b373f40d6c5eb814904383615f621e3f86d1\n"
    },
    {
      "commit": "74b1e8a5c7fc11c642bb8f48b5598452d9863631",
      "tree": "0210bc305f06be0156dacc5912090e126ab7fdf5",
      "parents": [
        "d69dfd41e1d9fd3fc6c40d6e1412340e1edb00f2",
        "180270e5d6d3ebf228ddb05a48840cb983cf36b1"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Mon Nov 16 21:35:11 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Nov 16 21:35:11 2020 +0000"
      },
      "message": "Add `full_boot` option to brillo_update_payload am: 999705e45c am: 6bd5cd4e9c am: d06a6796cf am: 180270e5d6\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1486136\n\nChange-Id: Ia5382c8418bed2f5bd64d444eeaedd05baf82491\n"
    },
    {
      "commit": "999705e45c71fedfffb08eb5b1ead4817c4d3c8b",
      "tree": "eb61c87fc8a2c22c90cf378a521fb30ca87ad5c8",
      "parents": [
        "877ddbe3a71705c5bb0aa248b5a58f0239137a07"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Nov 03 10:07:09 2020 -0500"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 16 18:04:43 2020 +0000"
      },
      "message": "Add `full_boot` option to brillo_update_payload\n\nTest: generate \u0026\u0026 apply an OTA with --full_boot\nBug: 171906589\nChange-Id: I773e808ba5914e5fcc1c7be9095fdbee7d7ebd54\n"
    },
    {
      "commit": "b31e1ac799a1f40bc43b8354257cae5d1e5970ef",
      "tree": "c4e10aad011ed558325e2c75320c89600981ed38",
      "parents": [
        "f02a7cedccbc8921428d487fab703675a3706ecf"
      ],
      "author": {
        "name": "Parveen Kumar",
        "email": "sudopk@google.com",
        "time": "Fri Oct 16 15:30:09 2020 -0700"
      },
      "committer": {
        "name": "Parveen Kumar",
        "email": "sudopk@google.com",
        "time": "Mon Oct 26 19:08:11 2020 +0000"
      },
      "message": "Look for shflags in parent dir of brillo_update_payload\u0027s dir.\n\nAndroid host tools binaries are under $HOST_OUT/bin and libs are under\n$HOST_OUT/lib. So \u0027lib\u0027 dir is sibling of \u0027bin\u0027 dir and not under it.\n\nBug: 168477594\nTest: treehugger\nChange-Id: I67d49f243b06bae9c4d4e4afe2a6bb922a1ea31a\n"
    },
    {
      "commit": "1f4964213f67ae682af8cd332cd37b3d9afdbace",
      "tree": "b55ef474bc950f01551ba011612b33917153c3ea",
      "parents": [
        "5ef2d8ae7bc8ccd03ea8fc19e3e0b9a11f1dfeaf"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Aug 11 17:18:23 2020 -0400"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Aug 27 18:18:02 2020 +0000"
      },
      "message": "Set per-partition timestamps in OTA generation\n\nupdate_engine can also accept payload with per-partition timestamps.\nThis CL updates OTA generation script to emit per-partition timestamps\nwhen writing an OTA package.\n\nTest: Generate \u0026\u0026 serve an ota\nChange-Id: I17529a004b8e0bbcb7d69dde93fb0fd7124b3b17\n"
    },
    {
      "commit": "e283ce414e749e599d0ffad31897bc5e25450cad",
      "tree": "3b27bfdcc814d2c3a070b1472e4ee234ea2938a8",
      "parents": [
        "d60dc3929d21050730bb8a4ae16e3bb3f3a7e36e"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Wed Jul 29 11:37:51 2020 -0700"
      },
      "committer": {
        "name": "Tianjie Xu",
        "email": "xunchang@google.com",
        "time": "Wed Jul 29 21:23:47 2020 +0000"
      },
      "message": "Update language to comply with Android\u0027s inclusive language guidance\n\nMore details in: https://source.android.com/setup/contribute/respectful-code\n\nBug: 161896447\nTest: build, run unittests\nChange-Id: I6a7136b01ecce948a3997c60b7dcec848331e8ef\n"
    },
    {
      "commit": "3756c3e54fd61d2a27737020928b2b079f356caf",
      "tree": "4184826b7d6875c4dc0756aeb15f2a94f6305817",
      "parents": [
        "c3806663263ba01c35c66f8185402bbbd456380f"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Fri Jul 24 20:25:51 2020 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Jul 27 20:27:35 2020 +0000"
      },
      "message": "brillo_update_payload: allow specifying delta_generator from env\n\nHelp solve the following error when using brillo_update_payload\ninside sandboxes:\n\n\"delta_generator\" is not allowed to be used. See\nhttps://android.googlesource.com/platform/build/+/master/Changes.md#PATH_Tools\nfor more information.\"\n\n... by specifying GENERATOR\u003dpath/to/delta_generator in the environment.\n\nTest: build GKI\nBug: 162116212\nChange-Id: I8e3444539e3692738b0309ab7b1f829d0e840ac2\n"
    },
    {
      "commit": "f5baff4655a9b0c13510d7f2dc222f5e66bed505",
      "tree": "3afa62e39e7e7e80948a613fa5099322f945522b",
      "parents": [
        "cc011d3b0ad7f359415a63399e94b62752572a28"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Fri Jul 17 21:43:22 2020 -0700"
      },
      "committer": {
        "name": "Tianjie Xu",
        "email": "xunchang@google.com",
        "time": "Mon Jul 20 17:28:28 2020 +0000"
      },
      "message": "Support generation of partial updates\n\nAdd a new minor version kPartialUpdateMinorPayloadVersion for\npartial updates. Also, we always treat the partial update as a\ndelta update in payload consumer, so new update_engine can\nperform minor version check correctly.\n\nConceptually, partial update is indeed a delta update; because we\nneed to copy | use the untouched partitions. Since the payload for\nthe partial update doesn\u0027t carry old partition info, old update\nengines will treat them as full update. So old UE will also fail\nthe minor version check correctly; because we always expect\nkFullPayloadMinorVersion for full updates.\n\nBug: 157778739\nTest: generate \u0026 apply partial full|incremental updates, generate\nregular updates, unittests pass\n\nChange-Id: I7f8365cf99098269150dd08e028120354944f3c6\n"
    },
    {
      "commit": "c288d5ba2182a0b2742fa93d04db3e024b00e98e",
      "tree": "ddf16bf0c777a71e177b294ca15360d99250aec7",
      "parents": [
        "05b3b963888adb5b9bbe906fb09cdae7ce47836c"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Thu Oct 03 13:47:06 2019 -0700"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Thu Oct 03 14:06:03 2019 -0700"
      },
      "message": "Replace `look` with `grep`.\n\n`look` is an external host tool that\u0027s not coming from the Android repo.\nhttps://android.googlesource.com/platform/build/+/master/Changes.md#path_tools\n\nBug: 142073223\nTest: `m -j ota_from_target_files`; Generate incremental package.\nChange-Id: Idf5ee71846ea641387a36887a0ffc3d4a322743d\n"
    },
    {
      "commit": "72d512c227264fcd7f5156dd64ec09316aa77f8b",
      "tree": "0d573579cffc62f55aa2e8f629884e9f9274278b",
      "parents": [
        "bb90dfb5de8e6f70083e4db5b289acdde21f8684"
      ],
      "author": {
        "name": "Tianjie Xu",
        "email": "xunchang@google.com",
        "time": "Wed Aug 21 15:20:35 2019 -0700"
      },
      "committer": {
        "name": "Tianjie Xu",
        "email": "xunchang@google.com",
        "time": "Thu Aug 22 14:23:52 2019 -0700"
      },
      "message": "Add a flag to disable the fec data computation\n\nThe write of fec data is currently mandatory in the update engine. This\nstep reduces the update package size but it\u0027s also time comsuming. So we\nadd a flag to allow partners make the trade off and disable the on device\nfec data computation.\n\nBug: 139723500\nTest: generate and apply incremental updates for verified boot 1.0 \u0026 2.0\nChange-Id: Ic7c63396bb4d4fbbc3c3b2e9ff3804c9ff941f2f\n"
    },
    {
      "commit": "14715ced5bbe551e06009afdd3712f84dc5b1818",
      "tree": "e1e7a694c32bbd9fe74c278cc84b8d98a060b1fb",
      "parents": [
        "30fa5f523f850cf425329642fcdfedbb2c47758f"
      ],
      "author": {
        "name": "Tianjie Xu",
        "email": "xunchang@google.com",
        "time": "Tue Aug 06 17:24:43 2019 -0700"
      },
      "committer": {
        "name": "Tianjie Xu",
        "email": "xunchang@google.com",
        "time": "Wed Aug 07 17:23:08 2019 -0700"
      },
      "message": "Stop using unzip -p when extracting images\n\nbrillo_update_payload uses `unzip -p` to extract images to a named temp\nfile. But the command doesn\u0027t generate an error when the disk is full.\nThis cl creates a helper function and switches to use `unzip -d` to extract\nthe image; and then move the extracted image to the intended name.\n\nBug: 138725843\nTest: generate and verify a payload, check the extract error when disk is full\nChange-Id: I71c2d07de3c1c826f2e07fcc6497437c4051944f\n"
    },
    {
      "commit": "9648990b5bd68fc0fb10ffd3193d108b1a056125",
      "tree": "5b27cc6323b75465bb5965378c6c4ec86d175d1a",
      "parents": [
        "cda3c034bc46a4040dcd31a3a512ffd56dfe28c2"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Tue Apr 02 16:25:03 2019 -0700"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Tue Apr 02 18:17:45 2019 -0700"
      },
      "message": "Abort the payload generation on extract_image errors.\n\nextract_image, in particular extract_image_brillo, spawns multiple\nprocesses to handle the unzipping and unsparsing works in parallel.\nHowever, `wait` doesn\u0027t abort the execution on child process errors.\n\nThis CL tracks the PIDs of the worker processes. It then waits for each\nindividual PID and aborts appropriately. No-op for the CrOS path.\n\nBug: 129773355\nTest: Inject error into simg2img. brillo_update_payload aborts.\nChange-Id: Id87aa5216fee7e9db132b7f7947742d2ac11b2bc\n"
    },
    {
      "commit": "3ce4e526eef90cec0d659f33e567d1fffa4373a0",
      "tree": "00080ced9a43323ec583cbeaa3d0f40c41851172",
      "parents": [
        "cf50e9dd45d93687282a8c0755d4b839136a0079",
        "58e01d6e42664015e22518ff5015b2348d7e7b03"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Jan 04 15:34:19 2019 -0800"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Jan 04 15:36:47 2019 -0800"
      },
      "message": "Merge aosp/upstream-master into aosp/master.\n\nAdded BinderUpdateEngineClient::AttemptInstall().\n\nTest: update_engine_unittests\nChange-Id: Id6911f49d763b0d572658acb7d66857016bf6969\n"
    },
    {
      "commit": "58e01d6e42664015e22518ff5015b2348d7e7b03",
      "tree": "729f4f07688ccdad0fd519c63ba1feab00af88fd",
      "parents": [
        "04d41629e027d0c98c91d3702de8b86527ef8224"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@chromium.org",
        "time": "Wed Sep 19 14:56:15 2018 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Wed Jan 02 18:14:01 2019 -0800"
      },
      "message": "update_engine: brillo_update_payload: Switch to major version 2\n\nPer this CL, we switch the payloads to major version 2 from servers.  For more\ninformation regarding this switch refer to the attached issue. We also change\nthe default major version to 2.\n\nBUG\u003dchromium:794404\nTEST\u003dbrillo_update_payload\n\nChange-Id: I8403805c07210c3d947100efce74dc184a022cdb\nReviewed-on: https://chromium-review.googlesource.com/1234590\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: Don Garrett \u003cdgarrett@chromium.org\u003e\nReviewed-by: Sen Jiang \u003csenj@chromium.org\u003e\n"
    },
    {
      "commit": "4b821d7d700085d3b81260c559392c5e5b59822a",
      "tree": "89622265b6cc4c785a21351dd143f879eac1db6d",
      "parents": [
        "09f6e0f8f5340e2e8f6bf14e08adf25798eab360"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Fri Dec 07 17:26:04 2018 -0800"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Fri Dec 07 17:28:37 2018 -0800"
      },
      "message": "Use xxd directly rather than head and hexdump\n\nTest: build OTA and manual apply\nChange-Id: I4ae6da33e1ea784c00e4fdf9893f3887950bab4c\nFixes: 120681840\n"
    },
    {
      "commit": "5df503c367251ad04260bd2f988541e7f2f0ae37",
      "tree": "1957323270327bb72a11b15641cec488a7252898",
      "parents": [
        "812e9d17022dd3231ec49eb4210bd7cd47644887"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 27 16:57:34 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 28 16:21:56 2018 +0000"
      },
      "message": "Use xxd directly rather than head and hexdump\n\nI hit this when trying to switch the AOSP build to toybox head (which\ndoesn\u0027t yet support --bytes). I\u0027ll add --bytes and --lines anyway, but\njust using xxd seems like a better way to do this?\n\nTest: builds\nChange-Id: I2bd2d3467b70c98534468d37da6794fe705652d3\n"
    },
    {
      "commit": "398cb549ae896e92bafa3f113ebf54150ee5ecc2",
      "tree": "9e065f836c56407d2e74ba2b70863f79a56421af",
      "parents": [
        "549eb36af81d1d542efc80c1b79049a1fcea1380"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Thu Oct 18 11:29:40 2018 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Fri Oct 26 18:23:52 2018 +0000"
      },
      "message": "Add dynamic_partition_metadata to update manifest\n\nAt build time, it will be filled with BOARD_SUPER_PARTITION_GROUPS,\nBOARD_*_SIZE, and BOARD_*_PARTITION_LIST.\n\nOnly the information from the new target_files package is used. The\nMETA/dynamic_partition_info.txt from old target_files is ignored.\n\nTest: builds and manual OTA\nBug: 117182932\nChange-Id: I02ce99caaf7d01cec1470f7262c45490c15dfcb7\n"
    },
    {
      "commit": "26bb865b2743a9767b42840278ac032db274d5f3",
      "tree": "fdbf56281b0e82f62e650ca4c74da67427ec7b65",
      "parents": [
        "88d90387e5964b05f9e30adb2648433e4a277ab9"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Oct 12 02:15:09 2018 -0400"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Sat Oct 13 05:12:12 2018 -0700"
      },
      "message": "brillo_update_payload: stop searching /usr/lib/crosutils\n\nIn the SDK \u0026 on boards, we have /usr/share/misc/shflags everywhere.\nSo we don\u0027t need this old /usr/lib/crosutils path at all.\n\nBUG\u003dNone\nTEST\u003dNone\n\nChange-Id: I89b1d96e5f28f7952175aff6ca9a6ccb462a17c5\nReviewed-on: https://chromium-review.googlesource.com/1278108\nCommit-Ready: Mike Frysinger \u003cvapier@chromium.org\u003e\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nReviewed-by: Amin Hassani \u003cahassani@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@google.com\u003e\n"
    },
    {
      "commit": "3271186bc8d1e2d382725e7368d092a335e2aa14",
      "tree": "8070ced53ff1762694993080efd92420207d08a1",
      "parents": [
        "d63cb3ccd76d6df10c603152843881d719da26e3"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Oct 04 21:25:50 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Oct 04 21:41:30 2018 -0700"
      },
      "message": "Convert perl usage to python\n\nWe\u0027re trying to remove the usage of perl during the build. Since this is\ncalled via python, it should hopefully be safe to use python (though\nusing whatever python in the path isn\u0027t a great option).\n\nTest: treehugger\nChange-Id: I0b37e7af7fe668a968f9d06a3db54e82dd58c76a\n"
    },
    {
      "commit": "3e5804d8ad22361c091c11ffe1183069612d56a9",
      "tree": "f2aaaef8d9b78abec82f32b54627ce1e285b4a07",
      "parents": [
        "6feb15c1e208d586b46f7d7540898cbef71f6366"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Sep 06 15:53:00 2018 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Sep 26 16:58:57 2018 -0700"
      },
      "message": "brillo_update_payload: Extract partition images in parallel.\n\nunzipping and converting sparse image to raw could take a while for\nlarge partitions like system and vendor, this CL move them into a\nseparate function and run them in background.\n\nBug: 77817425\nTest: brillo_update_payload generate\nTest: brillo_update_payload verify\nChange-Id: Ic55b9e35eb3c275533a7231d2b57722aa89c96a5\n"
    },
    {
      "commit": "6feb15c1e208d586b46f7d7540898cbef71f6366",
      "tree": "7092ff3c3255c187bb5a062022b0c2f098789860",
      "parents": [
        "d8be4b5f83ce6d907762fda1cfd229ab2ba8dab7"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Aug 31 15:45:17 2018 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Sep 26 16:58:52 2018 -0700"
      },
      "message": "payload_generator: Use actions to apply payload.\n\nVerity data is written by FilesystemVerifierAction(), so we need to\nuse the actions to apply payload correctly.\n\nBug: 28171891\nTest: brillo_update_payload verify\nChange-Id: I106053a6291282538008f7fbbaba0e6d14346770\n"
    },
    {
      "commit": "456853f95df07a8b87985395e8ce192a23aaa02b",
      "tree": "d37bfe0df2dc3b79e6aad402c00f612ff25cd509",
      "parents": [
        "f6b0daf427de7a407406f58a73978e774d3d4260",
        "20262ad1d3f8d620b7227fd8d9e13938243ce32f"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Mon Aug 13 15:41:43 2018 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Mon Aug 13 16:21:46 2018 -0700"
      },
      "message": "Merge remote-tracking branch \u0027aosp/upstream-master\u0027 into aosp/master.\n\nThe following change is reverted because aosp has newer libchrome.\n71818c84 Partially Revert 2b9d241\n\nAdded stub override for ReportInternalErrorCode().\nFixed RunPosinstallAction typo.\n\nBug: 112326236\nTest: update_engine_unittests\nChange-Id: Ieaae0eef425cbb1278067a48aa19b14ed056317a\n"
    },
    {
      "commit": "5ec5bd1fe2834ce417d335901d5eb7cc888bf1e3",
      "tree": "2cd129a24515ea27d38352791ca6bd71364eaaa2",
      "parents": [
        "b432db81adf13012d4f1292162691b87726679bd"
      ],
      "author": {
        "name": "Tudor Brindus",
        "email": "tbrindus@chromium.org",
        "time": "Wed Jul 11 11:02:44 2018 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Tue Jul 17 21:52:51 2018 -0700"
      },
      "message": "brillo_update_payload: Clean up arguments in calls to delta_generator\n\nThis commit normalizes using -- instead of a mix of - and -- prefixes to\ndelta_generator invocations. delta_generator accepts both.\n\nBUG\u003dchromium:862679\nTEST\u003dran commands\n\nChange-Id: I5688e8dc11b6d120ae785ebab76dac9f306b845c\nReviewed-on: https://chromium-review.googlesource.com/1133706\nCommit-Ready: Tudor Brindus \u003ctbrindus@chromium.org\u003e\nTested-by: Tudor Brindus \u003ctbrindus@chromium.org\u003e\nReviewed-by: Amin Hassani \u003cahassani@chromium.org\u003e\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "b432db81adf13012d4f1292162691b87726679bd",
      "tree": "04fb76145778f9fb6bab41c03ac377a94f1c2101",
      "parents": [
        "5c8c627ba7e5f9e291cd9f060e04c9b4bb4e759c"
      ],
      "author": {
        "name": "Tudor Brindus",
        "email": "tbrindus@chromium.org",
        "time": "Fri Jun 29 13:13:27 2018 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Tue Jul 17 21:52:51 2018 -0700"
      },
      "message": "brillo_update_payload: Add paycheck.py-based check command\n\nThis commit adds a `check` command to brillo_update_payload that is\nanalogous to the existing `verify` command, but uses paycheck.py as a\nverification tool instead of delta_generator.\n\nBUG\u003dchromium:794404\nTEST\u003dresults from `check` match results from `verify`\n\nChange-Id: Ia0f4ca8508b16abaf538e38c478655cd40cbfc19\nReviewed-on: https://chromium-review.googlesource.com/1121100\nCommit-Ready: Tudor Brindus \u003ctbrindus@chromium.org\u003e\nTested-by: Tudor Brindus \u003ctbrindus@chromium.org\u003e\nReviewed-by: Amin Hassani \u003cahassani@chromium.org\u003e\nReviewed-by: Sen Jiang \u003csenj@chromium.org\u003e\n"
    },
    {
      "commit": "dda79e2d9b306c408172d8aacb2ff3459e3bac6a",
      "tree": "7a94691ff0b0b8ddcea03f0394610140d0fa8a20",
      "parents": [
        "acd20391ab989971725a8b25ca9a08e1d5a7a3c8"
      ],
      "author": {
        "name": "Tudor Brindus",
        "email": "tbrindus@chromium.org",
        "time": "Thu Jun 28 18:03:21 2018 -0700"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Mon Jul 09 17:59:25 2018 -0700"
      },
      "message": "delta_generator: Use \"kernel\" and \"root\" partition names internally\n\nThis commit abandons using \"boot\" and \"system\" names internally for\nmajor version 1 payloads in favor of \"kernel\" and \"root\", which is\nsymmetrical with what\u0027s used in major version 2 payloads.\n\nBUG\u003dchromium:794404\nTEST\u003dno errors running brillo_update_payload with FORCE_MAJOR_VERSION\n  set to either 1 or 2; paycheck.py \u003cgenerated payload\u003e --check and\n  printing partition names in protobuf confirms correct names are\n  generated\n\nChange-Id: I396274812d5586e19a021c05b8b7a415aac976bf\nReviewed-on: https://chromium-review.googlesource.com/1119573\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": "df3a65f1472c502b1ade00299f47dfa51d994cca",
      "tree": "6fe952cc741bef39398e9d3b7b8ce6dc57408a96",
      "parents": [
        "4a196bae587daf3f27c5a95d2f32821655f098db",
        "00751159dfe09c717c0922cabaa4cf2aa7def191"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Thu Apr 19 21:56:36 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 19 21:56:36 2018 -0700"
      },
      "message": "Additionally look for partition files under RADIO/ in target_files zip. am: 07216d6fd7\nam: 00751159df\n\nChange-Id: I18d6a3f34c8436aec20fc557a35943adfc14ca83\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": "e08cdbf2e13d91d433ad13dd3f24336ca8b009d1",
      "tree": "057fb1184724bee5ed2c3765c15ab0df04e72e5d",
      "parents": [
        "5c62b9dad72a153aa07b5cff355f8dd6e31a7447",
        "c4b29b8f794f412a23f38170de8aa33014e34baf"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Oct 27 20:05:01 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Oct 27 20:05:01 2017 +0000"
      },
      "message": "Remove duplicates in ab_partitions.txt am: 34c711a0bd\nam: c4b29b8f79\n\nChange-Id: I4eb223f5eac637d5f7f07ab83187b039191ecac4\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": "8e768e9359d01008b286db1f6c54a6c3972a56b9",
      "tree": "0cae4fb21b0769cca98fb3f511a53a609e8fe3b6",
      "parents": [
        "9ae5f7f85f10997e8a3af2e2afa27891c05fbac7"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Jun 28 17:13:19 2017 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Oct 24 15:11:43 2017 -0700"
      },
      "message": "Add maximum timestamp to the payload.\n\nAdded a new field max_timestamp in the protobuf, from now on\nupdate_engine will reject any payload without this field.\nIf the OS build timestamp is newer than the max_timestamp, the payload\nwill also be rejected to prevent downgrade.\n\nBug: 36232423\nTest: update_engine_unittests\n\nMerged-In: Ib20f5f35aaf41165013bada02bc8720917358237\nChange-Id: Ib20f5f35aaf41165013bada02bc8720917358237\n(cherry picked from commit 5011df680621eb477cad8b34f03fba5b542cc2f9)\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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    }
  ]
}
