)]}'
{
  "log": [
    {
      "commit": "ec9ea66a2bd3b16ed0b110cf82f18c0149438cc1",
      "tree": "065bc76231b3634161a8a3356f87359dd7bc3d25",
      "parents": [
        "c2241b9c5dbff5028558e658286c242c050594f8"
      ],
      "author": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Mon Apr 18 16:08:19 2016 -0700"
      },
      "committer": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Mon Apr 18 16:08:19 2016 -0700"
      },
      "message": "Define LIKELY and UNLIKELY in a vendor friendly way\n\nThis prevents macro conflicts with vendor code.\n\nBug: 27804373\nChange-Id: I759c2b7b611203d0afdc35ddd5c2adb8f942ea17\nTest: Compiles when libbinder include path changes to include libbase.\n"
    },
    {
      "commit": "c2241b9c5dbff5028558e658286c242c050594f8",
      "tree": "7a76c6e5365e82e361d52aefbcdf1ccee41c0fe6",
      "parents": [
        "a87467d767b0523fca5f8fcfda9a2afb59e8df4f",
        "8ac71c7fc69ebff609bd669c17fa5ef4a95cbadf"
      ],
      "author": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Mon Apr 18 17:04:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 18 17:04:49 2016 +0000"
      },
      "message": "Merge \"Export libbinder headers from libhealhd.default\""
    },
    {
      "commit": "a87467d767b0523fca5f8fcfda9a2afb59e8df4f",
      "tree": "f9aa5269aa04b215c1b9d163a1ed481e68292e0d",
      "parents": [
        "643bc369ef8dbeeb22ee87bfa04eb3621ffa16a2",
        "2e210e4650f3e1ce9be6c7933b4bcbbc12c8eeb7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 18 16:48:32 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 18 16:48:33 2016 +0000"
      },
      "message": "Merge \"logpersist: incorporate size and buffer tunables\""
    },
    {
      "commit": "8ac71c7fc69ebff609bd669c17fa5ef4a95cbadf",
      "tree": "1538665b529c63f1b98da3055cf53267dad969fd",
      "parents": [
        "643bc369ef8dbeeb22ee87bfa04eb3621ffa16a2"
      ],
      "author": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Mon Apr 18 09:33:53 2016 -0700"
      },
      "committer": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Mon Apr 18 09:33:53 2016 -0700"
      },
      "message": "Export libbinder headers from libhealhd.default\n\nConsumers of libhealthd.default will need these headers.\n\nBug: 27804373\nChange-Id: I59e8526e3491f0db528d1277b8e2f4b68ce85805\nTest: Compiles.\n"
    },
    {
      "commit": "2e210e4650f3e1ce9be6c7933b4bcbbc12c8eeb7",
      "tree": "f9aa5269aa04b215c1b9d163a1ed481e68292e0d",
      "parents": [
        "643bc369ef8dbeeb22ee87bfa04eb3621ffa16a2"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 12 14:35:27 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Apr 18 08:54:39 2016 -0700"
      },
      "message": "logpersist: incorporate size and buffer tunables\n\n- Add hidden -n and -b flags that propagate to the underlying\n  logcat command. Publish aliases in help as --size and --buffer.\n- Add --clear for start command so it clears before starting\n- shell script bloating up to deal with option validation and\n  provide ERROR: and WARNING: advice.\n\nToDo:\n\n- Deprecate shell script and replace with Eng and Userdebug\n  only Developer Options, before it becomes too powerful\n  or bloated to force us to rewrite an expendable like this\n  into C++.\n\nBug: 28120456\nChange-Id: I0dff8acaa1e5c929454760cfa2801924956bc25d\n"
    },
    {
      "commit": "643bc369ef8dbeeb22ee87bfa04eb3621ffa16a2",
      "tree": "fd4f512a89301f4ce271361fc15f11c8629e17c3",
      "parents": [
        "ba430e363427cb99af3afe06baec9360150255b2",
        "1f4ec19e499ba981e4117f647d191603c2713e79"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Sat Apr 16 01:50:54 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 16 01:50:54 2016 +0000"
      },
      "message": "Merge \"adb: add reconnect command.\""
    },
    {
      "commit": "ba430e363427cb99af3afe06baec9360150255b2",
      "tree": "b6c16da990d37a5fffc7a5b259526f622aebd820",
      "parents": [
        "1607ea64cbdeea766c05d033afe0c65ea978b399",
        "2257f6baf5fb0efedd7d7852bc81fb120198dfff"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 16 00:01:39 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 16 00:01:39 2016 +0000"
      },
      "message": "Merge \"Fix include-what-you-use problem in android-pubkey.c.\""
    },
    {
      "commit": "2257f6baf5fb0efedd7d7852bc81fb120198dfff",
      "tree": "b6c16da990d37a5fffc7a5b259526f622aebd820",
      "parents": [
        "1607ea64cbdeea766c05d033afe0c65ea978b399"
      ],
      "author": {
        "name": "David Benjamin",
        "email": "davidben@google.com",
        "time": "Fri Apr 15 17:44:05 2016 -0400"
      },
      "committer": {
        "name": "David Benjamin",
        "email": "davidben@google.com",
        "time": "Fri Apr 15 17:44:05 2016 -0400"
      },
      "message": "Fix include-what-you-use problem in android-pubkey.c.\n\nThis fixes a problem building against BoringSSL master.\n\nChange-Id: Ib052c6a59454126a83e32e9a43391470aca7356a\n"
    },
    {
      "commit": "1607ea64cbdeea766c05d033afe0c65ea978b399",
      "tree": "ed01de99148e6879cd1a2ceb902e5683c37f2b97",
      "parents": [
        "f20e4b1b710d01fca7bfc41739058ef22c44e0f3",
        "2d8b3e66c6fd298bc8f4dc4e8205bb469a89a6f8"
      ],
      "author": {
        "name": "James Hawkins",
        "email": "jhawkins@google.com",
        "time": "Fri Apr 15 16:46:51 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 15 16:46:52 2016 +0000"
      },
      "message": "Merge \"bootstat: Calculate and log the time_since_last_boot metric.\""
    },
    {
      "commit": "2d8b3e66c6fd298bc8f4dc4e8205bb469a89a6f8",
      "tree": "e7c84817899e5b91ee86c0398f2ccc16352fadbf",
      "parents": [
        "9a3e238a6052204ff44b81ea06b6a0874e2acff9"
      ],
      "author": {
        "name": "James Hawkins",
        "email": "jhawkins@google.com",
        "time": "Thu Apr 14 14:13:20 2016 -0700"
      },
      "committer": {
        "name": "James Hawkins",
        "email": "jhawkins@google.com",
        "time": "Fri Apr 15 08:44:01 2016 -0700"
      },
      "message": "bootstat: Calculate and log the time_since_last_boot metric.\n\nBug: 28163811\nChange-Id: I2e1350531f6a0fc891c270cfdfca6c8ad63f8040\n"
    },
    {
      "commit": "f20e4b1b710d01fca7bfc41739058ef22c44e0f3",
      "tree": "ec9a87b2968693c58ba027faadb4feedc6f2c37c",
      "parents": [
        "9a3e238a6052204ff44b81ea06b6a0874e2acff9",
        "51e607056dd0db93ef683d05349dd98648c47e47"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Apr 14 21:14:54 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 14 21:14:55 2016 +0000"
      },
      "message": "Merge \"libbacktrace: only build libbacktrace_offline static library.\""
    },
    {
      "commit": "51e607056dd0db93ef683d05349dd98648c47e47",
      "tree": "b316baa363a225893119b1714e8097125f9e3044",
      "parents": [
        "e99283103bbd06a2b8a40971ed161d9d0518f79e"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Apr 13 21:21:47 2016 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Apr 14 10:31:08 2016 -0700"
      },
      "message": "libbacktrace: only build libbacktrace_offline static library.\n\nAs device may not have libbacktrace_offline shared library, simpleperf\nno longer rely on it. So there is no reason to keep libbacktrace_offline\nshared library.\n\nBug: 28152982\nChange-Id: If8e31b1434646dbbfed60264eb25f034bc5d6946\n"
    },
    {
      "commit": "9a3e238a6052204ff44b81ea06b6a0874e2acff9",
      "tree": "3970b8fe46d44f6edd119c00d7813fb23ba6e8c1",
      "parents": [
        "d93e7cacef54a2c7ab26071fca3982f6e60fd47c",
        "b8a95bd3c9502d48b203b9f1e5df9b84a5df6281"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 14 16:06:08 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 14 16:06:08 2016 +0000"
      },
      "message": "Merge \"logd: switch from android_ids to getpwuid\""
    },
    {
      "commit": "d93e7cacef54a2c7ab26071fca3982f6e60fd47c",
      "tree": "b7f9211c75985db7a52ff5f0b37f9b8216b485bf",
      "parents": [
        "e99283103bbd06a2b8a40971ed161d9d0518f79e",
        "6b11c13aed5934ea38f0747324006491c8daecdd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 14 15:19:06 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 14 15:19:06 2016 +0000"
      },
      "message": "Merge \"Remove libmincrypt.\""
    },
    {
      "commit": "b8a95bd3c9502d48b203b9f1e5df9b84a5df6281",
      "tree": "442adcc9ddac9946f1835228d776eb472cbba4bd",
      "parents": [
        "e99283103bbd06a2b8a40971ed161d9d0518f79e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Apr 07 11:06:31 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Apr 14 15:14:46 2016 +0000"
      },
      "message": "logd: switch from android_ids to getpwuid\n\nBug: 27999086\nChange-Id: I7f4e68b21f58789b4dcada04f9c27f5722940c02\n"
    },
    {
      "commit": "e99283103bbd06a2b8a40971ed161d9d0518f79e",
      "tree": "bca4b744e39c7fe8769f37e01e5ea8242cbc3933",
      "parents": [
        "df7c1ed3a06c60d77865ff8d71b2f30ca94693a7",
        "de551ffee965c7b5e5a87f64cce6b0a7d9f38641"
      ],
      "author": {
        "name": "Daniel Rosenberg",
        "email": "drosen@google.com",
        "time": "Thu Apr 14 00:12:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 14 00:12:44 2016 +0000"
      },
      "message": "Merge \"Add nofail fstab option\""
    },
    {
      "commit": "df7c1ed3a06c60d77865ff8d71b2f30ca94693a7",
      "tree": "20370750b662a963278d92280a8cd248ffc55d56",
      "parents": [
        "3e0eaa4103f4497463dd8b5daa1ee7ffe3921211",
        "33c262513f67d18a7a95d6cd0ec870f0d50dce86"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 13 21:32:48 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 13 21:32:48 2016 +0000"
      },
      "message": "Merge changes I7ebb6146,I0b42736c,I5331acde\n\n* changes:\n  logcat: expand -n, -r and -b\n  logcat: allow comma-separate list of buffers\n  logcat: Adjust help to make it more meaningful\n"
    },
    {
      "commit": "3e0eaa4103f4497463dd8b5daa1ee7ffe3921211",
      "tree": "c69093ae473fd8761fc7d15ad8fa0eb7a7a13471",
      "parents": [
        "4888d79a945ff62b933f500317ed049031f77551",
        "48a348183f5f4478ca5b0ca2059fa829648fc090"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 13 20:25:53 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 13 20:25:53 2016 +0000"
      },
      "message": "Merge changes Ibc8038b1,I1876ecd7,I57d70f8b\n\n* changes:\n  adb: after `adb root`, wait for the device in any state.\n  adb: add support for \u0027wait-for-any\u0027.\n  adb: make \u0027wait-for-{recovery,sideload,bootloader} work.\n"
    },
    {
      "commit": "48a348183f5f4478ca5b0ca2059fa829648fc090",
      "tree": "a623a7ec3c68445c6a561d9a50bf98844ca5e750",
      "parents": [
        "86441c31fe256f37625743e2818377ce5e3dec05"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Apr 13 12:22:27 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Apr 13 12:28:04 2016 -0700"
      },
      "message": "adb: after `adb root`, wait for the device in any state.\n\nOtherwise, `adb root` while the device is in recovery will hang.\n\nBug: http://b/28168212\nChange-Id: Ibc8038b1745139fb505e466c74c605b9df474c8c\n"
    },
    {
      "commit": "86441c31fe256f37625743e2818377ce5e3dec05",
      "tree": "1db6d085012f07ed3bf24ddf5ddfa1caf6cf8efb",
      "parents": [
        "08881e72f4b01302742e027225145b061202c528"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Apr 13 12:18:58 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Apr 13 12:28:04 2016 -0700"
      },
      "message": "adb: add support for \u0027wait-for-any\u0027.\n\nAllow waiting for a device in any state.\n\nBug: http://b/28168212\nChange-Id: I1876ecd70089ca88f2da5de4182e13724ec50501\n"
    },
    {
      "commit": "08881e72f4b01302742e027225145b061202c528",
      "tree": "a081593e9ae73c6dbf4126872be3209f5892fb41",
      "parents": [
        "adf1cdeda07acfa6fc96627f8d4fca5b98bb7428"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Apr 13 12:14:16 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Apr 13 12:28:04 2016 -0700"
      },
      "message": "adb: make \u0027wait-for-{recovery,sideload,bootloader} work.\n\nThe help for wait-for-* documents this as working, but we only had a\nspecial case for \u0027wait-for-device\u0027. Make the others work as well.\n\nBug: http://b/28170823\nChange-Id: I57d70f8b9a383947c4f761919bfbd8515a013520\n"
    },
    {
      "commit": "33c262513f67d18a7a95d6cd0ec870f0d50dce86",
      "tree": "a5afd733456bb905e6409dd6a433b6e14044aa7a",
      "parents": [
        "45177732966d82a9ee8d558f9b115e061e0c7208"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 12 09:11:46 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 13 11:43:03 2016 -0700"
      },
      "message": "logcat: expand -n, -r and -b\n\n- Add property expansion to the -n/--rotate-count,\n  -r/--rotate-kbytes and -b/--buffer parameters.\n  e.g. -r \u0027${logcat.rotate-count:-6}\u0027 will expand the property\n  logcat.rotate-count, and if not present will default to 6\n- Add gtest to confirm mid-stream expansion\n- No longer support \",:;\u003cwhitespace\u003e\" for buffer tokenization,\n  settling on only supporting \",\".\n\nBug: 28120456\nChange-Id: I7ebb6146f72047631536c457952fa50d0abb98ab\n"
    },
    {
      "commit": "45177732966d82a9ee8d558f9b115e061e0c7208",
      "tree": "62a86825f59fd507fcb7a810176a825e5b9c8db4",
      "parents": [
        "378f4745a27632f3bb26e7029fe55142001f3d47"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Apr 11 14:03:48 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 13 11:42:57 2016 -0700"
      },
      "message": "logcat: allow comma-separate list of buffers\n\n- Add parsing to support comma+ separated list of buffers.\n- Move get_size test into a standalone get_groups function\n- add some additional tests for this feature, leveraging\n  get_groups to confirm buffer selection.\n\nBug: 28120456\nChange-Id: I0b42736c08cf4b2a435cb74cda540dc163a26bd1\n"
    },
    {
      "commit": "378f4745a27632f3bb26e7029fe55142001f3d47",
      "tree": "5480317d83bd26b0dd6ae3238f6658f1ada3fd3c",
      "parents": [
        "4888d79a945ff62b933f500317ed049031f77551"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 12 09:11:46 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 13 11:42:52 2016 -0700"
      },
      "message": "logcat: Adjust help to make it more meaningful\n\nIt is not clear about the long option aliases, list\nthem comma separate first for clarity. Squash lines\nof help content if possible. Lock to 3 indents, one\nfor options, another for text on same line as options\nand another for next line or continuation.\n\nBug: 28120456\nChange-Id: I5331acde3ac0fd3b87f6699ba108f6cef46a1563\n"
    },
    {
      "commit": "4888d79a945ff62b933f500317ed049031f77551",
      "tree": "a4af07cd62a5f9119caa6dd8344c1cfec21ee27b",
      "parents": [
        "52eb93ca57fa2f93be7e762392abb93c0b4c9210",
        "bdeac39a42c1b9c7195ada1c30fe12f94314490f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 13 15:43:03 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 13 15:43:03 2016 +0000"
      },
      "message": "Merge \"Remove undocumented functionality from init.\""
    },
    {
      "commit": "bdeac39a42c1b9c7195ada1c30fe12f94314490f",
      "tree": "a4af07cd62a5f9119caa6dd8344c1cfec21ee27b",
      "parents": [
        "52eb93ca57fa2f93be7e762392abb93c0b4c9210"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 12 15:38:27 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 13 07:56:51 2016 -0700"
      },
      "message": "Remove undocumented functionality from init.\n\n(cherry-pick of a3cc6026301db08285028c760af2665a66b3cc44.)\n\nBug: http://b/28151340\nChange-Id: I5360502c79d9113a13055bf017b39c099033e947\n"
    },
    {
      "commit": "6b11c13aed5934ea38f0747324006491c8daecdd",
      "tree": "d45a04028a27e0b0b50a9e40ac4144c0cb7dd1ec",
      "parents": [
        "52eb93ca57fa2f93be7e762392abb93c0b4c9210"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 12 16:20:23 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 12 16:20:23 2016 -0700"
      },
      "message": "Remove libmincrypt.\n\nBug: http://b/27287913\nChange-Id: Ie85a7d8fecc3577a16c0a79d5f95379ec3ecc15b\n"
    },
    {
      "commit": "52eb93ca57fa2f93be7e762392abb93c0b4c9210",
      "tree": "663cfcb74e3aca47a87eedfd8b754e4596876563",
      "parents": [
        "90c2e75db9093ae7c6fa6ef117ab795755b8b2ea",
        "097b6bbc76231f4148c9dd28b6ea0c1189d40fc3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 12 23:12:35 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 12 23:12:35 2016 +0000"
      },
      "message": "Merge changes from topic \u0027boringssl_conversion\u0027\n\n* changes:\n  Switch fs_mgr and adb to libcrypto_utils.\n  Add libcrypto_utils.\n"
    },
    {
      "commit": "90c2e75db9093ae7c6fa6ef117ab795755b8b2ea",
      "tree": "151aaaa9e48590ef7500148b5a9d1d1b4650a322",
      "parents": [
        "979ce0e33827a9c5bb2b76b2e2557544f8eb0cce",
        "3842b1a5f6f12bd1ffb885940aa88a7bb959e58d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 12 23:11:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 12 23:11:56 2016 +0000"
      },
      "message": "Merge \"logcat: apct test failures\""
    },
    {
      "commit": "097b6bbc76231f4148c9dd28b6ea0c1189d40fc3",
      "tree": "225a4be06f3a4abba9e4f838fb0c37df133cc606",
      "parents": [
        "b62146dcabedcacf99349793c1947797a173f0e6"
      ],
      "author": {
        "name": "Mattias Nissler",
        "email": "mnissler@google.com",
        "time": "Thu Mar 31 16:32:09 2016 +0200"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 12 23:04:11 2016 +0000"
      },
      "message": "Switch fs_mgr and adb to libcrypto_utils.\n\nUpdate code and dependencies to use BoringSSL + libcrypto_utils\ninstead of mincrypt.\n\nChange-Id: Ic75164bd50c84b81b6310e27a67d4b3c174984f9\n"
    },
    {
      "commit": "3842b1a5f6f12bd1ffb885940aa88a7bb959e58d",
      "tree": "92e1c7356009202b0aa7aade7302af2de9a7a774",
      "parents": [
        "5aef89b3a340f5634a0de32590c9ea9722cb6e99"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 12 11:07:26 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 12 22:36:04 2016 +0000"
      },
      "message": "logcat: apct test failures\n\nBug: 27241615\nChange-Id: I100a5071c059fe9fa85bbdc33db552b16d7bdf60\n"
    },
    {
      "commit": "b62146dcabedcacf99349793c1947797a173f0e6",
      "tree": "be19fb1ff38584708cf4ed4058a1718b18fb5f7b",
      "parents": [
        "979ce0e33827a9c5bb2b76b2e2557544f8eb0cce"
      ],
      "author": {
        "name": "Mattias Nissler",
        "email": "mnissler@google.com",
        "time": "Thu Mar 31 16:31:42 2016 +0200"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 12 15:08:01 2016 -0700"
      },
      "message": "Add libcrypto_utils.\n\nThis provides a tiny library implementing encode/decode functionality\nfor Android\u0027s custom RSA public key binary format. Keys are encoded\nfrom and decoded to BoringSSL RSA key objects.\n\nChange-Id: I55e5522d557e0e9f35927a87b6581f020ee34e7a\n"
    },
    {
      "commit": "979ce0e33827a9c5bb2b76b2e2557544f8eb0cce",
      "tree": "922d3d6a2b127a8124a1a3cd7940a5bea99c9399",
      "parents": [
        "911982d8b56c1f68818628637fbee3cb7273878f",
        "09910f4baac4d6a5fa04eee9cce72efc73ecfdb9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 12 21:48:45 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 12 21:48:45 2016 +0000"
      },
      "message": "Merge \"binderwrapper: Resolve ambiguous base::Closure reference\""
    },
    {
      "commit": "de551ffee965c7b5e5a87f64cce6b0a7d9f38641",
      "tree": "ee8c928ab472359d558ac75921834bb3d2363dae",
      "parents": [
        "dc727ef1f0dc7fd9e780dfb529d02790a2c85e5a"
      ],
      "author": {
        "name": "Daniel Rosenberg",
        "email": "drosen@google.com",
        "time": "Thu Apr 07 20:10:25 2016 -0700"
      },
      "committer": {
        "name": "Daniel Rosenberg",
        "email": "drosen@google.com",
        "time": "Tue Apr 12 14:06:25 2016 -0700"
      },
      "message": "Add nofail fstab option\n\nThis option allows fs_mgr to ignore mount errors on an optional\npartition to allow booting to continue.\n\nBug: 28071890\nChange-Id: I71a2b3c1c573297cab18884b4c4bd7c27ced2901\n"
    },
    {
      "commit": "911982d8b56c1f68818628637fbee3cb7273878f",
      "tree": "e6f2c0c55cf70bed44435b8e7436f6df7cf9379b",
      "parents": [
        "5aef89b3a340f5634a0de32590c9ea9722cb6e99",
        "22399089ef071d03d5e1591ae00512243f2d13ec"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 12 20:55:32 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 12 20:55:32 2016 +0000"
      },
      "message": "Merge \"healthd: Explicitly reference headers from libbinder\""
    },
    {
      "commit": "09910f4baac4d6a5fa04eee9cce72efc73ecfdb9",
      "tree": "922d3d6a2b127a8124a1a3cd7940a5bea99c9399",
      "parents": [
        "22399089ef071d03d5e1591ae00512243f2d13ec"
      ],
      "author": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Tue Apr 12 09:23:40 2016 -0700"
      },
      "committer": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Tue Apr 12 13:19:29 2016 -0700"
      },
      "message": "binderwrapper: Resolve ambiguous base::Closure reference\n\nDisambiguate between base and android::base namespaces.  This matters\nwhen headers from libbase are indirectly included.\n\nBug: 27804373\nTest: Compiles in that referenced situation.\n\nChange-Id: Icb26595bb0013733aa8c03971c9f4a950c8b2ab1\n"
    },
    {
      "commit": "22399089ef071d03d5e1591ae00512243f2d13ec",
      "tree": "e6f2c0c55cf70bed44435b8e7436f6df7cf9379b",
      "parents": [
        "5aef89b3a340f5634a0de32590c9ea9722cb6e99"
      ],
      "author": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Tue Apr 12 09:21:51 2016 -0700"
      },
      "committer": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Tue Apr 12 13:07:18 2016 -0700"
      },
      "message": "healthd: Explicitly reference headers from libbinder\n\nWhen creating static libs with healthd logic, explicitly\nreference libbinder to pick up its header include paths.\n\nBug: 27804373\nTest: healthd libs compile when libbinder\u0027s header include\n      paths change.\n\nChange-Id: I1014eb0b73d06815c42a527c4ea7e63c35ca3530\n"
    },
    {
      "commit": "5aef89b3a340f5634a0de32590c9ea9722cb6e99",
      "tree": "d6f21aad83101ea5a81e84481209bbad4acaadb3",
      "parents": [
        "2d7c1cd96a92d3e7b6064b856c9b3fe279d901fe",
        "22b3567e88f8def7cd83f57a4f37653ce9f8ce82"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 12 18:32:58 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 12 18:32:58 2016 +0000"
      },
      "message": "Merge \"Fix toolbox failure return to match similar tools.\""
    },
    {
      "commit": "22b3567e88f8def7cd83f57a4f37653ce9f8ce82",
      "tree": "d6f21aad83101ea5a81e84481209bbad4acaadb3",
      "parents": [
        "2d7c1cd96a92d3e7b6064b856c9b3fe279d901fe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 12 08:40:43 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 12 08:40:43 2016 -0700"
      },
      "message": "Fix toolbox failure return to match similar tools.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d182226\nChange-Id: Ib05709b8f9b474d5989b69abd949a6dc661af998\n"
    },
    {
      "commit": "2d7c1cd96a92d3e7b6064b856c9b3fe279d901fe",
      "tree": "0a4e9689edff08465dd974f65818d85d29706ddf",
      "parents": [
        "dc727ef1f0dc7fd9e780dfb529d02790a2c85e5a",
        "ad2c07e4b5820010b1be6231a9cfbb94b207ded7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 12 15:16:57 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 12 15:16:57 2016 +0000"
      },
      "message": "Merge \"Clean up toolbox runner slightly.\""
    },
    {
      "commit": "ad2c07e4b5820010b1be6231a9cfbb94b207ded7",
      "tree": "3ee52a7fa0ca01a5dd382a6454b91021fc0b1f45",
      "parents": [
        "a10b4a0235ed5e3a219a41080988ece185f5dea8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 11 13:25:25 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 11 17:45:49 2016 -0700"
      },
      "message": "Clean up toolbox runner slightly.\n\nRemove the weird @command syntax, and make toolbox itself list the available\ncommands, like toybox does. Also stop special-casing toolbox itself.\n\nChange-Id: I77dfaaf0cf42e375d866b77362dd8afa717fb2e1\n"
    },
    {
      "commit": "dc727ef1f0dc7fd9e780dfb529d02790a2c85e5a",
      "tree": "13c98bb3f2f6fa42e43fcfb335000b559b5e8694",
      "parents": [
        "a5fef898145b97fffdccf30199a952c42ff0ee4e",
        "617f495cf7a8e07b433058fb7f4c7611b584fda9"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Apr 11 20:03:16 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 11 20:03:16 2016 +0000"
      },
      "message": "Merge \"Allow vendors to extend the list of public libs\""
    },
    {
      "commit": "a5fef898145b97fffdccf30199a952c42ff0ee4e",
      "tree": "e17ad7134afe09744c868fb5150078ff40a3534b",
      "parents": [
        "f7040c8deedd1d64f740e7d9371fa3fa0d0638af",
        "b9cf77159a1dc7830eba28a8a3a4ac203e76ea1d"
      ],
      "author": {
        "name": "James Hawkins",
        "email": "jhawkins@google.com",
        "time": "Mon Apr 11 17:03:43 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 11 17:03:43 2016 +0000"
      },
      "message": "Merge \"bootstat: Differentiate system update boot times.\""
    },
    {
      "commit": "f7040c8deedd1d64f740e7d9371fa3fa0d0638af",
      "tree": "6052a9bd74087a1d2131c84fdd57ea27c6dad911",
      "parents": [
        "af61acc2920618f3cd635dc75dd5e3f417f503a8",
        "8a5b9caaa6eaf31cce2b5842d667e38b01ffdfae"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Apr 11 15:48:46 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 11 15:48:46 2016 +0000"
      },
      "message": "Merge \"liblog: remove android_ids and replace with getpwuid\""
    },
    {
      "commit": "8a5b9caaa6eaf31cce2b5842d667e38b01ffdfae",
      "tree": "6052a9bd74087a1d2131c84fdd57ea27c6dad911",
      "parents": [
        "af61acc2920618f3cd635dc75dd5e3f417f503a8"
      ],
      "author": {
        "name": "William Roberts",
        "email": "william.c.roberts@intel.com",
        "time": "Fri Apr 08 12:13:17 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Apr 11 14:55:56 2016 +0000"
      },
      "message": "liblog: remove android_ids and replace with getpwuid\n\nNote: This code makes the assumption that getpwuid is\nthread safe, which it is ONLY ON BIONIC. Thus,\nif you attempt to use this on a non-target build, you\nmay get burned. Thus, an ifndef checking on __BIONIC__\nis used to produce a build error if you attempt to do\nso.\n\nChange-Id: I61038c428b71771edcfc76f18d8fc5cbe349238b\nBug: 27999086\nSigned-off-by: William Roberts \u003cwilliam.c.roberts@intel.com\u003e\n"
    },
    {
      "commit": "af61acc2920618f3cd635dc75dd5e3f417f503a8",
      "tree": "0f389bf5e32682b0fb88a9fac8beb875efb30745",
      "parents": [
        "a10b4a0235ed5e3a219a41080988ece185f5dea8",
        "ad19af71326c755dac609451a257cbad830f55fd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 09 00:25:16 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 09 00:25:17 2016 +0000"
      },
      "message": "Merge \"Remove debugging code for a fixed 3.6 kernel bug.\""
    },
    {
      "commit": "b9cf77159a1dc7830eba28a8a3a4ac203e76ea1d",
      "tree": "24275cd45a268a9ca582d859405e1fa27b5f3302",
      "parents": [
        "a10b4a0235ed5e3a219a41080988ece185f5dea8"
      ],
      "author": {
        "name": "James Hawkins",
        "email": "jhawkins@google.com",
        "time": "Fri Apr 08 15:32:19 2016 -0700"
      },
      "committer": {
        "name": "James Hawkins",
        "email": "jhawkins@google.com",
        "time": "Fri Apr 08 15:32:19 2016 -0700"
      },
      "message": "bootstat: Differentiate system update boot times.\n\nBug: 27454343\nChange-Id: Idb2e6f55ad7dda546a486954201619bb73cee6b0\n"
    },
    {
      "commit": "a10b4a0235ed5e3a219a41080988ece185f5dea8",
      "tree": "248c9e811aa7e6876a57e98a179d006bf43905b1",
      "parents": [
        "2c78f62638b7743b2abdf01f6aded2506397d673",
        "7df991a21d99274da4b21fa69e45f3598168c22c"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Fri Apr 08 18:03:00 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 08 18:03:00 2016 +0000"
      },
      "message": "Merge \"metricsd: Remove release/aquire semantic from scoped_ptr/unique_ptr\""
    },
    {
      "commit": "7df991a21d99274da4b21fa69e45f3598168c22c",
      "tree": "248c9e811aa7e6876a57e98a179d006bf43905b1",
      "parents": [
        "2c78f62638b7743b2abdf01f6aded2506397d673"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Fri Apr 08 08:58:08 2016 -0700"
      },
      "committer": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Fri Apr 08 09:59:05 2016 -0700"
      },
      "message": "metricsd: 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: Ibf0a094805d22d00ca10e1c67f68efb08c8677df\n"
    },
    {
      "commit": "2c78f62638b7743b2abdf01f6aded2506397d673",
      "tree": "efd5a767a4f424f82983d3be2d3066a958534a81",
      "parents": [
        "1134925fb645df948387247aad4d3da7be1eb320",
        "5b5a8ace61e089a207036115b73da8f27f0fba04"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 08 01:47:41 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 08 01:47:42 2016 +0000"
      },
      "message": "Merge \"ueventd: convert to use pwd family of functions\""
    },
    {
      "commit": "1134925fb645df948387247aad4d3da7be1eb320",
      "tree": "37e2b3c4a5164d99f6062580c09e8b4e246bc84d",
      "parents": [
        "54c27c7cf6a20fb74f054d41b414cd4124e9c1fe",
        "8e1dce8ba01034a263b3f6f2d77e1dd109214563"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 08 01:42:45 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 08 01:42:45 2016 +0000"
      },
      "message": "Merge \"property_service: drop unused header\""
    },
    {
      "commit": "54c27c7cf6a20fb74f054d41b414cd4124e9c1fe",
      "tree": "8cc3a48964ad94a42910518c9ab3dcfe26bd73b1",
      "parents": [
        "171504f8318b8d48c830bef3b9ff1451d76037b2",
        "6df15704bd366c174efa95039298dc234f54401f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 08 01:42:28 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 08 01:42:29 2016 +0000"
      },
      "message": "Merge \"init: drop unused header android_filesystem_config.h\""
    },
    {
      "commit": "171504f8318b8d48c830bef3b9ff1451d76037b2",
      "tree": "779be8c42c1d122563c3d2b0ece760ec0b99982b",
      "parents": [
        "adf1cdeda07acfa6fc96627f8d4fca5b98bb7428",
        "3792e6cf21f0c9fbf64898ec68350e942923f33d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 08 01:42:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 08 01:42:09 2016 +0000"
      },
      "message": "Merge \"init: switch from android_ids to getpwnam\""
    },
    {
      "commit": "5b5a8ace61e089a207036115b73da8f27f0fba04",
      "tree": "efd5a767a4f424f82983d3be2d3066a958534a81",
      "parents": [
        "8e1dce8ba01034a263b3f6f2d77e1dd109214563"
      ],
      "author": {
        "name": "William Roberts",
        "email": "william.c.roberts@intel.com",
        "time": "Wed Apr 06 20:09:24 2016 -0700"
      },
      "committer": {
        "name": "William Roberts",
        "email": "william.c.roberts@intel.com",
        "time": "Thu Apr 07 13:38:43 2016 -0700"
      },
      "message": "ueventd: convert to use pwd family of functions\n\nSwitch ueventd to use the grp.h and pwd.h family of\nfunctions for converting strings to uids. This removes the\nneed for using android_filesystem_config.h.\n\nChange-Id: I25a6f536bb11683d5cd69a0d7b348d25a272dd3b\nBug: 27999086\nSigned-off-by: William Roberts \u003cwilliam.c.roberts@intel.com\u003e\n"
    },
    {
      "commit": "8e1dce8ba01034a263b3f6f2d77e1dd109214563",
      "tree": "37e2b3c4a5164d99f6062580c09e8b4e246bc84d",
      "parents": [
        "6df15704bd366c174efa95039298dc234f54401f"
      ],
      "author": {
        "name": "William Roberts",
        "email": "william.c.roberts@intel.com",
        "time": "Wed Apr 06 20:01:59 2016 -0700"
      },
      "committer": {
        "name": "William Roberts",
        "email": "william.c.roberts@intel.com",
        "time": "Thu Apr 07 13:38:43 2016 -0700"
      },
      "message": "property_service: drop unused header\n\nRemove android_filesystem_config.h since it was not being used.\n\nChange-Id: I691513d50a3fdb7563a63aee7551137ba983825c\nBug: 27999086\nSigned-off-by: William Roberts \u003cwilliam.c.roberts@intel.com\u003e\n"
    },
    {
      "commit": "6df15704bd366c174efa95039298dc234f54401f",
      "tree": "8cc3a48964ad94a42910518c9ab3dcfe26bd73b1",
      "parents": [
        "3792e6cf21f0c9fbf64898ec68350e942923f33d"
      ],
      "author": {
        "name": "William Roberts",
        "email": "william.c.roberts@intel.com",
        "time": "Wed Apr 06 19:39:57 2016 -0700"
      },
      "committer": {
        "name": "William Roberts",
        "email": "william.c.roberts@intel.com",
        "time": "Thu Apr 07 13:38:43 2016 -0700"
      },
      "message": "init: drop unused header android_filesystem_config.h\n\nChange-Id: I66e637bc2d7fd5f385f40f150becfe515c53c19a\nBug: 27999086\nSigned-off-by: William Roberts \u003cwilliam.c.roberts@intel.com\u003e\n"
    },
    {
      "commit": "3792e6cf21f0c9fbf64898ec68350e942923f33d",
      "tree": "779be8c42c1d122563c3d2b0ece760ec0b99982b",
      "parents": [
        "adf1cdeda07acfa6fc96627f8d4fca5b98bb7428"
      ],
      "author": {
        "name": "William Roberts",
        "email": "william.c.roberts@intel.com",
        "time": "Wed Apr 06 19:18:50 2016 -0700"
      },
      "committer": {
        "name": "William Roberts",
        "email": "william.c.roberts@intel.com",
        "time": "Thu Apr 07 13:38:36 2016 -0700"
      },
      "message": "init: switch from android_ids to getpwnam\n\nStart to move users of android_filesystem_config.h to use the\nstandard grp and pwd interface functions.\n\nAdvantages:\n  * one copy of android_ids in libc, removing it from init objects.\n  * immediately starts oem_xxx users and groups in rc.\n  * future will support _named_ oem ids via backend improvements.\n\nChange-Id: Ib1ae1e0cbdcaaf60deb3759681a6030b615c069c\nBug: 27999086\nSigned-off-by: William Roberts \u003cwilliam.c.roberts@intel.com\u003e\n"
    },
    {
      "commit": "617f495cf7a8e07b433058fb7f4c7611b584fda9",
      "tree": "c13fefc843445d5b516100826c9735d7c7bf0605",
      "parents": [
        "adf1cdeda07acfa6fc96627f8d4fca5b98bb7428"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 06 18:24:08 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 06 18:24:08 2016 -0700"
      },
      "message": "Allow vendors to extend the list of public libs\n\nnative_loader adds libraries specified in the\n(optional) file: /vendor/etc/public.libraries.txt\nto the list of public native libraries.\n\nBug: http://b/27073931\nChange-Id: I927193cce99d48c3395bd0e6c373ae9fad0f13f4\n"
    },
    {
      "commit": "adf1cdeda07acfa6fc96627f8d4fca5b98bb7428",
      "tree": "93330e9ece68c4a1c2d127fa5d4f3cd68a030016",
      "parents": [
        "3443caa2fe8bfd7ef0d1f2cac8fea4dc6530a9cf",
        "a98cc9c202b9ff97df89e2258bf04bc3b8b57301"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 05 23:03:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 05 23:03:22 2016 +0000"
      },
      "message": "Merge \"init: turn off backlight when performing shutdown cleanup\""
    },
    {
      "commit": "a98cc9c202b9ff97df89e2258bf04bc3b8b57301",
      "tree": "93330e9ece68c4a1c2d127fa5d4f3cd68a030016",
      "parents": [
        "3443caa2fe8bfd7ef0d1f2cac8fea4dc6530a9cf"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 05 13:43:40 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 05 15:56:27 2016 -0700"
      },
      "message": "init: turn off backlight when performing shutdown cleanup\n\nTry writing a \"0\" into:\n\n- /sys/class/leds/lcd-backlight/brightness\n- /sys/class/backlight/*/brightness\n\nto turn off the backlight during shutdown cleanup.\n\nBug: 27506425\nChange-Id: Ic8a44dc8909b303f24e14f71cfb43292df60efde\n"
    },
    {
      "commit": "1f4ec19e499ba981e4117f647d191603c2713e79",
      "tree": "c5faaa1e6560f627b5a91e0f84b311f94664f769",
      "parents": [
        "fbdbf100cb48f18d308c96f1959945cf7d1909ec"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Apr 05 13:50:44 2016 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Apr 05 15:21:36 2016 -0700"
      },
      "message": "adb: add reconnect command.\n\nAdd reconnect command for debugging. `reconnect` kicks a transport\nfrom the host side, `reconnect device` kicks a transport from\nthe device side. They can be used to produce transport errors.\n\nBug: 25935458\n\nChange-Id: I47daa338796b561941e7aba44a51a6dd117d1e98\n"
    },
    {
      "commit": "3443caa2fe8bfd7ef0d1f2cac8fea4dc6530a9cf",
      "tree": "4aecd4f035329ab92a2ea2d098a107d28ec0ac2a",
      "parents": [
        "0d6bb55a39c453785db67039fca5e72e75286d5e",
        "ad575e04a1d89f5a2a4e3006a58e801cad9c9805"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 05 18:32:52 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 05 18:32:52 2016 +0000"
      },
      "message": "Merge \"init: watchdog restarted during shutdown fsck\""
    },
    {
      "commit": "ad575e04a1d89f5a2a4e3006a58e801cad9c9805",
      "tree": "4aecd4f035329ab92a2ea2d098a107d28ec0ac2a",
      "parents": [
        "0d6bb55a39c453785db67039fca5e72e75286d5e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 05 08:10:25 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 05 11:31:14 2016 -0700"
      },
      "message": "init: watchdog restarted during shutdown fsck\n\nBug: 27506425\nChange-Id: I40967068d18ce1a8cbaf0b750e7a7af6eab3e4e8\n"
    },
    {
      "commit": "0d6bb55a39c453785db67039fca5e72e75286d5e",
      "tree": "12db71406e3cab37dfddf765755475202ce2adfe",
      "parents": [
        "ba6de23e97cbb8351fe5cc2cc4d698b11ad04797",
        "fd376b97f7e9c8ca6cb755d53d0f0fc9196c94e0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 05 16:43:25 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 05 16:43:25 2016 +0000"
      },
      "message": "Merge \"Fix Condition::waitRelative.\""
    },
    {
      "commit": "ad19af71326c755dac609451a257cbad830f55fd",
      "tree": "a8e9c715cceadcb685ea6e648acb7b4af80f52dc",
      "parents": [
        "ba6de23e97cbb8351fe5cc2cc4d698b11ad04797"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 04 16:06:53 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 04 16:06:53 2016 -0700"
      },
      "message": "Remove debugging code for a fixed 3.6 kernel bug.\n\nChange-Id: If17d41d6151cd7b81677afc5d341d7aa788170e4\n"
    },
    {
      "commit": "fd376b97f7e9c8ca6cb755d53d0f0fc9196c94e0",
      "tree": "12db71406e3cab37dfddf765755475202ce2adfe",
      "parents": [
        "ba6de23e97cbb8351fe5cc2cc4d698b11ad04797"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 04 14:21:47 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 04 14:51:21 2016 -0700"
      },
      "message": "Fix Condition::waitRelative.\n\nHAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE has never been defined for LP64,\nso let\u0027s have everyone use the same code path.\n\nAlso fix the possible overflow.\n\nBug: http://b/26944282\nBug: http://b/27918161\nChange-Id: I51fc0ebb1f6b860dc62d721f8ebfbcf724ce66e7\n"
    },
    {
      "commit": "ba6de23e97cbb8351fe5cc2cc4d698b11ad04797",
      "tree": "4645055013a5d4851138832a08ed9507d22fedc7",
      "parents": [
        "0858071cc4bf2314955936e0efb85cb528ab2d6f",
        "c18c2130d036b115b222860366a97e26a2a1c038"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 01 19:51:43 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 01 19:51:43 2016 +0000"
      },
      "message": "Merge \"logcat: -f \u003cnon-existent-directory\u003e/\u003cfilename\u003e segfaults\""
    },
    {
      "commit": "c18c2130d036b115b222860366a97e26a2a1c038",
      "tree": "4645055013a5d4851138832a08ed9507d22fedc7",
      "parents": [
        "0858071cc4bf2314955936e0efb85cb528ab2d6f"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 01 07:52:20 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 01 09:42:32 2016 -0700"
      },
      "message": "logcat: -f \u003cnon-existent-directory\u003e/\u003cfilename\u003e segfaults\n\n- Check if the result of opendir is NULL in lastLogTime\n- Cleanup: alphabetically sorted long options, reserved\n  an alias for --regex\n- Add a unit test, non existent directory should return\n  gracefully with an exit(1) and not SIGSEGV.\n\nNB: This failure was with eng/debug feature logpersist\n    turned on, /data/misc/logd/ directory was missing,\n    deleted, or temporarily inaccessible.\n\nBug: 27954627\nChange-Id: I60246a53b02fdd7e5490fe458b02ad7b14843584\n"
    },
    {
      "commit": "0858071cc4bf2314955936e0efb85cb528ab2d6f",
      "tree": "1cc708321680bc85c0189f89a61f537b440d0bd0",
      "parents": [
        "d70991477392eb94c77c1680483cabd26befb50a",
        "7ef5249afacffe3901e3a602372c7d34cf655675"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Mar 31 20:57:36 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 31 20:57:36 2016 +0000"
      },
      "message": "Merge \"liblog: suppress pmsg on user builds\""
    },
    {
      "commit": "d70991477392eb94c77c1680483cabd26befb50a",
      "tree": "32b9627ac752f70b6760e3e3cbe4fcee6018b6f4",
      "parents": [
        "a8ee1a3c61f777d9313edd96a6efe263834921e8",
        "06cb8e92034274c6f803e97a17cd07fedf99bde5"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Mar 31 06:58:27 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 31 06:58:27 2016 +0000"
      },
      "message": "Merge \"Set IFA_BROADCAST during IPv4 RTM_NEWADDRs\""
    },
    {
      "commit": "a8ee1a3c61f777d9313edd96a6efe263834921e8",
      "tree": "322b391e8a640a911ba6e8c2f7c5259b31e0dfa1",
      "parents": [
        "6dcecd9d1cd78fc03012c52b2474cf3ddcb79fd0",
        "c9202777cf0a135be729b1bfdb4c8c57344296e6"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 30 23:30:59 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 30 23:30:59 2016 +0000"
      },
      "message": "Merge \"logcat: add --print flag\""
    },
    {
      "commit": "6dcecd9d1cd78fc03012c52b2474cf3ddcb79fd0",
      "tree": "ef212cfa86e810f6b68e38a077c1bb0b444c5587",
      "parents": [
        "c81205788c38a8b2987d92d257e3495796380ff0",
        "d85f6461b647d6f6e4c02d837884a0bda78930ba"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 30 23:29:18 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 30 23:29:18 2016 +0000"
      },
      "message": "Merge \"logcat: posixize and extend long arguments\""
    },
    {
      "commit": "c81205788c38a8b2987d92d257e3495796380ff0",
      "tree": "a09232e8bd5c74fc7328072d7718f7b37710a811",
      "parents": [
        "df1d03e5dc5754b283b9e0caa60ba301048d073f",
        "aa730c1145a4670dead4973b791d47258a1c29f9"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 30 23:27:55 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 30 23:27:56 2016 +0000"
      },
      "message": "Merge \"logcat: support --regex on binary buffers as-is\""
    },
    {
      "commit": "df1d03e5dc5754b283b9e0caa60ba301048d073f",
      "tree": "a5f780cc2e8e2b76d24f6c10baf4828e8b588cf7",
      "parents": [
        "3d0a87bd5bfe8b1c66d5cbaec5685a9e5ec80938",
        "c6d6652df52bb65984f6be1f8e57606d3f5a6e69"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 30 23:18:29 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 30 23:18:30 2016 +0000"
      },
      "message": "Merge \"logcat: do not assign 0 or NULL to global variables\""
    },
    {
      "commit": "c9202777cf0a135be729b1bfdb4c8c57344296e6",
      "tree": "322b391e8a640a911ba6e8c2f7c5259b31e0dfa1",
      "parents": [
        "d85f6461b647d6f6e4c02d837884a0bda78930ba"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 30 09:38:31 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 30 16:11:37 2016 -0700"
      },
      "message": "logcat: add --print flag\n\nTo be used in combination with --regex and --max-count flags\nto allow all prints to pass through, but still stop when\nmax-count is hit.\n\nBug: 27706081\nChange-Id: Idaa9f0b44586a885b9d9f367824b0072c0853227\n"
    },
    {
      "commit": "d85f6461b647d6f6e4c02d837884a0bda78930ba",
      "tree": "ef212cfa86e810f6b68e38a077c1bb0b444c5587",
      "parents": [
        "aa730c1145a4670dead4973b791d47258a1c29f9"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 30 09:15:09 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 30 16:11:37 2016 -0700"
      },
      "message": "logcat: posixize and extend long arguments\n\n- change _ to - for long arguments\n- added --tail as hidden undocumented alias for -t\n- added --head as hidden undocumented alias for --max-count\n\nBug: 27706081\nChange-Id: I614cc83ae56b305b267f64ed05dc3ed3027dabd4\n"
    },
    {
      "commit": "aa730c1145a4670dead4973b791d47258a1c29f9",
      "tree": "a09232e8bd5c74fc7328072d7718f7b37710a811",
      "parents": [
        "c6d6652df52bb65984f6be1f8e57606d3f5a6e69"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 30 12:38:29 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 30 16:11:37 2016 -0700"
      },
      "message": "logcat: support --regex on binary buffers as-is\n\n- Do not restrict regex on LOG_ID_EVENTS or LOG_ID_SECURITY.\n- some logcat_panic messages need to incorporate a newline.\n- deal with some coding standards issues.\n\nBug: 27706081\nChange-Id: Ie647fd62d027b01004177559d68b8e5a346705e6\n"
    },
    {
      "commit": "c6d6652df52bb65984f6be1f8e57606d3f5a6e69",
      "tree": "a5f780cc2e8e2b76d24f6c10baf4828e8b588cf7",
      "parents": [
        "3d0a87bd5bfe8b1c66d5cbaec5685a9e5ec80938"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 30 12:38:29 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 30 16:11:37 2016 -0700"
      },
      "message": "logcat: do not assign 0 or NULL to global variables\n\nBug: 27706081\nChange-Id: If29d8d688ca7cce9b22227eeff1e9b500e728a50\n"
    },
    {
      "commit": "3d0a87bd5bfe8b1c66d5cbaec5685a9e5ec80938",
      "tree": "6d36c20019fe1036b3c54b9a4c6676e7705a7e08",
      "parents": [
        "b2cb35ef96b6d1cc03c6c39a57a4eb9b6484e100",
        "f3dde2f869801f2b5f5fb9cd9ee1a9356a0a1726"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Mar 30 17:52:05 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 30 17:52:05 2016 +0000"
      },
      "message": "Merge \"debuggerd: set the name of the signal sender.\""
    },
    {
      "commit": "b2cb35ef96b6d1cc03c6c39a57a4eb9b6484e100",
      "tree": "0bc4203e26540e133faee70ea0b2683995b1f3bb",
      "parents": [
        "a2a13e3267850b4eaf2689b0e02cc499228b7bf5",
        "b4cff495a1f93b6c92f4327cbfb9e564b28913d8"
      ],
      "author": {
        "name": "Dan Austin",
        "email": "danielaustin@google.com",
        "time": "Wed Mar 30 17:40:15 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 30 17:40:15 2016 +0000"
      },
      "message": "Merge \"Address const issues in preparation for libcxx rebase.\""
    },
    {
      "commit": "a2a13e3267850b4eaf2689b0e02cc499228b7bf5",
      "tree": "bd40cbda01b2b9997706b36c5311c99b2fd8525e",
      "parents": [
        "a348dfcd651d8410bba41cde63c45e3c4d760d5a",
        "80fd4549e39aa5c14229d1b2f46fe3f98f148f51"
      ],
      "author": {
        "name": "Dan Austin",
        "email": "danielaustin@google.com",
        "time": "Wed Mar 30 17:40:01 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 30 17:40:01 2016 +0000"
      },
      "message": "Merge \"Address const issue in preparation for libcxx rebase.\""
    },
    {
      "commit": "a348dfcd651d8410bba41cde63c45e3c4d760d5a",
      "tree": "ecdb524f62526cf43c9afb3f08ec510f4c252411",
      "parents": [
        "b3cf2e0f3d3b9ba328921cd1c9c3839ea70a1ab1",
        "fff95ba5dd9da74afe6897db1726c0b5f70e8930"
      ],
      "author": {
        "name": "James Hawkins",
        "email": "jhawkins@google.com",
        "time": "Wed Mar 30 17:13:42 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 30 17:13:42 2016 +0000"
      },
      "message": "Merge \"bootstat: Two changes to aid in debugging TimeSinceFactoryReset.\""
    },
    {
      "commit": "06cb8e92034274c6f803e97a17cd07fedf99bde5",
      "tree": "810a53d217cb4e246a833fa5ba71bfb53c1a5880",
      "parents": [
        "b3cf2e0f3d3b9ba328921cd1c9c3839ea70a1ab1"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Mar 30 18:57:13 2016 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Mar 30 20:06:36 2016 +0900"
      },
      "message": "Set IFA_BROADCAST during IPv4 RTM_NEWADDRs\n\nBug: 27194345\nBug: 27732412\nBug: 27786864\nChange-Id: I5a5b41422bbaab4582c268c213b788f61cb0e169\n"
    },
    {
      "commit": "b3cf2e0f3d3b9ba328921cd1c9c3839ea70a1ab1",
      "tree": "88c8362ee1860bdfc4da24830fe112429361cda0",
      "parents": [
        "adbe06db4870e9829ddc8c702f8789df6f2401b1",
        "124a9c97e9815142a33480b81a5a3041a7cd66bd"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Mar 30 02:07:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 30 02:07:09 2016 +0000"
      },
      "message": "Merge \"init/builtins.cpp: Switch to finit_module\""
    },
    {
      "commit": "adbe06db4870e9829ddc8c702f8789df6f2401b1",
      "tree": "6ad76631ad6e71f645349ba5fba9899a34f4e9f4",
      "parents": [
        "fbdbf100cb48f18d308c96f1959945cf7d1909ec",
        "294eb9dac3c06a37bc1c9547fa8a26bcf4cdc749"
      ],
      "author": {
        "name": "Sami Tolvanen",
        "email": "samitolvanen@google.com",
        "time": "Wed Mar 30 01:25:28 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 30 01:25:28 2016 +0000"
      },
      "message": "Merge \"mkbootimg: use int for os_version and os_patch_level\""
    },
    {
      "commit": "f3dde2f869801f2b5f5fb9cd9ee1a9356a0a1726",
      "tree": "7448d2436c3e53e6d7046a17c8eb1e78093df64a",
      "parents": [
        "fbdbf100cb48f18d308c96f1959945cf7d1909ec"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Mar 22 15:10:45 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Mar 29 17:56:47 2016 -0700"
      },
      "message": "debuggerd: set the name of the signal sender.\n\nChange-Id: I6bff938e229d2368250d4b5c268fa24bd4badea0\n"
    },
    {
      "commit": "124a9c97e9815142a33480b81a5a3041a7cd66bd",
      "tree": "8e6c0010207e657d0e9b6e78cb221c29d6b84fa4",
      "parents": [
        "fbdbf100cb48f18d308c96f1959945cf7d1909ec"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sun Mar 27 16:55:59 2016 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Mar 29 16:53:08 2016 -0700"
      },
      "message": "init/builtins.cpp: Switch to finit_module\n\nSwitch insmod from using init_module to finit_module. From\n\"man finit_module\":\n\n  The finit_module() system call is like init_module(), but reads the\n  module to be loaded from the file descriptor fd. It is useful when the\n  authenticity of a kernel module can be determined from its location in\n  the file system; in cases where that is possible, the overhead of\n  using cryptographically signed modules to determine the authenticity\n  of a module can be avoided.\n\nfinit_module is preferred over init_module because it allows LSMs, such\nas SELinux, to perform a permission check on kernel module loads based on\nthe file from which the module is loaded. This functionality is not yet\nimplemented in the Linux kernel, but is on the SEAndroid TODO list.\nSee https://bitbucket.org/seandroid/wiki/wiki/ToDo\n\nBug: 27824855\nChange-Id: Id0ea88cd1930393c8c73ce38e63d5b2eeadf946a\n"
    },
    {
      "commit": "fff95ba5dd9da74afe6897db1726c0b5f70e8930",
      "tree": "0f1d4a4f2e026189859f42cb0d74f5c0caabb2c5",
      "parents": [
        "fbdbf100cb48f18d308c96f1959945cf7d1909ec"
      ],
      "author": {
        "name": "James Hawkins",
        "email": "jhawkins@google.com",
        "time": "Tue Mar 29 16:13:49 2016 -0700"
      },
      "committer": {
        "name": "James Hawkins",
        "email": "jhawkins@google.com",
        "time": "Tue Mar 29 16:13:49 2016 -0700"
      },
      "message": "bootstat: Two changes to aid in debugging TimeSinceFactoryReset.\n\n* Also log to the BootEventRecordStore to check lossiness.\n* Log factory_reset_current_time_failure separately.\n\nBug: 27550578\nChange-Id: Id3d579a74a59ac28290cb7d6048765519f9ba59b\n"
    },
    {
      "commit": "294eb9dac3c06a37bc1c9547fa8a26bcf4cdc749",
      "tree": "6ad76631ad6e71f645349ba5fba9899a34f4e9f4",
      "parents": [
        "fbdbf100cb48f18d308c96f1959945cf7d1909ec"
      ],
      "author": {
        "name": "Sami Tolvanen",
        "email": "samitolvanen@google.com",
        "time": "Tue Mar 29 16:06:37 2016 -0700"
      },
      "committer": {
        "name": "Sami Tolvanen",
        "email": "samitolvanen@google.com",
        "time": "Tue Mar 29 16:06:37 2016 -0700"
      },
      "message": "mkbootimg: use int for os_version and os_patch_level\n\nThe parse_int function attempts to interpret the string to detect\nbase, which leads to it assuming strings starting with 0 are base\n8. This obviously fails for certain dates, so use int instead.\n\nBug: 27498078\nBug: 22914603\nChange-Id: I50b1fb3d7876f2ec17d00649cc9a2d23af2aec2b\n"
    },
    {
      "commit": "7ef5249afacffe3901e3a602372c7d34cf655675",
      "tree": "608776f5c0e1444cdacd32a106ba91b7ea198605",
      "parents": [
        "fbdbf100cb48f18d308c96f1959945cf7d1909ec"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Mar 25 15:50:46 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Mar 29 13:52:21 2016 -0700"
      },
      "message": "liblog: suppress pmsg on user builds\n\n- add optimized \u0026 cached LIBLOG_HIDDEN __android_log_is_debuggable()\n- check when writing, either LOG_ID_SECURITY, SafetyNet or\n  debuggable when pushing content to the pmsg buffer.\n\nBug: 27566046\nChange-Id: I85f1b55ec329b38e00f4183836b6ed53046c323d\n"
    },
    {
      "commit": "fbdbf100cb48f18d308c96f1959945cf7d1909ec",
      "tree": "29a8ea836fef441e1d886c8486bd2b5a7b47e039",
      "parents": [
        "d8c88fc5e339105cca3d207826675fdf95bfadc9",
        "c33103c440517ae8fa5589c22eef795627adf793"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Mar 29 19:52:32 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 29 19:52:32 2016 +0000"
      },
      "message": "Merge \"liblog: gate write on log id available\""
    },
    {
      "commit": "c33103c440517ae8fa5589c22eef795627adf793",
      "tree": "29a8ea836fef441e1d886c8486bd2b5a7b47e039",
      "parents": [
        "d8c88fc5e339105cca3d207826675fdf95bfadc9"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Mar 28 16:20:29 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Mar 29 12:29:04 2016 -0700"
      },
      "message": "liblog: gate write on log id available\n\n- Secure LOG_ID_KERNEL in writer\n- Secure LOG_ID_SECURITY in reader and writer\n- if writer transport says not available, do not write to that log id\n\nBug: 27566046\nBug: 27896341\nChange-Id: If63a78a56fb94adfbf9979454c4cadb81af45c19\n"
    },
    {
      "commit": "d8c88fc5e339105cca3d207826675fdf95bfadc9",
      "tree": "371a32775f4af34b320a8a9e61c17afd927055c5",
      "parents": [
        "c8e179c09466d392a52b6276e6dd62b4334a9a0f",
        "b791a76ed76442a74c466c6116787c73ceea2170"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Mar 29 18:18:47 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 29 18:18:47 2016 +0000"
      },
      "message": "Merge \"libbacktrace_offline: support unwinding of shared libraries in apk file.\""
    },
    {
      "commit": "b4cff495a1f93b6c92f4327cbfb9e564b28913d8",
      "tree": "4b11eadd5819a10ee5e4810aaa0f46f8125132a6",
      "parents": [
        "8aeabe15dd38093029714dabb1713724400cf5f1"
      ],
      "author": {
        "name": "Dan Austin",
        "email": "danielaustin@google.com",
        "time": "Mon Mar 28 15:32:37 2016 -0700"
      },
      "committer": {
        "name": "Dan Austin",
        "email": "danielaustin@google.com",
        "time": "Tue Mar 29 17:17:51 2016 +0000"
      },
      "message": "Address const issues in preparation for libcxx rebase.\n\nChange-Id: I4eccc1b5a70da9dd325e1a7e10ab0a3fe588c03f\n"
    },
    {
      "commit": "c8e179c09466d392a52b6276e6dd62b4334a9a0f",
      "tree": "0cbee06c53e2a8c69501d0299bd315157901c9d3",
      "parents": [
        "7f84a0700ca49cfdf650d46b383d6e5aaae05fdc",
        "2c5d1d7cd914ec8ebf76c8a59d0889ebf5b538cd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 29 15:15:35 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 29 15:15:35 2016 +0000"
      },
      "message": "Merge \"Add operator int() to unique_fd.\""
    },
    {
      "commit": "80fd4549e39aa5c14229d1b2f46fe3f98f148f51",
      "tree": "fc26c98c99761a08d9a490df8efb8349a932cd0e",
      "parents": [
        "8aeabe15dd38093029714dabb1713724400cf5f1"
      ],
      "author": {
        "name": "Dan Austin",
        "email": "danielaustin@google.com",
        "time": "Mon Mar 28 14:37:01 2016 -0700"
      },
      "committer": {
        "name": "Dan Austin",
        "email": "danielaustin@google.com",
        "time": "Mon Mar 28 23:28:48 2016 +0000"
      },
      "message": "Address const issue in preparation for libcxx rebase.\n\nChange-Id: I80c3349ee93d2b3f16c6fadc7f34b2bf4f2cc0d3\n"
    },
    {
      "commit": "7f84a0700ca49cfdf650d46b383d6e5aaae05fdc",
      "tree": "0cc5420a4599b7bc27d6c7a25d83667e12f379a0",
      "parents": [
        "dce9b61d253675fc5067b76eb166de66dc8fd367",
        "60b976db85f009b39b0daad9389d675966aa25b8"
      ],
      "author": {
        "name": "Dan Austin",
        "email": "danielaustin@google.com",
        "time": "Mon Mar 28 22:35:51 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 28 22:35:51 2016 +0000"
      },
      "message": "Merge \"Address const issues in preparation for libcxx rebase.\""
    },
    {
      "commit": "dce9b61d253675fc5067b76eb166de66dc8fd367",
      "tree": "2a0ee427acbd33ca103aa8db12bcb99c2590e0d5",
      "parents": [
        "3761365735de4cbc3c8581f0a5e972ad01f8378c",
        "a27bbd272810e147f2d847cafb6e1ed4ee6fc8e0"
      ],
      "author": {
        "name": "Dan Austin",
        "email": "danielaustin@google.com",
        "time": "Mon Mar 28 21:41:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 28 21:41:10 2016 +0000"
      },
      "message": "Merge \"Fix const issues in preparation for libcxx rebase.\""
    },
    {
      "commit": "60b976db85f009b39b0daad9389d675966aa25b8",
      "tree": "e53c989270aac8b9c67b59ddede2f49868dc24e4",
      "parents": [
        "8aeabe15dd38093029714dabb1713724400cf5f1"
      ],
      "author": {
        "name": "Dan Austin",
        "email": "danielaustin@google.com",
        "time": "Mon Mar 28 14:22:12 2016 -0700"
      },
      "committer": {
        "name": "Dan Austin",
        "email": "danielaustin@google.com",
        "time": "Mon Mar 28 14:22:12 2016 -0700"
      },
      "message": "Address const issues in preparation for libcxx rebase.\n\nChange-Id: If9bf6c3ee57c3476a5661401853506551e2150cb\n"
    },
    {
      "commit": "a27bbd272810e147f2d847cafb6e1ed4ee6fc8e0",
      "tree": "d2fb9e805a0e3c9f825c2246f411365f56db67cd",
      "parents": [
        "8aeabe15dd38093029714dabb1713724400cf5f1"
      ],
      "author": {
        "name": "Dan Austin",
        "email": "danielaustin@google.com",
        "time": "Thu Mar 24 11:28:46 2016 -0700"
      },
      "committer": {
        "name": "Dan Austin",
        "email": "danielaustin@google.com",
        "time": "Mon Mar 28 13:43:15 2016 -0700"
      },
      "message": "Fix const issues in preparation for libcxx rebase.\n\nChange-Id: Id57474eb63334873ee5383f61eb918941dbb0984\n"
    }
  ],
  "next": "2c5d1d7cd914ec8ebf76c8a59d0889ebf5b538cd"
}
