)]}'
{
  "log": [
    {
      "commit": "ce90f4462dda5b15ec8abeb949a95d99e2f51f08",
      "tree": "8e886c1911c9c672c72f1dae4134272096c392fd",
      "parents": [
        "50e24f437da9f47f97315dc9e11b2ba20a3dd829"
      ],
      "author": {
        "name": "Casey Dahlin",
        "email": "sadmac@google.com",
        "time": "Mon Jan 25 16:55:28 2016 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Jan 27 21:52:20 2016 -0800"
      },
      "message": "Remove unused dependencies in the client.\n\nThe update_engine_client binary doesn\u0027t depend on a particular backend\nanymore, since the client library hides all the IPC. This CL removes\nthe backend-scpecific dependencies from update_engine_client and\nrelies on the ones specified in the libupdate_engine_client.\n\nBug: 25908638\nTEST\u003d`mmma system/update_engine` on brillo-eng and aosp_arm-eng.\nTEST\u003demerge-link update_engine\n\nChange-Id: Idffb9393eefadeb89eff8e44d07209dac4078035\n"
    },
    {
      "commit": "50e24f437da9f47f97315dc9e11b2ba20a3dd829",
      "tree": "b96651cee67194aa4aad0d9a01da0ad079866d90",
      "parents": [
        "40892497a9b1ea124058baf09f5f2873a15cb696"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Jan 27 20:48:54 2016 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Jan 28 04:54:39 2016 +0000"
      },
      "message": "Remove warning about update-payload-key redefined.\n\nAndroid defines a rule for installing the file\n/etc/update_engine/update-payload-key.pub.pem for non-Brillo targets in\nthe build/core/Makefile, which overrides the rule defined here but\ngenerates a warning. This CL restricts the brillo-update-payload-key to\nBRILLO targets only, avoiding the double definition.\n\nBug: None\nTEST\u003d`make dist` doesn\u0027t show the warning anymore.\n\nChange-Id: I42fa8970767858af12325e65a4ea418f8c1fcc11\n"
    },
    {
      "commit": "40892497a9b1ea124058baf09f5f2873a15cb696",
      "tree": "80dc1b6de159d28335f56bf96242cd8d9e31c9b6",
      "parents": [
        "aabd81eaaf49c4f20d16e4404162e129a4fc4b1c"
      ],
      "author": {
        "name": "Casey Dahlin",
        "email": "sadmac@google.com",
        "time": "Mon Jan 25 16:55:28 2016 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Jan 27 21:20:04 2016 +0000"
      },
      "message": "Make client use binder interface on brillo\n\nTEST\u003dVerified status and update commands\nBug: 25908638\n\nChange-Id: I7994de41001b4e116bffa539f23f1344ab1deae9\n"
    },
    {
      "commit": "aabd81eaaf49c4f20d16e4404162e129a4fc4b1c",
      "tree": "522fafe31915551cb2a00eae3882e9ea9b540819",
      "parents": [
        "71d7c214a3944cfa28a5358558d18269d25c11c7"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Tue Jan 26 20:03:08 2016 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Tue Jan 26 20:45:50 2016 -0800"
      },
      "message": "Remove duplicate dependencies in Android.mk.\n\nThis section of the Android.mk was added twice due to rebases in the\ndaemon CLs.\n\nBug: None\nTEST\u003d`mma` with USE_WEAVE\u003d0 and 1.\n\nChange-Id: I6a634d0d251cfb2cabcdef9d37420e9a3e0ba914\n"
    },
    {
      "commit": "71d7c214a3944cfa28a5358558d18269d25c11c7",
      "tree": "381d59f401f55c23db0fa1fc4332b77b5b262f78",
      "parents": [
        "e97b39c4140af015f5a2939808cf8ee39bde43a2"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Jan 22 11:54:20 2016 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Mon Jan 25 22:24:02 2016 +0000"
      },
      "message": "Re-land: Compile libupdate_engine_client even when dbus is disabled.\n\nThis patch enables libupdate_engine_client with the right backend\neven when dbus is disabled.\n\nBug: 25908638\nTEST\u003d`m` on edison-eng and aosp_arm-eng\n\nChange-Id: I929d9bfce0392d1663a569f47cf08ce83030354b\n"
    },
    {
      "commit": "e97b39c4140af015f5a2939808cf8ee39bde43a2",
      "tree": "e14d0d6d33b23ade34eb54462f03627f7c239362",
      "parents": [
        "c003790a466ef06f82af3ebff67da7fcd019f967"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Jan 20 13:22:17 2016 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Mon Jan 25 22:24:02 2016 +0000"
      },
      "message": "Implement Android UE daemon using brillo::Daemon.\n\nThe setup logic for Brillo and Android devices is very similar despite\nthe differences in the daemon logic and exposed service interface.\nThis patch reuses the brillo::Daemon derived class and the main()\nfunction from Brillo to implement the daemon and service setup in\nAndroid as well.\n\nIn addition, the Chromium OS build now defines the __CHROMEOS__ macro\nto make the code behave the same way as in the Brillo case.\n\nBug: 25631949\nTEST\u003d`mmma system/update_engine` on edison-eng and aosp_arm-eng\n\nChange-Id: I0f9690264e0822ef7e71318c73c2f16eda99e07c\n"
    },
    {
      "commit": "c003790a466ef06f82af3ebff67da7fcd019f967",
      "tree": "b630d3cb0f95a1e7e2112e6e281e5c05ee3d7eec",
      "parents": [
        "0057daa5dd6adc2db3b5524cfb3e66011c69c152"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Sat Jan 23 17:29:02 2016 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Sat Jan 23 18:59:50 2016 -0800"
      },
      "message": "Fix missing dependencies when weave is disabled.\n\nWhen compiling binder (but now weave) we were missing some\ndependencies. This patch adds those to the right place and propagates\nthem to the executables using those.\n\nBug: 25908638\nTEST\u003d`m` on edison-eng with BRILLO_USE_BINDER\u003d0\n\nChange-Id: I2ddf86dc2f33ff87f079e7776da8256454f36ca2\n"
    },
    {
      "commit": "0057daa5dd6adc2db3b5524cfb3e66011c69c152",
      "tree": "6345889c4908458873848ecace2509ea1b3ad3d7",
      "parents": [
        "7ff02cf06d1167ca4fa3deb1fb6379acc4e51b0d"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Sat Jan 23 16:22:50 2016 -0800"
      },
      "committer": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Sat Jan 23 16:22:50 2016 -0800"
      },
      "message": "update_engine: Fix build breaks in unit tests on Chrome OS\n\nSome unit tests that compile only on Chrome OS were broken.\n\nChange-Id: I47b27ec49f11137e7549da0b7a8d2d6d9fef768c\n"
    },
    {
      "commit": "7ff02cf06d1167ca4fa3deb1fb6379acc4e51b0d",
      "tree": "dba1373c70260408a164866665c7cc96325dfff7",
      "parents": [
        "7067445ffbfb87e7b6b07c0a84528f915141e147"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Jan 22 11:06:51 2016 -0800"
      },
      "committer": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Sat Jan 23 21:44:23 2016 +0000"
      },
      "message": "Add back weaved dependencies accidentally removed.\n\nWeave support requires libbinderwrapper and libbrillo-binder,\naccidentally removed in CL:197821.\n\nBug: None\nTEST\u003d`mma` with \"binder\" disabled.\n\nChange-Id: I41c997e95d38f2b70ab322c3ffe9fa3e27a203fa\n"
    },
    {
      "commit": "7067445ffbfb87e7b6b07c0a84528f915141e147",
      "tree": "136e7775b36bc94861a9b580a2b55e3cc5719b4c",
      "parents": [
        "bdd765e3157a2b04265dcdab0d7a55e747924555"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Sat Jan 23 21:09:11 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jan 23 21:09:23 2016 +0000"
      },
      "message": "Revert \"Compile libupdate_engine_client even when dbus is disabled.\"\n\nThis reverts commit e66cb48c5f2d141e22d9b5942e85cc35e7b0c636.\n\nChange-Id: I2d9d8b98b8af68016fb7b5383dd71cbb285096a2\n"
    },
    {
      "commit": "bdd765e3157a2b04265dcdab0d7a55e747924555",
      "tree": "e7e875ef486ec1bb72a166a5acc9c7e240c17f27",
      "parents": [
        "ce360bb3e2fa528cddded4e1cfc359c9e80b4970"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Sat Jan 23 21:07:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jan 23 21:07:24 2016 +0000"
      },
      "message": "Revert \"Implement Android UE daemon using brillo::Daemon.\"\n\nThis reverts commit c180400937eac75e8b7119f68d44593713dd4557.\n\nThis breaks both AOSP and Chrome OS\n\nChange-Id: Ie9686a4d03a8fd53a614ed1706e3268918c414fb\n"
    },
    {
      "commit": "ce360bb3e2fa528cddded4e1cfc359c9e80b4970",
      "tree": "a906d83330690bab2012cb62fb159d4d2d1805f1",
      "parents": [
        "a3e8746e75e0d740ac1e7b58da86fad2e619b3a9"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Sat Jan 23 21:05:16 2016 +0000"
      },
      "committer": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Sat Jan 23 21:05:16 2016 +0000"
      },
      "message": "Revert \"update_engine: Fix compile errors on Chrome OS\"\n\nThis reverts commit a3e8746e75e0d740ac1e7b58da86fad2e619b3a9.\n\nChange-Id: If6cc797fbb93a0ba2365191ecd52f2fba9df92f8\n"
    },
    {
      "commit": "a3e8746e75e0d740ac1e7b58da86fad2e619b3a9",
      "tree": "b1783f7d5f2f0032e446313780f9cc08f05aabf1",
      "parents": [
        "e66cb48c5f2d141e22d9b5942e85cc35e7b0c636"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Sat Jan 23 11:39:30 2016 -0800"
      },
      "committer": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Sat Jan 23 11:39:30 2016 -0800"
      },
      "message": "update_engine: Fix compile errors on Chrome OS\n\nSome members of update engine\u0027s Daemon class was declared only for\n__BRILLO__ but used in Chrome OS (where USE_DBUS is defined) resulting\nin build errors. Fixing those.\n\nChange-Id: I8b59aa43be2cc906c51b7376029239e4e5e4350e\n"
    },
    {
      "commit": "e66cb48c5f2d141e22d9b5942e85cc35e7b0c636",
      "tree": "a906d83330690bab2012cb62fb159d4d2d1805f1",
      "parents": [
        "c180400937eac75e8b7119f68d44593713dd4557"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Jan 22 11:54:20 2016 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Jan 22 11:54:20 2016 -0800"
      },
      "message": "Compile libupdate_engine_client even when dbus is disabled.\n\nThis patch enables libupdate_engine_client with the right backend\neven when dbus is disabled.\n\nBug: None\nTEST\u003d`m` on edison-eng and aosp_arm-eng\n\nChange-Id: Ifc6293cc748575800c923f5537c0865463101f32\n"
    },
    {
      "commit": "c180400937eac75e8b7119f68d44593713dd4557",
      "tree": "d5f19a8618222f20a38c415d22d9686fd41b50b0",
      "parents": [
        "78a954ffae03c486324331a016160c8d9b6481d0"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Jan 20 13:22:17 2016 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Jan 22 18:36:46 2016 +0000"
      },
      "message": "Implement Android UE daemon using brillo::Daemon.\n\nThe setup logic for Brillo and Android devices is very similar despite\nthe differences in the daemon logic and exposed service interface.\nThis patch reuses the brillo::Daemon derived class and the main()\nfunction from Brillo to implement the daemon and service setup in\nAndroid as well.\n\nBug: 25631949\nTEST\u003d`mmma system/update_engine` on edison-eng and aosp_arm-eng\n\nChange-Id: I15b2c2990a8055619dd407b2996ea92216c602a2\n"
    },
    {
      "commit": "78a954ffae03c486324331a016160c8d9b6481d0",
      "tree": "136e7775b36bc94861a9b580a2b55e3cc5719b4c",
      "parents": [
        "a93cd53c4f8ab8cb926ed9223373567ebbf45cb6"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Jan 21 20:32:40 2016 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Jan 21 20:53:38 2016 -0800"
      },
      "message": "Set default USE flags values as local variables.\n\nSetting variables such as BRILLO_USE_FOO can leak to other makefiles,\nso the local default value set by another project can affect the\ndefault behavior. This patch defines local variables with the local\ndefault value for the USE flags.\n\nAlso, minor fix to the default value for \"binder\" in the Chromium OS\nside.\n\nBug: None\nTEST\u003dmmma system/update_engine\n\nChange-Id: I47e1300efa1d93ed91c78bef41481a327753483c\n"
    },
    {
      "commit": "a93cd53c4f8ab8cb926ed9223373567ebbf45cb6",
      "tree": "f057d6c6b7de344c6bb36c15e1ba37ad13750e10",
      "parents": [
        "8c21b354da6dddb11dda6f5c0631a88710331da2"
      ],
      "author": {
        "name": "Casey Dahlin",
        "email": "sadmac@google.com",
        "time": "Thu Jan 14 16:55:11 2016 -0800"
      },
      "committer": {
        "name": "Casey Dahlin",
        "email": "sadmac@google.com",
        "time": "Thu Jan 21 19:03:53 2016 -0800"
      },
      "message": "Introduce brillo binder interface\n\nThis is more or less an exact analogue of the DBus interface, but\navailable over binder. We also add support to the client library and let\nupdate_engine_client build with binder. We don\u0027t yet support an\nequivalent of the status signal/the HandleStatusUpdate method. That will\ncome in a future CL.\n\nBug: 25908638\nTEST\u003dVerified update_engine_client functionality\n\nChange-Id: Ic793619c8019b0d50aa184e0f592b6a9ab71e0b0\n"
    },
    {
      "commit": "8c21b354da6dddb11dda6f5c0631a88710331da2",
      "tree": "29193a4ff0807bdeceab23a77d6e70f0c5a6ba4a",
      "parents": [
        "a91cc489d2754563cc3776a2d53543b890ab6f22"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Jan 20 16:38:33 2016 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Jan 21 14:59:59 2016 -0800"
      },
      "message": "Move current daemon destruction logic to RealSystemState.\n\nThe UpdateAttempter requires to release the dbus_adaptor pointer\nbefore detruction to avoid sending messages over a dead DBus connection.\nThis patch moves this logic out of the UpdateEngineDaemon class.\n\nBug: None\nTEST\u003dmm; Tested on Brillo.\n\nChange-Id: I8939c5a2940f435e2e8f574910e0fa2674dc725f\n"
    },
    {
      "commit": "a91cc489d2754563cc3776a2d53543b890ab6f22",
      "tree": "c2334a75fee190c3eef3971ccb39d4346828dd4f",
      "parents": [
        "0103c36caa2e38e034e0d22185736b9ccfb35c58"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Jan 20 16:51:56 2016 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Jan 21 14:59:31 2016 -0800"
      },
      "message": "Convert UpdateEngineDaemon to a brillo:Daemon.\n\nTo help conditionally compile DBus support, we replace the\nbrillo:DBusDaemon super class with a brillo::Daemon so the DBus\ninitialization can be skipped.\n\nBug: 26690086\nTEST\u003dmma; deployed on edison.\n\nChange-Id: I2d85feacb28b61e76ffbabc526371c29fac3a424\n"
    },
    {
      "commit": "0103c36caa2e38e034e0d22185736b9ccfb35c58",
      "tree": "8724a008f71586acf1b33c67fc972ba15b742cf2",
      "parents": [
        "3317b88ea8006e9d2fae5dbb3abd7187bacdeefa"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Wed Jan 20 07:56:15 2016 -0800"
      },
      "committer": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Wed Jan 20 09:34:58 2016 -0800"
      },
      "message": "update_engine: Update libchrome APIs to r369476\n\nThe new libchrome has been ported from Chromium and some APIs have\nchanged. Make necessary changes at call sites.\n\nChange-Id: I42e65bda7f1dbdf6f6e0ebf356d2cfea6b729193\n"
    },
    {
      "commit": "3317b88ea8006e9d2fae5dbb3abd7187bacdeefa",
      "tree": "f1ac4040efc0d91d78b8a73be3026ba57ceeefb4",
      "parents": [
        "690810b2a0c45b6e4c0c2257c6e7c189cf3bba25"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Jan 08 17:48:57 2016 +0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 20 07:18:56 2016 +0000"
      },
      "message": "Add IMGDIFF operation to protobuf.\n\nThis operation will use imgdiff in Android to handle diff of gzips.\n\nTest: mma\nBug: 26456666\n\nChange-Id: I4757e2cd8ae1f92ae624bf321240de637dbcd016\n"
    },
    {
      "commit": "690810b2a0c45b6e4c0c2257c6e7c189cf3bba25",
      "tree": "a3e3a1fa840a930cf82b9a7b7cac754e7efbd460",
      "parents": [
        "e78e3fb71d9b1586482aa43514c0d6625c0ae197"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Tue Jan 19 16:11:40 2016 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Tue Jan 19 16:16:50 2016 -0800"
      },
      "message": "update_engine_client: Prevent hanging the client.\n\nWe can\u0027t call QuitWithExitCode() from the OnInit() method. This CL\ndelays the flag processing until the initialization of the daemon is\ndone.\n\nOther minor linter changes included in this CL.\n\nBug: None\nTEST\u003d`update_engine_client --status` works.\n\nChange-Id: I495397015b5d31dcd2cc9e8de52b8e607c5bd7c7\n"
    },
    {
      "commit": "e78e3fb71d9b1586482aa43514c0d6625c0ae197",
      "tree": "3bcfadfd44a4ed7bfd24740520edea1b77a38af2",
      "parents": [
        "40e84df4331135d190ac96a0d968f36131337824"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Mon Jan 04 17:57:53 2016 -0800"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Tue Jan 19 13:21:03 2016 -0800"
      },
      "message": "Add bind() function to the binder interface.\n\nUpdate engine may have started and done some work before we call\napplyPayload(). Add a new binder function bind() to register a\ncallback function that communicates with the update engine.\n\nBug: None\nTest: \u0027mmma system/update_engine\u0027.\nChange-Id: Iafcdb250904b44f9526be15f0381690df50805a2\n"
    },
    {
      "commit": "40e84df4331135d190ac96a0d968f36131337824",
      "tree": "672627a7de9f0335331cc3804b2bbc6c748966d9",
      "parents": [
        "194414134a954d921c8063610304c4fd21f19df2"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Jan 13 16:33:14 2016 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Jan 13 16:33:14 2016 -0800"
      },
      "message": "Update the weave state after changing the tracking channel.\n\nThe tracking channel is reported to weave as part of the state, so we\nneed to force an update of the weave state when the tracking channel\nis changed.\n\nBug: 24386758\nTEST\u003ddeployed on edison.\n\nChange-Id: I11705603f893a046bda3907459701d31db83a3c5\n"
    },
    {
      "commit": "194414134a954d921c8063610304c4fd21f19df2",
      "tree": "e43491e6ba7937088283516f30cf9921ac125c24",
      "parents": [
        "97c870518ce1149b32966d98ebfe93f3eb5d1fef"
      ],
      "author": {
        "name": "Casey Dahlin",
        "email": "sadmac@google.com",
        "time": "Thu Jan 07 14:56:40 2016 -0800"
      },
      "committer": {
        "name": "Casey Dahlin",
        "email": "sadmac@google.com",
        "time": "Wed Jan 13 12:58:28 2016 -0800"
      },
      "message": "Initialize DBus in CreateInstance\n\nWe now expect the bus to be ready to go as soon as CreateInstance is\nfinished. The downside is that CreateInstance can now fail when the bus\nisn\u0027t available, so we must handle nullptr returns.\n\nChange-Id: I1e8d20f8d85d93e7e8b5e93ee1e5ba6043a347c4\nTest: Verified commands continue to work\nBug: 26233663\n"
    },
    {
      "commit": "97c870518ce1149b32966d98ebfe93f3eb5d1fef",
      "tree": "e0dcbcb0f53316038ac168a3469af8f5d90942e9",
      "parents": [
        "c7cc45e4ac9ca1f4693dfc93e4ff203992d446a1"
      ],
      "author": {
        "name": "Casey Dahlin",
        "email": "sadmac@google.com",
        "time": "Wed Jan 06 14:33:55 2016 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 12 22:17:12 2016 +0000"
      },
      "message": "Introduce status handlers and use them in client\n\nWe introduce a StatusUpdateHandler class which can be overridden to\nprovide a method with which to react to status updates. This replaces\nmanual dbus logic in several places in update_engine_client with a\nconsistent interface for asynchronously handling status updates.\n\nChange-Id: Idca4229de82074fb7a87a315b45dd0292c1b1f16\nTest: Confirmed --update blocks and resumes correctly\nBug: 26233663\n"
    },
    {
      "commit": "c7cc45e4ac9ca1f4693dfc93e4ff203992d446a1",
      "tree": "ab488afa53ac01471b3d07287dcffc35142dea06",
      "parents": [
        "210591e9a4f9628eeb3432f5d6cdb759755273e2"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Thu Jan 07 10:46:26 2016 -0800"
      },
      "committer": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Fri Jan 08 13:51:15 2016 -0800"
      },
      "message": "update_engine: Use helper Command::AbortWithCustomError() method\n\nweaved now provides new variants of Command::Abort() that allow\nto specify the error information as brillo::Error or binder::Status.\n\nCommand::AbortWithCustomError(brillo::Error*) also makes sure the error\ncode is prepended with \"_\", so no need to add that in OnTrackChannel().\n\nBUG: 25875613\nChange-Id: Ic9b2cb6f6ef092b85883ebb5bf5e4c936aa770f0\n"
    },
    {
      "commit": "210591e9a4f9628eeb3432f5d6cdb759755273e2",
      "tree": "704bb1a8274bf51acd01969a10220499fa2db697",
      "parents": [
        "e119e6ab7edb7226508d49a43b196b44f0c54111"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Thu Jan 07 10:08:26 2016 -0800"
      },
      "committer": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Fri Jan 08 13:51:15 2016 -0800"
      },
      "message": "update_engine: Split out the trait name from the command name\n\nweaved::Service::AddCommandHandler() and SetStateProperty() now\nexpect the trait name as a separate argument.\n\nBUG: 26443877\nChange-Id: I92fa8acf7edf431789ee97cf2dcd198506a73725\n"
    },
    {
      "commit": "e119e6ab7edb7226508d49a43b196b44f0c54111",
      "tree": "59a45ef08cdccbf50e6cc9a29fd68a05df8bc9ca",
      "parents": [
        "042f8a1df59750921598394bd145c17950782247"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Wed Jan 06 17:13:11 2016 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 08 21:50:05 2016 +0000"
      },
      "message": "update_engine: Switch to use Binder interface to weaved\n\nNow that weaved provides a binder interface for its IPC, switch\nto using it instead.\n\nBug: 23782171\nChange-Id: I0b981b366a7dc42aabc9b61c4e9f90e26a2d74b4\n"
    },
    {
      "commit": "042f8a1df59750921598394bd145c17950782247",
      "tree": "648ce4f9d7979d8066036212b7ccb0c1f8ab430f",
      "parents": [
        "f7ead8100211e7a285b48b52f4a235647274ab6e"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Thu Jan 07 16:52:14 2016 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 08 20:12:38 2016 +0000"
      },
      "message": "Add a rule for brillo_update_payload.\n\nWith the changes to build/core/Makefile, the script will be installed to\n$(HOST_OUT_EXECUTABLES) to generate the payload for A/B update.\n\nBug: 25715402\nTest: `mmma system/update_engine` on an Android target on Linux.\nChange-Id: Ia3fadae1d4c4b7ba65dc40f68440728e50a2d984\n"
    },
    {
      "commit": "f7ead8100211e7a285b48b52f4a235647274ab6e",
      "tree": "adc7a4b7f229ebbcd09e2030b27e272c17619a2a",
      "parents": [
        "d81584673de3c888bde40b473bb2685ba1c5cc2d"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Oct 23 17:37:27 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Jan 06 14:53:24 2016 -0800"
      },
      "message": "Implement update_engine weave commands\n\nThe new WeaveServiceInterface abstracs the registration and interaction\nwith weave whenever present. The compilation and usage of weave is\nbased on the BRILLO_USE_WEAVE flag.\n\nWhen enabled, update_engine registers the \"_updater\" component with\nmethods to force-check for an update and change channels.\n\nBug: 24386758\nBug: 24386768\nTest: Deployed on edison, weave commands and state available online.\n\nChange-Id: Ic49111772e123b8a2b1971da92fe65785f186ccd\n"
    },
    {
      "commit": "d81584673de3c888bde40b473bb2685ba1c5cc2d",
      "tree": "c04f528d5908291bbb97bf5da603febbca4b11d1",
      "parents": [
        "ab5bd668f6be600a8cceb8772e426c0aa902a5e1"
      ],
      "author": {
        "name": "Casey Dahlin",
        "email": "sadmac@google.com",
        "time": "Tue Jan 05 15:20:19 2016 -0800"
      },
      "committer": {
        "name": "Casey Dahlin",
        "email": "sadmac@google.com",
        "time": "Tue Jan 05 15:20:19 2016 -0800"
      },
      "message": "Add missing override to GetPrevVersion\n\nThis should fix building on ChromeOS\n\nChange-Id: I52c343280bd4a3cbd42655f913d597a1ad93f19b\nTest: Build succeeds\nBug: None\n"
    },
    {
      "commit": "ab5bd668f6be600a8cceb8772e426c0aa902a5e1",
      "tree": "05ad6d01faf841fe9aac5d6be675698984d39a3a",
      "parents": [
        "02152c35c5b138f21b3bd9388559daea87f6f4c7"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Mon Dec 21 12:24:45 2015 -0800"
      },
      "committer": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Tue Dec 29 16:27:50 2015 -0800"
      },
      "message": "update_engine: Disable RTTI\n\nThere is no longer a reliance on RTTI in libbrillo, so disable RTTI\nin the rest of Brillo codebase.\n\nBug: 26292405\nChange-Id: Ice1a5787335182ad2aa9d16e393f104128331a2c\n"
    },
    {
      "commit": "02152c35c5b138f21b3bd9388559daea87f6f4c7",
      "tree": "b018a2b528540c009676f775151b140d84bed8f6",
      "parents": [
        "ef361136cea1e423dc462d2b347923ae60b2cf08"
      ],
      "author": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Mon Nov 23 18:42:25 2015 -0800"
      },
      "committer": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Mon Dec 28 14:41:55 2015 -0800"
      },
      "message": "Use GID \"wakelock\" to control access to kernel wakelock\n\nBug: 25864142\nChange-Id: I7128248d5ec87d21374998e818fb6b69441e4c5b\n"
    },
    {
      "commit": "ef361136cea1e423dc462d2b347923ae60b2cf08",
      "tree": "d3786b7e647e97bd886ce784477ae3a96b7ed633",
      "parents": [
        "87ab88e35fac5d3ded1c70c8911d307ec47a7db9"
      ],
      "author": {
        "name": "Casey Dahlin",
        "email": "sadmac@google.com",
        "time": "Thu Dec 17 13:02:37 2015 -0800"
      },
      "committer": {
        "name": "Casey Dahlin",
        "email": "sadmac@google.com",
        "time": "Thu Dec 17 13:56:25 2015 -0800"
      },
      "message": "Move all blocking client calls to libupdate_engine_client\n\nChange-Id: I27bc86ad2eef3a573c60fde1bb10b6b37af81c1c\nTest: Affected commands continue to work\nBug: 26233663\nSigned-off-by: Casey Dahlin \u003csadmac@google.com\u003e\n"
    },
    {
      "commit": "87ab88e35fac5d3ded1c70c8911d307ec47a7db9",
      "tree": "5b1af37ab1dbc955ca14a581ab42fe094ad3d6aa",
      "parents": [
        "dbd1711ad6dbd94f7dfd88a78caa5d5b69d61ed7"
      ],
      "author": {
        "name": "Casey Dahlin",
        "email": "sadmac@google.com",
        "time": "Wed Dec 16 17:58:05 2015 -0800"
      },
      "committer": {
        "name": "Casey Dahlin",
        "email": "sadmac@google.com",
        "time": "Thu Dec 17 13:49:34 2015 -0800"
      },
      "message": "Port all available calls to libupdate_engine_client\n\nThis is as far as the port can go without improving the library itself.\n\nChange-Id: I5d5dbf14b62746786364b2a7e1a9131d8ef7bfb1\nTest: All affected commands still signal the daemon on dragonboard\nBug: 26233663\n"
    },
    {
      "commit": "dbd1711ad6dbd94f7dfd88a78caa5d5b69d61ed7",
      "tree": "2ab5c2d30bf1edffc2c166f09bc87003991f8be7",
      "parents": [
        "e844c1a5604765bbddafa7e05f1143a27f136747"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu Dec 17 11:59:09 2015 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 17 20:39:15 2015 +0000"
      },
      "message": "Fix use of local-generated-sources-dir.\n\nFor a host module, you need to specify LOCAL_IS_HOST_MODULE (as well as\nLOCAL_MODULE and LOCAL_MODULE_CLASS) before\n$(call local-generated-sources-dir).\n\nBug: 26239768\nChange-Id: Ia164f8d0b99b64e21dc3f96fe55e34f2bdb33d23\n"
    },
    {
      "commit": "e844c1a5604765bbddafa7e05f1143a27f136747",
      "tree": "c048513e32adc24e1c419a4c9bf9c5c9c9e5fd4c",
      "parents": [
        "05e0e38c30824b727f3582c90258d9bb19cc3f47"
      ],
      "author": {
        "name": "Casey Dahlin",
        "email": "sadmac@google.com",
        "time": "Wed Dec 16 14:30:58 2015 -0800"
      },
      "committer": {
        "name": "Casey Dahlin",
        "email": "sadmac@google.com",
        "time": "Wed Dec 16 15:55:59 2015 -0800"
      },
      "message": "Port update_engine_client ResetStatus command to lib\n\nThis is the first step in getting update_engine_client completely off of\ndirect DBus calls\n\nTest: Ran --reset_status command and verified update_engine received the\n      signal.\nBug: 26233663\nSigned-off-by: Casey Dahlin \u003csadmac@google.com\u003e\n\nChange-Id: Iac54d890fd796f91a7813755d6061cf468255347\n"
    },
    {
      "commit": "05e0e38c30824b727f3582c90258d9bb19cc3f47",
      "tree": "686a3a3060403debef5e7591343ca53d136ceec1",
      "parents": [
        "5a4c5130390f7433aa725996ad95043a0554707c"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Mon Dec 07 20:18:16 2015 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Dec 12 05:23:26 2015 +0000"
      },
      "message": "Compile delta_generator for the host.\n\nBug: 24619596\nTEST\u003dmma on linux.\n\nChange-Id: Icccae2b938b4fdd698b177beee96ffb62e9f63ae\n"
    },
    {
      "commit": "5a4c5130390f7433aa725996ad95043a0554707c",
      "tree": "68f7d19a0d6a472cde9286feb5aa354cc1dfd575",
      "parents": [
        "e7ba31b9e8e5c34cdc8d6c84b0549d192023633b"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Dec 11 18:36:14 2015 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Dec 11 18:43:51 2015 -0800"
      },
      "message": "Fix UpdateAttempter unittests.\n\nThe passed nullptr references are now used during Init(). This patch\nfixes the unittests by properly initializing the UpdateAttempter\nunder test.\n\nBug: None\nTEST\u003dFEATURES\u003dtest emerge-link update_engine\nTBR\u003dgarnold@google.com\n\nChange-Id: I4c5fd979276775cc3ee92accbd2924b8508c4abd\n"
    },
    {
      "commit": "e7ba31b9e8e5c34cdc8d6c84b0549d192023633b",
      "tree": "1266e0d0f83f09bd21187f65b710484718da9f53",
      "parents": [
        "2f48c41147e001c5c02b16fdb453420c71453c87"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Dec 11 18:19:41 2015 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Dec 11 18:43:39 2015 -0800"
      },
      "message": "Fix BootControlChromeOS unittest references.\n\nThese references were not updated in the last CL.\n\nBug: None\nTEST\u003dFEATURES\u003dtest emerge-link update_engine\nTBR\u003dgarnold@google.com\n\nChange-Id: I293baa3b3ccc135829a9e0bdd533befb0283fa3f\n"
    },
    {
      "commit": "2f48c41147e001c5c02b16fdb453420c71453c87",
      "tree": "e7a33b22be3227af0b66586ac87b7d7a3e55c474",
      "parents": [
        "1b03f9f983a22fabb8d53e036abf1b192e7d5811",
        "6f7b22c69bef53d33ae2bbb80b6682ff7ea8006e"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Dec 11 16:09:16 2015 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Dec 11 16:10:34 2015 -0800"
      },
      "message": "Import brillo_update_payload from Chrome OS dev-utils.\n\nbrillo_update_payload was developed in Chrome OS\u0027 dev-utils repo. This\nCL merges it here to make it available from an AOSP checkout.\n\nBug: 25631934\nTEST\u003dFile is present on the checkout.\n\nChange-Id: Idc6eac200b4f725b103847c3f77260a25ea55a7b\n"
    },
    {
      "commit": "1b03f9f983a22fabb8d53e036abf1b192e7d5811",
      "tree": "748be77673163ad977d171a19e567cfd1681ac93",
      "parents": [
        "b09305e7e55d5375647ddf07538dc1a539923e3f"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Dec 09 00:38:36 2015 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Dec 11 21:17:54 2015 +0000"
      },
      "message": "Move hardware and boot_control implementation to libupdate_engine.\n\nThe implementations of the BootControlInterface and HardwareInterface\nare specific to the platform and use case. The delta_generator uses the\nDeltaPerformer in the libpayload_consumer to apply a payload to a set\nof partitions defined as local files, for example.\n\nThis patch move the platform implementations, not available when\nbuilding for the host back to the libupdate_engine.\n\nBug: 24619596\nTEST\u003dmma\n\nChange-Id: I16ab06c2e53dfd046e693bdb7310ec26a2d69054\n"
    },
    {
      "commit": "b09305e7e55d5375647ddf07538dc1a539923e3f",
      "tree": "53a74cde2335076950417f6bb10e13a63c8124ea",
      "parents": [
        "9bc7aaebc6390d10bb76a2c92521167da14ecbfa"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Dec 02 16:09:13 2015 -0300"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 11 21:16:07 2015 +0000"
      },
      "message": "Compile delta_generator and payload_consumer when \"dbus\" is disabled.\n\ndelta_generator and payload_consumer should not depend on any DBus\nlibrary. This patch now builds those even when \"dbus\" is disabled.\n\nBug: 25773375\nTEST\u003d`mma` on a target with DBus disabled.\n\nChange-Id: Ia44cb9eed847e6d2eeb43a12373929128ae67d1c\n"
    },
    {
      "commit": "9bc7aaebc6390d10bb76a2c92521167da14ecbfa",
      "tree": "fd502c995b7ff2fc8b67e902954857d54486cb92",
      "parents": [
        "f9874815ce2fc82b76930e8cfc19a0811231cff9"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Dec 09 20:43:42 2015 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Dec 09 20:48:11 2015 -0800"
      },
      "message": "Initialize the ChromeBrowserProxyResolver only once.\n\nThe ChromeBrowserProxyResolver instance was being initialized on every\nupdate check, making it register a listener for the proxy resolved\nsignal on each update, calling the callback multiple times.\n\nOnly the first time the callback is called will actually do something,\nand the rest of the calls will only log an error message and return.\n\nThis patch removes the error message by registering the callback only once.\n\nBug: None\nTEST\u003demerge-link update_engine; deployed on a link and ran several update checks.\n\nChange-Id: I8a64fdf168966a895080760b8a95f9d8bf27976c\n"
    },
    {
      "commit": "f9874815ce2fc82b76930e8cfc19a0811231cff9",
      "tree": "e20986ea0e21f569c519681a05e9f62caf958e20",
      "parents": [
        "889c65d1914ed8a151f451a2933fa94d6e577aa6"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Dec 08 16:11:48 2015 -0800"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Dec 08 18:51:56 2015 -0800"
      },
      "message": "Fix unittest in FilesystemVerifierActionTest.\n\nBug: 23182225\nTEST\u003dcros_workon_make update_engine --test\n\nChange-Id: I9e440fa4adc79e8a0b6426b9b7aefd0d4209699a\n"
    },
    {
      "commit": "889c65d1914ed8a151f451a2933fa94d6e577aa6",
      "tree": "9c09cd0b41dac07b2f7652282659c6701702a6fb",
      "parents": [
        "1ad42adc806890b3a42bb729435a5cee83ef4e33"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Nov 17 15:04:02 2015 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 07 22:30:16 2015 +0000"
      },
      "message": "Switch supported minor version to 3.\n\nBug: 23182225\nTEST\u003dcros_workon_make update_engine --test\n\nChange-Id: Ide798f89bd0e3f662d2deac96035780892bbfa08\n"
    },
    {
      "commit": "1ad42adc806890b3a42bb729435a5cee83ef4e33",
      "tree": "4e8b478a428e7917a02a19a8cd5bffcc0f0ec287",
      "parents": [
        "542c19bf271011913a9f352f58e140224c936736"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Nov 17 15:04:02 2015 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 07 22:29:52 2015 +0000"
      },
      "message": "Optional source filesystem verification in minor version 3.\n\nIn minor version 3, we use per-operation source hash to verify the source\ninstead of whole filesystem hash, but if target partition doesn\u0027t match,\nwe still need to check the source partition to see if it is the cause.\n\nBug: 23182225\nTEST\u003dApplied a minor version 3 delta payload.\nTEST\u003dcros_workon_make update_engine --test\n\nChange-Id: I1f32c292d2938540b63f086cf4988d64620702a5\n"
    },
    {
      "commit": "542c19bf271011913a9f352f58e140224c936736",
      "tree": "6dfbc767c2f92676b2f21dd1d0473833ffb46865",
      "parents": [
        "33e91e78bfe98c063b0c3b6d590976e275685686"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Dec 03 07:43:31 2015 -0300"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Dec 04 19:27:41 2015 -0800"
      },
      "message": "Remove SystemState references from DeltaPerformer.\n\nDeltaPerformer is used as part of the DownloadAction and had\nreferences to the global SystemState. The common references to\nBootControlInterface (to query the partitions based on the names\nfrom the payload) and the HardwareInterface (for dev-mode bits) are\nnow referenced directly from the DeltaPerformer. The calls to\nUpdateAttempter and PayloadState were moved to the\nDownloadActionDelegate since these calls are received by classes\noutside the payload_consumer.\n\nBug: 25773375\nTEST\u003dFEATURES\u003dtest emerge-link update_engine\n\nChange-Id: Id2e81d5ccf835cad22f03b069c681dcce104c456\n"
    },
    {
      "commit": "33e91e78bfe98c063b0c3b6d590976e275685686",
      "tree": "1912f6dbc00b546af84865eaf8da1e1b0b5df9db",
      "parents": [
        "2b4268c8f89d115b0895b3f0172f42c11d9b1d7c"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Tue Dec 01 18:26:08 2015 -0300"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Dec 04 19:27:34 2015 -0800"
      },
      "message": "Fix certificate checker callback lifetime.\n\nOpenSSL\u0027s SSL_CTX_set_verify() function allows us to set a callback\ncalled after certificate validation but doesn\u0027t provide a way to pass\nprivate data to this callback. CL:183832 was passing the pointer to the\nCertificateChecker instance using a global pointer, nevertheless the\nlifetime of this pointer was wrong since libcurl can trigger this\ncallback asynchronously when the SSL certificates are downloaded.\n\nThis patch converts the CertificateChecker into a singleton class and\nuses the same trick previously used to pass the ServerToCheck value\nusing different callbacks.\n\nBug: 25818567\nTest: Run an update on edison-userdebug; FEATURES\u003dtest emerge-link update_engine\n\nChange-Id: I84cdb2f8c5ac86d1463634e73e867f213f7a2f5a\n"
    },
    {
      "commit": "2b4268c8f89d115b0895b3f0172f42c11d9b1d7c",
      "tree": "fe41fd2a96b4a942a0165165a3abac0a09e2a521",
      "parents": [
        "ab49446e3d08dc8cf8928c3d3b6f292513af5566"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Dec 04 13:56:25 2015 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Dec 04 15:40:03 2015 -0800"
      },
      "message": "Fix crash on shutdown when update in progress.\n\nThe ActionProcessor destructor normally calls the ProcessingStop method\non the delegate. For the UpdateAttempter this call re-schedules a new\nupdate attempt on a half-destroyed update_attempter instance, crashing\nupdate_engine on SIGTERM when the ActionProcessor was running.\n\nThis patch inhibits the ActionProcessor from notifying the delegate of\nthe processor stopping when destroying the update_attempter instance.\nIt also fixes the declaration order of the dbus_adaptor_ and disables\nits usage during daemon shutdown.\n\nBug: 24989397\nTEST\u003dstart update-engine; (update_engine_client --update \u0026); sleep 6; stop update-engine; tail /var/log/update_engine.log\nTEST\u003dFEATURES\u003dtest emerge-link update_engine\n\nChange-Id: I0a40067f63e89759ff80c79cecb6f89b10dba0c2\n"
    },
    {
      "commit": "ab49446e3d08dc8cf8928c3d3b6f292513af5566",
      "tree": "9c41cd64943d7a6c23bcdb6e39ea1b31b5bdc2da",
      "parents": [
        "b15a0b8eaf18c9e9341706df9f4ab59ce595a67c"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Mon Nov 30 17:07:36 2015 -0300"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 02 06:44:19 2015 +0000"
      },
      "message": "Restrict update_engine SSL certs.\n\nupdate_engine connects over SSL only with Google servers, so we\nrestrict the list of SSL certificates to a smaller list, used by\nGoogle.\n\nBug: 25089263\nTest: mma\nChange-Id: I73dbbd18dd99a61fa3bd66dbb57d0ff1ab78160d\n"
    },
    {
      "commit": "b15a0b8eaf18c9e9341706df9f4ab59ce595a67c",
      "tree": "68e4ba79eb7b93e3dfbbd2c72ba305a64e05dfda",
      "parents": [
        "706a5abae125b8f5ba58a9b7e1e51570bbaa2089"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Nov 25 20:30:40 2015 -0300"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Nov 25 20:43:41 2015 -0300"
      },
      "message": "Remove SystemState from post-install step.\n\nThe post-install action only requires to mark the new slot as ready,\nfor which it was including a reference to the whole SystemState. This\npatch removes said dependency replacing it for just the\nBootControlInterface.\n\nBug: 25773375\nTEST\u003dFEATURES\u003dtest emerge-link update_engine; mma\n\nChange-Id: I814d47c138c7565e9a80f316f25e124adb0d9c4e\n"
    },
    {
      "commit": "706a5abae125b8f5ba58a9b7e1e51570bbaa2089",
      "tree": "7092c05c4faa50d46008fc263e4e0da75324fa56",
      "parents": [
        "c1c17b4ed6a3896b6343e737fd89682fa0c8436b"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Mon Nov 23 17:48:30 2015 -0300"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Nov 25 15:52:48 2015 -0300"
      },
      "message": "Remove SystemState dependency from HttpFetcher and InstallPlan.\n\nThe SystemState class is an aggregation of all the update_engine\nsingletons, making it easy to handle cross-dependencies between these\nsingletons. Nevertheless, since we split the code into a smaller\nlibpayload_consumer library we need to remove the global dependencies\non the SystemState class from this library and specialize those\ndependencies to the actual required class.\n\nBug: 25773375\nTEST\u003dFEATURES\u003dtest emerge-link update_engine; mma\n\nChange-Id: I8800157c969db6a8d168f33ac2c6aad4f34fa236\n"
    },
    {
      "commit": "c1c17b4ed6a3896b6343e737fd89682fa0c8436b",
      "tree": "90f539b1da6d5ead31a005d0445aabc666b114e4",
      "parents": [
        "9138ef59467bafa57baf42fbc15a5d1c3fef0586"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Mon Nov 23 03:53:15 2015 -0300"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Nov 25 15:52:16 2015 -0300"
      },
      "message": "Report Enum metrics from CertificateChecker.\n\nThe certificate checker was reporting a \"user action\" whenever an\nupdate check HTTPS connection or HTTPS payload download had an invalid\nHTTPS certificate or a valid one that was changed since the last\nconnection to the same server.\n\nThis patch sends an Enum metric for every HTTPS connection to check for\nand update or download the payload with one of the three options: an\ninvalid certificate, a valid one already seen or a valid but different\ncertificate.\n\nThis patch also moves these metrics to the metrics.{h,cc} module, where\nall the other metrics are reported, using an observer pattern in the\nCertificateChecker, needed to remove the dependency on the metrics\nlibrary from the libpayload_consumer.\n\nBug: 25818567\nTEST\u003dFEATURES\u003dtest emerge-link update_engine; mma;\n\nChange-Id: Ia1b6eb799e13b439b520ba14549d8973e18bcbfa\n"
    },
    {
      "commit": "9138ef59467bafa57baf42fbc15a5d1c3fef0586",
      "tree": "05ec0ed2155798d8a8108ce580a4f4549586b960",
      "parents": [
        "560927706bb5f66167a5aee4476822d1cc5232fe"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Sun Nov 22 15:13:59 2015 -0300"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Tue Nov 24 17:31:50 2015 -0300"
      },
      "message": "Remove unused includes.\n\nThese includes are not used anymore.\n\nBug: 25773375\nTEST\u003demerge-link update_engine; mma\n\nChange-Id: Ib6ab47d64b526e650208420f3355bb7b88beaec8\n"
    },
    {
      "commit": "560927706bb5f66167a5aee4476822d1cc5232fe",
      "tree": "b4cd14e40a3ba01f8407d5891f39f7578eab611c",
      "parents": [
        "9c12346d5dc18288153fce61e7ffd0bd8e507afc"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Mon Nov 23 14:41:00 2015 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 24 18:43:17 2015 +0000"
      },
      "message": "Add bspatch as a dependency of update_engine deamon.\n\nbspatch is used by update_engine for delta update.\n\nBug: 24478450\nTEST\u003dmake dist\n\nChange-Id: I448d3d7f64c8ca58ebf9689dfd06a595e9149da1\n"
    },
    {
      "commit": "9c12346d5dc18288153fce61e7ffd0bd8e507afc",
      "tree": "d0521ee67fa4846ea173e520242c0a25ea698ef9",
      "parents": [
        "22ad86121ba56c576bfcaa23e085dab881bd4ff5"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Nov 19 13:16:23 2015 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 24 18:42:44 2015 +0000"
      },
      "message": "Fix temporary directory path in Android.\n\nWe should use /data/misc/update_engine/tmp instead of /data/local/tmp.\n\nBug: 24478450\nTEST\u003dDelta update nolonger permission denied.\n\nChange-Id: I9a8096e602320195d30147971def5145bd82d775\n"
    },
    {
      "commit": "22ad86121ba56c576bfcaa23e085dab881bd4ff5",
      "tree": "1e2b920b17fc62a902a1a149aaab2fcb15325d4b",
      "parents": [
        "5bdc61b2d899e5f46aa0a89e9cd874d49caf77ba"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Nov 20 17:59:11 2015 -0300"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 24 17:42:10 2015 +0000"
      },
      "message": "Delete DownloadActionDelegate::SetDownloadStatus() method.\n\nThis method is only used by the caller to detect a programming error in\nthe DownloadAction (calling BytesReceived when not downloading) and log\na message. This patch removes the method from the delegate interface\nand makes sure it doesn\u0027t issue a call to BytesReceived when not\nactivelly downloading.\n\nBug: 25773375\nTEST\u003dFEATURES\u003dtest emerge-link update_engine\n\nChange-Id: I8ff5c53f1fd40c0777b3f6523703a8bee71c019d\n"
    },
    {
      "commit": "5bdc61b2d899e5f46aa0a89e9cd874d49caf77ba",
      "tree": "a0970edcc0df7cd58147802246e68f4b61023dfd",
      "parents": [
        "5029dbb61238eebbd2f94cd946afc2a6bd93bf69"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Mon Nov 23 19:46:26 2015 +0000"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Mon Nov 23 19:46:26 2015 +0000"
      },
      "message": "Revert \"Conditionally set dbus group in init rc.\"\n\nWe have dbus group added in commit f7b8cae2ef4fb79473aeede542c9d79a6b5b81c7.\n\nThis reverts commit 5029dbb61238eebbd2f94cd946afc2a6bd93bf69.\n\nChange-Id: Ib5c2dfa558c23525a6cfc45726cd3aa9dd6396da\n"
    },
    {
      "commit": "5029dbb61238eebbd2f94cd946afc2a6bd93bf69",
      "tree": "ddd3bdd98a9174d0dd52d40b878054f9d179b574",
      "parents": [
        "09af881b94a93641aa9860796ed0a302bf644861"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Thu Nov 19 10:46:15 2015 -0800"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Thu Nov 19 10:47:57 2015 -0800"
      },
      "message": "Conditionally set dbus group in init rc.\n\nChange-Id: I9958b56502ee5eecdb3ca279779c6a66774b88f5\n"
    },
    {
      "commit": "09af881b94a93641aa9860796ed0a302bf644861",
      "tree": "a0970edcc0df7cd58147802246e68f4b61023dfd",
      "parents": [
        "2ec4aab50fa8ed4afd9fa86a0125ed68674ebd01"
      ],
      "author": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Thu Nov 19 08:12:33 2015 -0800"
      },
      "committer": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Thu Nov 19 08:14:44 2015 -0800"
      },
      "message": "Enable rich status reporting for binder interface\n\nGenerated aidl code now requires services to return\nandroid::binder::Status objects from server interfaces. These objects\nallow services to report error conditions as exceptions in Java.\n\nBug: 25632204\nTest: Generated code compiles with updated aidl\n\nChange-Id: I588be72e35b6caaa31454ecde0f51544e1134ce9\n"
    },
    {
      "commit": "2ec4aab50fa8ed4afd9fa86a0125ed68674ebd01",
      "tree": "34f0f764b6f4cb1d6fed388b57a9d62970d8865d",
      "parents": [
        "cd60dcaab418204aa4c82218d08f0ed2091795f8"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Nov 13 15:04:03 2015 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 18 21:33:18 2015 +0000"
      },
      "message": "Verify operation source hash if present.\n\nVerify source for every operation that needs to read from source partition\nso that we can skip verifying the whole source partition before applying\nany operation.\n\nBug: 23182225\nTEST\u003dcros_workon_make update_engine --test\n\nChange-Id: I13e0b450574cee5ef892839ee703d93680531f72\n"
    },
    {
      "commit": "cd60dcaab418204aa4c82218d08f0ed2091795f8",
      "tree": "003b1daddbe6acc2388be32491f1497b16e93781",
      "parents": [
        "4218b7ec834a69cf1ad105848a9c4ff6edb9384f"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Nov 18 00:57:20 2015 -0300"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Nov 18 00:57:20 2015 -0300"
      },
      "message": "Fix update_engine build for non-Brillo targets.\n\nThis patch fixes the build for non-Brillo targets that have dbus\nenabled (the default for AOSP).\n\nBug: None\nChange-Id: I8225a25bfd73a1c8bc55a784dcc0624213e61d47\nTest: mmma system/update_engine on aosp_arm-eng and brillo targets\n"
    },
    {
      "commit": "4218b7ec834a69cf1ad105848a9c4ff6edb9384f",
      "tree": "598437dd7df5eec7473c730b730295dc0595d579",
      "parents": [
        "9e1eda984560c8aadd394f3c7c40d17b4dfe22ed"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Tue Nov 17 21:14:42 2015 -0300"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Tue Nov 17 22:12:56 2015 -0300"
      },
      "message": "Disable DBus dependent targets when \"dbus\" USE flag is not set.\n\nSome targets should not be build when DBus is not enabled, such as the\nupdate_engine_client, the generated DBus proxies and the DBus daemon.\n\nThis patch disables those headers and also temporary disables\nlibpayload_consumer and delta_generator on Android when the \"dbus\" USE\nflag is not set, since they depend on headers that still depend on\nDBus.\n\nBug: 25197634\nTest: `mmma system/update_engine` on an android target without dbus.\n\nChange-Id: Ic33dc52c2f910bd526b06663cdbd119a0b8cdfd9\n"
    },
    {
      "commit": "9e1eda984560c8aadd394f3c7c40d17b4dfe22ed",
      "tree": "e8547b7868ab94716bb31045f444590f7b978c8b",
      "parents": [
        "a2591795edb1a4f4c751347daab16c70daad1274"
      ],
      "author": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Mon Nov 16 15:23:37 2015 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Tue Nov 17 20:04:17 2015 -0300"
      },
      "message": "Add Binder service for update_engine\n\nBug: 25632204\nTest: Compiles, registers with the service manager on aosp_arm-eng\n\nChange-Id: Iaf67a37193958f0a11d9f3d320cd6e93cf6afbef\n"
    },
    {
      "commit": "a2591795edb1a4f4c751347daab16c70daad1274",
      "tree": "fcf201e5f2b7d2502337be9c711343b1842b7fb0",
      "parents": [
        "e67a8bb1176145395c94f15efe780fa2df955462"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Tue Nov 17 00:39:40 2015 -0300"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Tue Nov 17 00:52:42 2015 -0300"
      },
      "message": "Move metrics time helpers to metrics_utils.\n\nThe metrics module reports metrics periodically, for which it needs to\nkeep track of the duration since some events (for example, the update\nfinished). These helpers were in the common/utils.h, but they rely on\nthe global SystemState to access both Prefs and Clock.\n\nSince these helpers are specific to the metric reporting, this CL moves\nthem to the metrics_utils.h module.\n\nBug: 25197634\nTEST\u003dFEATURES\u003dtest emerge-link update_engine; mmma system/update_engine\n\nChange-Id: Ia48091adbdc56c339c69c86c91c5c01aa58c54fb\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": "e67a8bb1176145395c94f15efe780fa2df955462",
      "tree": "42c1936ea3656ce58cd58372165ba0e1e14c2d45",
      "parents": [
        "38429cf76aaac8c499004b6f537229a26b381602"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Nov 12 14:58:58 2015 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Nov 12 17:14:53 2015 -0800"
      },
      "message": "Fix mtd_file_descriptor includes.\n\nmtd_file_descriptor.cc included a file that was moved to the common/\ndirectory.\n\nBug: 25197634\nTest: USE\u003dmtd FEATURES\u003dtest emerge-link update_engine\n\nChange-Id: I8652e8afb66f5e008ec4a5facc2a4e77e5991d02\n"
    },
    {
      "commit": "38429cf76aaac8c499004b6f537229a26b381602",
      "tree": "3846ecb3476ce28ae4d8f863cfe8b0bfcffc365a",
      "parents": [
        "05feee0fc8f4f10b425f04e1f5cdd4831bbfb969"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Nov 11 18:27:22 2015 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Nov 12 10:38:18 2015 -0800"
      },
      "message": "common: Split out metrics utils from utils.cc.\n\nThe utility functions to convert error codes and network settings to\nthe types defined by the metrics framework are split out the utils.cc\nfile. These tools are only used by the update_engine daemon to report\nback metrics on an update check.\n\nBug: 25197634\nTest: FEATURES\u003dtest emerge-link update_engine; mma\n\nChange-Id: I589dc9f6056fb1399fa84ca4f44076ed3a6b5365\n"
    },
    {
      "commit": "05feee0fc8f4f10b425f04e1f5cdd4831bbfb969",
      "tree": "be025e659930e6cfbad43c91583ad773bba617ab",
      "parents": [
        "39910dcd1d68987ccee7c3031dc269233a8490bb"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Nov 11 15:59:49 2015 -0800"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Nov 12 10:15:39 2015 -0800"
      },
      "message": "delta_generator: Include postinstall calls in the payload major version 2.\n\nAdded a new flag --new_postinstall_config_file which takes a path to a key\nvalue store config file and saves this information to the PartitionUpdate\nfield.\n\nThe config file looks like this:\nRUN_POSTINSTALL_root\u003dtrue\nPOSTINSTALL_PATH_root\u003dpostinstall\nFILESYSTEM_TYPE_root\u003dext4\n\n\"root\" can be changed to any partition name.\n\nBug: 24537566\nTEST\u003dGenerated a payload v2 with postinstall.\nTEST\u003dAdded unittest.\n\nChange-Id: Ied3c7bc2cfb54f4bcc69207f1e5bd473f72024fe\n"
    },
    {
      "commit": "39910dcd1d68987ccee7c3031dc269233a8490bb",
      "tree": "b7569d7ff83b001d244eda59bb2efdee9a6f15ec",
      "parents": [
        "82352f97b4621dbf6af8308ff0b0b17b0968b53a"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Mon Nov 09 17:04:30 2015 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Nov 12 02:17:50 2015 +0000"
      },
      "message": "Split payload application code into a subdirectory.\n\nThis patch splits from the main libupdate_engine code the part that\nis strictly used to download and apply a payload into a new static\nlibrary, moving the code to subdirectories. The new library is divided\nin two subdirectories: common/ and payload_consumer/, and should not\ndepend on other update_engine files outside those two subdirectories.\nThe main difference between those two is that the common/ tools are more\ngeneric and not tied to the payload consumer process, but otherwise they\nare both compiled together.\n\nThere are still dependencies from the new libpayload_consumer library\ninto the main directory files and DBus generated files. Those will be\naddressed in follow up CLs.\n\nBug: 25197634\nTest: FEATURES\u003dtest emerge-link update_engine; `mm` on Brillo.\n\nChange-Id: Id8d0204ea573627e6e26ca9ea17b9592ca95bc23\n"
    },
    {
      "commit": "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": "82352f97b4621dbf6af8308ff0b0b17b0968b53a",
      "tree": "2e6afbd0ed99c4ddd02dce4ecf9f000565c4c908",
      "parents": [
        "9fded1eee295295d33da477f00d9c9a240623e91"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Mon Nov 09 16:36:53 2015 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 11 02:06:51 2015 +0000"
      },
      "message": "delta_generator: Include per-operation source hash.\n\nThis adds a src_sha256_hash field in the operation if minor version is 3.\n\nBug: 23182225\nTEST\u003dcros_workon_make update_engine --test\nTEST\u003dGenerated a minor version 3 payload, the manifest is about 50% larger.\n\nChange-Id: I0e363fca4de24bae64ac83930afdd42a6ddc21c9\n"
    },
    {
      "commit": "9fded1eee295295d33da477f00d9c9a240623e91",
      "tree": "9f87dbad69a7cf7f4d922ac681765cc442d72dec",
      "parents": [
        "5378f5e3d9420521a1afff935ed37b726d42ead6"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Nov 05 12:31:19 2015 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 10 23:52:01 2015 +0000"
      },
      "message": "Send Omaha event_type 54 after reboot to new update.\n\nWhen rebooting to a new version, we were sending an Omaha event_type 3\nto flag a \"success reboot\". Nevertheless, the server expect us to send\nonly one event_type 3 for every \u003cupdatecheck\u003e response with a payload\nbut we were sending one event_type 3 upon payload application and\nanother one after reboot.\n\nThis patch changes the event_type sent after reboot to 54, a value\nreserved from Chromium OS clients.\n\nBug: None\nTest: Added unittest.\n\nChange-Id: I199a2b00c702175762f2c154ca2f45b3f6ad768c\n"
    },
    {
      "commit": "5378f5e3d9420521a1afff935ed37b726d42ead6",
      "tree": "88b815c3fc3d5d56e15e5922152d8a0075f3df25",
      "parents": [
        "d942f9d3c8529f896329b19261df6eba044de1b2"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Tue Nov 10 15:02:50 2015 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 10 23:50:32 2015 +0000"
      },
      "message": "Initialize channel information on Init().\n\nThe channel information returned by dbus_service relies on the\nOmahaRequestParams object being initialized, which didn\u0027t happen until\nthe first update check. This patch also fixes the store of the newly\nselected channel.\n\nBug: chromium:551605,chromium:548486\nTEST\u003ddeployed update_engine to a link device. Changed channels right after reboot.\n\nChange-Id: I5070b3f8f09fc2ac5a74e2d40df9a2bea92df019\n"
    },
    {
      "commit": "d942f9d3c8529f896329b19261df6eba044de1b2",
      "tree": "12c72f2b6de023b3a8512c24c17b2f33f78fa06f",
      "parents": [
        "af1575fc52d529436856ecbce3c3cd0593016b25"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Nov 06 16:11:50 2015 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Mon Nov 09 20:06:29 2015 -0800"
      },
      "message": "Return the error reason to the caller of SetTargetChannel.\n\nThis patch sends back to the caller an error message indicating why the\nchannel change didn\u0027t work.\n\nBug: 25595865\nTest: Deployed on a device and attempted to change to \"foo\" channel. Error message lists available channels.\nTest: FEATURES\u003dtest emerge-link update_engine\n\nChange-Id: Idcc67d5c7878ce7af60652d7bf5bf81135325f97\n"
    },
    {
      "commit": "af1575fc52d529436856ecbce3c3cd0593016b25",
      "tree": "f7c07db361163cd8fe7bd84ba8ae9d80f75660df",
      "parents": [
        "dbe13b471c061dcb61395b8b37201a3a6ea18116"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Mon Nov 09 13:34:16 2015 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 10 01:20:13 2015 +0000"
      },
      "message": "Fix logging percentage in BlobFileWriter.\n\nShould clear number of stored blobs when enable logging.\n\nBug: 25293923\nTEST\u003dGenerated a full payload, the percentage is correct.\n\nChange-Id: Ie779d699db1b12105bbf77fbae3a02c41d28401b\n"
    },
    {
      "commit": "dbe13b471c061dcb61395b8b37201a3a6ea18116",
      "tree": "312e75cd9d8dfdb84c2b114a4fb025d7cf7b7cec",
      "parents": [
        "3e728feb92bfd5514bff55aa7dc455da80e18906"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Nov 06 11:15:08 2015 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 09 23:59:21 2015 +0000"
      },
      "message": "Increase exponential backoff maximum time to 26h on Brillo.\n\nBrillo devices ping Omaha every 5 hours and will increase that value on\nan exponential backoff schedule when receiving an error 500 or 503. For\nChrome OS devices, the ping happens every 45 minutes, so the limit on\nthe exponential backoff is set to 4 hours. This CL changes the limit on\nBrillo to 26h, to maintain the proportion.\n\nBug: 24878416\nTest: mm\n\nChange-Id: Ie5ffe6e08a25c2c801ed1aa3b79cb6742cd07caa\n"
    },
    {
      "commit": "3e728feb92bfd5514bff55aa7dc455da80e18906",
      "tree": "80e33b9fd7199886c60c414f28a747972834e531",
      "parents": [
        "35f358b50915a9346f7de005bf561102b4a3b0e6"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Nov 05 11:37:23 2015 -0800"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Nov 05 13:27:40 2015 -0800"
      },
      "message": "Do not include signature dummy operation in major version 2.\n\nIt only exists for compatibility reason, for major version 2, there\u0027s no\npoint to add this any more.\n\nBug: None\nTEST\u003dApplied the new payload to a device.\n\nChange-Id: I5803ab755415a1ba3d7460d82956bfe6e9fd4547\n"
    },
    {
      "commit": "35f358b50915a9346f7de005bf561102b4a3b0e6",
      "tree": "15f844886d09a652f3f112f0707bfa49660d25dd",
      "parents": [
        "7a2c47e6ec439a455787d06d1c0ec3250107f56b"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Nov 05 10:46:32 2015 -0800"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Nov 05 10:53:48 2015 -0800"
      },
      "message": "Fix delta performer integration test.\n\nNow we are saving signed context after every operation.\n\nBug: None\nTEST\u003dcros_workon_make update_engine --test\n\nChange-Id: I5050c2caf83f2720a10c2d25b6542dbe823556fa\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": "7a2c47e6ec439a455787d06d1c0ec3250107f56b",
      "tree": "57fa6c9d2af91a6583b160be5da6bed59492fe8c",
      "parents": [
        "f6813808ef32696153d1c064ef49fdd41302a6a3"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Nov 04 00:47:12 2015 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 04 20:35:44 2015 +0000"
      },
      "message": "Enable payload v2.\n\nSwitch the preferred payload major version to 2.\n\nBug: 23694580\nTest: Deployed signed and unsigned payload to a device.\n\nChange-Id: Ib338883510c1c8ddaad3e4c77a769799ee058b64\n"
    },
    {
      "commit": "f6813808ef32696153d1c064ef49fdd41302a6a3",
      "tree": "ea10251d318eb4d501bb37d0fd9fdcdcf08ce00f",
      "parents": [
        "76bfa74e52aea188aaf17aec186b0ef4269d39b3"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Nov 03 21:27:29 2015 -0800"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Nov 04 11:30:15 2015 -0800"
      },
      "message": "Fix verifying payload signature in major version 2.\n\nThe payload signature hash is different from payload file hash in payload\nversion 2, we need to calculate them separately.\n\nBug: 23694580\nTEST\u003dApply a signed and unsigned update payload on a Brillo device.\n\nChange-Id: If42f3fd44ba3949337290d3aa8bd381d7b6c269d\n"
    },
    {
      "commit": "76bfa74e52aea188aaf17aec186b0ef4269d39b3",
      "tree": "1c5a60d0c68b6b13c8ae21b815d530f9e9cc5cb3",
      "parents": [
        "1fbaac8c911ee484de521e8302d28543ad33cfe1"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Mon Oct 12 17:13:26 2015 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 04 19:12:41 2015 +0000"
      },
      "message": "Verify metadata signature in major version 2.\n\nUse metadata signature in payload version 2 if Omaha doesn\u0027t provide\nmetadata signature.\n\nBug: 23946683\nTEST\u003dunit test added.\n\nChange-Id: I4f5e80019a8aeeaa4ff7daa82baa43a621c4ae98\n"
    },
    {
      "commit": "1fbaac8c911ee484de521e8302d28543ad33cfe1",
      "tree": "39cbf2ed648e642eb9be16c16f2599b37e9f920d",
      "parents": [
        "787dc4139768a065cfb5da34dd8c9f6d76fc23df"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Nov 04 04:41:40 2015 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Nov 04 18:16:11 2015 +0000"
      },
      "message": "Handle not connected message from shill.\n\nWhen shill is not connected it exposes the service path / as the default\nservice path. Nevertheless, this service path doesn\u0027t implement the\norg.chromium.flimflam.Service interface, so we can\u0027t call any method\nthere. This patch handles this situation removing the misleading\nerror messages from the logs.\n\nBug: None\nChange-Id: Id936584235d25914d5a2d44e88aeb54703dc376b\nTest: Applied a payload, no more GetProperties() errors when not connected.\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": "787dc4139768a065cfb5da34dd8c9f6d76fc23df",
      "tree": "689faebbe861e8d53381432726acfc43a4e581aa",
      "parents": [
        "c372ab694cd45c226454037ff8df4b7ff85177e2"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Oct 29 11:39:20 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Nov 04 08:34:06 2015 +0000"
      },
      "message": "Add USE flags to the Android.mk\n\nTo help conditionally building parts of update_engine based on\nper-product settings, this patch ports the USE flags used in the gyp\nto make variables in Android.mk\n\nChange-Id: I4cf5295f812d87c251c32947f0ca6abcc7b10ad6\n"
    },
    {
      "commit": "c372ab694cd45c226454037ff8df4b7ff85177e2",
      "tree": "fc5def5bcdc544aa54a2fba60460a64dd11f9043",
      "parents": [
        "efb9d8394c58054cc8ebe1efd0fd2c5e7b4b344a"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Oct 29 00:43:26 2015 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 04 08:33:51 2015 +0000"
      },
      "message": "Android.mk: Remove makefile macro and let make resolve transitive dependencies.\n\nThe automatic tool to translate android makefiles to the new build\nsystem doesn\u0027t handle macros so we remove them here and follow the\nAndroid style of declaring local make variables.\n\nBecause of this change, instead of resolving the transitive dependencies\non each gyp target, we create local variables with the \"exported\" build\nsettings and include them from the depending targets. This maps more\nclosely the gyp targets to the Android.mk targets and allow us to make\nconditional changes (based on global make variables) to these variables\nin a single place. This will be used to compile weave support\nconditionally.\n\nBug: 24386768\nTest: mmma system/update_engine\n\nChange-Id: I9cb44b0e1d4e9f7c061e1b1f154d51c04375aaa0\n"
    },
    {
      "commit": "efb9d8394c58054cc8ebe1efd0fd2c5e7b4b344a",
      "tree": "b2b430105034c51d2246450a1d848539f1cd4719",
      "parents": [
        "87c08866cfc596234a1484147d3943d109418e7e"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Mon Nov 02 18:39:02 2015 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Mon Nov 02 18:41:16 2015 -0800"
      },
      "message": "Fix OmahaRequestAction unittest.\n\nThe unittest OmahaRequestActionTest.FormatUpdateCheckOutputTest was\nincorrectly expecting the previous version to be set even if it wasn\u0027t\nan update to a new update.\n\nBug: 24867646\nTest: FEATURES\u003dtest emerge-link update_engine\n\nChange-Id: I90d7d1cb24929f1c7d9d581dcccdd53a3a315ab5\n"
    },
    {
      "commit": "87c08866cfc596234a1484147d3943d109418e7e",
      "tree": "e194769a239e4e2249b06a059c6fefa8960b315f",
      "parents": [
        "4cf1402b6245f1606788b1850b1a9c3571b0d27b"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Oct 30 21:56:55 2015 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 02 23:24:52 2015 +0000"
      },
      "message": "Send \"success reboot\" only after an update.\n\nThe \u003cevent\u003e message sent to omaha after we reboot into a new version\nwas originally sent only on the first updatecheck after rebooting into\nthe new installed version, and included the old version number. A bug\nintroduced in 2013 removed the check for the empty previous version\nmaking the update_engine send this message on *every* updatecheck. This\npatch inserts back the check for the empty previous version to send the\n\"success reboot\" event only after.\n\nWhile there are still discussions about what\u0027s the right event message\nto send on that case, this fixes the regression.\n\nBug: 24867646\nTest: FEATURES\u003dtest emerge-link update_engine; second \u003cupdatecheck\u003e didn\u0027t include the \u003cevent\u003e\n\nChange-Id: Icd00364aae15c8bf420f1f89ae7b526999b3a124\n"
    },
    {
      "commit": "4cf1402b6245f1606788b1850b1a9c3571b0d27b",
      "tree": "463b9b64eef03f310cec68b77c7f87c85b94f8b6",
      "parents": [
        "1bab5a8a47f8e83f4798b0f45d555ad0ffd8e481"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Tue Oct 27 20:33:58 2015 -0700"
      },
      "committer": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Tue Oct 27 20:33:58 2015 -0700"
      },
      "message": "update_engine: Fix Android.mk typo.\n\nMissing \\ was breaking build.\n\nChange-Id: I5f8f3d6dd04d40fb4a909f608ab2524514854998\n"
    },
    {
      "commit": "1bab5a8a47f8e83f4798b0f45d555ad0ffd8e481",
      "tree": "b8cc843dcd05d2e3d9d4ce0f6401b889a9f115df",
      "parents": [
        "c8f6b7a7bc43d48ccd7a11f7aba91742c87f8b1c"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Tue Oct 27 11:47:28 2015 -0700"
      },
      "committer": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Tue Oct 27 11:47:28 2015 -0700"
      },
      "message": "update_engine: Rename libchromeos into libbrillo\n\nBUG: 24872993\nChange-Id: I4cdbec7089552f5c9a0461c09a62e34e055a46bf\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": "c8f6b7a7bc43d48ccd7a11f7aba91742c87f8b1c",
      "tree": "48fef855aec5ea23cf5b8512e7475979ad8d9731",
      "parents": [
        "df6d9f499db5e3c3dc68926586704d6a5f908496"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Oct 21 11:09:59 2015 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 26 20:56:35 2015 +0000"
      },
      "message": "Check PartitionUpdate field for old partition info in ValidateManifest.\n\nThey are not being checked right now.\n\nBug: None\nTEST\u003dAdded a unittest.\n\nChange-Id: I8606bfa40843681fcc3de472116cd6496124ab90\n"
    },
    {
      "commit": "df6d9f499db5e3c3dc68926586704d6a5f908496",
      "tree": "fc849f269525aae9ac49a87c6dc4a2239c56c176",
      "parents": [
        "3be05c82442b2fbab693b6399f64610e8542462b"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Fri Oct 23 11:24:46 2015 -0700"
      },
      "committer": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Fri Oct 23 14:25:11 2015 -0700"
      },
      "message": "Use new Any::GetUndecoratedTypeName() method\n\nSince Any::GetType() is removed, use the new Any::GetUndecoratedTypeName\nmethod to print the human-readable type name contained within Any.\n\nBUG: 25132472\nChange-Id: I4387919d84157205cefe4d23ec7a2a8563448b17\n"
    },
    {
      "commit": "3be05c82442b2fbab693b6399f64610e8542462b",
      "tree": "7c555e6253bffafb530570a0381b0b0c4ba6db25",
      "parents": [
        "644f618b8bbaa096c1fcdcf7d6ed06e2538ea83c"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Oct 23 11:29:11 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Oct 23 13:01:59 2015 -0700"
      },
      "message": "Fix use-after-free in unittest setup code.\n\nWhen setting the root prefix in a unittest, we need to reset it after\nso it isn\u0027t accidentally used by other tests.\n\nBug: chromium:547127\nTest: USE\u003d\"clang asan\" FEATURES\u003dtest emerge-link update_engine\n\nChange-Id: Ib84bbf265a380976407100a4fba4d2600d62dde6\n"
    },
    {
      "commit": "644f618b8bbaa096c1fcdcf7d6ed06e2538ea83c",
      "tree": "303c1ddfcbcb51950ab86cee2f347ea1313146b3",
      "parents": [
        "720df3eeaecfc9ad229440c59e08c8d52f13dc1e"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Oct 06 16:45:57 2015 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Oct 23 10:09:21 2015 -0700"
      },
      "message": "delta_generator: Include metadata signature in major version 2.\n\n--metadata_signature_file flag does what it should now.\nNote that you should only pass this flag if the payload you are signing is\nversion 2.\n\nBug: 23981164\nTEST\u003dunit test added.\n\nChange-Id: I613cd6a5fef188eca37c46c3f8a0a41d1c22f2fd\n"
    },
    {
      "commit": "720df3eeaecfc9ad229440c59e08c8d52f13dc1e",
      "tree": "fe07787244ec3eb0ce2147c17973627ea99147dd",
      "parents": [
        "abdc0115548985d8ca3f3f2aeb1283741ce409a6"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Oct 01 13:10:44 2015 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Thu Oct 22 13:16:07 2015 -0700"
      },
      "message": "Skip metadata signature when hashing payload in major version 2.\n\nWe should skip metadata signature when hashing the payload, so that the\npayload signature won\u0027t depend on metadata signature.\n\nVerifySignedPayload will also verify metadata signature now if it exist.\n\nBug: 23981164\nTEST\u003dcros_workon_make update_engine --test\nChange-Id: I3e52b7bf8ddf1539bbb6934e8a5ec1112b94ae62\n"
    },
    {
      "commit": "abdc0115548985d8ca3f3f2aeb1283741ce409a6",
      "tree": "6d85c3d98886d845afb01f620726ed078f243e47",
      "parents": [
        "14e7dde6cfc533b273cf4dfac2116733bfeb9377"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Oct 22 11:53:12 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Oct 22 11:57:52 2015 -0700"
      },
      "message": "Fix building delta_generator.\n\nPrevious CL had a few include renames missing.\n\nBug: None\nTest: sudo emerge update_engine\n\nChange-Id: Ifcdf5f11d52561cf3f976f18c0d66b95dd3c0d66\n"
    }
  ],
  "next": "14e7dde6cfc533b273cf4dfac2116733bfeb9377"
}
