)]}'
{
  "log": [
    {
      "commit": "e1731a4f2e05f1abb4a45602067708851eaf1e14",
      "tree": "339c0ce3d3de7d6f5e0fb9bdada9b6210d1d470f",
      "parents": [
        "895acebe946e34d2626716c5c4d7d7f2cc28c39d"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Mon Jul 16 18:11:34 2018 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Mon Jul 16 18:11:34 2018 -0700"
      },
      "message": "[libutils]  Modernize codebase by replacing NULL with nullptr\n\nFixes -Wzero-as-null-pointer-constant warning.\n\nTest: m\nBug: 68236239\nChange-Id: I5e89ec8c42151875439d2656475a8739ab9cb7dc\n"
    },
    {
      "commit": "011ee12b1def041d71621da7740bf5784a5e6488",
      "tree": "5ff7a6883fd51d6a5e0a245cb085c6f3239282ad",
      "parents": [
        "7881135fa938fde4286a38b2304787ac070e6423"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue May 29 16:41:30 2018 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Sun Jun 10 08:32:24 2018 +0900"
      },
      "message": "Shared libs are supported in recovery mode\n\nadbd has been built as a static executable since the same binary was\ncopied to the recovery partition where shared library is not supported.\nHowever, since we now support shared library in the recovery partition,\nadbd is built as a dynamic executable.\n\nIn addition, the dependency from adbd to libdebuggerd_handler is removed\nas debuggerd is handled by the dynamic linker.\n\nA few more modules in /system/core are marked as recovery_available:\ntrue as they are transitive dependencies of the dynamic linker.\n\nThis change also includes ld.config.recovery.txt which is the linker\nconfig file for the recovery mode. It is installed to /etc/ld.config.txt\nand contains linker namespace config for the dynamic binaries under\n/sbin.\n\nBug: 63673171\nTest: `adb reboot recovery; adb devices` shows the device ID\nTest: Select \u0027mount /system\u0027 in the recovery mode, then `adb shell`.\n$ lsof -p `pidof adbd` shows that libm.so, libc.so, etc. are loaded from\nthe /lib directory.\n\nChange-Id: I363d5a787863f1677ee40afb5d5841321ddaae77\n"
    },
    {
      "commit": "528f144e779dfd18b550d9176aecf36e1130f449",
      "tree": "f8b8faf502550eabda14c99bcaffd4f3d25a205d",
      "parents": [
        "70fda27eb2a72958636c8026be7cc72881bdff25"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Nov 29 18:06:11 2017 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Nov 29 21:37:28 2017 -0800"
      },
      "message": "Fix / suppress new unused warnings for mingw+clang\n\nBug: 69933068\nTest: mmma system/core\nChange-Id: I089166a979d3d8c5ada38a7745d507b555048499\n"
    },
    {
      "commit": "0b3c24bd4fb29ff48150c03104658af902a0e137",
      "tree": "a4a3f9dd266d223d802cfac488c3e5709d13322e",
      "parents": [
        "ea6826448b6a4dee754d0173711517075ca97119"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri May 26 17:57:18 2017 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Sat May 27 15:32:01 2017 +0900"
      },
      "message": "fix: ATRACE does not work for libs loaded in sphal namespace\n\nFrom O, libutils.so is loaded twice. Once in the default namespace and\nonce in the sphal namespace for vendor libs. However, since the\nframework only communicates with the instance loaded in the default\nnamespace, report_sysprop_change() event is not notified to the instance\nin sphal namespace. This causes ATRACE to not work for vendor libs\nloaded in sphal namespace.\n\nSo, the instance loaded in default namespace now explicitly redirects\nthe event to the other instance.\n\nBug: 62084107\nTest: start an app, run \u0027adb shell atrace gfx --stream\u0027. atrace from the\ngraphics driver are visible.\n\nChange-Id: Ia6c2ca6bcb9a8849ebb09b5c38d60480c92d4571\n"
    },
    {
      "commit": "8da9613b3f866b298bee1236b80bbbc63c554fdf",
      "tree": "3ff5fd1398103401582c195cd5fc33d3d45b494f",
      "parents": [
        "bed3cbd8ac9ccdcd641904f72c3835db037e736a"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Apr 13 15:17:59 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Apr 14 17:06:33 2017 +0000"
      },
      "message": "libutils: include what you use\n\nThese includes are included transitively by liblog, but not by the VNDK\nversion of liblog.\n\nBug: 33241851\nTest: links with BOARD_VNDK_VERSION :\u003d current\nChange-Id: Ide4aee3cacad2a2bf6bd0cbdf0254c6c245f4020\n"
    },
    {
      "commit": "22dbf3947fedf988e714a4703ddf85fc41413f90",
      "tree": "ad823e9592de58265e4740a4d1ae251bfa260348",
      "parents": [
        "6048d9db5f11045412504b533ea9a92a7df6354c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 28 15:06:51 2017 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 03 14:47:47 2017 -0800"
      },
      "message": "clean-up libutils includes\n\nmoved Foo.h as first include of Foo.cpp, and\nremoved redundant includes.\n\nMade NativeHandle non virtual.\n\n\nTest: run \u0026 compile\nBug: n/a\n\nChange-Id: I37fa746cd42c9ba23aba181f84cb6c619386406a"
    },
    {
      "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": "4a6e5a3b641dd99b658c4c336490371a3a5ae180",
      "tree": "3048f441498f5d5aed8bb218ecaca5e9a80cbf40",
      "parents": [
        "fb538fb13d930a7398695d1044ceaaf854949018"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Jan 26 19:48:54 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Jan 27 14:23:22 2015 -0800"
      },
      "message": "Kill HAVE_PTHREADS.\n\nBug: 19083585\nChange-Id: Ic09eb3dd250bc5c5b63cac7998f99f5fa007f407\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": "5363183d2a2acdf9163eac57203645e841c0ca0d",
      "tree": "45e94c2aaee220856b7ddc69eebd478f0174a807",
      "parents": [
        "67b585149111b68afc250fec978620687892bb67"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Aug 05 12:41:16 2012 -0700"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Tue Jul 30 13:56:59 2013 -0700"
      },
      "message": "libutils cleanup: remove unused or seldom used code from misc.{cpp|h}\n\nChange-Id: I72206f16619d81887e3b85603494563faab3b445\n"
    },
    {
      "commit": "c1309d74e8929f73e1b9cdb5dbf70aa8a2b09af3",
      "tree": "ae89c82296d03a9192621f82d10584614157f086",
      "parents": [
        "6c1cf1c8f29263a1374991195ffa98b883f181ed"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 08 18:54:22 2012 -0700"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Tue Jul 30 13:56:59 2013 -0700"
      },
      "message": "Add callback hack to find out when to reload system properties.\n\nEvery IBinder object can accept a new transaction to tell it that\nit might want to reload system properties, and in the process\nanyone can register a callback to be executed when this happens.\n\nUse this to reload the trace property.\n\nThis is very much ONLY for debugging.\n\nChange-Id: I55c67c46f8f3fa9073bef0dfaab4577ed1d47eb4\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"
    }
  ]
}
