)]}'
{
  "log": [
    {
      "commit": "ce8c8ee8f9df9bea3b5aedf930dfeba5da46031c",
      "tree": "90b975c38219d3a0a72b29a0247a5a4f16c1ec99",
      "parents": [
        "65566a350469db2c6d2e830846591e1fc0d98922"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Fri Apr 08 08:59:26 2016 -0700"
      },
      "committer": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Fri Apr 08 09:57:45 2016 -0700"
      },
      "message": "update_engine: Remove release/aquire semantic from scoped_ptr/unique_ptr\n\nNow that scoped_ptr is just a type alias to unique_ptr, there is no\nlonger a need to convert between the two by using .release() and\nconstructing the other with a raw pointer.\n\nBUG: None\nTEST: Built for dragonboard, all unit tests pass (except for update_engine,\n      but those tests failed before these changes too).\n\nChange-Id: I0afcbc4d85b7ca78149fb29c188d7bcc99d4c80b\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": "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": "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": "3f39d5cc753905874d8d93bef94f857b8808f19e",
      "tree": "09c75380469065d508a1a59e27e4a4dd5b28763d",
      "parents": [
        "25fbdf83064c78dfb4d9143be25f080ee2c56730"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Tue Oct 13 09:27:13 2015 -0700"
      },
      "committer": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Tue Oct 13 09:44:07 2015 -0700"
      },
      "message": "update_engine: Rename \"chromeos\" -\u003e \"brillo\" in include paths and namespaces\n\nlibchromeos is transitioning to libbrillo and chromeos namespaces\nand include directory is changing to brillo.\n\nBug: 24872993\nChange-Id: I770659a95be380a50fe3b2ba9f91d65818f40945\n"
    },
    {
      "commit": "31d95ac85d294b2b1bfa293835013e66c010fbcf",
      "tree": "c29408c3eac7f2af9c6baa3b75342640be70512f",
      "parents": [
        "145956092aa11984b55faa56865648f871b52fcd"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Sep 17 11:56:18 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Sep 18 08:44:14 2015 -0700"
      },
      "message": "Mark the active slot from update_engine instead of /postinstall.\n\nIn Chrome OS, we were reliying on the /postinst script to generate the\nverity hashes and mark the new kernel as bootable. This means that we\nalso need to run /postinst from the other (not verified) slot when\ndoing a user-initiated rollback. The update_engine already interacts\nwith the bootloader via the BootControlInterface to mark the other slot\nas unbootable and check if there are other slots available for\nrollback.\n\nThis patch moves the responsibility of marking the new slot as bootable\nfrom the /postinst script to the update_engine, introducing a new\nSetActiveBootSlot() method in the BootControlInterface. Chrome OS\nbuilds will continue to mark the new slot as active from /postinstall\nin order to be compatible with old builds, resulting in the new slot\nmarked as active twice during a successful normal update.\n\nBug: 23523562\nTest: cros flash and image to the new daemon; rolled it back\n\nChange-Id: I02502d7b8e85523a6eb9a7721053739e8381d266\n"
    },
    {
      "commit": "aa26f6240865d43f8cecc97bde7828f9b82bc17d",
      "tree": "626229ac79e0e86763fe7f82e4f3015f016f9cbc",
      "parents": [
        "bd4c06b607f077b56f2be42faf2ef4aee7f59c69"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Sep 16 18:21:27 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Sep 17 10:38:25 2015 -0700"
      },
      "message": "Move MarkBootSuccessful to BootControlInterface.\n\nUpdating the boot flags to mark the current boot as successful is\nplatform-specific and part of the BootControlInterface\u0027s job. This\npatch moves this to a new async method in this interface.\n\nBug: 24077637\nTest: FEATURES\u003dtest emerge-link update_engine; cros flash in Chrome OS; tested on a dragonboard.\n\nChange-Id: I23c3ed915dd8d2588a90d84b212bb04977957975\n"
    },
    {
      "commit": "b17327ce55e7132da1f64039040df93a8c260fef",
      "tree": "dd7b2c43eac9446b12fb7d388c1ff49db2119f81",
      "parents": [
        "40d86b22363fd9461e67ad288e0273bed509937b"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Sep 04 10:29:00 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Sep 04 16:00:21 2015 -0700"
      },
      "message": "New BootControlInterface implementation for Android.\n\nThis patch hides the platform-specific construction of a\nBootControlInterface in a factory method shared by both Android and\nChromium OS. This also include a stub implementation for Android.\n\nBug: 23754584,23084776\nTEST\u003demerge-link update_engine; `mma -i` builds these files without problem.\n\nChange-Id: I43532e5cff1dc474453160f418ddd3c448f31938\n"
    },
    {
      "commit": "763e7dbaac735da0ae802933a1015b6b7874bce2",
      "tree": "7f0da302e2ee26f95c6fdd5b4667a696181f699a",
      "parents": [
        "8a7d0ca79fba87411bd0d105f5eb502c61be269a"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Aug 27 21:08:08 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Aug 28 15:55:29 2015 -0700"
      },
      "message": "update_engine: New BootControlInterface class.\n\nThe new BootControlInterface class is a platform-independent\nabstraction to control the bootloader. It provides methods for setting\nwhat partition slots are available for booting and getting the\nbootloader status about the available slots.\n\nThe Chrome OS specific implementation of the bootloader was moved to\nthe BootControlChromeOS which now depends on the vboot_host\nimplementation used in Chrome OS. Follow up CL will implement the\nequivalent class for Brillo.\n\nBUG\u003db:23010637\nTEST\u003dunittests; cros flash from the new image and rolled back from it.\n\nChange-Id: I0a03aeeb8c21d8c99e1866b625e6e8c96628215b\n"
    }
  ]
}
