)]}'
{
  "log": [
    {
      "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": "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": "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"
    }
  ]
}
