)]}'
{
  "log": [
    {
      "commit": "12b71294064e6dc0a225e19ce179e702f481d6a6",
      "tree": "a07e323818f5a5cda55eca1fdc34b2616aa53a58",
      "parents": [
        "22cc398d76b8e0e305b74dbaf1f9fc4eded7791f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 02 19:01:20 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 02 19:01:20 2017 -0800"
      },
      "message": "Small debuggerd improvements.\n\nInclude the ABI in seccomp causes.\n\nSlightly improved command-line usage information.\n\nFix crasher for seccomp failures.\n\nBug: N/A\nTest: crasher\nChange-Id: Ie419ecfe72ee4f5ccf49c927be18350a58a66a90\n"
    },
    {
      "commit": "b038995d296e2a3000b401226839981b4bdb07da",
      "tree": "5fbbdb7b2793535d1b171c0b2b78753aa58323df",
      "parents": [
        "8951c1313d579c29e6f88eafd022460d711134ae",
        "981761bbb25738b7ced9ed44e7ed88250a985fd1"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Mar 01 22:59:00 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 01 22:59:01 2017 +0000"
      },
      "message": "Merge \"debuggerd: remove obsolete dumpable check.\""
    },
    {
      "commit": "981761bbb25738b7ced9ed44e7ed88250a985fd1",
      "tree": "7cdc4945e2f843143790fd3fcc7c2957897e4362",
      "parents": [
        "4bd3facbb1e79055f92e2ea8d42cb81552ffc6bb"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Mar 01 11:53:14 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Mar 01 11:55:16 2017 -0800"
      },
      "message": "debuggerd: remove obsolete dumpable check.\n\nPR_SET_DUMPABLE is ignored now.\n\nBug: http://b/35872161\nTest: debuggerd -b `pidof surfaceflinger`\nChange-Id: Iefd090f2b762d454d1e6ce8061ff5f992974267c\n"
    },
    {
      "commit": "b7788fd454da2201c6e48dededa9b11873ef621e",
      "tree": "cf78e024b3264037fc7fceeed4cf78abbf304e37",
      "parents": [
        "f719c255faf831357fe7ee5e3f8b23f4be7caee3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 28 09:54:36 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 28 14:12:54 2017 -0800"
      },
      "message": "There\u0027s no longer a limit to property names.\n\nBug: http://b/33926793\nTest: boots\nChange-Id: I8554d7af74e064c114cf817f5a2ba1247fa2a2db\n"
    },
    {
      "commit": "94aabe47db520e5261b4a5595971efe1350f7b26",
      "tree": "db3040f068ee488e8efd3054f2f079acf83c2daa",
      "parents": [
        "81c6ff3b9665e1415583303bc7a63e3fadf669c8",
        "502cfd22ba0e7bb4f8276438125a959547226f0a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 17 21:20:11 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 17 21:20:11 2017 +0000"
      },
      "message": "Merge \"debuggerd_test: add capability test.\""
    },
    {
      "commit": "502cfd22ba0e7bb4f8276438125a959547226f0a",
      "tree": "79cc456a2bdcaca129b5bdfd72a6c3c44f318230",
      "parents": [
        "892b158af89073d7d6efa8d3198a8cbf2411ac8d"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Feb 17 01:39:15 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Feb 17 11:22:21 2017 -0800"
      },
      "message": "debuggerd_test: add capability test.\n\nAlso, remove the dependency on crasher.\n\nBug: http://b/35100921\nBug: http://b/35241370\nTest: /data/nativetest/debuggerd_test/debuggerd_test32\nTest: /data/nativetest64/debuggerd_test/debuggerd_test64\nChange-Id: I318f6de764d435251417953bf175ba321b59981f\n"
    },
    {
      "commit": "da9e3958d633dbfae39eb0e65afab4eec5197ca9",
      "tree": "062ce3ac912b1b2e6ae9dbcd9eccc2962f394ab2",
      "parents": [
        "892b158af89073d7d6efa8d3198a8cbf2411ac8d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 17 10:26:48 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 17 10:26:48 2017 -0800"
      },
      "message": "Add crasher check for passing a bad pthread_t to pthread_join.\n\nBug: http://b/35455349\nTest: manual\nChange-Id: If09454c7104a1e6de7c0edb50ee52118b7ca5eaa\n"
    },
    {
      "commit": "5ad965bf41a22929afc4d79fd1988416c192a6a6",
      "tree": "971b0e58d79db7ab263d12dc2892347443337508",
      "parents": [
        "2a18b822d50f360b83e9ce3fd822d2650ed3a4db"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Feb 16 19:22:25 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Feb 16 20:16:58 2017 -0800"
      },
      "message": "crash_dump: fix overflow.\n\n`1 \u003c\u003c 32` overflows, resulting in bogus PR_CAP_AMBIENT_RAISE attempts,\nand breaking dumping for processes with capabilities in the top 32 bits.\n\nBug: http://b/35241370\nTest: debuggerd -b `pidof com.android.bluetooth`\nChange-Id: I29c45a8bd36bdeb3492c9f74599993c139821088\n"
    },
    {
      "commit": "2a18b822d50f360b83e9ce3fd822d2650ed3a4db",
      "tree": "df1f9c23f7425a836ab8095859e89638d6be2321",
      "parents": [
        "325eeebc47d9f8ac07c5e390f46c8f58a1621180"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Feb 16 19:17:28 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Feb 16 19:26:09 2017 -0800"
      },
      "message": "crash_dump: remove unneeded/faulty checks.\n\nWe already check our /proc/`getppid()` fd every time we attach a thread, so\nthese were unneeded at best. The one that happened after dropping\ncapabilities was actively wrong, though, because /proc/pid access\nchecks happen on every operation. (only on some kernels?)\n\nAlso, add a check that getppid() doesn\u0027t change after opening\n/proc/getppid().\n\nBug: http://b/35241370\nTest: debuggerd -b `pidof com.android.bluetooth`\nChange-Id: I807439d8c2afd027f3c382face50167a8a7946c4\n"
    },
    {
      "commit": "c7cd48af582a01e4c1397b9ce0a99ae8fe9e4479",
      "tree": "2b8b80f9e6395f74b49c1a184c34f8f01e3cd62e",
      "parents": [
        "a70f11331f03ba1aa868efcbcf55e203622c3ffc",
        "e73c932373e59e4c0351cc7a8bd8cc5b8910d87e"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Feb 16 23:11:51 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 16 23:11:52 2017 +0000"
      },
      "message": "Merge \"libdebuggerd_handler: in-process crash dumping for seccomped processes.\""
    },
    {
      "commit": "a70f11331f03ba1aa868efcbcf55e203622c3ffc",
      "tree": "6569847aa8b3fd0cca94823961f6ad2f1ff0fbfd",
      "parents": [
        "c724fac054470f13729a3e3fadeb8f24c958954b",
        "8a7e70391207e9f6b65b40f9b2884935ea597436"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Feb 16 22:43:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 16 22:43:59 2017 +0000"
      },
      "message": "Merge \"crash_dump: make output fd O_APPEND.\""
    },
    {
      "commit": "e73c932373e59e4c0351cc7a8bd8cc5b8910d87e",
      "tree": "b8b8a1945ab8caba4b31ad1440a055033276bf00",
      "parents": [
        "f6ad5851e689f54c9dee6bfc6668ca726726e818"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 08 16:06:26 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 15 17:03:44 2017 -0800"
      },
      "message": "libdebuggerd_handler: in-process crash dumping for seccomped processes.\n\nDo an in-process unwind for processes that have PR_SET_NO_NEW_PRIVS\nenabled.\n\nBug: http://b/34684590\nTest: debuggerd_test, killall -ABRT media.codec\nChange-Id: I62562ec2c419d6643970100ab1cc0288982a1eed\n"
    },
    {
      "commit": "f6ad5851e689f54c9dee6bfc6668ca726726e818",
      "tree": "11c23d9e51336ba52763fa1b119e7350a1efbe1d",
      "parents": [
        "60515bf9f1b9eb222ed5fff274a8917ed9548add"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 15 12:21:11 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 15 17:03:30 2017 -0800"
      },
      "message": "crash_dump: fix typos in error messages.\n\nBug: http://b/34760032\nBug: http://b/35367169\nTest: mm\nChange-Id: I45fa002d4ca616a41524583228987ab1197a125e\n"
    },
    {
      "commit": "8a7e70391207e9f6b65b40f9b2884935ea597436",
      "tree": "7c68190cb65d952a6683395fbfdf463de37ffb56",
      "parents": [
        "af776fd518df4f677bf8c3f4a8d22d23a3479181"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 15 15:21:00 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 15 16:25:27 2017 -0800"
      },
      "message": "crash_dump: make output fd O_APPEND.\n\nBug: http://b/35209835\nTest: mma\nChange-Id: I447e3cfa3361f9c8b4b3335d0abccd1fe4c98e0f\n"
    },
    {
      "commit": "60515bf9f1b9eb222ed5fff274a8917ed9548add",
      "tree": "d87f38e2a7d508713dcf5b3888cb67679226404d",
      "parents": [
        "af776fd518df4f677bf8c3f4a8d22d23a3479181"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Feb 14 21:03:23 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 15 12:24:09 2017 -0800"
      },
      "message": "debuggerd_handler: don\u0027t use snprintf in handler.\n\nsnprintf isn\u0027t safe to call in the linker after initialization, because\nit uses MB_CUR_MAX which is implemented via pthread_getspecific, which\nuses TLS slots shared with libc. If the TLS slots are assigned in a\ndifferent order between libc.so and the linker, MB_CUR_MAX will\nevaluate to an incorrect value, and lead to snprintf doing bad things.\n\nSwitch to __libc_format_buffer.\n\nBug: http://b/35367169\nTest: debuggerd -b `pidof zygote`\nChange-Id: I9d315cf63e5f3fd2f4545d6e3f707cdbe94ec606\n"
    },
    {
      "commit": "2f11a25a48897efe35d065472f921759d5941eba",
      "tree": "1574e011b4aaf69b8050c6224edbd76ce73597dc",
      "parents": [
        "1d26b40ed5b9a8739425c252603c529d9f8d63fb"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Feb 13 14:46:19 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Feb 14 21:19:38 2017 -0800"
      },
      "message": "debuggerd_handler: set PR_SET_DUMPABLE before running crash_dump.\n\nSet and restore PR_SET_DUMPABLE when performing a dump, so that\nprocesses that have it implicitly cleared (e.g. services that acquire\nfilesystem capabilities) still get crash dumps.\n\nBug: http://b/35174939\nTest: debuggerd -b `pidof surfaceflinger`\nChange-Id: Ife933c10086e546726dec12a7efa3f9cedfeea60\n"
    },
    {
      "commit": "d2069632bd560cc9c2e27284108024a8a0ced3e4",
      "tree": "959f311dddcfe9147565bcc42f20ed44b3d67417",
      "parents": [
        "91ad653c8247b9e41a9ae500cbe376f61b56c9e9"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Feb 09 14:42:38 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Feb 14 14:40:47 2017 -0800"
      },
      "message": "debuggerd_handler: raise capabilities before running crash_dump.\n\nRaise CapInh and CapAmb after forking to exec crash_dump, so that it\ncan ptrace us.\n\nBug: http://b/35174939\nTest: debuggerd -b `pidof surfaceflinger`\nChange-Id: I32567010a3603cfa494aae9dc0e3ce73fb86b590\n"
    },
    {
      "commit": "91ad653c8247b9e41a9ae500cbe376f61b56c9e9",
      "tree": "29bd4b47efe4dd8927be1734cd3a32dcc49d9d29",
      "parents": [
        "42aa9a1415b3dea85cf895e1aee556797d3f9573"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Feb 09 12:37:39 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Feb 14 14:40:47 2017 -0800"
      },
      "message": "crasher: add a case that uses PR_SET_NO_NEW_PRIVS.\n\nBug: http://b/34684590\nTest: crasher no_new_privs\nChange-Id: I400d599116e3f3c27f5ea46d260e288cf900e156\n"
    },
    {
      "commit": "c3c8c029ecc46aa5d9fe6a5ee7c77c8adc5b23b5",
      "tree": "98fb77b8170ab1478cd6c37a6af8c92bc14ad074",
      "parents": [
        "a3e4977325763b4a6fd290ee01b9ce133df8ab93"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Feb 13 16:36:18 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Feb 13 17:01:24 2017 -0800"
      },
      "message": "debuggerd_handler: don\u0027t use waitpid(..., __WCLONE).\n\nwaitpid(..., __WCLONE) fails with ECHILD when passed an explicit PID to\nwait for. __WALL and __WCLONE don\u0027t seem to be necessary when waiting\nfor a specific pid, so just pass 0 in the flags instead.\n\nBug: http://b/35327712\nTest: /data/nativetest/debuggerd_test/debuggerd_test32 --gtest_filter\u003d\"*zombie*\"\nChange-Id: I3dd7a1bdf7ff35fdfbf631429c089ef4e3172855\n"
    },
    {
      "commit": "c24cc8a9e51d53aa7a2a7c0af3189abe2364dcc7",
      "tree": "0a5491ab721f3aa3c7c94986b024ced7872f45ef",
      "parents": [
        "7a0ee64f9df226012d19cd50ed93117d03cbb01d"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Feb 07 13:28:36 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Feb 07 13:36:08 2017 -0800"
      },
      "message": "crash_dump: collect open files before dropping caps.\n\n/proc/\u003cpid\u003e/fd is also limited by ptrace_may_access.\n\nTest: manual inspection of \"debuggerd -b `pidof zygote`\"\nChange-Id: I1a28c21c0438fe8729bd8e041c6b418d6a84c586\n"
    },
    {
      "commit": "7a0ee64f9df226012d19cd50ed93117d03cbb01d",
      "tree": "9a79692bc2a7adb658d550b40a98684f4828bcc0",
      "parents": [
        "a7d7eb6d2ae98e1147af678cf7e78ce4ff83e529"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Feb 07 13:31:25 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Feb 07 13:36:08 2017 -0800"
      },
      "message": "debuggerd_test: improve error when crasher fails to exec.\n\nBug: http://b/35100742\nTest: rm /system/bin/crasher \u0026\u0026 /data/nativetest/debugerd_test/debuggerd_test32\nChange-Id: I02faec3b7f7ef62bb8a2ac2af730506e3d28e03e\n"
    },
    {
      "commit": "a7d7eb6d2ae98e1147af678cf7e78ce4ff83e529",
      "tree": "46094ce2d3d8c2c83cc5def96d562fd00a3a98a7",
      "parents": [
        "887b6b9a4b7194627134cf486707ed4fca7c3043"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Feb 07 13:13:48 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Feb 07 13:13:48 2017 -0800"
      },
      "message": "debuggerd_test: fix crasher path.\n\nhttps://android-review.googlesource.com/#/c/331200 moved crasher to\nusing soong, which changed its location from /system/xbin/crasher to\n/system/bin/crasher.\n\nBug: http://b/35100742\nTest: /data/nativetest/debuggerd_test/debuggerd_test32\nTest: /data/nativetest64/debuggerd_test/debuggerd_test64\nChange-Id: I16a2050b257277023773cc0c960b5ab36e0c7cd4\n"
    },
    {
      "commit": "347164cc59fc4cf45e30c5518e6aa3b29cdc0283",
      "tree": "059500558f2f8da02b4aa26e108fa3ade72c6cf1",
      "parents": [
        "9df286012c83b04e6eefd96aa178683dd336a3f2"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Feb 07 12:31:17 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Feb 07 12:35:51 2017 -0800"
      },
      "message": "crash_dump: read /proc/\u003cpid\u003e/maps before dropping capabilities.\n\nReading /proc/\u003cpid\u003e/maps does a ptrace_may_access check, which will\nfail if we have fewer capabilities than the target, even if we\u0027ve\nalready ptraced it.\n\nBug: http://b/35070339\nTest: debuggerd -b `pidof zygote`\nChange-Id: I984a061022bd945a7950b88f6d579e1bd735e893\n"
    },
    {
      "commit": "54ef57d0b8790ded0c6d36171e144c096c4d25b5",
      "tree": "4e3a971684664dfc5358650f851bead7eececa2b",
      "parents": [
        "279cb8b39aeda9e8642a52794e6e67aa84fa2af7"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Feb 06 21:08:38 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Feb 06 21:10:48 2017 -0800"
      },
      "message": "debuggerd_handler: fix prctl return value check.\n\nFixed this when I tested on internal, but failed to copy the fix over\nwhen submitting to AOSP.\n\nBug: http://b/35070339\nTest: `adb bugreport` on angler\nChange-Id: Ib84d212e5f890958cd21f5c018fbc6f368138d1e\n"
    },
    {
      "commit": "279cb8b39aeda9e8642a52794e6e67aa84fa2af7",
      "tree": "fae2f15b0b9f3ded29a22f2ba52718b5f3285c9e",
      "parents": [
        "564aeca94e18cd708f93619551e05b3d59d4abe2",
        "b3ee52e4d0ee6f52c78d5f12cdc551686b1ebba7"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Feb 06 18:37:54 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 06 18:37:55 2017 +0000"
      },
      "message": "Merge changes from topic \u0027debuggerd_ambient\u0027\n\n* changes:\n  debuggerd_handler: don\u0027t use clone(..., SIGCHLD, ...)\n  crash_dump: drop capabilities after we ptrace attach.\n  crash_dump: use /proc/\u003cpid\u003e fd to check tid process membership.\n  debuggerd_handler: raise ambient capset before execing.\n  Revert \"Give crash_dump CAP_SYS_PTRACE.\"\n"
    },
    {
      "commit": "b3ee52e4d0ee6f52c78d5f12cdc551686b1ebba7",
      "tree": "11ac8fedec1ef5e808019f9153e88f1395469ad5",
      "parents": [
        "85bcaf68d33ac0d92df0a3aa6ce34a09b382a9e6"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 01 17:43:14 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Feb 02 13:54:39 2017 -0800"
      },
      "message": "debuggerd_handler: don\u0027t use clone(..., SIGCHLD, ...)\n\nProcesses that handle SIGCHLD can race with the crash handler to wait\non the crash_dump process. Use clone flags that cause the forked\nchild\u0027s death to not be reported via SIGCHLD, and don\u0027t bail out of\ndumping when waitpid returns ECHILD (in case another thread is already\nin a waitpid(..., __WALL))\n\nNote that the use of waitid was switched to waitpid, because waitid\ndoesn\u0027t support __WCLONE until kernel version 4.7.\n\nBug: none\nTest: \"debuggerd -b `pidof zygote64`\" a few times (failed roughly 50%\n      of the time previously)\nChange-Id: Ia41a26a61f13c6f9aa85c4c2f88aef8d279d35ad\n"
    },
    {
      "commit": "85bcaf68d33ac0d92df0a3aa6ce34a09b382a9e6",
      "tree": "591479d3ea1ea411d6821aa3907da6c7a6285cfa",
      "parents": [
        "fe90276aee3f778e143236c882092331a9df7c32"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 01 16:35:31 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Feb 02 13:54:38 2017 -0800"
      },
      "message": "crash_dump: drop capabilities after we ptrace attach.\n\nBug: http://b/34853272\nTest: debuggerd -b `pidof system_server`\nTest: debuggerd -b `pidof zygote`\nChange-Id: Ic1e1a4b0eb1f561621800cd4cc9a5b848fc5ffd8\n"
    },
    {
      "commit": "fe90276aee3f778e143236c882092331a9df7c32",
      "tree": "bacb920a3f4d29c126518064bf60507d41846b55",
      "parents": [
        "7ae426c73161ee084bf0ea8a034dc1b5ffca79c4"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 01 16:31:43 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Feb 02 13:54:38 2017 -0800"
      },
      "message": "crash_dump: use /proc/\u003cpid\u003e fd to check tid process membership.\n\nBug: http://b/34759490\nTest: /data/nativetest/debuggerd_test/debuggerd_test32\nTest: debuggerd -b `pidof system_server`\nTest: debuggerd -b `pidof zygote`\nChange-Id: I627692b44977335a9568cd765ad28205f0a61327\n"
    },
    {
      "commit": "7ae426c73161ee084bf0ea8a034dc1b5ffca79c4",
      "tree": "7f6bbb827deaf1c50323f124bd4084bf5c5539b1",
      "parents": [
        "ac91b0c4526e252325ebe613f553812d1cfedf7e"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 01 15:33:18 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Feb 02 13:54:38 2017 -0800"
      },
      "message": "debuggerd_handler: raise ambient capset before execing.\n\nRaise the ambient capability set to match CapEff so that crash_dump can\ninherit all of the capabilities of the dumped process to be able to\nptrace. Note that selinux will prevent crash_dump from actually use\nany of the capabilities.\n\nBug: http://b/34853272\nTest: debuggerd -b `pidof system_server`\nTest: debuggerd -b `pidof zygote`\nChange-Id: I1fe69eff54c1c0a5b3ec63f6fa504b2681c47a88\n"
    },
    {
      "commit": "f4ae6203a91c78ef176d08f49cb69720879a0a41",
      "tree": "95fce990b573dda6c247f3908cf0e2aa3cb1481c",
      "parents": [
        "d25e4c581907abebfc380310fae07bc48e945974",
        "0ba535976f1ee871fe4beb3f718e00293f4e0094"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 02 17:37:24 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 02 17:37:25 2017 +0000"
      },
      "message": "Merge \"Better seccomp/kuser_helper diagnostics from debuggerd.\""
    },
    {
      "commit": "0ba535976f1ee871fe4beb3f718e00293f4e0094",
      "tree": "9a3df38993fc9d39b90c2c9e0c1dcd433d0d1266",
      "parents": [
        "afe25958b66f6186ada566a7c4af6b776b00cc42"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 01 16:59:15 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 01 18:43:03 2017 -0800"
      },
      "message": "Better seccomp/kuser_helper diagnostics from debuggerd.\n\nAlso switch to Android.bp for crasher.\n\nBug: http://b/34629282 (seccomp)\nBug: http://b/34705831 (seccomp)\nBug: http://b/34884086 (kuser_helpers)\nTest: manual\nChange-Id: I8ee79c635518faeba751742919af69a505b5e3e1\n"
    },
    {
      "commit": "6462bb41e021090d44d41d6f03d0e071e1e19ea6",
      "tree": "20a5df2c18048e35c8d274ea0649f799aa244492",
      "parents": [
        "301e7e2cdbafbb75796dff72a0a03028f739e278"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Jan 31 13:13:46 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Jan 31 14:59:05 2017 -0800"
      },
      "message": "debuggerd_handler: add and use fatal_errno.\n\nBug: none\nTest: mma\nChange-Id: I24d913abdbe74f9463feda78f7817ca8b92af9cc\n"
    },
    {
      "commit": "1e4afb52c58c3d960160bfe1f7442618aeeec1ce",
      "tree": "fbaec2296b51ab895100a645e18c008bf4580082",
      "parents": [
        "b53f903cf1172b62cbaff17c34405b27172acb76"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jan 30 17:05:40 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jan 30 17:58:04 2017 -0800"
      },
      "message": "debuggerd: fix `debuggerd \u003cpid\u003e`\n\nBug: none\nTest: `debuggerd mediaserver`\nChange-Id: Ibd7bbddb92a99ce49622c0ecc9329a3723f2085d\n"
    },
    {
      "commit": "b53f903cf1172b62cbaff17c34405b27172acb76",
      "tree": "2f6bafcae3d1b4ed9da2adcc29a0d0a222acdd48",
      "parents": [
        "4ed00c8d739f52515053596b50e4bd33603ee922"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jan 30 17:04:56 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jan 30 17:58:04 2017 -0800"
      },
      "message": "debuggerd: fix `debuggerd -b \u003cpid\u003e`\n\nDump all of the threads when using `debuggerd -b`.\n\nBug: http://b/34719257\nTest: `debuggerd -b mediaserver`\nChange-Id: I2f57100985e5b0c2bf019482ba9feff31921692f\n"
    },
    {
      "commit": "4ed00c8d739f52515053596b50e4bd33603ee922",
      "tree": "9ab564613f0240811d55b47e3a7e0561c0fabe6a",
      "parents": [
        "a5cfc8b1e6140ac7a7bfc7bffa36de3d6543b59a"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jan 30 11:27:36 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jan 30 17:58:04 2017 -0800"
      },
      "message": "debuggerd_handler: improve nonfatal signal message.\n\n\"Fatal signal 35 (???)\" -\u003e \"Requested dump for\"\n\nBug: http://b/34809044\nTest: debuggerd -b $$\nChange-Id: I9ece0ee1117203d30142b843973ed7e5435e21da\n"
    },
    {
      "commit": "e5288f292a2565e276098b5f0e60ee93bb7e10a5",
      "tree": "95408035288b241aaf305248c0e212e782d79dcf",
      "parents": [
        "fc267f865e1475030f777a3640bd1cf46dc766b0"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jan 26 15:03:29 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jan 26 15:08:18 2017 -0800"
      },
      "message": "debuggerd_handler: remove PR_SET_DUMPABLE check.\n\ncrash_dump has CAP_SYS_PTRACE and this was never obeyed by debuggerd.\n\nChange-Id: Ifee5e94b97b1f6440ad0be79758f0db2d2aaba2e\n"
    },
    {
      "commit": "7e14d020f18eec79481c562e35750a8391b71f77",
      "tree": "c4682071fb22561f2bef02d01497cbd845ede7c5",
      "parents": [
        "529b3066d5124f07a2566d315fda3e5129ab8a25"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Jan 25 11:15:37 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Jan 25 11:16:03 2017 -0800"
      },
      "message": "debuggerd_handler: don\u0027t dump PR_NO_NEW_PRIVS processes.\n\nWe can\u0027t do an selinux transition when this is on.\n\nBug: http://b/34472671\nTest: logcat -c; debuggerd `pidof media.codec`; logcat\nChange-Id: Ie6c1832ab838df48879c32a86126862de9a15420\n"
    },
    {
      "commit": "529b3066d5124f07a2566d315fda3e5129ab8a25",
      "tree": "6df3067f5051ef33852fa9e3e5a303e6489fc5dc",
      "parents": [
        "fc12c4b81ef026ff2835d8fc18d9cb271d52b0ac"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Jan 25 11:05:11 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Jan 25 11:15:01 2017 -0800"
      },
      "message": "debuggerd_handler: don\u0027t resend nonfatal signals when not dumping.\n\nBug: http://b/34516140\nTest: debuggerd -b `pidof surfaceflinger`\nChange-Id: I0275ffca24bf4840e264eaa4b79611e2404edfb0\n"
    },
    {
      "commit": "0a37901b9f83f75579634afcc3dc8eb1b4a116ce",
      "tree": "7674f3d92a321b677654e69886d57972618205ee",
      "parents": [
        "f38ae34bbcf7adc4e186c6e4d4f3a9255dc8a0ac"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Jan 24 15:20:42 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Jan 24 15:22:43 2017 -0800"
      },
      "message": "crash_dump: properly dump when we can\u0027t talk to tombstoned.\n\nBug: http://b/32466479\nTest: stop tombstoned; logcat -c; crasher; logcat\nChange-Id: I16c010cc1865b4e1db8d2b85c904a2e074f28f1f\n"
    },
    {
      "commit": "5fe1cebe7cccbcb815c0520530cb7e5f95db19e1",
      "tree": "866028d4035f01872bab52f01ad6e26ba637a629",
      "parents": [
        "9fd1190790d34fed8ea5403367455c60503d37fb",
        "a95acea5bff36eaacc11b7301689363438953f80"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Tue Jan 24 19:07:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 24 19:07:30 2017 +0000"
      },
      "message": "Merge \"Replaced include log/logger.h with log/log.h in debuggerd\""
    },
    {
      "commit": "a95acea5bff36eaacc11b7301689363438953f80",
      "tree": "5ed3da77a12ca4fca97c37d2c9a6d79673cd3a88",
      "parents": [
        "13c15e05d0b6f35399800902eb8ea1943172db79"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Mon Jan 23 20:11:51 2017 -0800"
      },
      "committer": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Mon Jan 23 20:11:51 2017 -0800"
      },
      "message": "Replaced include log/logger.h with log/log.h in debuggerd\n\nTest: Compile debuggerd\nChange-Id: I33d12708993bd6818907b8cbb0a7a40672ad320d\n"
    },
    {
      "commit": "8498016b81a393e48ce1e3060872b841298708a3",
      "tree": "3723a955f0016cae49c178a39f5fd648e8cfe52f",
      "parents": [
        "0ad5107e51cb71c78a6de02cab2835ba9c1ae61d"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jan 23 15:56:35 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jan 23 16:01:14 2017 -0800"
      },
      "message": "tombstoned: silence spurious error messages.\n\nBug: none\nTest: booted after deleting /data/tombstones/*\nTest: crasher creates a tombstone\nChange-Id: I8b3e8a3b521952412ebc955b2437bf8150220c16\n"
    },
    {
      "commit": "0ad5107e51cb71c78a6de02cab2835ba9c1ae61d",
      "tree": "d73d574a6a3bff579e45a68b841d8ac24dea22db",
      "parents": [
        "4decbe0d6c3cb86445eb54ff22fd4e5771203da7"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jan 23 15:56:11 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jan 23 16:01:14 2017 -0800"
      },
      "message": "Actually don\u0027t start tombstoned until /data is mounted.\n\nBug: http://b/34461270\nTest: boot is actually faster\nTest: tombstoned still started by init\nChange-Id: I4976abef108bbb6fad264f9b68cbc1fba711085b\n"
    },
    {
      "commit": "4decbe0d6c3cb86445eb54ff22fd4e5771203da7",
      "tree": "23410fe4f94f4e57d2058bad0fa32d8f60b25500",
      "parents": [
        "d965fbfc9aa56398167f1cc2bf8692ca7bf1fec6"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jan 23 15:08:34 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jan 23 16:01:14 2017 -0800"
      },
      "message": "debuggerd_handler: add SIGSYS to the list of handled signals.\n\nBug: http://b/34586922\nTest: kill -SYS $$\nChange-Id: I31dadb9c65141d0c5556cc7256439e0a8d1519ab\n"
    },
    {
      "commit": "fca7ca35850438230428a0018d7b933f7c8a847c",
      "tree": "924dcec32180e1e3204362782ad434bd9eecef3f",
      "parents": [
        "400973fa8840fe50150797a83416c26e4828310a"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jan 23 12:05:35 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jan 23 14:13:36 2017 -0800"
      },
      "message": "debuggerd_handler: properly crash when PR_GET_DUMPABLE is 0.\n\nActually exit when receiving a signal via kill(2) or raise(2) and\nPR_GET_DUMPABLE is 0.\n\nBug: none\nTest: /data/nativetest/debuggerd_test/debuggerd_test32\nTest: /data/nativetest64/bionic-unit-tests/bionic-unit-tests --gtest_filter\u003dpthread_DeathTest.pthread_mutex_lock_null_64\nChange-Id: I833a2a34238129237bd9f953959ebda51d8d04d7\n"
    },
    {
      "commit": "7c6e3133f57b6c908e211c0013fcb68d5a44d919",
      "tree": "4dcc472531afdb58afad41e572cbc10da50df259",
      "parents": [
        "122479f4a0774a2a5599e6052ad427cbbeb8094a"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Sun Jan 22 17:59:02 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jan 23 11:39:31 2017 -0800"
      },
      "message": "crash_dump: set a watchdog timer.\n\nPTRACE_DETACH is only necessary if the process is in group-stop state,\nthe tracer exiting is sufficient to detach and resume tracees.\n\nUsing this, set a 5 second timer with alarm(2) that just kills us, to\navoid leaving processes stopped.\n\nBug: http://b/34472671\nTest: debuggerd_test\nTest: crasher + manually inserting a 10 second sleep into crash_dump\nChange-Id: Iacaa796f79037aa1585f3f2159abe45ef0069311\n"
    },
    {
      "commit": "122479f4a0774a2a5599e6052ad427cbbeb8094a",
      "tree": "8b243bfb7519cbbad91c1673486b79ad1bd9f2a1",
      "parents": [
        "575941115e46a60d4e41dfa5336572c603917a29"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Sun Jan 22 16:42:32 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jan 23 11:34:49 2017 -0800"
      },
      "message": "crash_dump: switch to PTRACE_SEIZE.\n\nptrace(PTRACE_ATTACH) does not immediately put the traced process in a\nstopped state. If we manage to call PTRACE_CONT on it before it\nfinishes, we\u0027ll fail. Switch to using PTRACE_SEIZE and PTRACE_INTERRUPT\nto guarantee that the target stops immediately.\n\nThis also has the advantage of never putting the process in group-stop\nstate, which means if we exit prematurely (e.g. if we crash during\nstack unwinding), the target process will be resumed without any\nintervention needed.\n\nBug: http://b/34472671\nTest: while true; do debuggerd -b `pidof audioserver`; done\nChange-Id: I7549f67489646cf300b8c9aa8c735e5e897806ef\n"
    },
    {
      "commit": "575941115e46a60d4e41dfa5336572c603917a29",
      "tree": "0b1be6fcd5223fe7044276442e3f809260a5c57d",
      "parents": [
        "d20d687de57b989495f4826450ac79910a4686dc"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Sun Jan 22 17:41:15 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jan 23 11:34:49 2017 -0800"
      },
      "message": "crash_dump: clear the default crash handlers.\n\ncrash_dump is a dynamic executable that gets the default crash dumping\nhandlers set by the linker. Turn them off to prevent crash_dump from\ndumping itself.\n\nBug: http://b/34472671\nTest: inserted an abort into crash_dump\nChange-Id: Ic9d708805ad47afbb2a9ff37e2ca059f23f421de\n"
    },
    {
      "commit": "d20d687de57b989495f4826450ac79910a4686dc",
      "tree": "c83d4123fe48220613dd9dc155bfb62b5fd12c4b",
      "parents": [
        "b64dd85c94ee21684d4ccbb0683d628eb1eb6121"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Sun Jan 22 16:41:58 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jan 23 11:34:49 2017 -0800"
      },
      "message": "crash_dump: remove extra log.\n\nWe\u0027re already aborting via LOG(FATAL), there\u0027s no reason to log again.\n\nBug: none\nTest: mma\nChange-Id: I96cb09b716b19381d6a6931048827ef45f87170b\n"
    },
    {
      "commit": "b64dd85c94ee21684d4ccbb0683d628eb1eb6121",
      "tree": "b42a3d28031b895231cd289e2449282d5c8038d8",
      "parents": [
        "13c15e05d0b6f35399800902eb8ea1943172db79"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Sun Jan 22 18:22:52 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jan 23 11:34:49 2017 -0800"
      },
      "message": "debuggerd_handler: actually wait for pseudothread to exit.\n\nOccasionally, the pseudothread wouldn\u0027t exit in time after unlocking\nthe mutex to get crash_dump to proceed, resulting in spurious error\nmessages. Instead of using a mutex to emulate pthread_join, just\nimplement it correctly.\n\nBug: http://b/34472671\nTest: debuggerd_test\nChange-Id: I5c2658a84e9407ed8cc0ef2ad0fb648c388b7ad1\n"
    },
    {
      "commit": "b479a5002e99e7454ed07d7b4631704d4c611193",
      "tree": "b79321ee812841ee3ec3a50c62dc73d79a2a2fd9",
      "parents": [
        "b5e530f720179f9a57122fa0ba8f502c2b2918db",
        "42a0fed78b761ab06f220786c29f51459265bdec"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 20 22:13:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 20 22:13:38 2017 +0000"
      },
      "message": "Merge \"init: don\u0027t start tombstoned until /data is mounted.\""
    },
    {
      "commit": "42a0fed78b761ab06f220786c29f51459265bdec",
      "tree": "00c7a50f07c3ee276f07df3ca806da212bc62d3e",
      "parents": [
        "1e7cdf3c7d2733f71a659c215100876168162083"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jan 20 12:08:10 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jan 20 13:18:51 2017 -0800"
      },
      "message": "init: don\u0027t start tombstoned until /data is mounted.\n\nWhen vold mounts the encrypted /data partition, it first checks for and\nkills processes that have open fds to the tmpfs placeholder at /data.\nThis resulted in a 20 second boot-time regression (vold\u0027s timeout period)\nwhen tombstoned was started before vold.\n\nBug: http://b/34461270\nTest: boot is faster, no messages from vold in console spew\nTest: tombstoned still started by init\nChange-Id: Ib5e9ddb05f40c9da852f00e103861c6ff2d94888\n"
    },
    {
      "commit": "ac0403b1e51651537758a7de931d3b0bde3b666b",
      "tree": "e8fd8885a1fbdd0f596319419f780a56a71da768",
      "parents": [
        "c734a0a9ee2dfa676720c51ec54225560a70a9aa",
        "42fd74bd1f95356732ccd9f3e7ec2befd194fb32"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jan 20 21:02:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 20 21:02:30 2017 +0000"
      },
      "message": "Merge \"crash_dump: don\u0027t abort if we fail to attach a sibling.\""
    },
    {
      "commit": "42fd74bd1f95356732ccd9f3e7ec2befd194fb32",
      "tree": "1569a3ba10a350249bb81bc657a62cb3be32630e",
      "parents": [
        "1e7cdf3c7d2733f71a659c215100876168162083"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jan 20 12:51:11 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jan 20 12:55:07 2017 -0800"
      },
      "message": "crash_dump: don\u0027t abort if we fail to attach a sibling.\n\nA TOCTOU race can occur between listing threads and attaching them.\nDon\u0027t abort and leave the process in a stopped state when this happens.\n\nBug: http://b/34472671\nTest: while true; do debuggerd -b `pidof audioserver`; done\nChange-Id: Ib1632c3423fddf506b5c7874223c82fada78a85e\n"
    },
    {
      "commit": "7008c8484d2fa8761b8dcde3af1d62871a6c26d9",
      "tree": "cb46c869c38b261594e3fe734882f3d028f16ee0",
      "parents": [
        "1e7cdf3c7d2733f71a659c215100876168162083"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jan 19 13:33:52 2017 -0800"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jan 19 13:33:52 2017 -0800"
      },
      "message": "Fix a call to openat with incorrect arguments\n\nCaught by running clang-FORTIFY over Android.\n\nBug: None\nTest: Builds\nChange-Id: If138c4bbb7f5fb40bbb20e24adbb25a6ef1286ac\n"
    },
    {
      "commit": "cbe70cb0a8cb0171f3802273050e851a47b090ed",
      "tree": "87a2805f11d9fa5283fe169d9b155f5b08a94f85",
      "parents": [
        "4c5c9db17b55bfcb2d62eec158440d0e794e30bb"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Oct 18 18:17:52 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Jan 17 13:57:57 2017 -0800"
      },
      "message": "debuggerd: advance our amazing bet.\n\nRemove debuggerd in favor of a helper process that gets execed by\ncrashing processes.\n\nBug: http://b/30705528\nTest: debuggerd_test\nChange-Id: I9906c69473989cbf7fe5ea6cccf9a9c563d75906\n"
    },
    {
      "commit": "51c33b7011f55686a6fcdcf5b559860832d397cc",
      "tree": "363c8e246e1b41e568e6f718f2520d8fc7d6f931",
      "parents": [
        "6bc1d3838173bcb59f28e3157f95da4b507f748e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 12 15:44:06 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 12 15:44:06 2017 -0800"
      },
      "message": "liblog: use log/log.h for ALOG macros\n\nTest: compile\nBug: 34250038\nChange-Id: I0f56c563871f377c03380498cd867b916892f1dc\n"
    },
    {
      "commit": "30f991f251940be3ed11566fb71139852286f68a",
      "tree": "5cef5c112aa400da1ad1572d26fcc3b6b3099b6e",
      "parents": [
        "cdd7ec12be3dfb6a7fa2f597d2220445c96725cf"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jan 10 13:19:54 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Jan 11 09:31:15 2017 -0800"
      },
      "message": "liblog: use log/log.h when utilizing ALOG macros\n\nTest: compile\nBug: 30465923\nChange-Id: Id6d76510819ebd88c3f5003d00d73a0dbe85e943\n"
    },
    {
      "commit": "400628aeace880110465e78aae6d3fe69c4becb5",
      "tree": "50d263dba25890b7755fad929342c47a01ff54ae",
      "parents": [
        "5d0f40f7c5a5172ab963feed2fdfa92216421ab5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 14 17:33:46 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 14 17:33:46 2016 -0800"
      },
      "message": "Improve crasher.\n\nMake it behave better in our typical use cases and support more of the kinds\nof crash we want to document.\n\nBug: http://b/28746168\nTest: crasher\nChange-Id: Ifbc3dfb042f6055568244c921f4abe1ea554cec4\n"
    },
    {
      "commit": "3ff028c7db24dfc2f83dc11b46149c6cf2d56af6",
      "tree": "e744d03fbab2eb977ab7b705597c14c8c436b19d",
      "parents": [
        "695e6182d346cb8bea4cc0280f4420116e1ba58c",
        "b675f7cd328ee47097f87f9efb5fd37d64d361de"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Nov 30 09:18:57 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 30 09:18:57 2016 +0000"
      },
      "message": "Merge \"debuggerd: Dump list of open files on process crash.\"\nam: b675f7cd32\n\nChange-Id: Iec231fc7eb57fa2c51aabc0fb75b4a09c47004cd\n"
    },
    {
      "commit": "b675f7cd328ee47097f87f9efb5fd37d64d361de",
      "tree": "fd1e0a8e9c63e8304a7a927ce5cf5334654425a2",
      "parents": [
        "1abc3cd641120aceabde7dd927f6dfc5b565e242",
        "53fb32f05cc17848f239dec6b8c821b7c5124ef4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 30 07:53:08 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 07:53:09 2016 +0000"
      },
      "message": "Merge \"debuggerd: Dump list of open files on process crash.\""
    },
    {
      "commit": "10f4044341e95ff4504c3e8b30e26ad528ea2d4c",
      "tree": "48549f028ecc086e7a2b5a0b209789042896d6a2",
      "parents": [
        "c58f49bf1bee57e4d1a16b9f9df9441b4ab7e01a",
        "9bfd9f558b116e208aef7bdeef887ca37fcd2007"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Nov 29 19:46:50 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 29 19:46:50 2016 +0000"
      },
      "message": "Merge \"system/core: replace EVENT_TAG_MAP_FILE with NULL\"\nam: 9bfd9f558b\n\nChange-Id: Ief7fcc4f7dd8086186b38c091fed626560ca7215\n"
    },
    {
      "commit": "1179eb8048f5861bf92b29441230381526d30e5d",
      "tree": "25a8ac14c4919e692e7c20ec612805d657eb1ea2",
      "parents": [
        "b6552f376ca2903d987faa9b05808d72952af858"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Nov 11 09:48:56 2016 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Nov 21 11:13:02 2016 -0800"
      },
      "message": "system/core: replace EVENT_TAG_MAP_FILE with NULL\n\nNULL represents system default.  In the future, NULL could represent\nstatic and dynamic tags, which can come from multiple files based on\nimplementation details in the liblog library.\n\nTest: gTest logd-unit-tests \u0026 liblog-unit-tests\nBug: 31456426\nChange-Id: I0e3d296de81ca299ae63d7b83781639ee67ec298\n"
    },
    {
      "commit": "53fb32f05cc17848f239dec6b8c821b7c5124ef4",
      "tree": "7b982e41f907096c0696987837c2c588d8dc027a",
      "parents": [
        "e133feb6b4c25ea3f28ca34a9cde2d8c1361b7b0"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Oct 28 16:37:33 2016 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Nov 21 11:40:42 2016 +0000"
      },
      "message": "debuggerd: Dump list of open files on process crash.\n\nTest: Open a bunch of files, wait for the process to crash, verify dubuggerd\nincludes the list of open files the tombstone it generates.\nTest: Added OpenFilesListTest to debuggerd_test.\n\nBug: 32013594\n\nChange-Id: I6f939ae1d04dc58dc99abff0ed930da9e0ef0d1c\n"
    },
    {
      "commit": "e1a06eef2a1d32d2552e25f437007f6edc1daee9",
      "tree": "e388e6816993333f7e4b7d3f6947fc3571663b3c",
      "parents": [
        "d1b560c6f97a01c79ebc90d94744f382dba76de4",
        "84db3f19bce1a8d95e517423b275034c2a05d165"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Sat Nov 12 01:17:04 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Nov 12 01:17:04 2016 +0000"
      },
      "message": "Merge \"crasher: add option to wait for input before crashing.\"\nam: 84db3f19bc\n\nChange-Id: I448bf3e527cd7435f650345492a9df1711b91048\n"
    },
    {
      "commit": "100ce3910d6d603ba7c4908de541ea71d93c5cdc",
      "tree": "8a42a89dc3f4f86448f0a88b594be301a800a453",
      "parents": [
        "b5f062bde4c9d2d5e3d2be9b9711231a4fc64a6e"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Oct 31 17:37:37 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Nov 11 14:29:13 2016 -0800"
      },
      "message": "crasher: add option to wait for input before crashing.\n\nThis will be useful for tests that want to do things with crasher\u0027s pid\nbefore it crashes.\n\nBug: http://b/30705528\nTest: crasher wait-abort; crasher wait-thread-abort\nChange-Id: I8ba826094dc304d6cd0e6ab088e5cfdb35d2007b\n"
    },
    {
      "commit": "6df644893085fe28e680224433f574759aed0065",
      "tree": "659e9b69b59c882585a2c9ce437747d383039453",
      "parents": [
        "d461fd39fb0a82494eb687a1531600a1449fd08f",
        "9fa133cc286f7d2f1c565668d7675b7d7d4bdc0e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Oct 24 23:12:42 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 24 23:12:42 2016 +0000"
      },
      "message": "Merge \"fix regression from android_lookupEventTag_len()\"\nam: 9fa133cc28\n\nChange-Id: I8aa5cddb87290eaf86536b567b34cb3119839911\n"
    },
    {
      "commit": "9f53cac1b4e397c42bf640eec0eed4a2ffae6f60",
      "tree": "ef164a303d2906874c7319fa1554defbcf1ad478",
      "parents": [
        "8cf0bd75f79ed641b5841dea1d34af18c6b4d40d"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Oct 24 13:11:46 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Oct 24 13:39:19 2016 -0700"
      },
      "message": "fix regression from android_lookupEventTag_len()\n\nCommit 807e40ecc9786755e2f74a7a6a9b20c812588119 \u0027liblog: logd: Add\nandroid_lookupEventTag_len()\u0027 which addressed a Dirty Shared memory\nleak resulted in a regression. Most notably logcat \u003ctag\u003e stopped\nworking for the events log buffer.\n\nAndroidLogEntry::tag also requires callers to check out\nAndroidLogEntry::tagLen as tag is no longer guaranteed to be\nnul terminated.\n\nTest: logcat-unit-tests --gtest_filter\u003dlogcat.event_tag_filter\nBug: 31456426\nChange-Id: Ibe5236131b640eb5b7e3df0ab4b5f3e25b85ad45\n"
    },
    {
      "commit": "8a7297a09f3a0d98a4a058767f6a447ef0e9d77d",
      "tree": "04081c2735ce7f9f54f5c6d23a89abe9d04e3de7",
      "parents": [
        "de3e60043ceb9c814bd7a3dabc5fd734a63835cf",
        "27d2d49f4872c26831d3e016765c62def3d2fb01"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Oct 20 18:03:57 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 20 18:03:57 2016 +0000"
      },
      "message": "Merge \"system/core: preparation to pull back interfaces from android/log.h\"\nam: 27d2d49f48\n\nChange-Id: I604bb1d4cf62636663fa92e3d14a55887dbcae23\n"
    },
    {
      "commit": "cfd5b080af8de527d768f0ff7902c26af8d49307",
      "tree": "32295b3aeb6ba8a116592576939348d09814b0be",
      "parents": [
        "1edd61ce5d2f34ff34d015643b5915b3b1c186e8"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Oct 17 14:28:00 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Oct 20 08:11:39 2016 -0700"
      },
      "message": "system/core: preparation to pull back interfaces from android/log.h\n\nPoint to log/log.h where necessary, define LOG_TAG where necessary.\nAccept that private/android_logger.h is suitable replacement for\nlog/logger.h and android/log.h.\n\nCorrect liblog/README\n\nEffectively a cleanup and controlled select revert of\n\u0027system/core: drop or replace log/logger.h\u0027 and\n\u0027system/core: Replace log/log.h with android/log.h\u0027.\n\nTest: compile\nBug: 30465923\nChange-Id: Ic2ad157bad6f5efe2c6af293a73bb753300b17a2\n"
    },
    {
      "commit": "400d85ab2ab8f7538d7e0de78a916d34aab29259",
      "tree": "a27ad1a5b1d3a8715e4d1363121e5d1f0f7d486c",
      "parents": [
        "f606721b5980ceca44813d7b0c9adde2925f11fd",
        "dafe384207ea30278f14b8f6f40328d996d2b9ac"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Oct 18 16:46:11 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 18 16:46:11 2016 +0000"
      },
      "message": "debuggerd: use __android_log_is_debuggable()\nam: dafe384207\n\nChange-Id: Idba40e16ccc20f66c14aa294033d534212646fbf\n"
    },
    {
      "commit": "dafe384207ea30278f14b8f6f40328d996d2b9ac",
      "tree": "eaca79dc681a7fa69025d4fe237fdb5400d923d2",
      "parents": [
        "5740a46e4ea87100acf6a83319d8b94c5c602352"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Mar 28 15:43:50 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Oct 14 11:12:16 2016 -0700"
      },
      "message": "debuggerd: use __android_log_is_debuggable()\n\nTest: compile and signal 8 to some component\nBug: 27566046\nBug: 31456426\nChange-Id: I35e83679fbc40d54217850521bff23d9306d86f8\n"
    },
    {
      "commit": "f1dffe0501d65f9e1e07b1c080fe73fe6bd977a7",
      "tree": "ca85de8b8698ff9a333b59bf5dc1657e50cc0310",
      "parents": [
        "b2ab1c43cb3cae98ac42f3eac6c2ba2d33723a8c",
        "4594f50635d7b8ff5c6f0c23cab885ca903b8cbc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 14 02:47:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Oct 14 02:47:44 2016 +0000"
      },
      "message": "Merge \"Rely on the platform -std default.\" am: 955648a915\nam: 4594f50635\n\nChange-Id: I459e76bcada6d849eccca73a470a910e335482bf\n"
    },
    {
      "commit": "955648a915920733307da633b94b7fd44860b4d0",
      "tree": "c3a729610d24ee503fbe4938122d673db4c65e58",
      "parents": [
        "a4398c1abeafa173a20c08ce28aba289fd35f9c3",
        "36e0d390a2de7d13cdf667d9a7d125f0d66b3107"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 14 02:28:38 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 14 02:28:38 2016 +0000"
      },
      "message": "Merge \"Rely on the platform -std default.\""
    },
    {
      "commit": "e758b2b3d3d98d9f867b5651c564458c2cb0a666",
      "tree": "f9dd2f20f445db87307855cbf053e148b14d31a5",
      "parents": [
        "2815ac55844eec6853f26e36991d98c04821ba29",
        "d3896c106d6a6e4d461be658a9e66efbde31f28d"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Oct 10 16:20:04 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Oct 10 16:20:04 2016 -0700"
      },
      "message": "Merge commit \u0027d3896c106d6a6e4d461be658a9e66efbde31f28d\u0027 into nyc-dev-plus-aosp\n\nChange-Id: I77d77be5ba21c55cdf1172d7a7f7b4ba04dcbc81\n"
    },
    {
      "commit": "36e0d390a2de7d13cdf667d9a7d125f0d66b3107",
      "tree": "b7ae89c6bbe40c5e820b8ddc2e2f073a67794911",
      "parents": [
        "0d762648d0b9cb29f13f3f8cb7815236078fafbd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 14:31:12 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 14:31:12 2016 -0700"
      },
      "message": "Rely on the platform -std default.\n\nBug: http://b/32019064\nTest: builds\nChange-Id: I18a1d816d63b64601485045070851f32d44e85eb\n"
    },
    {
      "commit": "218f7fb68e219884f6eec9714afb4da691450bc5",
      "tree": "d827db4962558790212b5aeb74e72e8b384ebd38",
      "parents": [
        "4a8b178c97ccc388a9c94663dfd7e1c614ffba64"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Oct 07 16:42:05 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Oct 07 18:04:05 2016 -0700"
      },
      "message": "debuggerd: report crashes even when out of file descriptors.\n\nUse nasty clone hacks to let us close random file descriptors to be\nable to connect to debuggerd when the fd table is full.\n\nBug: http://b/32013594\nTest: crasher exhaustfd-SIGSEGV\nChange-Id: I47772e9a5994da4473bd935b105d9c36827c017a\n"
    },
    {
      "commit": "6e5ffe26807419987f2a6f536e5d1db2318fcb03",
      "tree": "372dc66acc6385b409c7ee24fe3a27c0b4e7cbc7",
      "parents": [
        "2acb41b46c0a669a0cd329cf8de7f38d7195def2",
        "cb670780be80e52168f5e992f8b8ddf1bdde1789"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Oct 04 18:33:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 04 18:33:44 2016 +0000"
      },
      "message": "Merge \"system/core: drop or replace log/logger.h\" am: 1f90485804\nam: cb670780be\n\nChange-Id: I532a0f6143511f53f3303751f95de115ac034cd7\n"
    },
    {
      "commit": "37c9451349425652eb90434f61b8fe9a064957ba",
      "tree": "aa007e9a35c58fd76f0371d00238f763e60e397a",
      "parents": [
        "093951a2307f6572f911883c1ae6d01996e872c2"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Oct 04 08:54:28 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Oct 04 09:09:10 2016 -0700"
      },
      "message": "system/core: drop or replace log/logger.h\n\ndebuggerd does not require log/logger.h, can use android/log.h\nIn some cases, mark why log/logger.h was required.\n\nTest: Compile and boot smoke test\nBug: 26552300\nBug: 31289077\nBug: 31456426\nChange-Id: Ia34987e25a01d81971ec8d785415f732b8376c4f\n"
    },
    {
      "commit": "0308b0eabd1b484819c507f99e919e4a49f7fbc3",
      "tree": "087c46723f4b62ff179285a264ae437043120f2f",
      "parents": [
        "16f77860326dbcc9a34e0b7e3eab3ca8a2027e76",
        "cac331afd9bbea1730d001b3c246262f76e2ba78"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 22:13:00 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 30 22:13:00 2016 +0000"
      },
      "message": "system/core Replace log/log.h with android/log.h am: ff2dcd9af9\nam: cac331afd9\n\nChange-Id: I95c6a64bc35a041688303fcee4d506865d0a19a4\n"
    },
    {
      "commit": "16f77860326dbcc9a34e0b7e3eab3ca8a2027e76",
      "tree": "0f417f50301198522f842d42e361442158e4f6a6",
      "parents": [
        "a8d0a469566d462dad94e78c3f7582489b0568ac",
        "eb189f147b701315bfacf7fdc4338b9153964ed1"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 22:12:55 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 30 22:12:55 2016 +0000"
      },
      "message": "system/core Replace cutils/log.h with android/log.h am: 66ce3e08c5\nam: eb189f147b\n\nChange-Id: I3f2b13e259d9bbb7bc714f21eab7181fa72c35bf\n"
    },
    {
      "commit": "ff2dcd9af994a23ed483939a416b48bdc10eefd5",
      "tree": "6e5a0dfe4e39c407eea7e39840eef5d56b720de4",
      "parents": [
        "66ce3e08c5632a20ea66bde6dd76397041edf034"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Sep 28 15:54:45 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 12:47:05 2016 -0700"
      },
      "message": "system/core Replace log/log.h with android/log.h\n\nShould use android/log.h instead of log/log.h as a good example\nto all others.  Adjust header order to comply with Android Coding\nstandards.\n\nTest: Compile\nBug: 26552300\nBug: 31289077\nChange-Id: I33a8fb4e754d2dc4754d335660c450e0a67190fc\n"
    },
    {
      "commit": "66ce3e08c5632a20ea66bde6dd76397041edf034",
      "tree": "e77589e0f6c62e8ac1c8faabe2d9dd2934d3ecee",
      "parents": [
        "0dd4431072cce3c62876b728cb20aa5b77b11a8d"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Sep 28 10:07:20 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 12:47:05 2016 -0700"
      },
      "message": "system/core Replace cutils/log.h with android/log.h\n\nShould use android/log.h instead of cutils/log.h as a good example\nto all others.  Adjust header order to comply with Android Coding\nstandards.\n\nTest: Compile\nBug: 26552300\nBug: 31289077\nChange-Id: I2c9cbbbd64d8dccf2d44356361d9742e4a9b9031\n"
    },
    {
      "commit": "c3501a4dff08c024c7c3fd35b6726ab6db873696",
      "tree": "4851eca6e1d45bfd37afb3c8220694a026e446b4",
      "parents": [
        "a205ed0aadf20137a5fd90f0c02a0cdf0924f6c4",
        "014d9df418c9d6f0157c8f7620e8deb924e9b259"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 21:13:17 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 16 21:13:17 2016 +0000"
      },
      "message": "Merge \"Fix debuggerd argument parsing.\" am: 99ed65234c\nam: 014d9df418\n\nChange-Id: I2565eb9a4b631e51bfe6bd57d328c8cdd2c3eff6\n"
    },
    {
      "commit": "9048608db1615848307531cced4f7be0ff3c226f",
      "tree": "ff165d6f73ce07a264e37fef4e8728f191d603c8",
      "parents": [
        "67855d8454644ba84931b17013c040154a86fbc5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 15 17:08:33 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 15 17:08:33 2016 -0700"
      },
      "message": "Fix debuggerd argument parsing.\n\nWe weren\u0027t detecting incorrect input before. Also clean up the help output\nto match the style of all the toybox output. Also flush stdout so that we\ndon\u0027t report failure before even saying that we\u0027re going to try to contact\ndebuggerd...\n\nChange-Id: I9e4bfa878f270fe46c3c210c7a7138959a108d67\n"
    },
    {
      "commit": "6942f98f5db9564153319a2737542d652b10c94c",
      "tree": "c2693eb580080ec06ca9d6b360b4c2126222a698",
      "parents": [
        "eee36ebe928bbba683f5359db6b026597a3334d6",
        "9bec09f3cd9d6f4034f3adb88bcf047774c4df07"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 07 22:33:20 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 07 22:33:20 2016 +0000"
      },
      "message": "Merge \"Teach debuggerd about SIGSYS SYS_SECCOMP signals.\" am: 44d7a87621\nam: 9bec09f3cd\n\nChange-Id: I57a46b611dfecac17d90df3d76da4c149d8f3704\n"
    },
    {
      "commit": "6fff551728f75e35b69bd59f2bc722a72d5c6d61",
      "tree": "96aceca07fa184231b2fc8eaabbe41cc7b2c3463",
      "parents": [
        "f74553f85270fcb9263c98c472fc3fdc93c18114"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 02 16:15:58 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 07 13:55:50 2016 -0700"
      },
      "message": "Teach debuggerd about SIGSYS SYS_SECCOMP signals.\n\nThese should be easier to interpret.\n\nBug: http://b/31171101\nChange-Id: I362361d218390ab2306f86976172f8365b26b6ef\n"
    },
    {
      "commit": "99bb22da1b5bfbe0d74e5e59c8a7fd391b0eb42f",
      "tree": "b804aa4bae5dc3af864e6b2e402c45605a420004",
      "parents": [
        "95606ec91809c4402ddc8b6d659c59a3fe8c3b49",
        "c4abab85785e90e8fabf48a518cfdb182b315581"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Aug 29 19:21:49 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 29 19:21:49 2016 +0000"
      },
      "message": "Merge \"Update for kernel headers v4.7.2.\" am: 73d2cc570d\nam: c4abab8578\n\nChange-Id: I54f9530180e9d42032ed06fa7670125e5de0e4cf\n"
    },
    {
      "commit": "f83c7923f956328a022cddcfcd2d13d797a22a63",
      "tree": "5e2cc230d68bd45de2e2c9de9d36edf7c0a3fb75",
      "parents": [
        "091b631915c68c801bbded01ac8bb3a7af18436e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Aug 24 14:49:18 2016 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Aug 26 16:48:18 2016 -0700"
      },
      "message": "Update for kernel headers v4.7.2.\n\nThe new uapi kernel headers added a new SEGV reason code, so\nadd it to the tombstone code.\n\nUpdate sync.c to include the needed data structures itself. Someone\nelse will be fixing this to work on old versus new kernels.\n\nChange-Id: Icb27713ea38a20003c7671a9bca262eebd96099b\n"
    },
    {
      "commit": "098b5887c68b1fcfee6882c2338fc9f59e9ea9e4",
      "tree": "8e2dc6098762694baa5397ce8381b0b6c44e2ca0",
      "parents": [
        "da07f7880c1f1dcbb66f7bef26889d44d351e2a3",
        "2d562c9dce78098cef1dfd9d8658c777a4c973af"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Aug 24 16:07:38 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 24 16:07:38 2016 +0000"
      },
      "message": "Merge \"logger: validate hdr_size field in logger entry\" am: fcf7ab8b1b\nam: 2d562c9dce\n\nChange-Id: I5721e8614079a04c2dc364304d0ffed10d74be90\n"
    },
    {
      "commit": "2d562c9dce78098cef1dfd9d8658c777a4c973af",
      "tree": "070fffda06859c76934a0c450fe3f5f88ff988c9",
      "parents": [
        "8b1f7b595c51268086d89e830d1046d123160ca3",
        "fcf7ab8b1b0a50afa4bb9f41cb0d5c0db5fc417d"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Aug 24 16:05:04 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 24 16:05:04 2016 +0000"
      },
      "message": "Merge \"logger: validate hdr_size field in logger entry\"\nam: fcf7ab8b1b\n\nChange-Id: Ic88fe616256ab4949040771d3bed1dfb823ab981\n"
    },
    {
      "commit": "fcf7ab8b1b0a50afa4bb9f41cb0d5c0db5fc417d",
      "tree": "d3a971ab622ca8427ffa2c4b7529027f1a3ab348",
      "parents": [
        "d00c7470eacaa953b8396c5813b24a933d90e179",
        "305374cf0f8cf28b58a108cf4f45df92fc0dde86"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 24 15:56:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 24 15:56:23 2016 +0000"
      },
      "message": "Merge \"logger: validate hdr_size field in logger entry\""
    },
    {
      "commit": "66e5e2432a88a4b2ba8bacbc3137438e95eb4011",
      "tree": "4c48120999e51c26adff6d7936e3ee4b6fab207a",
      "parents": [
        "c8146aa39f6845b95f8a098015f5b195098ac921",
        "8615d79d85e53c86028b702152bc00864b18f9d5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 23 23:05:59 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 23 23:05:59 2016 +0000"
      },
      "message": "Merge \"Most accept/accept4 calls in system/core don\u0027t actually want the remote address.\" am: 299d64144b\nam: 8615d79d85\n\nChange-Id: I89aeabf6efa8217c9acd3f8a766bbd18f7e994fa\n"
    },
    {
      "commit": "8615d79d85e53c86028b702152bc00864b18f9d5",
      "tree": "65afa58c78ea612d8824729717ce18654b4a10ff",
      "parents": [
        "504d4ccd7cc27806781af880cb2479075c11ad30",
        "299d64144bdf28b06489c64aa4e99c423b84c1c4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 23 23:03:20 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 23 23:03:20 2016 +0000"
      },
      "message": "Merge \"Most accept/accept4 calls in system/core don\u0027t actually want the remote address.\"\nam: 299d64144b\n\nChange-Id: I3fb9678dfed08f0b1d6e90e547ecae6cdcabc9a1\n"
    },
    {
      "commit": "299d64144bdf28b06489c64aa4e99c423b84c1c4",
      "tree": "28279ba39397149c67060db00ad66b5703c30a93",
      "parents": [
        "ad52cbb9ec16ecee443c72286845e0f3a336e350",
        "3dcfa3fb1cec36b21ad026c618c85790a2353f72"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 23 22:48:24 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 23 22:48:24 2016 +0000"
      },
      "message": "Merge \"Most accept/accept4 calls in system/core don\u0027t actually want the remote address.\""
    },
    {
      "commit": "305374cf0f8cf28b58a108cf4f45df92fc0dde86",
      "tree": "4f7ae56a180ae568508f5da1f4f83e25a054d712",
      "parents": [
        "82b67fff06363c8e7a17058cb5ce748f21a27f11"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Aug 18 14:59:41 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Aug 23 14:51:50 2016 -0700"
      },
      "message": "logger: validate hdr_size field in logger entry\n\n- check hdr_size to make sure it is in the expected range\n  from sizeof entry_v1 to entry (entry_v4).\n- alter msg() method to report NULL on invalid hdr_size\n- alter all users of msg() method.\n\nBug: 30947841\nChange-Id: I9bc1740d7aa9f37df5be966c18de1fb9de63d5dd\n"
    },
    {
      "commit": "c8146aa39f6845b95f8a098015f5b195098ac921",
      "tree": "39a11e7143432cc87214d8bf9756723948b43dc2",
      "parents": [
        "50a99aa6cba2ac7f07b6e4d7dd652dc0ef88384c",
        "504d4ccd7cc27806781af880cb2479075c11ad30"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Aug 23 21:24:53 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 23 21:24:53 2016 +0000"
      },
      "message": "Merge \"debuggerd: don\u0027t display fault addr for manually sent signals.\" am: ad52cbb9ec\nam: 504d4ccd7c\n\nChange-Id: Iac8f64e01b5dd3fa9ab6e34c2c151800142ccc69\n"
    },
    {
      "commit": "504d4ccd7cc27806781af880cb2479075c11ad30",
      "tree": "1d14e8b91b2dd8bfa833b4243ffb820baaeb8b45",
      "parents": [
        "0d2ef3dc866d625725a69b903144f5d20ef44d49",
        "ad52cbb9ec16ecee443c72286845e0f3a336e350"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Aug 23 21:23:15 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 23 21:23:15 2016 +0000"
      },
      "message": "Merge \"debuggerd: don\u0027t display fault addr for manually sent signals.\"\nam: ad52cbb9ec\n\nChange-Id: I34284b398c32dbdfe2074d44d316f81fc45deee8\n"
    },
    {
      "commit": "ad52cbb9ec16ecee443c72286845e0f3a336e350",
      "tree": "fa3666792911d6e66cb20eb078aaec17a308709e",
      "parents": [
        "82b67fff06363c8e7a17058cb5ce748f21a27f11",
        "344ca5a6818ff3c718d304d67816eec4d6d7d574"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 23 21:03:18 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 23 21:03:18 2016 +0000"
      },
      "message": "Merge \"debuggerd: don\u0027t display fault addr for manually sent signals.\""
    },
    {
      "commit": "50a99aa6cba2ac7f07b6e4d7dd652dc0ef88384c",
      "tree": "8bb3ad8dbd9bd6380dd34def0867f1036cd34838",
      "parents": [
        "852a4c761d49668d80128cb61423e0a1448c341c",
        "0d2ef3dc866d625725a69b903144f5d20ef44d49"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 23 20:10:01 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 23 20:10:01 2016 +0000"
      },
      "message": "Merge \"debuggerd: set SOCK_NONBLOCK in accept rather than later.\" am: 82b67fff06\nam: 0d2ef3dc86\n\nChange-Id: Ie8ae5707455f4d1741ca87ef515ea9a142e05aa5\n"
    }
  ],
  "next": "0d2ef3dc866d625725a69b903144f5d20ef44d49"
}
