)]}'
{
  "log": [
    {
      "commit": "5d9fe779c8ec2705865a23061834ad8cdbee5b82",
      "tree": "92b5a9331b64f97c3201fa0798f57daa10d6fd17",
      "parents": [
        "eaba2bedf529eeb21351c8bf6365107cb6a4e8b6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 05 17:50:35 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 05 18:02:11 2014 -0800"
      },
      "message": "system/core LP64 cleanup.\n\nFixes -Wint-to-pointer and -Wpointer-to-int warnings, plus various -Wformat\nwarnings.\n\nChange-Id: I6c5eea6b4273d82d28b8e5d2925f3e5457511b17\n"
    },
    {
      "commit": "7ddca5adb609c0234485c7eb6957d62dcb06e06a",
      "tree": "ae85bfbc329232ed92c524719c1851aeb39e62e6",
      "parents": [
        "d2acdd82e613b3e1d79a00943ac3bf5fbc14a766"
      ],
      "author": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Tue Jan 28 13:18:24 2014 -0800"
      },
      "committer": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Tue Jan 28 13:19:11 2014 -0800"
      },
      "message": "Fix code style, put unused in the end\n\nChange-Id: I7315b35049924d5067203a432584b8f29e5a1391\n"
    },
    {
      "commit": "d2acdd82e613b3e1d79a00943ac3bf5fbc14a766",
      "tree": "d7f0ff36ad86281f3fa4eb36978658711e7c2296",
      "parents": [
        "12db3eb6db3b80011043e404530012612a1d0fbf",
        "44b99c22af84331068935a9bc3e807165a88237c"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jan 28 21:09:37 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 28 21:09:37 2014 +0000"
      },
      "message": "Merge changes I70ab37d5,I716f89c0,I34c96adf,I77650923,I35b0d1ee, ...\n\n* changes:\n  libsysutils: SocketListener export release\n  libsysutils: Add iovec/runOnEachSocket\n  liblog: support struct logger_event_v2 format\n  liblog: update timestamp on NOTICE file\n  libcutils: resolve warning in iosched_policy.c\n  liblog: Add const pedantics\n  logcat: Add -T flag (-t w/o assumption of -d)\n  logcat: Add logcat test suite\n  liblog: Add cpu utilization test\n  liblog: Add liblog test suite\n  debuggerd: Support newline split in log messages\n  liblog: deprecate export LOGGER ioctl definitions\n  liblog: deprecate export of LOGGER_LOG_* defines\n  liblog: Add README\n  liblog: resolve build warning messages\n  liblog: high CPU usage from logcat\n  liblog: fix build again\n  liblog: drop use of sys/cdefs.h\n  liblog: git_master@964770 build problem\n  logcat: Incorporate liblog reading API\n  debuggerd: Incorporate liblog reading API\n  liblog: Interface to support abstracting log read\n  adb: deprecate legacy log service interface\n  adb: regression from Move list.c to inlines\n  liblog: whitespace cleanup\n  libcutils: bug str_parms.c:str_parms_get_float().\n  libcutils: UNUSED argument warnings\n  libsysutils: Get rid of warnings\n  libcutils: Move list.c to inlines on list.h\n"
    },
    {
      "commit": "b5a9890f900a5e2b53e91e6d63f3ade23240f90d",
      "tree": "080b5581e8ca5343b0bd0a3f7dac575cc5f941fd",
      "parents": [
        "6ddabb7a1cc3080ae773acb045f69b5e6afee87a"
      ],
      "author": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Tue Jan 28 11:26:56 2014 -0800"
      },
      "committer": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Tue Jan 28 11:28:32 2014 -0800"
      },
      "message": "Fixes some warnings\n\n- Implicit decleared function\n- Unused variable\n\nChange-Id: Ia701e66682cb6788f0716a2ef7556ed07227f78f\n"
    },
    {
      "commit": "40b21558e52e9245929495c5344443276e5d87c1",
      "tree": "cabe4a625f6e09caea68cdc0af31a57e1d55576c",
      "parents": [
        "e7ff525a7e8c2109439260c2ac898fc3cc17e011"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Dec 18 12:59:01 2013 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:21:29 2014 -0800"
      },
      "message": "liblog: support struct logger_event_v2 format\n\n(cherry picked from commit c176e14ce3fd28432e2eaca7bc7a60046dd8be40)\n\nChange-Id: I34c96adffab3478dae8f5a2597a840caad5092cc\n"
    },
    {
      "commit": "e7ff525a7e8c2109439260c2ac898fc3cc17e011",
      "tree": "53cf6eecefde8c64d879463d31648360e3731035",
      "parents": [
        "3bca60611702f21738b1d45892bcf33847c4877e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jan 14 08:14:12 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:20:59 2014 -0800"
      },
      "message": "liblog: update timestamp on NOTICE file\n\n(cherry picked from commit b69e092dc75b643d95538929b38da6f647e79351)\n\nChange-Id: I776509232aaa50e14fe79e45ab133c0ea3985933\n"
    },
    {
      "commit": "cef098ef5df0d1e98bae269aaae2e3c3fbd1cb1f",
      "tree": "6535382b14524c6a65749a2d79cca36e01548fb9",
      "parents": [
        "819c58a8ca20f94700085b8967f371f5854a5216"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 09 09:02:55 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:18:09 2014 -0800"
      },
      "message": "liblog: Add cpu utilization test\n\n- followup to measure CPU utilization in liblog to\n  ensure this issue gets caught before a regression\n  passes into the labs. Threshold for failure is 1%.\n\n(cherry picked from commit edadb2e7196040dd476e86581dc1c8e26449c00d)\n\nBUG: 12457855\nChange-Id: I40568a72aeef2f554b19ad55f3dd3c02bc023f24\n"
    },
    {
      "commit": "819c58a8ca20f94700085b8967f371f5854a5216",
      "tree": "a223d8452f1137d81427ac617e37249dd62c3cdc",
      "parents": [
        "fca0bd1a38597b83f6511d0c7c971fce75dc8123"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Nov 22 12:39:43 2013 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:17:39 2014 -0800"
      },
      "message": "liblog: Add liblog test suite\n\n(cherry picked from commit 8d1fdb509305e93eb46d45a6dcd34bedd6dc0742)\n\nChange-Id: Ia457d518b4e7ff37e840336ff0c48583709700d4\n"
    },
    {
      "commit": "1345f38e4419607ea9c5b24109e5bd6df52dcffa",
      "tree": "0a9eeba5bcf463ebb067d554d6ea244075db980a",
      "parents": [
        "e9c4196980208124066fb45fa03bfb85fe1d8581"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jan 14 08:41:27 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:16:43 2014 -0800"
      },
      "message": "liblog: deprecate export LOGGER ioctl definitions\n\n(cherry picked from commit 2e44a9ea2518024a07f38c2cc6066ec2074d5210)\n\nChange-Id: I150cad9309255bec2b8bc7230c744e9bbb1b9578\n"
    },
    {
      "commit": "e9c4196980208124066fb45fa03bfb85fe1d8581",
      "tree": "a5dd87995ed44361c5be29a38b5ad1f8e7303ed2",
      "parents": [
        "24b5d3cec51e0d7fc0989913a901e6888d948375"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 02 13:52:29 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:16:04 2014 -0800"
      },
      "message": "liblog: deprecate export of LOGGER_LOG_* defines\n\n(cherry picked from commit 73459a5c87dc9e7c2aeee00597b9d3cc8d9a190e)\n\nChange-Id: I263af8e889f8f2ad91b91757caf90a4d17823dab\n"
    },
    {
      "commit": "24b5d3cec51e0d7fc0989913a901e6888d948375",
      "tree": "3fdc71b2aa47c11541ebc09f59b62e6f0ac03667",
      "parents": [
        "168021c2827312e17a13d77b54f7d030a08b257b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Dec 17 12:29:37 2013 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:15:33 2014 -0800"
      },
      "message": "liblog: Add README\n\n(cherry picked from commit 912c88cc5abde3fb7e09a810491c3285b3bd4a64)\n\nChange-Id: I9d789e08e9301ec8afa7be8bede955379694b904\n"
    },
    {
      "commit": "168021c2827312e17a13d77b54f7d030a08b257b",
      "tree": "2ab67d74fb83b56e4cf723ca8a0eb65858d4f8b0",
      "parents": [
        "d0a83fddf18de1a567692a0eeb43228601c83fcf"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 06 08:14:11 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:15:05 2014 -0800"
      },
      "message": "liblog: resolve build warning messages\n\n(cherry picked from commit 153b370624c3da0660281f692fbe3f2da96cfd70)\n\nChange-Id: Icc6f1f2c926a008efc4df71022cfde8d0e285880\n"
    },
    {
      "commit": "d0a83fddf18de1a567692a0eeb43228601c83fcf",
      "tree": "5fac4fc0570231eab9eb17b44e4c9c0e0264a3bd",
      "parents": [
        "11aa6ee98c5cc67e149acb7c634f6c2546678c00"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 09 07:45:30 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:14:18 2014 -0800"
      },
      "message": "liblog: high CPU usage from logcat\n\nBUG: 12457855\n\n- log_read.c poll timeout should be -1 instead of 0 when idling\n\n(cherry picked from commit 080bbfab94ce91e4845860d5253eea6d869bbc18)\n\nChange-Id: I9082a15fae0fbf999c0ed516950a49d65a279298\n"
    },
    {
      "commit": "11aa6ee98c5cc67e149acb7c634f6c2546678c00",
      "tree": "ea22a0700d17979f4ee785e4475af1971ca0564c",
      "parents": [
        "f387fa5df0180831abfd2004e78859d66836bc05"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jan 03 18:58:16 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:13:49 2014 -0800"
      },
      "message": "liblog: fix build again\n\nlog_read.c has to be in the target sources on all platforms, but\nnever needs to be in the host sources.\n\n(cherry picked from commit 3c37fae4a472835c8e20060e1e6b7495b84f254a)\n\nChange-Id: Ie0829f3f1daf16d151c401653dbef603b1c2f59d\n"
    },
    {
      "commit": "015c8e76ca068bd4c68ad17a762698542d0c037c",
      "tree": "cde10c19c036f86d4560c76af555442e947c5765",
      "parents": [
        "95132e97e57b055c5103619ce2487d07f30e63db"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Jan 03 16:00:02 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:12:15 2014 -0800"
      },
      "message": "liblog: git_master@964770 build problem\n\n- darwin does not get log reader\n\n(cherry picked from commit 5feea6890875c9046f40bdadc0dbd4a411e7f3f5)\n\nChange-Id: I64eb69a6099a88d2acf501de725c35741fd7e551\n"
    },
    {
      "commit": "4295841ebe68a2ebf50ed7adf0a603c523d5af52",
      "tree": "96657c48383c49bab251c219577118193df77ade",
      "parents": [
        "7aa39a7b199bb9803d3fd47246ee9530b4a96177"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Nov 22 10:50:27 2013 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:10:39 2014 -0800"
      },
      "message": "liblog: Interface to support abstracting log read\n\n(cherry picked from commit 6c1b07fbbd0ccce0e4fdf79abd38494cc622d67e)\n\nChange-Id: Iedc55c1316029b4bb72f51cc656b53b0e3f90aee\n"
    },
    {
      "commit": "cf4aa030ce113ab4e18f41ac9e92002471a1a2be",
      "tree": "03d5b2e4e4ee29b659d7f9d53a0871e1569aa33e",
      "parents": [
        "b957baccd21ca43371dfbc02c10aae18497000b8"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Nov 22 07:54:30 2013 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:08:42 2014 -0800"
      },
      "message": "liblog: whitespace cleanup\n\n- change cutils to liblog directory path\n- change tabs to spaces\n\n(cherry picked from commit c1215c0b46576771370ceb4e1b1d8fc5a7034cfd)\n\nChange-Id: I7d9db1e2b817ba0ec9a224340c5c7535a2387fd5\n"
    },
    {
      "commit": "9227bd385504ace739d4451a6c5dc3d777b5bf21",
      "tree": "355484e01ff5efa0be976905767fc7126a678cb6",
      "parents": [
        "87bc464a9f62f026fd841d3b54cfb1a5d57d83a3"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 23 16:59:20 2013 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jul 24 12:32:39 2013 -0700"
      },
      "message": "Move liblog headers to system/core/include/log\n\nMove the liblog headers to log/ instead of cutils/ to complete\nthe separation of libcutils and liblog.  cutils/log.h still\nexists and includes log/log.h in order to support the many existing\nmodules that use cutils/log.h.\n\nChange-Id: I2758c9f4aedcb809ca7ba8383d0f55041dd44345\n"
    },
    {
      "commit": "a1703220834ddeffde5d571cd776ca981e8a42f6",
      "tree": "a87f3e5ca1d4f7cc1c3680ef9f1097582b16a0df",
      "parents": [
        "80dac35023bb7860b7382ca995e19710bd894e7e"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Mar 15 09:45:12 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Mar 15 09:48:32 2013 -0700"
      },
      "message": "liblog: fix fd leakage\n\nFile descriptors remain open across an exec unless FD_CLOEXEC is\nset.  Add O_CLOEXEC to the open() call to prevent file descriptor\nleakage.\n\nIn particular, the following program will eventually run out of\nfile descriptors:\n\nint main(int argc, char **argv) {\n  printf(\"\u003d\u003d\u003d\u003d\u003d entering main \u003d\u003d\u003d\u003d\u003d\\n\");\n  ALOGW(\"entering main\");\n  system(\"ls -l /proc/self/fd/\");\n\n  execv(argv[0], argv);\n  printf(\"exec failed\\n\");\n  return -1;\n}\n\nChange-Id: I5be43ab3b9f82a05f242b1f586454c50568af388\n"
    },
    {
      "commit": "3761e963b30cfc0c2dbcbe69906d689c976b9f2e",
      "tree": "ca1a4295dbdbdd617d02ea99bfceb8b3f27d4934",
      "parents": [
        "777991d9399f1268d27c72a03d56c1a36068a57f"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Nov 28 12:20:19 2012 -0800"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Dec 06 10:28:34 2012 -0800"
      },
      "message": "Use Rlog instead of Log\n\nChanging __android_log_write so the tag warns users relying on the\ntag to direct log output to the radio buffer to instead use Rlog or RLOG.\n\nChange-Id: I04b7bb5e620c1ab22b9b495382a252b539947e28\n"
    },
    {
      "commit": "84dcf091482b8d0f484e665915d354069a8c879b",
      "tree": "54121b91e34b4d5ecef048466f8a97a15f724537",
      "parents": [
        "9a7b9aab08e5640a08b312807dc57fcd469a77f2"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Aug 13 11:27:30 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Aug 13 11:27:54 2012 -0700"
      },
      "message": "Collapse IMS tags into a prefix check.\n\nBug: 6497974\nChange-Id: I7fba1a07e2552ce16131b81f30d18eb3192de7ef\n"
    },
    {
      "commit": "44e95651dd1e07017ab85d05a542d2372dbb2baa",
      "tree": "fa9a65eda2f9167f22c6c7c9c09f5dc3a722c6fe",
      "parents": [
        "76e227b4d851741150250f75cca41b3955e2d9b9"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jul 17 11:16:07 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jul 17 11:32:21 2012 -0700"
      },
      "message": "Force IMS logging into radio log.\n\nBug: 6497974\nChange-Id: I4691f287b0abdce03ff211bd5b5b0037b8818ec9\n"
    },
    {
      "commit": "f82e74116314c4def32013495337c038f6c6ee6c",
      "tree": "4e380c9651da0fbe16f183aa01b58dab2aadc876",
      "parents": [
        "08c370cc50e4bdae5a59f4ddfd1e3874bb36579d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 13 17:37:07 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 03 16:04:57 2012 -0700"
      },
      "message": "Make a liblog.so for the host too.\n\nChange-Id: I0317bb3b80c6555bcb1ff9f2238f32be5f7adedb\n\nConflicts:\n\n\tliblog/Android.mk\n"
    },
    {
      "commit": "99e7f7af84b324034af348cbb7a180848cca2ebb",
      "tree": "0fec173faea0a872462d011460cfc0a32d83744f",
      "parents": [
        "977fc4e9153b29e2f5e0b05d20d3c09b81b95e42"
      ],
      "author": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Thu Mar 01 23:58:50 2012 -0800"
      },
      "committer": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Thu Mar 01 23:58:50 2012 -0800"
      },
      "message": "Added rules to build 64-bit libraries: lib64cutils.a and lib64log.a\n\nBoth libraries are needed to build four shared libraries in 64-bit\nfor 64-bit emulator with \"-gpu on\"\n  lib64OpenglRender.so\n  lib64EGL_translator.so\n  lib64GLES_CM_translator.so\n  lib64GLES_V2_translator.so\n\nChange-Id: If57f72d4661a74f1d5e537568881f39132e0b43d\n"
    },
    {
      "commit": "d2c8f52189f8c2a13b88a107c6495f9d83196d2d",
      "tree": "2175cb5d16e0e2bc9970ae336f8be94a33c8bb09",
      "parents": [
        "c958a7f4988f3dd98135b23619cdf55ec55bd1f6"
      ],
      "author": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Mon Feb 27 16:48:18 2012 -0800"
      },
      "committer": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Wed Feb 29 17:00:46 2012 -0800"
      },
      "message": "Fixed two 64-bit porting issues; Make pid/tid type consistent\n\n1. In printf, use \"%zu\" for variable of type size_t\n2. Print tid in %5d\n3. Make type of pid/tid in AndroidLogEntry and logger_entry consistent\n\nChange-Id: I3e3d9536ee58823f349a4734ae093d30eabe1bfe\n"
    },
    {
      "commit": "a820a0e587b1f6be7283588b744cd33ba5723bdf",
      "tree": "528d3e17a5cc8a865a74543f34eb6f1f1f0a516c",
      "parents": [
        "08dedcfd5cfeab526bb02382e4292f3150ed986f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Oct 26 18:40:39 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Oct 26 18:59:42 2011 -0700"
      },
      "message": "Gracefully handle truncated log messages.\n\nBug: 5522726\nChange-Id: I8637c7da854ec1ecb321632c45ee9bc2edc94a67\n"
    },
    {
      "commit": "e1ede1530ff21d3b8920c0cbbebb42ccff4fa22d",
      "tree": "bc5fc695fd90c961dc001baddbe91b207009b579",
      "parents": [
        "4423df76f589e9fbd566f368c453758451c82f78"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Oct 18 15:23:33 2011 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Oct 18 15:37:15 2011 -0700"
      },
      "message": "liblog: do better checks of log messages.\n\nTesting:\n\nThe following test cases all passed and generated log entries:\n\n # echo -n \u0027\\03foo\\0bar\\0\u0027 \u003e /dev/log/main\n # echo -n \u0027\\03\\0bar\\0\u0027 \u003e /dev/log/main\n # echo -n \u0027\\03\\0a\\0\u0027 \u003e /dev/log/main\n\nThe following entries were successfully processed by\nlogcat but produced no log entries:\n\n # echo -n \u0027\\03\\0\\0\u0027 \u003e /dev/log/main\n # echo -n \u0027\\03a\\0\\0\u0027 \u003e /dev/log/main\n # echo -n \u0027\\03b\\0\\0\u0027 \u003e /dev/log/main\n\nAlso tested the pathological error condition:\n\n cat /dev/urandom \u003e /dev/log/main\n\nwhich produced many \"+++ LOG: malformed log entry\" errors.\n\nBug: 5478600\nChange-Id: I53bc79507242dcfc14445746c29edf47be0a90b4\n"
    },
    {
      "commit": "63f4a84104c228c74cdf132f5cef4f5184ae04bb",
      "tree": "db80bb6c9037ab3d0c737fbd18445e666c1dc7d1",
      "parents": [
        "76feaf37218b7fec02ade30c143884df8299697c"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Oct 17 10:45:03 2011 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Oct 17 10:47:04 2011 -0700"
      },
      "message": "liblog: ensure that the message length is consistent\n\nWhen parsing log entries which may have embedded \\0s, it\u0027s\npossible for entry-\u003emessageLen to not be the actual\nlength of the string in entry-\u003emessage.  Detect this condition.\n\nBug: 5417417\nChange-Id: I712cac7696af7831e24765b5a1b345d6ff5fb407\n"
    },
    {
      "commit": "4bf3c02e026077d14a4512c7c2f71937da3c2d50",
      "tree": "7fd7c515c75cc0f64d9be5351be46f7d767e5794",
      "parents": [
        "e5de9ee4915bafd7f31a96260613d8b93aba8351"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Sep 30 17:10:14 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Oct 03 14:14:41 2011 -0700"
      },
      "message": "Add checking for log entry format\n\nThe log tag may be zero length if corrupted, so check for this\ncondition.\n\nChange-Id: I7616226dabe78a85859b0ab53aca08f734dbdd84\n"
    },
    {
      "commit": "29e1e7393d1742f9dd5663c63026f50981e5bd89",
      "tree": "0baf9441d44fce10821ec9bf1f32655e5695a8aa",
      "parents": [
        "56286d6fdb07d8b1310c27eeb59bdf05500f166e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 22:12:32 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 22:12:32 2011 -0700"
      },
      "message": "Remove the simulator target from all makefiles.\nBug: 5010576\n\nChange-Id: I2fcf31af681d92880e5d31a46d5f6777f7ca1977\n"
    },
    {
      "commit": "7b023b293b3252feddab29b0672524a341494b9e",
      "tree": "6901834d6c2970974d762825492ccb9744cfc2f9",
      "parents": [
        "590e364868b6466e169f2647e95462ba2558dd00"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Mon Jun 27 11:14:46 2011 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Mon Jun 27 11:14:46 2011 -0700"
      },
      "message": "Fix SDK build.\n\nRevert \"Fix build warnings\"\n\nThis reverts commit 590e364868b6466e169f2647e95462ba2558dd00.\n"
    },
    {
      "commit": "590e364868b6466e169f2647e95462ba2558dd00",
      "tree": "6c34bce0c2090782bde331a025e2f7dd8b5804d8",
      "parents": [
        "9661a3aecd39cca95bd07253c52b99521409c147"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 24 14:17:38 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 24 15:40:56 2011 -0700"
      },
      "message": "Fix build warnings\n\nChange-Id: Ie24cf8e729813e4527c698fc7c1502a1efbc63e5\n"
    },
    {
      "commit": "4e246965bbd124bad1c1d98c5936d13b4db0d566",
      "tree": "65a9be838a789cb38a03645c2e0ac9d284bf03e7",
      "parents": [
        "534bc027a2fc5136988e6785c2d647054daf2713",
        "64ba76c1431afe17c1f4553f1dbc595db064316e"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jul 16 13:34:53 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 16 13:34:53 2010 -0700"
      },
      "message": "am 64ba76c1: merge from open-source master\n\nMerge commit \u002764ba76c1431afe17c1f4553f1dbc595db064316e\u0027\n\n* commit \u002764ba76c1431afe17c1f4553f1dbc595db064316e\u0027:\n  Fixed LOG_ASSERT() compilation errors in native debug builds.\n"
    },
    {
      "commit": "19299904343daf191267564fe32e6cd5c165cd42",
      "tree": "5dcbf51c82ad371c25614f76f03e7caf3caa0aab",
      "parents": [
        "e3f6a6e1d3e52c1d25d55b6556cc1f2c0598b576"
      ],
      "author": {
        "name": "Chris Pearson",
        "email": "christopherx.c.pearson@intel.com",
        "time": "Wed Jun 02 16:25:35 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jul 16 07:56:03 2010 -0700"
      },
      "message": "Fixed LOG_ASSERT() compilation errors in native debug builds.\n\nInvoking LOG_ASSERT, LOG_ALWAYS_FATAL or LOG_ALWAYS_FATAL_IF variadic macros\nwithout the printf format string arg caused compilation errors because the\nvariable arg list (__VA_ARGS__) was eventually passed to\n__android_log_assert() func in place of a required parameter. This error\nonly occured in debug builds because LOG_ASSERT() is a no-op in release\nbuilds.  This change allows debug builds to succeed.\n\nChange-Id: I7e7b7de3e501133468ce083e0e0d6e699dd59667\nSigned-off-by: Chris Pearson \u003cchristopherx.c.pearson@intel.com\u003e\n"
    },
    {
      "commit": "2a7f2ae7d4b25f89e36be04e47b9e7a3d76e0cfd",
      "tree": "966d71f3e62cc79b841602c44ae1c92720268dca",
      "parents": [
        "a68049a8cc3f1eacda1e27b2040af73f6faa42ab"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Fri Apr 09 18:23:25 2010 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Fri Apr 09 18:23:25 2010 -0700"
      },
      "message": "Fix a long standing  bug in the output buffer size computation.\n\nChange-Id: I55aca04fdd3822ac06db183bf2ff0cbd61f778e8\n"
    },
    {
      "commit": "7df6349a63b89d279131ec7dd7e6ef1b065854f5",
      "tree": "030b554cb95806d7da5eb72d17436de70f686b63",
      "parents": [
        "b51cb880c02836a57426620f40a1ba9331b6c52a",
        "fd7ebb367330ea3b999ca9c2a48431c437c05f67"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 08 17:14:43 2010 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 08 17:14:43 2010 -0800"
      },
      "message": "merge from open-source master\n\nChange-Id: I698b3c16bdef8751cc857b00f815cb2f95465431\n"
    },
    {
      "commit": "3b6bd0267ac8fc4ea7eb7dc676cf98d6c731da9c",
      "tree": "41ada285f5e27598bd7a208b686a05694e77dcbd",
      "parents": [
        "661aff600c5cb8e72aa2892a2a75ea6015bf1457"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Mar 03 17:18:28 2010 -0500"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Mar 03 17:18:28 2010 -0500"
      },
      "message": "remove stray printfs.\n"
    },
    {
      "commit": "e2bf2ea4d2846031edfc52b942ad53e5467243f6",
      "tree": "76fa7dca61684d78c93755986db60a3a6d3731e4",
      "parents": [
        "b91bf4ba864a392412397913ee09a8c1f2e7cc87"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Mar 01 09:11:54 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Mar 01 13:03:19 2010 -0800"
      },
      "message": "Make logcat print both the main and system buffers by default.  Make SLOGx macros work.\n"
    },
    {
      "commit": "b45b5c9f227473050ef785d11e518e947c8754fb",
      "tree": "e3e38a26867d940a092bca2e65626906ff814b77",
      "parents": [
        "91a54c11cbfbe3adc1df2f523c75ad76affb0ae9"
      ],
      "author": {
        "name": "Keith Preston",
        "email": "keithpre@gmail.com",
        "time": "Thu Feb 11 15:12:53 2010 -0600"
      },
      "committer": {
        "name": "preston",
        "email": "keithpre@gmail.com",
        "time": "Thu Feb 18 15:33:28 2010 -0600"
      },
      "message": "Fix Heap Corruption from too long of a TAG\n\nsnprintf has a weird return value.   It returns what would have been written given a large enough buffer.\nIn the case that the prefix is longer then our buffer(128), it messes up the calculations below possibly causing heap corruption.\nTo avoid this we double check and set the length at the maximum (size minus null byte\n"
    },
    {
      "commit": "4b29fe640ae852c04d5d87d0f9527bdc32177ad1",
      "tree": "310b38e74c5942a86975af4bcb32d3adab9b6e88",
      "parents": [
        "85b3fcc5de004999756c1e90bcf845480217b3f6"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Nov 12 18:46:23 2009 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Nov 12 18:46:23 2009 -0800"
      },
      "message": "eclair snapshot\n"
    },
    {
      "commit": "ed7ccae2968a75e09c22a3da90a9762170f96477",
      "tree": "b06777fc0b8cc328b18810ea7c59e04e1361eee3",
      "parents": [
        "761aeb431e6d1482754a98bba2b683ba8111ef88"
      ],
      "author": {
        "name": "John Michelau",
        "email": "w14107@motorola.com",
        "time": "Wed Aug 19 10:01:55 2009 -0500"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Aug 19 10:06:52 2009 -0700"
      },
      "message": "Route all log tags with \"RIL\" prefix to radio buffer.\n"
    },
    {
      "commit": "83eb023a09d2f5782bf9153d761cbdda4ce45b22",
      "tree": "96f9f5a28093340099a59746e0fa249298283382",
      "parents": [
        "455a6dffd4db929f46b9c5a1e1f5b541b9721bfe",
        "89efdc9c7f4005032dad86dd6dd220c23a7ff4d7"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "",
        "time": "Thu Apr 02 11:02:19 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 02 11:02:19 2009 -0700"
      },
      "message": "Merge branch \u0027readonly-p4-master\u0027\n"
    },
    {
      "commit": "89efdc9c7f4005032dad86dd6dd220c23a7ff4d7",
      "tree": "a7944cb06826e8f9338fb35d6bb12299d946ca93",
      "parents": [
        "0b022b894215ce8c14da1a6ce236ed9c694ef78a"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "",
        "time": "Thu Apr 02 11:00:57 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 02 11:00:57 2009 -0700"
      },
      "message": "AI 144245: Fix merge conflict for megering in the CDMA changes in to master from donutburger.\n\nAutomated import of CL 144245\n"
    },
    {
      "commit": "7bdfb165ad84986b82dce1a3fcfecf51f9f06528",
      "tree": "199ac04998b945aacf0f6d5b50b430779e850dc7",
      "parents": [
        "01161168aa87ea9f1513d2b7b1232521c84e1ea4"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "",
        "time": "Thu Apr 02 01:37:03 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 02 01:37:03 2009 -0700"
      },
      "message": "AI 144185: Integrate cdma into the main code base.\n\nAutomated import of CL 144185\n"
    },
    {
      "commit": "7be77b5ba8ae21dad91019a02bc2c5d38dba081f",
      "tree": "8acf5c179b4451c89faa1e35e76fa546ca086049",
      "parents": [
        "83b65486beffc7c86f24c428fbb7b50bbbe189f9",
        "8fbedcf73c0bfd2ecdbb4d4c93edd3d39dc28fd4"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 15:31:14 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 15:31:14 2009 -0700"
      },
      "message": "Merge commit \u0027korg/cupcake\u0027\n"
    },
    {
      "commit": "f441e1e9c42f4692be61927a74f4980d0bc7320d",
      "tree": "c18ecf45e8ae4242aa7cd3b2e72c4c7b083322ef",
      "parents": [
        "f614d64d4b4dfcd20c77ac3ccf2d9c9090a49303"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "",
        "time": "Tue Mar 24 18:36:55 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 18:36:55 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@140818,140818\n"
    },
    {
      "commit": "161b03c7ecf28b360f76007462d852574692e2dc",
      "tree": "f45910a92fdf16589a24032f114707a7e2675022",
      "parents": [
        "b1487e4c587ce1184e3d0036ac5e6bd90405688d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "",
        "time": "Tue Mar 24 18:36:50 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 18:36:50 2009 -0700"
      },
      "message": "Automated import from //branches/master/...@140824,140824\n"
    },
    {
      "commit": "3207e480716889c4fdc6937b54a229e87bb2a5f3",
      "tree": "c18ecf45e8ae4242aa7cd3b2e72c4c7b083322ef",
      "parents": [
        "f614d64d4b4dfcd20c77ac3ccf2d9c9090a49303"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Mar 19 23:09:00 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Mar 19 23:09:00 2009 -0700"
      },
      "message": "auto import from //branches/cupcake_rel/...@141571\n"
    },
    {
      "commit": "83b65486beffc7c86f24c428fbb7b50bbbe189f9",
      "tree": "ab343e30dd96348d35b0957453fbf6b7b0bac56d",
      "parents": [
        "4a4c9f6f98055918f1ebff06b3cc1ed622c058fe",
        "e037fd7e193ecccbb5c0888e49f6d58c224bc11d"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Mar 17 17:15:47 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Mar 18 09:29:29 2009 -0700"
      },
      "message": "Merge commit \u0027remotes/korg/cupcake\u0027 into merge\n\nConflicts:\n\tinit/devices.c\n\tlibpixelflinger/Android.mk\n"
    },
    {
      "commit": "dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0",
      "tree": "2ba8d1a0846d69b18f623515e8d9b5d9fe38b590",
      "parents": [
        "e54eebbf1a908d65ee8cf80bab62821c05666d70"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:32:55 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:32:55 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "e54eebbf1a908d65ee8cf80bab62821c05666d70",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "a1e1c1b106423de09bc918502e7a51d4ffe5a4ae"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:29:04 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:29:04 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "1b8e5a6b14ca850920e19b3dfae41e6494475c1a",
      "tree": "67bdeb039019f8a47d5cd607c18d99a7c8eb3141",
      "parents": [
        "13f797da7f190e9ea52f2f3d235210b8a4963b21"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 13 12:57:54 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 13 12:57:54 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@131421\n"
    },
    {
      "commit": "439f6ca123bbc69c33dfb38e591641886bbabb57",
      "tree": "14932413f4f45ec0d087103a950734e013fd04fe",
      "parents": [
        "038862e152b98d0c0f355c6802beaa1ed59cefbe",
        "2eef60297a0ca1433d0824d6d662efd402709cfd"
      ],
      "author": {
        "name": "android-build SharedAccount",
        "email": "android-build@undroid16.corp.google.com",
        "time": "Thu Jan 15 16:22:10 2009 -0800"
      },
      "committer": {
        "name": "android-build SharedAccount",
        "email": "android-build@undroid16.corp.google.com",
        "time": "Thu Jan 15 16:22:10 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@126645\n"
    },
    {
      "commit": "2eef60297a0ca1433d0824d6d662efd402709cfd",
      "tree": "882019445ab5b3bfcb6a2fdce0fa39084bf9340c",
      "parents": [
        "5ae090ed949cea9d1e7ab1552b455a229f8f9757"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:14 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:14 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@126645\n"
    },
    {
      "commit": "abb9638e3696e393d6dc45439feda91073e52103",
      "tree": "43c29f41effdbd07a94d5a7551b9af4a4841cbd3",
      "parents": [
        "57401dc849db11f38133796c01d982de0391318d"
      ],
      "author": {
        "name": "Alexey Tarasov",
        "email": "tarasov@dodologics.com",
        "time": "Wed Nov 05 07:40:37 2008 +1000"
      },
      "committer": {
        "name": "Alexey Tarasov",
        "email": "tarasov@dodologics.com",
        "time": "Fri Nov 07 11:44:22 2008 +1000"
      },
      "message": "1. added macro definitions to AndroidConfig.h\n2. removed unnecessary include of \u003calloca.h\u003e\n"
    },
    {
      "commit": "4f6e8d7a00cbeda1e70cc15be9c4af1018bdad53",
      "tree": "54fd1b2695a591d2306d41264df67c53077b752c",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
