)]}'
{
  "log": [
    {
      "commit": "8ae7375f020367bab2e99a0737d7f7bde69cddf9",
      "tree": "9f184fb311ec513c206bcfcff37591bee83791bc",
      "parents": [
        "b004620f807984d898ae4c75660a220b9a4e20a3"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue May 01 13:39:52 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue May 08 13:19:12 2018 -0700"
      },
      "message": "init: use std::function for epoll handling\n\nAlso allow unregistering of epoll handlers.\n\nBug: 64114943\nTest: boot\nChange-Id: I2abe6a56fd451839931d607dddb91669a7d02ff1\n"
    },
    {
      "commit": "b004620f807984d898ae4c75660a220b9a4e20a3",
      "tree": "706e174ba7e50d9d59657ddf3f537be0071b912f",
      "parents": [
        "751f2fa535f96442ad55e130b78a312c183a1317",
        "645b50e75d14907d45481fa74e18b2412c888e36"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Tue May 08 20:06:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 08 20:06:18 2018 +0000"
      },
      "message": "Merge \"Make fastboot host builds match adb.\""
    },
    {
      "commit": "645b50e75d14907d45481fa74e18b2412c888e36",
      "tree": "e1f93c616fd10536f781107d882b5b98053c9962",
      "parents": [
        "fb8b76fe553ad2730be8e55b1c0df8a0911b1c3f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 08 11:30:07 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 08 11:30:07 2018 -0700"
      },
      "message": "Make fastboot host builds match adb.\n\nBug: http://b/79131183\nTest: builds\nChange-Id: I572362e8d1c52ebbfb78f84fd2af5428711317d7\n"
    },
    {
      "commit": "751f2fa535f96442ad55e130b78a312c183a1317",
      "tree": "93ae63282fa82cc89b2e945c286a3d45a81ce4f3",
      "parents": [
        "a6a266af0038c13dfc8fd55bc4c902a60952fb24",
        "837b2a4c2411c718221327b800f41b456c96f08c"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue May 08 01:43:07 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 08 01:43:07 2018 +0000"
      },
      "message": "Merge \"init: Use sepolicy version instead\""
    },
    {
      "commit": "a6a266af0038c13dfc8fd55bc4c902a60952fb24",
      "tree": "195beb3385382b249930381037c1674b169e25b0",
      "parents": [
        "035a1c7a0b08c09a8738053a00515d2307d2ea28",
        "0b8e22eb5fe849cdc7f62f8b9e428a7f5880ec48"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Mon May 07 20:59:40 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 07 20:59:40 2018 +0000"
      },
      "message": "Merge \"fs_mgr: target-agnostic device-mapper helpers\""
    },
    {
      "commit": "035a1c7a0b08c09a8738053a00515d2307d2ea28",
      "tree": "1d1701837f7e6b87f64155937f83d79697016c03",
      "parents": [
        "48cf760bea211b43aa79675c6b73f846202865f9",
        "cd7e122285e9ab0eb6dc9c90e026da767f553d95"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Mon May 07 18:45:10 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 07 18:45:10 2018 +0000"
      },
      "message": "Merge \"bootstat: test reboot rescueparty\""
    },
    {
      "commit": "cd7e122285e9ab0eb6dc9c90e026da767f553d95",
      "tree": "1d1701837f7e6b87f64155937f83d79697016c03",
      "parents": [
        "48cf760bea211b43aa79675c6b73f846202865f9"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon May 07 09:46:06 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon May 07 10:10:18 2018 -0700"
      },
      "message": "bootstat: test reboot rescueparty\n\nThis test fails on most devices, gives us a report of devices that\ndo not propagate the boot reason via the bootloader.  This should\nbecome a bootloader required test.\n\nTest: boot_reason_test.sh optional_rescueparty\nChange-Id: Ibdc7b23b025e5d89d659ff08083b2e071343923c\n"
    },
    {
      "commit": "48cf760bea211b43aa79675c6b73f846202865f9",
      "tree": "edc3cf8cbc089d1a37d96c002a5a2c6c438ee468",
      "parents": [
        "24e87383f13e2e884cdf953c9a923278ddf163ee",
        "d2a594c77383921a2fbabb5c382af0b69e906303"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Fri May 04 22:25:53 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 04 22:25:53 2018 +0000"
      },
      "message": "Merge \"Remove the \u0027optional\u0027 tag from demangle_fuzzer\""
    },
    {
      "commit": "24e87383f13e2e884cdf953c9a923278ddf163ee",
      "tree": "86675bc68a7a5794d253805621963ceac66be34b",
      "parents": [
        "00c81fefd3932ef66a1e762b4e5ff67aa345f4de",
        "d885890e7833a1e4570f615e6b103c5d51f25ae2"
      ],
      "author": {
        "name": "Jeffrey Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Fri May 04 21:09:19 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 04 21:09:19 2018 +0000"
      },
      "message": "Merge \"Logd: include app package name in selinux metadata\""
    },
    {
      "commit": "d2a594c77383921a2fbabb5c382af0b69e906303",
      "tree": "8444cbfaeb6b4109954bdaecdf829ca31f0e8da9",
      "parents": [
        "00c81fefd3932ef66a1e762b4e5ff67aa345f4de"
      ],
      "author": {
        "name": "Zach Riggle",
        "email": "riggle@google.com",
        "time": "Fri May 04 15:33:02 2018 -0500"
      },
      "committer": {
        "name": "Zach Riggle",
        "email": "riggle@google.com",
        "time": "Fri May 04 15:59:07 2018 -0500"
      },
      "message": "Remove the \u0027optional\u0027 tag from demangle_fuzzer\n\nThis causes it to not actually be added to the tests zip, and it\nis never available on-device unless *manually* built and pushed.\n\nTest: mmma system/core/demangle\nChange-Id: I7fd7f52726b9b981573063c32f25ccab933486a0\n"
    },
    {
      "commit": "00c81fefd3932ef66a1e762b4e5ff67aa345f4de",
      "tree": "3090e8e93c4682932511fb8423ce6d89f2c102df",
      "parents": [
        "8cf185e5429523055c4de6c71deabd603b95b2de",
        "25e2bbf874a598bccf3138c0b5a4b9f0638b6d82"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 04 20:40:42 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 04 20:40:42 2018 +0000"
      },
      "message": "Merge \"Remove unnecessary references to libunwind.\""
    },
    {
      "commit": "837b2a4c2411c718221327b800f41b456c96f08c",
      "tree": "2af64351cfbbfdd50f6423c689e56e0cc2760b48",
      "parents": [
        "a3d95cf2f8f5b9acca9be690bc3c6904de6677de"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Thu May 03 14:33:52 2018 +0800"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Fri May 04 15:21:01 2018 +0800"
      },
      "message": "init: Use sepolicy version instead\n\nThis commit uses vendor sepolicy file version (defined in\n`/vendor/etc/selinux/plat_sepolicy_vers.txt`) to determine whether the\nsource context should be set as `u:r:vendor_init:s0`.\n\nBefore this commit, the criterion was `ro.vndk.version` \u003e\u003d 28.  However,\nthe check in `property_service.cpp` will always be true because\n`ro.vndk.version` hasn\u0027t been loaded from `/vendor/default.prop`.\n\nFurthermore, under some circumstances, `ro.vndk.version` may be\ndifferent from `plat_sepolicy_vers.txt` (e.g. O-MR1 vendor does not\ndefine `ro.vndk.version`).\n\nBug: 78605339  # high-level bug to combine O-MR1 and P GSI\nBug: 79135481  # the usage of `ro.vndk.version` in init\nTest: vts-tradefed run vts -m VtsTrebleVintfTest  # tetheroffload\nChange-Id: Ied46e9346b4ca7931aa4dcf1c9dbc11de0e12d93\n"
    },
    {
      "commit": "d885890e7833a1e4570f615e6b103c5d51f25ae2",
      "tree": "59568075dce1fcbda318e44d06b6d9c345bd005f",
      "parents": [
        "b8716687f18475ae3fc18ca78e454547c2e22d1f"
      ],
      "author": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Thu May 03 14:57:39 2018 -0700"
      },
      "committer": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Thu May 03 22:40:18 2018 -0700"
      },
      "message": "Logd: include app package name in selinux metadata\n\nNote: denial metadata is currently only included on debug builds.\n\navc: denied { read } for comm\u003d\"getprop\" name\u003d\"u:object_r:net_dns_prop:s0\"\ndev\u003d\"tmpfs\" ino\u003d19605 scontext\u003du:r:untrusted_app:s0:c164,c256,c512,c768\ntcontext\u003du:object_r:net_dns_prop:s0 tclass\u003dfile permissive\u003d0 b/12345678\napp\u003dandroid.selinuxtargetsdkcurrent.cts\n\nBug: 9496886\nBug: 68016944\nTest: cts-tradefed run cts -m CtsSelinuxTargetSdkCurrentTestCases\nChange-Id: I1700722a45b75d22f17ba4edc7b95cbaf99fdda8\n"
    },
    {
      "commit": "8cf185e5429523055c4de6c71deabd603b95b2de",
      "tree": "9e359fff8647190768cf997a634655e055b2cb81",
      "parents": [
        "a3d95cf2f8f5b9acca9be690bc3c6904de6677de",
        "b8716687f18475ae3fc18ca78e454547c2e22d1f"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Fri May 04 05:30:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 04 05:30:34 2018 +0000"
      },
      "message": "Merge \"Fixing a bug introduced due to refactoring var names\""
    },
    {
      "commit": "25e2bbf874a598bccf3138c0b5a4b9f0638b6d82",
      "tree": "50e615d050ca21082c60564bfd2d1097ecec25a2",
      "parents": [
        "1d87ffd3f64da827573882ffab3be9c2ba5b3fd7"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 03 17:59:45 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 03 17:59:45 2018 -0700"
      },
      "message": "Remove unnecessary references to libunwind.\n\nBug: 79209464\n\nTest: Builds.\nChange-Id: I4193ac664e3b118270a17fcc0131fb6c6e384c41\n"
    },
    {
      "commit": "a3d95cf2f8f5b9acca9be690bc3c6904de6677de",
      "tree": "08dcbd27ad6cd3b4061c6450cf230db86caf22a0",
      "parents": [
        "1d87ffd3f64da827573882ffab3be9c2ba5b3fd7",
        "f5974aedc40e4a61be3ed621e32af0111e4341e8"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri May 04 00:55:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 04 00:55:08 2018 +0000"
      },
      "message": "Merge \"tombstoned: make missing O_TMPFILE workaround actually work around.\""
    },
    {
      "commit": "0b8e22eb5fe849cdc7f62f8b9e428a7f5880ec48",
      "tree": "71196351da300f07a9306f7880f8f78ea6cc5e7a",
      "parents": [
        "5a4db628eee34e0dea45bbe1fcf14432d82eed36"
      ],
      "author": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Thu May 03 12:57:08 2018 -0700"
      },
      "committer": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Thu May 03 16:35:09 2018 -0700"
      },
      "message": "fs_mgr: target-agnostic device-mapper helpers\n\nRemove \"verity\" from device-mapper helper functions so it\u0027s clear they can be\nre-used for non-verity targets.\n\nBug: 78914864\nTest: AVB device still boots\n\nChange-Id: Id8474b2c6e23e828eff563263ebb409031cde17e\n"
    },
    {
      "commit": "1d87ffd3f64da827573882ffab3be9c2ba5b3fd7",
      "tree": "223fafa9cf49240ef6f6c9c1b9d486da48abe118",
      "parents": [
        "57adfb84aa1ad9e549a3efe918989fd3b33923c4",
        "5a4db628eee34e0dea45bbe1fcf14432d82eed36"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Thu May 03 23:33:36 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 03 23:33:36 2018 +0000"
      },
      "message": "Merge changes I809d8c2e,I11265375\n\n* changes:\n  fs_mgr: clean up dm ioctl flags\n  init: refactor first stage to not require fstab\n"
    },
    {
      "commit": "57adfb84aa1ad9e549a3efe918989fd3b33923c4",
      "tree": "606b8bcb6553aee7de08484ff6cb33b1a33d2795",
      "parents": [
        "c5943fd3fac808700dc86151c9968df90e84fccf",
        "28f8cf0f975500d754e259e19dcf9762f0969060"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Thu May 03 23:28:48 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 03 23:28:48 2018 +0000"
      },
      "message": "Merge \"tombstoned: don\u0027t bail out if we fail to unlink a file that isn\u0027t there.\""
    },
    {
      "commit": "c5943fd3fac808700dc86151c9968df90e84fccf",
      "tree": "6bae91be0c514d8613b55aa9f2c7dd11cb249235",
      "parents": [
        "708364e650a254dfcc1ac39a52a1894f30024d90",
        "8548d55b45eccf752ff462ba76738b8bb6dfdee0"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 03 23:05:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 03 23:05:51 2018 +0000"
      },
      "message": "Merge \"Remove unnecessary references to libunwind.\""
    },
    {
      "commit": "f5974aedc40e4a61be3ed621e32af0111e4341e8",
      "tree": "e6a04d1de28ecb6bf9ce17cce5b17002fedffff2",
      "parents": [
        "28f8cf0f975500d754e259e19dcf9762f0969060"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu May 03 16:05:32 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu May 03 16:05:32 2018 -0700"
      },
      "message": "tombstoned: make missing O_TMPFILE workaround actually work around.\n\nWe can\u0027t actually link an unlinked file back onto disk if it wasn\u0027t\nopened with O_TMPFILE. Switch to using a temporary filename instead.\n\nBug: http://b/77729983\nTest: agampe\nChange-Id: I1970497114f0056065a1ba65f6358f08b51ec551\n"
    },
    {
      "commit": "b8716687f18475ae3fc18ca78e454547c2e22d1f",
      "tree": "82bbee9c3a59aa723e0902abe200c3c0a6856d85",
      "parents": [
        "708364e650a254dfcc1ac39a52a1894f30024d90"
      ],
      "author": {
        "name": "Max Bires",
        "email": "jbires@google.com",
        "time": "Thu Sep 14 13:01:28 2017 -0700"
      },
      "committer": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Thu May 03 15:25:02 2018 -0700"
      },
      "message": "Fixing a bug introduced due to refactoring var names\n\nSELinux messages weren\u0027t properly filtering into the events buffer\nbecause message_len was being used to determine length of event data\ninstead of str_len\n\nBug: 65597269\nTest: SELinux denials show up in the events buffer\nChange-Id: I857e10211f71dd0db33a272241c7051c5d0c59ca\n(cherry picked from commit 3a5acdaa8dfc6b4a3e6c546a46b68a3129d49853)\n"
    },
    {
      "commit": "708364e650a254dfcc1ac39a52a1894f30024d90",
      "tree": "8e9ef46b8ac5fd64f467fd87d0b84c2c455d3777",
      "parents": [
        "abf6a2e1ade1d89b3bb83d8f0b7d77a62a3b31c5",
        "75046897b3a9f861414ec93670a296252eb0d746"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Thu May 03 21:46:22 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 03 21:46:22 2018 +0000"
      },
      "message": "Merge \"bootstat: add reboot,rescueparty\""
    },
    {
      "commit": "28f8cf0f975500d754e259e19dcf9762f0969060",
      "tree": "086b700620066ba2238c85226f3ee55bbf91fbc1",
      "parents": [
        "abf6a2e1ade1d89b3bb83d8f0b7d77a62a3b31c5"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu May 03 14:31:08 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu May 03 14:31:08 2018 -0700"
      },
      "message": "tombstoned: don\u0027t bail out if we fail to unlink a file that isn\u0027t there.\n\nTest: crasher with no tombstones\nChange-Id: I20e0537a347dd1f83877150ab13f53441dd65d95\n"
    },
    {
      "commit": "8548d55b45eccf752ff462ba76738b8bb6dfdee0",
      "tree": "0c9c0cbe9e4b4dc6600d808906e8670ba84275f5",
      "parents": [
        "fcfbaa2ad6320f865f68f89d74fcf85936942169"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 03 12:50:12 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 03 14:24:38 2018 -0700"
      },
      "message": "Remove unnecessary references to libunwind.\n\nBug: 79209464\n\nTest: Builds.\n\nChange-Id: I79f7b0123bc802e3e12d218e888c30dedf5204dc\n"
    },
    {
      "commit": "abf6a2e1ade1d89b3bb83d8f0b7d77a62a3b31c5",
      "tree": "76e4d75868c38dc2ad072cc7841ca2518dd5d1e9",
      "parents": [
        "c1d40263417a6b112a515d3b600634b80e9ceeba",
        "a922d6b596e8877efde104b98c501c03b89e1c3a"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Thu May 03 20:54:37 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 03 20:54:37 2018 +0000"
      },
      "message": "Merge \"healthd: Add elsk as OWNERS\""
    },
    {
      "commit": "c1d40263417a6b112a515d3b600634b80e9ceeba",
      "tree": "0c307c3556efd297bb279eb535237832606e6055",
      "parents": [
        "fcfbaa2ad6320f865f68f89d74fcf85936942169",
        "03d183aecc3892506ad48b8ea562ea361876b2b4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 03 20:14:32 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 03 20:14:32 2018 +0000"
      },
      "message": "Merge \"Tell the build system about APCT\u0027s requirements.\""
    },
    {
      "commit": "75046897b3a9f861414ec93670a296252eb0d746",
      "tree": "03b41bde58d328fa9a17e2041fb86258bf88f537",
      "parents": [
        "fcfbaa2ad6320f865f68f89d74fcf85936942169"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu May 03 13:11:15 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu May 03 13:13:34 2018 -0700"
      },
      "message": "bootstat: add reboot,rescueparty\n\nReserve this for Android system use.\n\nTest: none\nChange-Id: Iaf29f0fcd1fe68962cf1109843d6452d0ab42e3c\n"
    },
    {
      "commit": "fcfbaa2ad6320f865f68f89d74fcf85936942169",
      "tree": "41c4c7299b749685fb845fbe0770fd923c279974",
      "parents": [
        "fb8b76fe553ad2730be8e55b1c0df8a0911b1c3f",
        "4c4b30d7b780ec3b0747d1d1f158fa5d2e95a791"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Thu May 03 19:44:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 03 19:44:18 2018 +0000"
      },
      "message": "Merge \"Update shell and utilities docs.\""
    },
    {
      "commit": "a922d6b596e8877efde104b98c501c03b89e1c3a",
      "tree": "b751e6ab77862d410f57f7cae94aa2445d8b1de8",
      "parents": [
        "78393951de05ef60456f23d959400125684d7f7a"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Thu May 03 12:25:00 2018 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Thu May 03 12:25:00 2018 -0700"
      },
      "message": "healthd: Add elsk as OWNERS\n\nTest: none\nChange-Id: I676621ced38308296c32259c9525a8d55948e937\n"
    },
    {
      "commit": "4c4b30d7b780ec3b0747d1d1f158fa5d2e95a791",
      "tree": "41c4c7299b749685fb845fbe0770fd923c279974",
      "parents": [
        "fb8b76fe553ad2730be8e55b1c0df8a0911b1c3f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 03 11:02:07 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 03 11:02:07 2018 -0700"
      },
      "message": "Update shell and utilities docs.\n\nFor both P and Q.\n\nBug: N/A\nTest: N/A\nChange-Id: I85572bd71871a30c5e6761e098c0d4c63563e873\n"
    },
    {
      "commit": "03d183aecc3892506ad48b8ea562ea361876b2b4",
      "tree": "5ca69121cad2163a760ffd13e437dbf4c5cce408",
      "parents": [
        "fb8b76fe553ad2730be8e55b1c0df8a0911b1c3f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 03 10:06:45 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 03 10:06:45 2018 -0700"
      },
      "message": "Tell the build system about APCT\u0027s requirements.\n\nBug: N/A\nTest: N/A\nChange-Id: I8a67e1ce5acc4142387878ba0bb542da0861e700\n"
    },
    {
      "commit": "5a4db628eee34e0dea45bbe1fcf14432d82eed36",
      "tree": "ebfd4c04b99e7356c8c100ac43980e5df62b18b0",
      "parents": [
        "29954f6062e59beb645109e2585afa4eb71e7992"
      ],
      "author": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Wed May 02 18:18:12 2018 -0700"
      },
      "committer": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Wed May 02 18:46:20 2018 -0700"
      },
      "message": "fs_mgr: clean up dm ioctl flags\n\nDM_READONLY_FLAG should only be used when loading tables, and\nDM_STATUS_TABLE_FLAG should only be used when querying a table\u0027s status. This\npatch cleans up how we set flags to reflect when the kernel actually cares\nabout them.\n\nBug: 78914864\nTest: AVB device still boots\n\nChange-Id: I809d8c2ef2105849ebdd095bbe7f08f15ae63465\n"
    },
    {
      "commit": "fb8b76fe553ad2730be8e55b1c0df8a0911b1c3f",
      "tree": "1cb3df44831dadd25a2214c14e8cf25e52002324",
      "parents": [
        "294d41cb83143f3b7d14ace265924f81bd743dbe",
        "a228822c7df525b8bc5e1a30e63b0d490658b784"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Wed May 02 21:55:04 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 02 21:55:04 2018 +0000"
      },
      "message": "Merge \"Compile toolbox\u0027s newfs_msdos for the host\""
    },
    {
      "commit": "294d41cb83143f3b7d14ace265924f81bd743dbe",
      "tree": "79f2a82f223026a7191f7e5ab135ea8564ec5e08",
      "parents": [
        "dbc4aa1dedf482050229e7dd3f44e51230136c92",
        "48383c806af629bb755ce120ba30e8cb70eb5f23"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Wed May 02 21:43:03 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 02 21:43:03 2018 +0000"
      },
      "message": "Merge \"tombstoned: don\u0027t create tombstones for failed dumps.\""
    },
    {
      "commit": "dbc4aa1dedf482050229e7dd3f44e51230136c92",
      "tree": "0998c0489299d36e1a1327b922d53800b906e5a2",
      "parents": [
        "78393951de05ef60456f23d959400125684d7f7a",
        "89722709b4e957eda67a8faa6dbe6ff2e05486d1"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Wed May 02 21:41:43 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 02 21:41:43 2018 +0000"
      },
      "message": "Merge \"Fix a debuggerd test expectation.\""
    },
    {
      "commit": "a228822c7df525b8bc5e1a30e63b0d490658b784",
      "tree": "d8c2786e36317ef4d58a7ccc25beda54ace36a57",
      "parents": [
        "78393951de05ef60456f23d959400125684d7f7a"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Apr 25 17:50:47 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed May 02 13:14:51 2018 -0700"
      },
      "message": "Compile toolbox\u0027s newfs_msdos for the host\n\nFor potential use with build/make/tools/fat16copy.py\n\nBug: 63035155\nTest: mmma system/core/toolbox; newfs_msdos\nChange-Id: I8ad50b8c181fc4ec21e191ec9fea8e9aa11d2d9b\n"
    },
    {
      "commit": "29954f6062e59beb645109e2585afa4eb71e7992",
      "tree": "8475ddfd86a0e9ac04ff3da1e0dff9a1d6fbada7",
      "parents": [
        "78393951de05ef60456f23d959400125684d7f7a"
      ],
      "author": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Tue May 01 13:57:14 2018 -0700"
      },
      "committer": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Wed May 02 12:23:15 2018 -0700"
      },
      "message": "init: refactor first stage to not require fstab\n\nIn order to support dm-linear devices, we need an additional first-stage\nstep to ensure that required devices are created. This must happen before\nsetting up dm-verity or mounting any first-stage partitions.\n\nThis patch refactors FirstStageMount so that having a compatible fstab\nis optional. This will let us use InitRequiredDevices on systems that\nwould not otherwise perform first-stage mounts.\n\nBug: 78914864\nTest: non-AVB devices still boot\nChange-Id: I11265375a9900d983da8cabcc77d32c503ded02e\n"
    },
    {
      "commit": "89722709b4e957eda67a8faa6dbe6ff2e05486d1",
      "tree": "0998c0489299d36e1a1327b922d53800b906e5a2",
      "parents": [
        "78393951de05ef60456f23d959400125684d7f7a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 02 10:47:00 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 02 10:49:13 2018 -0700"
      },
      "message": "Fix a debuggerd test expectation.\n\n70d8f289454c9b691ec5421b0ed0354b6baaace8 broke a test that was not\nexpecting to see the new detail about the signal\u0027s sender.\n\nBug: http://b/78594105\nTest: ran tests\nChange-Id: Idfa3a53b9e664308efdba560ffbb1401c1904530\n"
    },
    {
      "commit": "78393951de05ef60456f23d959400125684d7f7a",
      "tree": "6ab09ba73c032bbddd6a5ceb745fadb43d7c4706",
      "parents": [
        "8ef8d1eb6ba51d382fb4b6886b3d497ac2a45973",
        "8fe363f26017e39b80c6cd793f7b2a346da88104"
      ],
      "author": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Wed May 02 02:16:58 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 02 02:16:58 2018 +0000"
      },
      "message": "Merge \"First-stage mount: avoid triggering a FATAL error\""
    },
    {
      "commit": "8ef8d1eb6ba51d382fb4b6886b3d497ac2a45973",
      "tree": "a3a47e5ee8255d203436d1e156c71fd20811bb66",
      "parents": [
        "49b7f296b9e513b69fa60088e03a70cb354a3120",
        "c587f02cc689c9cf55c51c266175a63165047fd7"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Wed May 02 01:46:12 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 02 01:46:12 2018 +0000"
      },
      "message": "Merge \"adb: Avoid waiting for emulator connections\""
    },
    {
      "commit": "c587f02cc689c9cf55c51c266175a63165047fd7",
      "tree": "a3a47e5ee8255d203436d1e156c71fd20811bb66",
      "parents": [
        "49b7f296b9e513b69fa60088e03a70cb354a3120"
      ],
      "author": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Tue May 01 17:12:16 2018 -0700"
      },
      "committer": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Tue May 01 17:12:16 2018 -0700"
      },
      "message": "adb: Avoid waiting for emulator connections\n\nThis change exempts the emulator connections from\nWaitableConnection.WaitForConnection(). This is because emulator\nconnections are a) more reliable and b) handled a bit differently than\nnormal TCP connections.\n\nBug: 78991667\nTest: emulator -showkernel ; adb shell\nChange-Id: I552946198889a82d6c265f45e8c3b38f6ac9d045\n"
    },
    {
      "commit": "8fe363f26017e39b80c6cd793f7b2a346da88104",
      "tree": "2d6b0b41988d95953150e436bd43f7bab5723508",
      "parents": [
        "4e6f3d9603bf8a8511e2751c5ed3e31896cccdd8"
      ],
      "author": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Mon Apr 30 16:13:42 2018 +0800"
      },
      "committer": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Tue May 01 16:39:36 2018 +0800"
      },
      "message": "First-stage mount: avoid triggering a FATAL error\n\nRelated AOSP changes:\n  1. https://android-review.googlesource.com/#/c/platform/system/core/+/405009/\n  2. https://android-review.googlesource.com/#/c/platform/system/core/+/532637/\n\nThe second CL raises a FATAL error when it detects fstab-dt has no content\nduring first-stage mount. However, with the first CL, the fstab-dt entry\nmight be \"skipped\" when bootloader sets the status property to a value\nother than \"ok\"/\"okay\". (e.g., to skip mounting /vendor on upgrading\ndevices which have no vendor partition).\n\nUse LOG(INFO) when there is nothing to mount here. The later stages\nshould trigger a FATAL error when some important files in those\npartitions are not available, e.g., SEPolicy files.\n\nBug: 78441220\nTest: boot a device\nChange-Id: Iae2f47d455679298bdb067d96b771a30c1a82e6f\n"
    },
    {
      "commit": "49b7f296b9e513b69fa60088e03a70cb354a3120",
      "tree": "22f172fe17a4f8bf0652b80e24488a907cfd5948",
      "parents": [
        "4e6f3d9603bf8a8511e2751c5ed3e31896cccdd8",
        "7d27ffdd4584990ad3bc2415e188718110b44e31"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Mon Apr 30 21:48:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 30 21:48:46 2018 +0000"
      },
      "message": "Merge changes from topic \"libsparse-callback\"\n\n* changes:\n  fastboot: Track the libsparse API change.\n  libsparse: Use \u0027size_t\u0027 for the \u0027len\u0027 parameter in callbacks.\n"
    },
    {
      "commit": "4e6f3d9603bf8a8511e2751c5ed3e31896cccdd8",
      "tree": "1544ec8bcab49d159ef5b9f6a99b3293ffbe6012",
      "parents": [
        "c314d4db9f759bfc04e5494c9b0d93ec063550ed",
        "40fdf3f4ab587f01d95b2ec119d817499b0edece"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 28 16:02:40 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 28 16:02:40 2018 +0000"
      },
      "message": "Merge \"Add test_suites lines.\""
    },
    {
      "commit": "c314d4db9f759bfc04e5494c9b0d93ec063550ed",
      "tree": "1be14936896d05f8179057d42f9706f579f5af9e",
      "parents": [
        "2666955d3d6aab35d033d41e3f63d568179f3663",
        "38ac45df1738496d5581b89845e48daeab7f0219"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Fri Apr 27 23:29:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 27 23:29:00 2018 +0000"
      },
      "message": "Merge \"crash_dump: defuse our signal handlers earlier.\""
    },
    {
      "commit": "2666955d3d6aab35d033d41e3f63d568179f3663",
      "tree": "8bbfa6bf7b8af5250c3038842d71039dc81bc721",
      "parents": [
        "65027d9d8038c9c1e57b2f5b7016634d00e71173",
        "9a388d53872f51daac16454cb7218e32ca368d3f"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Fri Apr 27 23:16:37 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 27 23:16:37 2018 +0000"
      },
      "message": "Merge \"adb: Make the Connection object a std::shared_ptr\""
    },
    {
      "commit": "40fdf3f4ab587f01d95b2ec119d817499b0edece",
      "tree": "ca59f23937fb33ebf7c1a6cf088eda0d0f7ce835",
      "parents": [
        "f88905d231367eeeb72379d9eb2debbadb47b788"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 27 16:12:06 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 27 16:12:06 2018 -0700"
      },
      "message": "Add test_suites lines.\n\nBug: N/A\nTest: builds\nChange-Id: Ic5e2b9206bcfcb53c774989013b5db6aab462e42\n"
    },
    {
      "commit": "38ac45df1738496d5581b89845e48daeab7f0219",
      "tree": "3d17bc16c9be7e9856e9dc7d139bfd23db6e7312",
      "parents": [
        "a3721db3338c051c7f31fc6e70ca08c740e28761"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 27 13:31:47 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 27 13:31:47 2018 -0700"
      },
      "message": "crash_dump: defuse our signal handlers earlier.\n\nWe have a LOG(FATAL) that can potentially happen before we turn off\nSIGABRT. Move the signal handler defusing to the very start of main.\n\nBug: http://b/77920633\nTest: treehugger\nChange-Id: I7a2f2a0f2bed16e54467388044eca254102aa6a0\n"
    },
    {
      "commit": "65027d9d8038c9c1e57b2f5b7016634d00e71173",
      "tree": "ad2fbc682aedf3803ccf98b01f4d21c5f9110001",
      "parents": [
        "584e2fe709c3253b1e48982073d5e2d4b51557e1",
        "56fe753070043a9a645ad002bad19ca2ae829cc2"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Fri Apr 27 19:51:25 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 27 19:51:25 2018 +0000"
      },
      "message": "Merge \"adb: Add a way to distinguish between connection failures and successes\""
    },
    {
      "commit": "584e2fe709c3253b1e48982073d5e2d4b51557e1",
      "tree": "08905c56bd2fde8e3df38693f2c91f4e57017943",
      "parents": [
        "b802255b06e7ce66ff08df5f4f742f74392f104f",
        "a366494fc34920e3dffe4688473f14dd176b310d"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Fri Apr 27 00:49:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 27 00:49:30 2018 +0000"
      },
      "message": "Merge \"Remove misleading comment.\""
    },
    {
      "commit": "b802255b06e7ce66ff08df5f4f742f74392f104f",
      "tree": "10f603f0268d9077c626b45bddd709898c48806e",
      "parents": [
        "da2535c0ea9bb1263bfe628f8d4c12a2743f361e",
        "70d8f289454c9b691ec5421b0ed0354b6baaace8"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Thu Apr 26 21:16:57 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 26 21:16:57 2018 +0000"
      },
      "message": "Merge \"Show signal sender for SI_FROMUSER signals.\""
    },
    {
      "commit": "9a388d53872f51daac16454cb7218e32ca368d3f",
      "tree": "59b5aa67b0cf8b563dd52bde7c1c86e76d268bd1",
      "parents": [
        "56fe753070043a9a645ad002bad19ca2ae829cc2"
      ],
      "author": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Wed Apr 25 08:56:41 2018 -0700"
      },
      "committer": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Thu Apr 26 13:53:35 2018 -0700"
      },
      "message": "adb: Make the Connection object a std::shared_ptr\n\nThis change is in preparation to allow the TCP-based transports to be\nable to reconnect. This is needed because multiple threads can access\nthe Connection object. It used to be safe to do because one instance of\natransport would have the same Connection instance throughout its\nlifetime, but now it is possible to replace the Connection instance,\nwhich could cause threads that were attempting to Write to an\natransport* to use-after-free the Connection instance.\n\nBug: 74411879\nTest: system/core/adb/test_adb.py\nChange-Id: I4f092be11b2095088a9a9de2c0386086814d37ce\n"
    },
    {
      "commit": "56fe753070043a9a645ad002bad19ca2ae829cc2",
      "tree": "b50702b3ba093ad7f8b8d38d887638a35d0c4e53",
      "parents": [
        "9aca01907d6f72bc8c481293a90bf6fe9395a2c7"
      ],
      "author": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Tue Apr 17 14:25:04 2018 -0700"
      },
      "committer": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Thu Apr 26 13:53:35 2018 -0700"
      },
      "message": "adb: Add a way to distinguish between connection failures and successes\n\nThis change adds a callback that is invoked exactly once, either when\nthe connection is fully established (i.e. CNXN packets have been sent\nand received) or the atransport object is deleted before that (because\nthe connection failed).\n\nThis helps in distinguishing between successful and failing connections\nfor TCP. Especially when there is some kind of port\nforwarding/multiplexing in between (like an SSH tunnel or SSLH proxy).\n\nBug: 74411879\nTest: adb connect chromebook:22 (which runs an sslh tunnel to adbd).\n      either succeeds or fails, but not fake-succeeds.\n\nChange-Id: I7e826c6f5d4c30338a03b2d376a857ac5d05672a\n"
    },
    {
      "commit": "da2535c0ea9bb1263bfe628f8d4c12a2743f361e",
      "tree": "6fa3577c5fe8e8fcd08342a553cdcc06de5a2463",
      "parents": [
        "efbbe6120b9c53de11113040b2add275edaba856",
        "2c2e3e89b00d59a4a476cafd7da9ac703f8f1b7d"
      ],
      "author": {
        "name": "Mika Raento",
        "email": "mikie@google.com",
        "time": "Thu Apr 26 17:01:32 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 26 17:01:32 2018 +0000"
      },
      "message": "Merge \"Systrace support for NNAPI\""
    },
    {
      "commit": "70d8f289454c9b691ec5421b0ed0354b6baaace8",
      "tree": "065570ea913e9c631e13807522fa0361e5c26e5e",
      "parents": [
        "f88905d231367eeeb72379d9eb2debbadb47b788"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 25 17:00:14 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 26 08:19:17 2018 -0700"
      },
      "message": "Show signal sender for SI_FROMUSER signals.\n\nSuicide doesn\u0027t change:\n\n  signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------\n\nBut homicide now looks like this (this is `sleep 666` killed by\n`kill -SEGV` as root:\n\n  signal 11 (SIGSEGV), code 0 (SI_USER from pid 4446, uid 0), fault addr --------\n\nBug: http://b/78594105\nTest: manual\nChange-Id: I8c2feafba8cc5a3db85e8250004d428a464c5d9e\n"
    },
    {
      "commit": "2c2e3e89b00d59a4a476cafd7da9ac703f8f1b7d",
      "tree": "6fa3577c5fe8e8fcd08342a553cdcc06de5a2463",
      "parents": [
        "efbbe6120b9c53de11113040b2add275edaba856"
      ],
      "author": {
        "name": "Mika Raento",
        "email": "mikie@google.com",
        "time": "Mon Apr 23 22:08:42 2018 +0100"
      },
      "committer": {
        "name": "Mika Raento",
        "email": "mikie@google.com",
        "time": "Thu Apr 26 09:34:22 2018 +0100"
      },
      "message": "Systrace support for NNAPI\n\nChange-Id: I5abf283b5fb04725ec0b8ffbb8191fbddec1766b\nBug: 78137932\nTest: mm\n"
    },
    {
      "commit": "efbbe6120b9c53de11113040b2add275edaba856",
      "tree": "8f3d2508d19949f09ade8992d97ed73c28b468e6",
      "parents": [
        "c8a8771b6b1a4191acea3e415a770c4e3fe1501d",
        "9f49508f368204657414ec0f2852f2a7abb5b4c5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 25 23:46:53 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 25 23:46:53 2018 +0000"
      },
      "message": "Merge changes Iefcb1ec9,I6df97295\n\n* changes:\n  Rewrite get_sched_policy_name for safety.\n  cutils: add restricted cpuset\n"
    },
    {
      "commit": "9f49508f368204657414ec0f2852f2a7abb5b4c5",
      "tree": "acc3a55ec97c42678f59cb0568b5d1cfad3664af",
      "parents": [
        "419ba9e2aadbfed3862d95265ce141d016c7ca69"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 25 14:52:50 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 25 14:55:48 2018 -0700"
      },
      "message": "Rewrite get_sched_policy_name for safety.\n\nThis way you\u0027ll get a build time error if you make the usual mistake of\nadding to the enum but not adding an entry to the array.\n\nAlso improve the unit tests, and fix get_sched_policy_name\u0027s incorrect\nbehavior on invalid inputs.\n\nBug: N/A\nTest: ran tests\nChange-Id: Iefcb1ec9ef66267837da7a576c8be3d0cfb16cd0\n"
    },
    {
      "commit": "c8a8771b6b1a4191acea3e415a770c4e3fe1501d",
      "tree": "54eead148d13f5da4d50d07cc809b864526a30a0",
      "parents": [
        "f88905d231367eeeb72379d9eb2debbadb47b788",
        "bde0ec9e00e92b602251e4015120046668b1a51f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 25 21:38:13 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 25 21:38:13 2018 +0000"
      },
      "message": "Merge \"Make ziparchive-tests run standalone.\""
    },
    {
      "commit": "419ba9e2aadbfed3862d95265ce141d016c7ca69",
      "tree": "6996e4e88788b0c769a8b8f48e9178435f0a1fe5",
      "parents": [
        "f88905d231367eeeb72379d9eb2debbadb47b788"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Fri Apr 13 10:15:49 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 25 14:30:37 2018 -0700"
      },
      "message": "cutils: add restricted cpuset\n\n(cherrypick of 658ae90f699bd21ec8d79b18a34765ed5993c828 without the init.rc change)\n\nBug: 78197570\nTest: CTS\nChange-Id: I6df972950b75a839caa463ae282ad000b959e8ae\n"
    },
    {
      "commit": "bde0ec9e00e92b602251e4015120046668b1a51f",
      "tree": "f97f899e28245c429064b5d040a6b393fb423857",
      "parents": [
        "a3721db3338c051c7f31fc6e70ca08c740e28761"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 25 12:49:19 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 25 12:50:17 2018 -0700"
      },
      "message": "Make ziparchive-tests run standalone.\n\nWe need to (a) tell soong to copy our data and (b) automatically find\nour data relative to our executable.\n\nThe real point of this is to be able to run these tests in APCT and\npresubmit.\n\nBug: N/A\nTest: ran tests on host and device, from a variety of directories\nChange-Id: I4c0be1ac60f03953fdd5ba6e3d15b1aaa37ed019\n"
    },
    {
      "commit": "f88905d231367eeeb72379d9eb2debbadb47b788",
      "tree": "4cd65cdbc222f007564471f4e93359e06adef579",
      "parents": [
        "6a2686b0f3a0282c4baa39d5aa88d030fe118be6",
        "4d17006b57331e10ffd861b68e2c92909db15276"
      ],
      "author": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Wed Apr 25 19:42:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 25 19:42:56 2018 +0000"
      },
      "message": "Merge \"Wipe metadata when we wipe userdata and cache.\""
    },
    {
      "commit": "4d17006b57331e10ffd861b68e2c92909db15276",
      "tree": "d8bfda9e55f5f7acff77c937c022a87930eced60",
      "parents": [
        "9249f4bc4148caef423a9cd0139d9e917fb36341"
      ],
      "author": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Tue Apr 24 17:06:30 2018 -0700"
      },
      "committer": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Wed Apr 25 10:51:05 2018 -0700"
      },
      "message": "Wipe metadata when we wipe userdata and cache.\n\nBug: 78469699\nTest: Run \"fastboot -w\" and see that metadata is wiped\nChange-Id: I2d795281c48b59c87d4f8f010037d95186f55684\n"
    },
    {
      "commit": "7d27ffdd4584990ad3bc2415e188718110b44e31",
      "tree": "c85c8ef18c3cf5aa6a5e8043d06ec526b981faaf",
      "parents": [
        "e18c03165b3ea86f563e104f44696d5c53f5b6a5"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Mon Apr 23 17:24:17 2018 -0700"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Wed Apr 25 10:37:01 2018 -0700"
      },
      "message": "fastboot: Track the libsparse API change.\n\nBug: 78432315\nTest: Successfully flash a previously failing (huge) sparse image.\nTest: `fastboot update` existing marlin-img.zip.\nChange-Id: I09c9a06109769882d26be56d4a0d2a2b7b62cb5f\n"
    },
    {
      "commit": "e18c03165b3ea86f563e104f44696d5c53f5b6a5",
      "tree": "967bd9f4d4d7fa2c57a8f194e05f47523f32c589",
      "parents": [
        "9249f4bc4148caef423a9cd0139d9e917fb36341"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Mon Apr 23 15:15:40 2018 -0700"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Wed Apr 25 10:29:22 2018 -0700"
      },
      "message": "libsparse: Use \u0027size_t\u0027 for the \u0027len\u0027 parameter in callbacks.\n\nThis CL updates the callback function signature in\nsparse_file_callback() and sparse_file_foreach_chunk().\n\nBefore:\nint sparse_file_callback(\n    struct sparse_file *s, bool sparse, bool crc,\n    int (*write)(void *priv, const void *data, int len), void *priv);\n\nint sparse_file_foreach_chunk(\n    struct sparse_file *s, bool sparse, bool crc,\n    int (*write)(\n        void *priv, const void *data, int len, unsigned int block,\n        unsigned int nr_blocks),\n    void *priv);\n\nAfter:\nint sparse_file_callback(\n    struct sparse_file *s, bool sparse, bool crc,\n    int (*write)(void *priv, const void *data, size_t len), void *priv);\n\nint sparse_file_foreach_chunk(\n    struct sparse_file *s, bool sparse, bool crc,\n    int (*write)(\n        void *priv, const void *data, size_t len, unsigned int block,\n        unsigned int nr_blocks),\n    void *priv);\n\nThe length (i.e. \u0027len\u0027) comes from the size of a chunk, which could be\nlegitimately larger than INT_MAX. Prior to this CL, callers (e.g.\nwrite_sparse_data_chunk()) were already passing unsigned int to the\ncallbacks. When a chunk size exceeds INT_MAX, the callback would see a\nnegative value, which could lead to undesired behavior. For example,\nout_counter_write(), as one of the internal callbacks in libsparse,\ngives a wrong sum of chunk sizes, which in turn fails the fastboot\nflashing when given a huge sparse image.\n\nIt also defines SPARSE_CALLBACK_USES_SIZE_T that allows clients to keep\ntheir codes compatibile with both versions.\n\nBug: 78432315\nTest: `m dist` (with matching changes to all the clients)\nTest: Build fastboot and successfully flash a previously failing (huge)\n      sparse image.\nChange-Id: Iac4bcf7b57039d08af3c57f4be00d75f6b693d93\n"
    },
    {
      "commit": "6a2686b0f3a0282c4baa39d5aa88d030fe118be6",
      "tree": "8e60c45bbbae17d61f5296d809b1a96d4480dc2c",
      "parents": [
        "9249f4bc4148caef423a9cd0139d9e917fb36341",
        "cbfebdbadb283ee13c555e7d79037fb5089caa4a"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Apr 25 16:40:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 25 16:40:59 2018 +0000"
      },
      "message": "Merge \"logd: notify kernel log readers of new messages\""
    },
    {
      "commit": "9249f4bc4148caef423a9cd0139d9e917fb36341",
      "tree": "23c11e4f3a6b333bd26b1deb23cbe7824071d87b",
      "parents": [
        "9feca7c2499a03733a3990fb4b5077a01f78659c",
        "41cf35f8b2795276280572cf4d06c58954d45ca4"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Wed Apr 25 13:32:43 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 25 13:32:43 2018 +0000"
      },
      "message": "Merge \"fastboot: sparse_file_len() returns int64_t.\""
    },
    {
      "commit": "41cf35f8b2795276280572cf4d06c58954d45ca4",
      "tree": "0eb3a9bc91e7fae881af8c662832f53ac95df472",
      "parents": [
        "a3721db3338c051c7f31fc6e70ca08c740e28761"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Tue Apr 24 10:54:21 2018 -0700"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Tue Apr 24 18:10:42 2018 -0700"
      },
      "message": "fastboot: sparse_file_len() returns int64_t.\n\nCheck that the value fits in uint32_t that\u0027s supported by the current\nprotocol.\n\nAlso fix and sanity check the max_size before passing it to\nsparse_file_resparse(), which accepts `unsigned int`. This shouldn\u0027t\nhappen in practice because of RESPARSE_LIMIT (1 GiB).\n\nTest: `fastboot flash` with small and large images.\nChange-Id: I0a8279fc14c54c40a70ddce65c3b25173c0d0a40\n"
    },
    {
      "commit": "9feca7c2499a03733a3990fb4b5077a01f78659c",
      "tree": "0f2b898824553fd0e204e5bd77abdfe7b0b50e0f",
      "parents": [
        "9aca01907d6f72bc8c481293a90bf6fe9395a2c7",
        "8cb36868a4138d094bf83802387fad008fd186cf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 25 01:00:54 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 25 01:00:54 2018 +0000"
      },
      "message": "Merge \"init: clarify documentation for disabled\""
    },
    {
      "commit": "8cb36868a4138d094bf83802387fad008fd186cf",
      "tree": "15fd9c47a6811b0f8560ec9a5d00c773aa56b222",
      "parents": [
        "224d965be0f94484e88c061aa839f9f054cf4f11"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Apr 24 16:24:58 2018 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Apr 24 16:24:58 2018 -0700"
      },
      "message": "init: clarify documentation for disabled\n\nServices can be started by name or interface name now.\n\nBug: N/A\nTest: N/A\nChange-Id: I9fef619e7c27d458193311f7cd7fca4dcf8c8e72\n"
    },
    {
      "commit": "cbfebdbadb283ee13c555e7d79037fb5089caa4a",
      "tree": "397edaeb3e30bf1d99e096254b410dbb43a26136",
      "parents": [
        "9aca01907d6f72bc8c481293a90bf6fe9395a2c7"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Apr 24 14:13:30 2018 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Apr 24 14:19:32 2018 -0700"
      },
      "message": "logd: notify kernel log readers of new messages\n\nLogBuffer::log() returns either a negative number on error or a\npositive number indicating the length of the message written.\nTherefore, the check to notify kernel log readers of a new message\nshould be that this function\u0027s return value is \u003e 0.\n\nBug: 78209416\nTest: `adb logcat -b kernel` updates when new log messages are present\nChange-Id: Icc18c0c22e62340994e5c26aedb72282d61c1541\n"
    },
    {
      "commit": "9aca01907d6f72bc8c481293a90bf6fe9395a2c7",
      "tree": "5ab6c543a3ce7de48c7597567e53454b2565eacd",
      "parents": [
        "ca07de4214cc8c21f2878a17bca67360521c31fd",
        "90a018a87a605de6ad3550861143f1a5f7917570"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 24 15:08:57 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 24 15:08:57 2018 +0000"
      },
      "message": "Merge \"Switch to PCRE grep.\""
    },
    {
      "commit": "a366494fc34920e3dffe4688473f14dd176b310d",
      "tree": "6a96e81f4e5ffd922a9b107786f8d65725eeb355",
      "parents": [
        "90a018a87a605de6ad3550861143f1a5f7917570"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 23 21:50:43 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 23 21:50:43 2018 -0700"
      },
      "message": "Remove misleading comment.\n\nBug: N/A\nTest: N/A\nChange-Id: Ie93d9d0abb13bf204c62f6951d3a7bae650f8e08\n"
    },
    {
      "commit": "90a018a87a605de6ad3550861143f1a5f7917570",
      "tree": "f5f10705b88a6c25d114e7c2a3123797833c1cbd",
      "parents": [
        "a3721db3338c051c7f31fc6e70ca08c740e28761"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 23 16:58:27 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 23 17:00:54 2018 -0700"
      },
      "message": "Switch to PCRE grep.\n\nBug: http://b/77150016\nTest: boots, manual testing\nChange-Id: I377ca42ed9783edcceab4daabe43e993ef74e837\n"
    },
    {
      "commit": "ca07de4214cc8c21f2878a17bca67360521c31fd",
      "tree": "057bbd82908e64298ec901f096203052630e9b5c",
      "parents": [
        "a3721db3338c051c7f31fc6e70ca08c740e28761",
        "ab39ce88e49d3df0f93dce7e3f639d6dc6a5c68f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 23 23:20:42 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 23 23:20:42 2018 +0000"
      },
      "message": "Merge \"Add a public.libraries.txt file for iot devices.\""
    },
    {
      "commit": "a3721db3338c051c7f31fc6e70ca08c740e28761",
      "tree": "12b30b1c2b381a7b65ebda4ef8008930d7e2bf8d",
      "parents": [
        "75d3592cb9b64614bd36ab2908d19f9ef7fd6933",
        "9edec24a2f53f87fd6b2b2d25544bcde952927ec"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 21 19:25:42 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 21 19:25:42 2018 +0000"
      },
      "message": "Merge \"Document the switch to toybox dd.\""
    },
    {
      "commit": "9edec24a2f53f87fd6b2b2d25544bcde952927ec",
      "tree": "12b30b1c2b381a7b65ebda4ef8008930d7e2bf8d",
      "parents": [
        "75d3592cb9b64614bd36ab2908d19f9ef7fd6933"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 21 10:49:17 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 21 10:49:17 2018 -0700"
      },
      "message": "Document the switch to toybox dd.\n\nBug: N/A\nTest: N/A\nChange-Id: Ia1fd8a14ceb9d9e8661804a126b3818cc066b0ff\n"
    },
    {
      "commit": "75d3592cb9b64614bd36ab2908d19f9ef7fd6933",
      "tree": "618dba1e011f9f49de34ba098e31e8ef832abad6",
      "parents": [
        "eb1b202acb9466021f31e6a2d83b665884fdbcbb",
        "21ceafbaacbfec47bc26f6c500847fd09c3924e0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 21 02:31:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 21 02:31:56 2018 +0000"
      },
      "message": "Merge \"Remove BSD dd.\""
    },
    {
      "commit": "eb1b202acb9466021f31e6a2d83b665884fdbcbb",
      "tree": "19b714e2eb9ec8bcc62cead6383f86d9a97dc108",
      "parents": [
        "3e378800b82c9db6cb66719bc43cd7734c8a5305",
        "83b8ac24b66ff0310500ddc906b26dab5bfeea5a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 21 02:21:55 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 21 02:21:55 2018 +0000"
      },
      "message": "Merge \"libdebuggerd: fix out of bounds write.\""
    },
    {
      "commit": "3e378800b82c9db6cb66719bc43cd7734c8a5305",
      "tree": "f97643829527acae997038acd501d8b9ac3d8296",
      "parents": [
        "a7112f4c9b6a2952dfc2874a05ddfce975ae6e2f",
        "5d1c14f41bac357c730aa47d705c1f1da7625280"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 21 02:15:45 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 21 02:15:45 2018 +0000"
      },
      "message": "Merge changes I4b017701,I28aff510\n\n* changes:\n  libdebuggerd: clone registers before we Unwind with them.\n  libunwindstack: add Regs::Clone.\n"
    },
    {
      "commit": "a7112f4c9b6a2952dfc2874a05ddfce975ae6e2f",
      "tree": "ea108b178e8b3c3741383257b7d8d3d90688800d",
      "parents": [
        "b1677c15c266e428cf656e546cd7cc19de1e21e8",
        "91687878c5e9ac0725b9c7db9ddcc92e2ca155ce"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 21 02:14:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 21 02:14:51 2018 +0000"
      },
      "message": "Merge \"Mark libziparchive as double_loadable\""
    },
    {
      "commit": "21ceafbaacbfec47bc26f6c500847fd09c3924e0",
      "tree": "54f978b47210b8260ed48566ff5d218899abd063",
      "parents": [
        "b1677c15c266e428cf656e546cd7cc19de1e21e8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 20 17:46:03 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 20 17:55:44 2018 -0700"
      },
      "message": "Remove BSD dd.\n\nBug: N/A\nTest: builds\nChange-Id: Id80364241434abfc216149b4ce7440cef700abef\n"
    },
    {
      "commit": "83b8ac24b66ff0310500ddc906b26dab5bfeea5a",
      "tree": "7613a4e6a5e5c2e01d61578cd33828e4205c8d39",
      "parents": [
        "5d1c14f41bac357c730aa47d705c1f1da7625280"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 20 17:31:53 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 20 17:46:50 2018 -0700"
      },
      "message": "libdebuggerd: fix out of bounds write.\n\nBug: http://b/78363964\nTest: treehugger\nChange-Id: I79ae818e4e0c29f064335d59789afc3b1bf87c69\n"
    },
    {
      "commit": "b1677c15c266e428cf656e546cd7cc19de1e21e8",
      "tree": "2487c1ca5eff644e702ba0a0ec256d0d3027943f",
      "parents": [
        "481a8125a6118a793148da3440370e9a7e7dc1ad",
        "8591440fe2db1b2b7601b04342af5af30dddf8fa"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 20 22:33:27 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 20 22:33:27 2018 +0000"
      },
      "message": "Merge \"Lose dd to toybox.\""
    },
    {
      "commit": "481a8125a6118a793148da3440370e9a7e7dc1ad",
      "tree": "d599e94e459c002b830fc62db3594fbe87c06658",
      "parents": [
        "180378206478d564d26bc135df608e0d0e0eb675",
        "afd66f2fd3a3a14dfec989c4b2c98a5be4046947"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 20 21:09:04 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 20 21:09:04 2018 +0000"
      },
      "message": "Merge \"llkd: bootstat: propagate detailed livelock canonical boot reason\""
    },
    {
      "commit": "180378206478d564d26bc135df608e0d0e0eb675",
      "tree": "85c46fd4f8a6cc80f7649243059744eb32c374d1",
      "parents": [
        "656bc2463023ec6a223138131a8f8fc0bf739dd4",
        "d035dbbecf44191af398261b722d72026678eea8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 20 21:09:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 20 21:09:00 2018 +0000"
      },
      "message": "Merge \"llkd: default enabled for userdebug\""
    },
    {
      "commit": "ab39ce88e49d3df0f93dce7e3f639d6dc6a5c68f",
      "tree": "b98894339305c665a6f2090dfaaf767cbf8a3006",
      "parents": [
        "395131df7baa7b5a141cd2c48f22dd2a4dfb7091"
      ],
      "author": {
        "name": "Ralph Nathan",
        "email": "ralphnathan@google.com",
        "time": "Fri Apr 20 08:08:05 2018 -0700"
      },
      "committer": {
        "name": "Ralph Nathan",
        "email": "ralphnathan@google.com",
        "time": "Fri Apr 20 13:46:55 2018 -0700"
      },
      "message": "Add a public.libraries.txt file for iot devices.\n\nPreviously on Android Things, we used a vendor public.libraries.txt\nfile. This cl enables us to tag our library correctly.\n\nBug: 78226207\nTest: test app works\nChange-Id: I9e69717e5968a903e84f59c1d889c8e4cf9bcc35\n"
    },
    {
      "commit": "656bc2463023ec6a223138131a8f8fc0bf739dd4",
      "tree": "c7e80dbb61de53e84bb426708d88b95327a54522",
      "parents": [
        "395131df7baa7b5a141cd2c48f22dd2a4dfb7091",
        "f089e1403baa70864869aea4eb680c82f7debbb1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 20 20:46:41 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 20 20:46:41 2018 +0000"
      },
      "message": "Merge \"llkd: add live-lock daemon\""
    },
    {
      "commit": "8591440fe2db1b2b7601b04342af5af30dddf8fa",
      "tree": "a3dd09224fdcb8cccaade067e1b248bd31ab30f3",
      "parents": [
        "395131df7baa7b5a141cd2c48f22dd2a4dfb7091"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 20 13:34:20 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 20 13:34:20 2018 -0700"
      },
      "message": "Lose dd to toybox.\n\nJust the symlink for now. If this sticks, I\u0027ll come back to remove the code.\n\nBug: N/A\nTest: `toolbox dd --help`\nChange-Id: I9b967e9246f42db0d1f48d9d147c538d57fb3bc8\n"
    },
    {
      "commit": "5d1c14f41bac357c730aa47d705c1f1da7625280",
      "tree": "7e33631043e5fa3fb04a5bac82685b0e753eb56b",
      "parents": [
        "2f37a15472945194fed528cb8d3104aa4865fc4c"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 20 12:04:41 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 20 13:23:20 2018 -0700"
      },
      "message": "libdebuggerd: clone registers before we Unwind with them.\n\nBug: http://b/77296294\nTest: manual inspection of tombstone generated by crasher\nChange-Id: I4b017701d7d2041db4aefbbb90977e99b844c328\n"
    },
    {
      "commit": "2f37a15472945194fed528cb8d3104aa4865fc4c",
      "tree": "01fde5f19a6c4c2833fc2bc39bd0ad268fc4811f",
      "parents": [
        "22dc27b9fa46b20aca4f5982979681a858a97284"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 20 11:51:14 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 20 13:23:20 2018 -0700"
      },
      "message": "libunwindstack: add Regs::Clone.\n\nAdd a way to copy a Regs object.\n\nBug: http://b/77296294\nTest: libunwindstack_test\nChange-Id: I28aff510aa3e1b677d5ae46dc3bfe7652817ce52\n"
    },
    {
      "commit": "395131df7baa7b5a141cd2c48f22dd2a4dfb7091",
      "tree": "d24a051a75290a0a224ec836223dfb8d98c1a762",
      "parents": [
        "c4ad6b6adc98fdefb2c33b7bd33ebb00ffecfbbe",
        "542370dead58e854c477549bf0b3333aaf23b299"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 20 20:15:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 20 20:15:30 2018 +0000"
      },
      "message": "Merge changes I1f55c6e1,Ib2adcf0a\n\n* changes:\n  Move fastboot over to ParseByteCount.\n  Add android::base::ParseByteCount.\n"
    },
    {
      "commit": "542370dead58e854c477549bf0b3333aaf23b299",
      "tree": "fbbe91dcd30abb4ca5c892a4813f1c98a963878b",
      "parents": [
        "955b6a47929678a0b9dae703061dcd7f2974b32b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 19 19:49:44 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 19 19:49:44 2018 -0700"
      },
      "message": "Move fastboot over to ParseByteCount.\n\nBug: N/A\nTest: `fastboot flashall` and `fastboot -S 100m flashall`\nChange-Id: I1f55c6e10be74780bbf8dc30b2d4be3f362ac662\n"
    },
    {
      "commit": "955b6a47929678a0b9dae703061dcd7f2974b32b",
      "tree": "5ff57344de6db184a9dbe36c26cdf07485a418ef",
      "parents": [
        "01ce44b734d8eeb6f29d6038857bcefe4854b7cd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 19 19:48:25 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 19 19:49:16 2018 -0700"
      },
      "message": "Add android::base::ParseByteCount.\n\nBug: N/A\nTest: ran tests\nChange-Id: Ib2adcf0a5b9494fcf8259b29974303e8516a9ad9\n"
    },
    {
      "commit": "c4ad6b6adc98fdefb2c33b7bd33ebb00ffecfbbe",
      "tree": "51ed510dc6c03692d10d631b2c2d4b7bbfe467c7",
      "parents": [
        "224d965be0f94484e88c061aa839f9f054cf4f11",
        "8b67c520998c6fca95c62fdd864e42647cb8da49"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 20 02:13:09 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 20 02:13:09 2018 +0000"
      },
      "message": "Merge changes I722d2c41,Ic216ddef\n\n* changes:\n  Improve test_adb.py\n  adb: Distinguish betwen already-connected and connection failure\n"
    },
    {
      "commit": "224d965be0f94484e88c061aa839f9f054cf4f11",
      "tree": "cc077dc5100cce402848f723e33aaed6acd11536",
      "parents": [
        "3152c540b4aab7a304904154c2f9ffba542c3225",
        "78f133d7d46386a2215cd45836354260265ade26"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 19 21:40:57 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 19 21:40:57 2018 +0000"
      },
      "message": "Merge \"adb: don\u0027t error in handle_host_request if we can\u0027t acquire a transport.\""
    },
    {
      "commit": "48383c806af629bb755ce120ba30e8cb70eb5f23",
      "tree": "157ffe1ed460694d62347540829b931ab4602b3a",
      "parents": [
        "22dc27b9fa46b20aca4f5982979681a858a97284"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Apr 18 18:11:01 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 19 14:33:18 2018 -0700"
      },
      "message": "tombstoned: don\u0027t create tombstones for failed dumps.\n\nInstead of creating tombstone FDs in place and passing them out to\ncrash_dump directly, create them as O_TMPFILEs and link them into place\nwhen crash_dump reports success, to avoid creating empty tombstones\nin cases like an aborting thread racing with another thread that\nmanages to cleanly exit_group before the dump finishes.\n\nBug: http://b/77729983\nTest: debuggerd_test\nTest: adb shell \u0027for x in `seq 0 50`; do crasher; done\u0027\nChange-Id: I31ce4fd4a524abf8bde57152450209483d9d0ba9\n"
    },
    {
      "commit": "78f133d7d46386a2215cd45836354260265ade26",
      "tree": "c3d84402fb9dcf670177a30a2ffb10ded6c2dcb2",
      "parents": [
        "22dc27b9fa46b20aca4f5982979681a858a97284"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 19 13:06:42 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 19 13:09:18 2018 -0700"
      },
      "message": "adb: don\u0027t error in handle_host_request if we can\u0027t acquire a transport.\n\nHost services are attempted after handle_host_request, which means that\nfailing to find a transport to give to handle_forward_request shouldn\u0027t\nsend an error over to the other end.\n\nBug: http://b/78294734\nTest: `adb track-devices` with multiple devices connected\nChange-Id: I46c89cc1894b51d48fea7d4e629b1d57f73e3fd6\n"
    },
    {
      "commit": "3152c540b4aab7a304904154c2f9ffba542c3225",
      "tree": "c5dbd22ef11524f1c8a80cde5fbde9ff3f87df50",
      "parents": [
        "8e73e6f2427d5f3eca26b3ae0328a96ecb13fd30",
        "dcc4b2bb4a7b4753e7d5424c4c8646b9adb5c68e"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Apr 19 18:02:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 19 18:02:30 2018 +0000"
      },
      "message": "Merge \"Add a dummy entry for the 70220 event tag\""
    }
  ],
  "next": "8e73e6f2427d5f3eca26b3ae0328a96ecb13fd30"
}
