)]}'
{
  "log": [
    {
      "commit": "e94c92cd4852698c5ea2cab2e2f5686ec3708f36",
      "tree": "9cfdb364f67f997dd92eb5fadb6ad9f944f15d97",
      "parents": [
        "340079df2621e27bf8e9f999fbe146fd894fdcfd"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Apr 25 10:39:55 2016 -0700"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon May 02 14:00:02 2016 -0700"
      },
      "message": "SystemClock: elapsedRealtimeNano() should use clock_gettime() on Linux\n\nWe\u0027ve removed the Android alarm driver from our supported kernels.\nclock_gettime(CLOCK_BOOTTIME) has been a viable option since 2.6.39, so\nthere\u0027s no need for the legacy code path anymore.\n\nWe can use this on Linux hosts too, since no one should be building\nAndroid on hosts with kernels that old.\n\nBug: 28357356\n\nChange-Id: I0aa164383c95e77c53d2c85883d83f85d4abc7b1\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "ad19af71326c755dac609451a257cbad830f55fd",
      "tree": "a8e9c715cceadcb685ea6e648acb7b4af80f52dc",
      "parents": [
        "ba6de23e97cbb8351fe5cc2cc4d698b11ad04797"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 04 16:06:53 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 04 16:06:53 2016 -0700"
      },
      "message": "Remove debugging code for a fixed 3.6 kernel bug.\n\nChange-Id: If17d41d6151cd7b81677afc5d341d7aa788170e4\n"
    },
    {
      "commit": "9b828adfad09200f3f1bd3602187fe3dd5335774",
      "tree": "dbea9a10676206346b39e428e74ee630a1a71219",
      "parents": [
        "dcf890914c7571d3068046b9df1f672e9f45b4d2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 30 08:47:35 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 30 09:33:43 2015 -0700"
      },
      "message": "Use __ANDROID__ instead of HAVE_ANDROID_OS.\n\nChange-Id: I9967f3fd758c2a5b40be5b60ae72be7e2fb75136\n"
    },
    {
      "commit": "6ed68cc412752e4c78755df9a1516e610ec66fa8",
      "tree": "287929b99130bf3a06b67b5abf2d3b4b6d8199f3",
      "parents": [
        "692dc75d9fbf5c256cd8c66219a930ae0fe9f523"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 30 08:22:24 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 30 10:41:15 2015 -0700"
      },
      "message": "Consistently use strerror in libutils.\n\nIt\u0027s easier for people to debug, and side-steps the problem that errno\nvalues differ between architectures.\n\nBug: http://b/17458391\nChange-Id: I1db9b2cbb653839d3936b91e37e5cff02671318a\n"
    },
    {
      "commit": "22a40e6a7a8e313cea310503fb42c4b66f535843",
      "tree": "6547b46b06a0542c7bae3f78ef4c55feaf7a6912",
      "parents": [
        "8163104b3feb575a321b194a70ecb9873a70b29d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 04 14:17:26 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 04 14:17:26 2014 -0800"
      },
      "message": "Use __arm__ instead of ARCH_ARM.\n\nChange-Id: I777da5757f01d8328d5475e654d56d81dc802655\n"
    },
    {
      "commit": "5bed8036644f552210a7cfcbed2d6d20cf2981b0",
      "tree": "37f784e181086e99b17e00d46b6da30529751539",
      "parents": [
        "bf0f25905b12581f05b65b1ebe95211c727ae483"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 30 11:10:46 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jun 02 15:57:50 2014 -0700"
      },
      "message": "libutils: turn on -Werror\n\n- Deal with some -Wunused issues\n- Override PRI macros (windows)\n- Revert use of PRI macros on off64_t (linux)\n- Deal with a gnu++11 complaince issue\n\nChange-Id: Ie66751293bd84477a5a6dfd8a57e700a16e36964\n"
    },
    {
      "commit": "64289760a2df9409d8f4fa5becb4a49f0acb20a5",
      "tree": "b1cf5104c9a1f658bcca05209156702b75b4a888",
      "parents": [
        "a585e662e0141d8b3445749ef83b8d9b138d7905"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Dec 16 17:04:32 2013 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Dec 17 14:45:39 2013 -0800"
      },
      "message": "SystemClock: use clock_gettime() on devices without /dev/alarm\n\nOn devices with an up-to-date kernel, the back-in-time bug affecting\nclock_gettime() has been fixed and it can safely be used as an\nalternative to the ANDROID_ALARM_GET_TIME ioctl.  To ensure consistent\nbehavior on existing devices, make clock_gettime() a fallback for when\nthe alarm driver isn\u0027t available.\n\nChange-Id: I384af5e7ec9e73e0bad4b6b0f987a8ea4583cba6\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "5cd118178e87c4a6590dc8d8446effa5d5193a9f",
      "tree": "4b9df4d9c9089c86922189f4f6340c6eda68d969",
      "parents": [
        "6b1a027239689a817aa5ca44a2bcbfe48ed21408"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Mon Sep 23 22:39:15 2013 -0700"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Mon Sep 23 22:39:15 2013 -0700"
      },
      "message": "Disable timestamp logging.\n\nThe kernel problem has been fixed long time ago and the ad-hoc logging\nmechanism is not thread safe and can flood the log with spurious\nmessages.\n\nBUG: 10899829\nChange-Id: I63278db51295e744eed3e47dc8d4cfe621c0d8f7\n"
    },
    {
      "commit": "d98e07fdf9c338589f263c47ce5c844ed43efad5",
      "tree": "d4ff9849df225df1e4c46386fdabe30407ba5513",
      "parents": [
        "be06210c508d5878dcc7d185e5613f4c7e38dfe8"
      ],
      "author": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Fri Aug 02 14:40:08 2013 -0700"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Fri Aug 02 14:40:08 2013 -0700"
      },
      "message": "move libs/utils to libutils\n\nChange-Id: I6cf4268599460791414882f91eeb88a992fbd29d\n"
    },
    {
      "commit": "9eb2a3b1c0cc1ff3082a9283e24c8babc112f56b",
      "tree": "f88a03d8dd28a8f641be1c2eac57a42f0a11e599",
      "parents": [
        "19159f90020c04ac2f4dcb39424d740f765ed9a3"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 06 20:20:50 2013 -0700"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Tue Jul 30 13:57:01 2013 -0700"
      },
      "message": "libutils clean-up\n\nChange-Id: I6ff4cfc736751de2912c697f954e45e275f2d386\n"
    },
    {
      "commit": "f4722b5910eb4e1394763da636b72a8431baea5b",
      "tree": "53b2a5ed198c8ecea9ca2217ef9dc72c117128d7",
      "parents": [
        "ad0a959aeec262971c64e68ca1b78f4c69ab9139"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Wed Sep 19 14:53:10 2012 -0700"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Tue Jul 30 13:57:00 2013 -0700"
      },
      "message": "Disable the use of clock_gettime for now.\n\nBug: 7100774\nChange-Id: I6ede2a37a5d485134fe419b5dc766f70ae4af9d4\n"
    },
    {
      "commit": "ad0a959aeec262971c64e68ca1b78f4c69ab9139",
      "tree": "1baed2af76c561f24074ed0786f842410c52ff5d",
      "parents": [
        "e79aadd143a6467d70969e3cd4cb31a1623870f3"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Fri Sep 14 14:45:34 2012 -0700"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Tue Jul 30 13:57:00 2013 -0700"
      },
      "message": "Print warnings when backwards timestamps are detected.\n\nBug: 7100774\n\nChange-Id: I752fd1680b32ce33d17d6042d6c82e27d7ba9dd2\n"
    },
    {
      "commit": "af1e7b77217430cc2d423e9f552dcfb4e004539b",
      "tree": "2239d9e5060898ad199d42b8a135682f684417b4",
      "parents": [
        "e6bee12f943a5b6e7c596220dd02d5837322d09f"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Thu Jul 19 09:17:24 2012 -0700"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Tue Jul 30 13:56:59 2013 -0700"
      },
      "message": "Add elapsedRealtimeNano(), and use CLOCK_BOOTTIME where possible.\n\nChange-Id: I4231c8ca32663e6e2cb5b7c126d091f837373807\n"
    },
    {
      "commit": "61d341b8d3d771f4ef3dd54df0502b19b7a2ab4d",
      "tree": "91ab1ceb2a6e3ea784109793c138211acb4becee",
      "parents": [
        "a1d3391b1ec04dece202baf288f1741006afa552"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Jan 05 23:22:43 2012 +0000"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Tue Jul 30 13:56:58 2013 -0700"
      },
      "message": "Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/157065\n\nBug: 5449033\nChange-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69\n"
    },
    {
      "commit": "eb0953307ce75cec031aedbf21abff08e5a737e5",
      "tree": "f68629af933e04983e26db5503983990de9b2881",
      "parents": [
        "53ddace1a585c0515ea1c2e2091c4a8cd3a94864"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Dec 20 16:23:08 2011 +0000"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Tue Jul 30 13:56:58 2013 -0700"
      },
      "message": "Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/156016\n\nBug: 5449033\nChange-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298\n"
    },
    {
      "commit": "dafff0bcc10fe1ff80e68a31793bbdea2ec8d0c3",
      "tree": "d6d10a1a8d8a2478e2a737bb34b0a1b74d60b9f8",
      "parents": [
        "ff49de731f3361afc77abe9b60bc7c8e6708f886"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Feb 16 10:13:53 2011 -0800"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Tue Jul 30 13:56:55 2013 -0700"
      },
      "message": "Clean up use of HAVE_ANDROID_OS\n\nHAVE_ANDROID_OS was defined as \"1\" for targets, but never defined as \"0\"\nfor non-targets. Changing them to #ifdef should be safe and matches\nall the other uses of HAVE_ANDROID_OS throughout the system.\n\nChange-Id: I82257325a8ae5e4e4371ddfc4dbf51cea8ea0abb\n"
    },
    {
      "commit": "cbb1011c95e0c25c29e40e203a6a31bccd029da3",
      "tree": "4697a3a86867bf33c2d9dd4e4a2743d3eb947523",
      "parents": [
        "cf59fa8dc7ddca5a172860223b06afed5d4ec0e0"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Tue Jul 30 13:56:49 2013 -0700"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "cf59fa8dc7ddca5a172860223b06afed5d4ec0e0",
      "tree": "e780750523e4f032abf902a0e6ff8b9d52c54e54",
      "parents": [
        "7aa707a5d654b7af67b133955c454c8e23a12abc"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Tue Jul 30 13:56:49 2013 -0700"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d245d1d09731d6a19e8a25559d3907f54441ac3d",
      "tree": "b79df48666f286bd33efb4ffdbf4b3fa28f5dd91",
      "parents": [
        "13f4c9fb279f1b34a3b47a6eac80b8a09d2d3a79"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Tue Jul 30 13:56:46 2013 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
