)]}'
{
  "log": [
    {
      "commit": "f61b8e2dc69a3ff0c63041cbc65536ce81ef506d",
      "tree": "d9f833a1180327193c4281b18aeb98c70a3c9d7f",
      "parents": [
        "4921f97fe323d665d50197f651dceeb61ab41b14",
        "5b5ffbda22e947bbaf8ee2072895acf16d2ca562"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Oct 25 23:18:00 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 25 23:18:00 2017 +0000"
      },
      "message": "Merge \"Allow stats buffer to be empty in liblog CTS.\" am: 41a9b3c81d\nam: 5b5ffbda22\n\nChange-Id: Id569cda2294fb12f6ff9bd36b6be9bf027ffd5c6\n"
    },
    {
      "commit": "07320dc0a37ab7cb0b4b742e8c4b7767bc3fe997",
      "tree": "78ec093f79a236977c93339dd7d27dea43b57a91",
      "parents": [
        "1ab86ad3bc3fd4b9c4e18e549d135e25ab07936a"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Oct 25 11:35:05 2017 -0700"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Oct 25 13:46:42 2017 -0700"
      },
      "message": "Allow stats buffer to be empty in liblog CTS.\n\nBug: 68205209\nTest: CtsLiblogTestCases\nChange-Id: I846c7cf72c54b02c2bc67c9c9e37b5cf4ae3da2b\n"
    },
    {
      "commit": "95d7cbb77a5d33370bcc662cf8ba508d849f45d6",
      "tree": "23a2ef291cd58ed7d8347ea24e488cb01fd7a564",
      "parents": [
        "1f64241e2dd1056584a81bf68b57108121fde5cb"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Jul 10 16:40:36 2017 -0700"
      },
      "committer": {
        "name": "Jae Shin",
        "email": "jaeshin@google.com",
        "time": "Tue Oct 17 12:09:50 2017 +0900"
      },
      "message": "Add vendor_available to liblog_headers.\n\nRenamed NDK headers to \"liblog_ndk_headers\"\n(these names aren\u0027t used anywhere).\n\nlibutils_headers now properly export liblog_headers.\n\nTest: with BOARD_VNDK_VERSION\u003dcurrent\nMerged-In: I3a85385f588b84393c57fd6d1bcac620f708f0f1\nChange-Id: I3a85385f588b84393c57fd6d1bcac620f708f0f1\n(cherry picked from commit 42b485cc538217fa127996a340229f76b7c4031b)\n"
    },
    {
      "commit": "f4778e827f98ab5d328ac0b2ab3720587ce3a5b3",
      "tree": "e8d3e99332e8fce51d3ca60d69975578ddd3e17d",
      "parents": [
        "f85f4d6a2821215144dbc5a506ca026ad4af6991",
        "7b9c789d23ae88e665ebff600e7636741168eef0"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Oct 04 01:00:52 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 04 01:00:52 2017 +0000"
      },
      "message": "Merge \"Make liblog headers compile stand-alone.\" am: fe3551e9dc am: b637860732\nam: 7b9c789d23\n\nChange-Id: Ie4227d04492fdb6d571eca3f7637e650180b4716\n"
    },
    {
      "commit": "b6378607329909b18898d20912401cb51d6a2efb",
      "tree": "0e13e3007712a6d445683019324d82816b7af793",
      "parents": [
        "5c00898944e469e637acd8a092c21b0f823689ac",
        "fe3551e9dc173e81649ee7b5beb2b99bd6a3d2be"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Oct 04 00:55:47 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 04 00:55:47 2017 +0000"
      },
      "message": "Merge \"Make liblog headers compile stand-alone.\"\nam: fe3551e9dc\n\nChange-Id: I20b97d38d356f720c74954200f40b8315cdd0c21\n"
    },
    {
      "commit": "12f56a00d3805481badbd3e138a79dfaf250f5a6",
      "tree": "df9f15e3b8e2605a6a2946793621836db8edad72",
      "parents": [
        "541428a13b8976b58893d6427c94b36084514546"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Tue Oct 03 14:02:41 2017 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Tue Oct 03 14:06:33 2017 -0700"
      },
      "message": "Make liblog headers compile stand-alone.\n\nTest: process liblog headers individually with header-abi-dumper.\n\nTest: mm -j64\n\nBug: 66971285\n\nChange-Id: If7dec611b84eb9fa8e1e5a974b444d4ddf54759a\n"
    },
    {
      "commit": "1511cbb43943308c3e7cae749156ca1260af4458",
      "tree": "02a57415d2bb32579b8911ae5e5cc79ac45745f3",
      "parents": [
        "348a08246992bcb5c9703873f3a51c9c744696a5",
        "541428a13b8976b58893d6427c94b36084514546"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Tue Oct 03 20:05:15 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 03 20:05:15 2017 +0000"
      },
      "message": "Merge \"Hide implementation details of log_time struct\"\nam: 541428a13b\n\nChange-Id: I170a1f983e7752bb318973a30d761376ecff7f05\n"
    },
    {
      "commit": "541428a13b8976b58893d6427c94b36084514546",
      "tree": "15f997a80a3d03337c97bee8326a6ad38179e758",
      "parents": [
        "7b3d4da91a064ddc0973b1c03c1d6c68b76b9952",
        "0d047642ebde013ed44ec6386a20debd87e54eb9"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Tue Oct 03 20:01:13 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 03 20:01:13 2017 +0000"
      },
      "message": "Merge \"Hide implementation details of log_time struct\""
    },
    {
      "commit": "0d047642ebde013ed44ec6386a20debd87e54eb9",
      "tree": "abbf0ae6cc0aff160b767a6be631c8dddbf352f9",
      "parents": [
        "9c568d0fc0e290529180e3fc0452f0ac489e5053"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Sep 04 10:55:09 2017 +0900"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Tue Oct 03 17:45:17 2017 +0000"
      },
      "message": "Hide implementation details of log_time struct\n\nIn the future, the sizes of tv_sec and tv_nsec (or even the size of\nlog_time struct itself) can change due to the 32-bit overflow expected\nto happen in the year 2138. In order to hide such implementation details\nto the clients of liblog, the two macros LOG_TIME_SEC and LOG_TIME_NSEC\nare introduced.\n\nFurthermore, vendors are provided with a simplified version of log_time.h\nwithout C++ APIs. In doing so, log_time.h no longer includes time.h.\nThis breaks several modules that implicitly relied on the hidden\ndependency, which should be fixed.\n\nBug: 37629934\nTest: build with BOARD_VNDK_VERSION\u003dcurrent\n\nMerged-In: If213fc291395554fd8de5f5d1fb005ceaaa5ca57\nChange-Id: I01b36078c1d8f3f44824be20ae769ba1465b6feb\n(cherry picked from commit 98c0d030c9a1ca7a94ebfe1d8db167973be504d3)\n"
    },
    {
      "commit": "2c6b2ebe7cbf4f64717fb8350fd8b19c85f7a998",
      "tree": "737a1bf600bd1c2ed15bb309277bb7881f887d35",
      "parents": [
        "e15961feb928ae80fd03ba005e01f86d6dbeb0db",
        "55181f7cdd4cd2e101f567f28a4a60be380d3ea4"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Sat Sep 30 23:36:25 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Sep 30 23:36:25 2017 +0000"
      },
      "message": "Merge \"Remove default libraries\" am: 8b7feee38f am: a0113de2f3\nam: 55181f7cdd\n\nChange-Id: I2fa1d556537ee4f3b2e67cd35aa3ce090b3684a6\n"
    },
    {
      "commit": "a0113de2f379144dd66f144115f31c541524518c",
      "tree": "a7df373536d50f705d9c143e231338c150c3b8e5",
      "parents": [
        "ee4d611c467a8bef74a9b8e13b7ff103b64591b1",
        "8b7feee38fe31eb40a50c55144a850cbc37e4089"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Sat Sep 30 23:32:45 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Sep 30 23:32:45 2017 +0000"
      },
      "message": "Merge \"Remove default libraries\"\nam: 8b7feee38f\n\nChange-Id: Ic39ecabd37ffe06ba3a119410b5dcd4885fb584c\n"
    },
    {
      "commit": "1e45d533b36df8436a667a63fe624091933cb2ab",
      "tree": "0a68593653604ca37e993339f5d8b3c44a02a559",
      "parents": [
        "39071a517738b24611ae373c9a608a4ca00d0630"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Sep 28 17:13:32 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Sep 29 13:17:06 2017 -0700"
      },
      "message": "Remove default libraries\n\nlibdl is part of system_shared_libs now. -ldl -lpthread -lm are now defaults\nfor host_ldlibs on Linux and Darwin. -lrt is a default for host_ldlibs on\nLinux.\n\nTest: m host\nChange-Id: I0b3c147b00a8ab6ff289b85db55b88836c905f5c\nExempt-From-Owner-Approval: build system cleanup\n"
    },
    {
      "commit": "1d444319d794f31d1d45976fb9aa81fe3856ef6d",
      "tree": "e0ec5109b152cda638d851c186cf8b5cd4c47348",
      "parents": [
        "dc58ecf8eded3bcf521177c1a445e4be15cd9230",
        "5dec8e22c3ecda25ac63baa20d2c23c7a659662c"
      ],
      "author": {
        "name": "Yoshitaka Seto",
        "email": "yoshitaka.seto@sony.com",
        "time": "Thu Sep 21 23:25:34 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 21 23:25:34 2017 +0000"
      },
      "message": "Remove pstore related unit tests from CTS\nam: 5dec8e22c3\n\nChange-Id: Ifba13f9d714e58eaa3358a48246c71f90687629e\n"
    },
    {
      "commit": "5dec8e22c3ecda25ac63baa20d2c23c7a659662c",
      "tree": "2911f64b8118892c359e30538fcfc8c58e087af6",
      "parents": [
        "5cf1f6a8c89f5c47106266251b5c885d0fe6590e"
      ],
      "author": {
        "name": "Yoshitaka Seto",
        "email": "yoshitaka.seto@sony.com",
        "time": "Mon Jul 31 17:44:36 2017 +0900"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Sep 21 13:37:50 2017 -0700"
      },
      "message": "Remove pstore related unit tests from CTS\n\nPstore test cases should not belong to CTS.\nThe test cases should be a part of GTS if really required.\n\nTest: manual\nBug: 66431569\nBug: 63969981\nBug: 63913130\nSigned-off-by: Srinavasa Nagaraju \u003cSrinavasa.Nagaraju@sony.com\u003e\nSigned-off-by: Yoshitaka Seto \u003cyoshitaka.seto@sony.com\u003e\nSigned-off-by: Mark Salyzyn \u003csalyzyn@google.com\u003e\nTested-by: Srinavasa Nagaraju \u003cSrinavasa.Nagaraju@sony.com\u003e\nChange-Id: Icd326403711ad268ce28a3863045fc9b2f211461\n"
    },
    {
      "commit": "88618e2b30d366ce4fec0bfcbfd6592c9e2c4ba4",
      "tree": "aca1022d82f29f073bda729b08a293ccb3ac1563",
      "parents": [
        "78c47e7f02b9b062e8b72372c29a88a8a06b6d51",
        "cd00582000ef8122eb521b254dfb77ec44cce75d"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Sep 07 17:37:59 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 07 17:37:59 2017 +0000"
      },
      "message": "Merge changes from topic \"hide_log_time\" into oc-mr1-dev\nam: cd00582000\n\nChange-Id: I28004046f32523b4445cce9036c7170fc3a52f37\n"
    },
    {
      "commit": "25db8dc21b37ae93e2d764aff86445781aa9d185",
      "tree": "e2646b09aef64fa5eb0192010dc55eb0ba5b79e3",
      "parents": [
        "e2c51809f70387a6ceddc89966b48aaee17ac402"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Jul 10 16:40:36 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Sep 06 12:55:32 2017 -0700"
      },
      "message": "Add vendor_available to liblog_headers.\n\nRenamed NDK headers to \"liblog_ndk_headers\"\n(these names aren\u0027t used anywhere).\n\nlibutils_headers now properly export liblog_headers.\n\nTest: with BOARD_VNDK_VERSION\u003dcurrent\nChange-Id: I7b2d9e77e313e3f2ef362a19a03f4c23874d589a\nMerged-In: I3a85385f588b84393c57fd6d1bcac620f708f0f1\n"
    },
    {
      "commit": "e2c51809f70387a6ceddc89966b48aaee17ac402",
      "tree": "d1f99a14d8d416a3258bf99f3f27a292f97d6802",
      "parents": [
        "2827106d7d95b5e2d41b846f1505fbfacc56d850"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Jul 17 16:25:59 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Sep 06 12:54:41 2017 -0700"
      },
      "message": "Add sys/cdefs.h to log/log_main.h.\n\nfor liblog.vendor. __ANDROID_API__ is __ANDROID_API_FUTURE__\nwith BOARD_VNDK_VERSION\u003dcurrent, so we need it defined.\n\nBug: 33241851\nTest: BOARD_VNDK_VERSION\u003dcurrent m libgui.vendor\n      (that uses liblog.vendor)\n\nChange-Id: I340ec048094c027828f516d891250651e0c88eea\nMerged-In: I340ec048094c027828f516d891250651e0c88eea\n"
    },
    {
      "commit": "98c0d030c9a1ca7a94ebfe1d8db167973be504d3",
      "tree": "8c02ea3e0608ad1a3f7ec5b47ebd5a77bc746cfb",
      "parents": [
        "e6474b7fa23f2d00c2aa9ea9162231790d9d8a2b"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Sep 04 10:55:09 2017 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Sep 06 15:30:50 2017 +0900"
      },
      "message": "Hide implementation details of log_time struct\n\nIn the future, the sizes of tv_sec and tv_nsec (or even the size of\nlog_time struct itself) can change due to the 32-bit overflow expected\nto happen in the year 2138. In order to hide such implementation details\nto the clients of liblog, the two macros LOG_TIME_SEC and LOG_TIME_NSEC\nare introduced.\n\nFurthermore, vendors are provided with a simplified version of log_time.h\nwithout C++ APIs. In doing so, log_time.h no longer includes time.h.\nThis breaks several modules that implicitly relied on the hidden\ndependency, which should be fixed.\n\nBug: 37629934\nTest: build with BOARD_VNDK_VERSION\u003dcurrent\nChange-Id: I01b36078c1d8f3f44824be20ae769ba1465b6feb\n"
    },
    {
      "commit": "5d1706346c8327f96682a30506cb7cc0ed4ce26b",
      "tree": "2f1832a9589025c4ab6b418f9c1214173894064a",
      "parents": [
        "6a057b43b22c29e680a9a865df2c709b56152141",
        "d3ffb4344e77f97b6baaf397c8d5365fa7d57b51"
      ],
      "author": {
        "name": "Ting-Yuan Huang",
        "email": "laszio@google.com",
        "time": "Wed Sep 06 05:16:45 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 06 05:16:45 2017 +0000"
      },
      "message": "Merge \"Suppress false-positive static analyzer warnings\" am: 0c89aaec1f am: 2ee27bfd0d\nam: d3ffb4344e\n\nChange-Id: Ica8a4b2e224e278308e9dca377751e462be4ae6d\n"
    },
    {
      "commit": "0c89aaec1feb961160f750abad2d2bebcb92cb5b",
      "tree": "9374ce2b002f2b2a852efd5295bd14bec4967efe",
      "parents": [
        "6139592321a489607534d9f51533d33908d75ba4",
        "249bd05038df27cb39fcc5fe25d9f47eb33f68a0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 06 05:04:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 06 05:04:29 2017 +0000"
      },
      "message": "Merge \"Suppress false-positive static analyzer warnings\""
    },
    {
      "commit": "249bd05038df27cb39fcc5fe25d9f47eb33f68a0",
      "tree": "058733002da735c9650217de19fae36d926669e4",
      "parents": [
        "2c3a2a8c5c7fcbc822b42b052f9de253821cc7ce"
      ],
      "author": {
        "name": "Ting-Yuan Huang",
        "email": "laszio@google.com",
        "time": "Tue Aug 15 17:01:33 2017 -0700"
      },
      "committer": {
        "name": "Ting-Yuan Huang",
        "email": "laszio@google.com",
        "time": "Tue Sep 05 16:46:40 2017 -0700"
      },
      "message": "Suppress false-positive static analyzer warnings\n\nby hinting the analyzer with assertions.\n\nTest: built without seeing warnings.\nChange-Id: I0d43d4ceafd7f68be89cad6c930c85ee7b6d5165\n"
    },
    {
      "commit": "e0515d6dba5fa50e6319ab65b94232ed88bebd72",
      "tree": "63f54512f400fbe51adb5b4137209bcda12596db",
      "parents": [
        "3094de968443c60345f63318f14a5d919df762d5"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Tue Aug 01 16:43:02 2017 +0100"
      },
      "committer": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Fri Aug 25 18:21:36 2017 +0100"
      },
      "message": "Reading from logd in WRAP mode is expected to take a long time,\ndon\u0027t abort it after 30s.\n\nAdds a new CTS test to verify the behaviour.\n\nBug: 64143705\nTest: New and existing CTS tests pass. Manual testing with logcat.\n\n(cherry picked from commit 64acdf77d6f89a72be9192b35e0fc34242c23e34)\n\nChange-Id: Ic2ec131a3aee293ee865c46e62566ddd82ec2507\n"
    },
    {
      "commit": "e751059975101f94c13e7e27fd2284b6e13d4d47",
      "tree": "d1453013d5a53c2ca70c9d59153f00d0537e586f",
      "parents": [
        "328ba7c8e64fff558c03d5f804d67d18e42a1adf",
        "32636f0f4c6a5e0ac948c901544c653d137e6448"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Fri Aug 25 16:50:50 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 25 16:50:50 2017 +0000"
      },
      "message": "Merge \"Small liblog test fixes \u0026 readability improvements.\" am: 332370d14d am: 511cc67633\nam: 32636f0f4c\n\nChange-Id: I5dd5e1b7267ff3f96aa264eede616dfb30b68884\n"
    },
    {
      "commit": "332370d14d0948308f9c467f81c23d6e06cb38bf",
      "tree": "00625171f14e19b39bb709e53a6e62fd2d9b08c3",
      "parents": [
        "974ab46561e187d221bcb57c5f52f66247d4f664",
        "81e63d0515b384485168f1b14b3ea68eb20c1246"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Fri Aug 25 16:35:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 25 16:35:55 2017 +0000"
      },
      "message": "Merge \"Small liblog test fixes \u0026 readability improvements.\""
    },
    {
      "commit": "328ba7c8e64fff558c03d5f804d67d18e42a1adf",
      "tree": "74f8d5eb20cd48c9b2ee356eea183c316f0f058f",
      "parents": [
        "8b2136afe0a211c4c923f73150e23212840dc366",
        "50289204e55d33a1fe0c6c2a291f14167638b6e5"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Fri Aug 25 14:55:43 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 25 14:55:43 2017 +0000"
      },
      "message": "Merge \"Reading from logd in WRAP mode is expected to take a long time, don\u0027t abort it after 30s.\" am: 974ab46561 am: 9181fe6427\nam: 50289204e5\n\nChange-Id: I88069714a32ec83f318a1a1dded0b0d8553be07f\n"
    },
    {
      "commit": "81e63d0515b384485168f1b14b3ea68eb20c1246",
      "tree": "859a3d44864c77aefe51cd38bf77fb7e2a3206ff",
      "parents": [
        "2732a7e0232d77efbf19d7053f5e5d5d39719910"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Fri Aug 25 14:13:06 2017 +0100"
      },
      "committer": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Fri Aug 25 14:53:21 2017 +0100"
      },
      "message": "Small liblog test fixes \u0026 readability improvements.\n\nliblog concurrent printf tests now check every write succeeds.\nlogd timeout_negative tests exits as soon as one run succeeds.\n\nTest: CTS tests till pass.\nChange-Id: I9a166a0abcb8b9aa5c055c35c5dccf30616a4e24\n"
    },
    {
      "commit": "64acdf77d6f89a72be9192b35e0fc34242c23e34",
      "tree": "d81aec0a47fa9caaceb0aa5c61553b411102af3a",
      "parents": [
        "2732a7e0232d77efbf19d7053f5e5d5d39719910"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Tue Aug 01 16:43:02 2017 +0100"
      },
      "committer": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Fri Aug 25 11:40:49 2017 +0100"
      },
      "message": "Reading from logd in WRAP mode is expected to take a long time,\ndon\u0027t abort it after 30s.\n\nAdds a new CTS test to verify the behaviour.\n\nBug: 64143705\nTest: New and existing CTS tests pass. Manual testing with logcat.\nChange-Id: Ia67175701ed8c462083e14e26123ce8ddcb226bc\n"
    },
    {
      "commit": "2f41895b901c1c34a69e1fa1d3f8f6972abd066c",
      "tree": "57ca147031794a1e10d3ed10d0d38e08f18d2cf3",
      "parents": [
        "91066e461655f5dd5f7ed003489a3f5bea74be60",
        "36557667f36677bc8b17e03c6971208cea0a43d1"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Aug 04 21:32:37 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 04 21:32:37 2017 +0000"
      },
      "message": "Merge \"Fix clang-tidy performance warnings in system/core.\" am: 69ff5009c7 am: 18f9c66823 am: b083ff4329\nam: 36557667f3\n\nChange-Id: I72bf60cf94547867f7eaf4aeddf60ff67c29dad5\n"
    },
    {
      "commit": "18f9c66823f5a024c152f04c1acc404cf6632ab4",
      "tree": "020a89f3675eeab01f4144ced7cc5ed5c59b32a7",
      "parents": [
        "0908ca721a27eb4a9ae892839f9fed34e6dd0116",
        "69ff5009c7d02ba42f714f744c338f258db864bb"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Aug 04 21:14:30 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 04 21:14:30 2017 +0000"
      },
      "message": "Merge \"Fix clang-tidy performance warnings in system/core.\"\nam: 69ff5009c7\n\nChange-Id: I74373e9f0e7f83c9280f4700ea55b387c3384c2c\n"
    },
    {
      "commit": "69ff5009c7d02ba42f714f744c338f258db864bb",
      "tree": "a94930fab76ad0917ba1150c5621bd9136db8400",
      "parents": [
        "401c9cb330c602300b1df8691ee778514216bbc6",
        "e5d975c7cc03cad8417a7f50a6f5c5b2ccdeefa1"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Aug 04 21:05:51 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 04 21:05:51 2017 +0000"
      },
      "message": "Merge \"Fix clang-tidy performance warnings in system/core.\""
    },
    {
      "commit": "e5d975c7cc03cad8417a7f50a6f5c5b2ccdeefa1",
      "tree": "835ba37b43494bcde635c13b4577401acb839424",
      "parents": [
        "eb3fa921916f2505d85fe42b780a890f7358f482"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Aug 03 13:56:49 2017 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Aug 03 13:58:05 2017 -0700"
      },
      "message": "Fix clang-tidy performance warnings in system/core.\n\n* Use const reference parameter type to avoid unnecessary copy.\n* Use more efficient overloaded string methods.\n\nBug: 30407689\nBug: 30411878\nTest: build with WITH_TIDY\u003d1\nChange-Id: Ia5a00581e718d412255d6177e5a7c286cdfbec11\n"
    },
    {
      "commit": "b7486369df4cbc0921c78649c88a7e7f9dc3a900",
      "tree": "eca1196051f5ac4ff5da4912ad084e09c462b5b7",
      "parents": [
        "48b9bccf48d73f92c3bf9d3d7fcedb48f9d5443a",
        "c3357de3fd7cfa423bce083fb72d930853e9ee20"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 01 23:38:19 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 01 23:38:19 2017 +0000"
      },
      "message": "Merge \"Fix misc-macro-parentheses warnings in system/core.\" am: e4bd153e55 am: dfaa20c069 am: 3d0ff4ee98\nam: c3357de3fd\n\nChange-Id: I3c3c048851fe44a260a7f952b89d5b5dd72a4b4e\n"
    },
    {
      "commit": "dfaa20c0690db178e7149de40251fb55f5cfe054",
      "tree": "eb8cd75b6a0a023d3d313a6176f36076e12208e1",
      "parents": [
        "b1c18af2475100c2926356917c5acf5ffcea0257",
        "e4bd153e55a3dc39ae95e15c6995b310d08b8007"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 01 23:26:06 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 01 23:26:06 2017 +0000"
      },
      "message": "Merge \"Fix misc-macro-parentheses warnings in system/core.\"\nam: e4bd153e55\n\nChange-Id: I6b38149a0fa15874eff68cbf7ee62e4acd41c595\n"
    },
    {
      "commit": "85244e8bc2702f9a46782c5075b832b7c1d96900",
      "tree": "effeb66248b4be8136348a877274dc8e3731dbba",
      "parents": [
        "eb3fa921916f2505d85fe42b780a890f7358f482"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 01 13:49:57 2017 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 01 22:12:57 2017 +0000"
      },
      "message": "Fix misc-macro-parentheses warnings in system/core.\n\nAdd NOLINT comment to work around clang-tidy\nerror in checking macro arguments used in\ntype expressions.\n\nBug: 28705665\nTest: make with WITH_TIDY\u003d1 WITH_TIDY_CHECKS\u003d-*,misc-macro-* \\\n      WITH_TIDY_FLAGS\u003d-header-filter\u003dsystem/core/.*\n\nChange-Id: I7619978c1804e151a11a8b0477e80076bcf21cab\n"
    },
    {
      "commit": "79b1a3027b4c1b5f86a68c7a5bf1f1d2e22494d8",
      "tree": "76ddd7ce987180049877ea4dd628dc4dbd14e041",
      "parents": [
        "bbd8b8b53463f955c50a6ec4c3779db3e0de4d5f"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Jul 17 16:25:59 2017 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Jul 17 17:59:35 2017 -0700"
      },
      "message": "Add sys/cdefs.h to log/log_main.h.\n\nfor liblog.vendor. __ANDROID_API__ is __ANDROID_API_FUTURE__\nwith BOARD_VNDK_VERSION\u003dcurrent, so we need it defined.\n\nBug: 33241851\nTest: BOARD_VNDK_VERSION\u003dcurrent m libgui.vendor\n      (that uses liblog.vendor)\n\nChange-Id: I340ec048094c027828f516d891250651e0c88eea\n"
    },
    {
      "commit": "c30f248cd49926d7441f9219dcaf74d113d5dabd",
      "tree": "22a36c13c47310d018b8b8368191e5dfb1afd39d",
      "parents": [
        "0c22c5646e7035d367ccf840d1fbe4e5825c35ab"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Jul 10 16:40:36 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Jul 12 12:59:30 2017 -0700"
      },
      "message": "Add vendor_available to liblog_headers.\n\nRenamed NDK headers to \"liblog_ndk_headers\"\n(these names aren\u0027t used anywhere).\n\nlibutils_headers now properly export liblog_headers.\n\nTest: with BOARD_VNDK_VERSION\u003dcurrent\nMerged-In: I3a85385f588b84393c57fd6d1bcac620f708f0f1\nChange-Id: I3a85385f588b84393c57fd6d1bcac620f708f0f1\n"
    },
    {
      "commit": "67dec06c7cd21245f971a6d985789b39bd1841ef",
      "tree": "40e08f0e8968b1637ae73015213301fafd1e6dc8",
      "parents": [
        "01af80094e9472215e9a5672ffcf1dda9cc43df9",
        "42b485cc538217fa127996a340229f76b7c4031b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 12 15:29:20 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 12 15:29:20 2017 +0000"
      },
      "message": "Merge \"Add vendor_available to liblog_headers.\""
    },
    {
      "commit": "42b485cc538217fa127996a340229f76b7c4031b",
      "tree": "b6b4485846e1e8401ad7e7c090bcd552233d48ec",
      "parents": [
        "766d4946123aedddccf6de38740249586e7c26c6"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Jul 10 16:40:36 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Jul 10 16:55:32 2017 -0700"
      },
      "message": "Add vendor_available to liblog_headers.\n\nRenamed NDK headers to \"liblog_ndk_headers\"\n(these names aren\u0027t used anywhere).\n\nlibutils_headers now properly export liblog_headers.\n\nTest: with BOARD_VNDK_VERSION\u003dcurrent\nChange-Id: I3a85385f588b84393c57fd6d1bcac620f708f0f1\n"
    },
    {
      "commit": "653d49a2451b9d7ec5746c88a54a5e54fa42742c",
      "tree": "1b98914994fe27d849bd98e69f2c57c48f6f38fe",
      "parents": [
        "766d4946123aedddccf6de38740249586e7c26c6"
      ],
      "author": {
        "name": "nickrose",
        "email": "nickrose@google.com",
        "time": "Mon Jul 10 11:10:19 2017 -0700"
      },
      "committer": {
        "name": "nickrose",
        "email": "nickrose@google.com",
        "time": "Mon Jul 10 11:17:38 2017 -0700"
      },
      "message": "Add logd CTS tests to VTS\nFollow-up to  Change-Id: Id52ac1639447276171006c33bdfa7b4e6c874745\n\nTest: make vts\nChange-Id: Ibeb5082439ada49a6eccd6fb699e466ca71730c9\n"
    },
    {
      "commit": "cbe556ee6282a8af052a727e807b0970b6297e13",
      "tree": "db72392d3329169de9aa0156586ba45717ee3bd0",
      "parents": [
        "7f857bb9ffb1fb97968998ebc4eda9ef92f590bb",
        "11b91e7c28a4ee677b61ec91cdd58c2c244030aa"
      ],
      "author": {
        "name": "Ian Elliott",
        "email": "ianelliott@google.com",
        "time": "Mon Jul 10 12:09:43 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 10 12:09:43 2017 +0000"
      },
      "message": "Merge \"Use void instead of no parameters in 2 function declarations.\"\nam: 11b91e7c28\n\nChange-Id: Ie41c3cbf8c6017994d3728c638fc85c55df3ec94\n"
    },
    {
      "commit": "58e06c5f94736152628a7d45ff7a16d1b501ef76",
      "tree": "2af51418955c9c8a42ea24db5a6c71691df40372",
      "parents": [
        "eb42bb8c8ba93b092e50e5426a07c692fa76d8b2"
      ],
      "author": {
        "name": "Ian Elliott",
        "email": "ianelliott@google.com",
        "time": "Fri Jul 07 16:11:32 2017 -0600"
      },
      "committer": {
        "name": "Ian Elliott",
        "email": "ianelliott@google.com",
        "time": "Fri Jul 07 16:11:32 2017 -0600"
      },
      "message": "Use void instead of no parameters in 2 function declarations.\n\nIn compiling some code with a picky \"Android.mk\" file, it is not happy\nwith a function declaration that looks like:\n\n    void foo();\n\nIt requires:\n\n    void foo(void);\n\nThis commit changes that for 2 functions in \"log.h\".\n\nTest: Build both Android and the code with a picky \"Android.mk\".\nChange-Id: Icd624df34db57e642fe6b1c7da77be9b05936936\n"
    },
    {
      "commit": "eacf704a6c7b30cedc9530c9a4b1a16bf1eef7b2",
      "tree": "2f65ecae948570c909ca0f520792b48f6ddf84d0",
      "parents": [
        "8af60711733222c004cf6d1db897e10050c06e4e",
        "6afbd476abb0c30af1dc04eab3ad798accf30307"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Jun 29 03:58:59 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 29 03:58:59 2017 +0000"
      },
      "message": "Merge \"Allow SLOG* to vendors\"\nam: 6afbd476ab\n\nChange-Id: I56d66068757cd962c237a8292aa481d96b417f17\n"
    },
    {
      "commit": "9ffeab85bf76d4e9e028e461c9ac1341bc0ceaec",
      "tree": "27203405534b2f34e0d3fceb9f94ce3220e1283e",
      "parents": [
        "c70bf5836c1d6b734af270ed7b3b8a9b425b83b9"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Jun 29 10:20:40 2017 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Jun 29 10:25:25 2017 +0900"
      },
      "message": "Allow SLOG* to vendors\n\nNot only vendor libs, but also Android libs that are marked as\nvendor_available are using SLOG*. Since both pure vendor libs and\nAndroid libs available to vendors are using the same liblog headers for\nVNDK, SLOG* needs to be visible via the headers.\n\nBug: 63088165\nTest: BOARD_VNDK_VERSION\u003dcurrent m -j ATFWD-daemon\n(or any other vendor modules using SLOG*)\n\nChange-Id: Idfb74887a42d2418d3896bfdf5be3b4fc8e4c27f\n"
    },
    {
      "commit": "c2fbcf6f67133861299be0b9fd7361201f4adc55",
      "tree": "d46f5120fc580897e315de6775fdc599e5b5278d",
      "parents": [
        "2d30a74181b48ea47513d5ff6343bea6b6e477d7",
        "de29bf48844017c5a7265da8108c51b5141392b6"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Tue Jun 06 19:28:39 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 06 19:28:39 2017 +0000"
      },
      "message": "add component metadata tag to CTS liblog test acses\nam: de29bf4884\n\nChange-Id: I4bc7c46b9498227ccd19c558fd821d80974bd404\n"
    },
    {
      "commit": "de29bf48844017c5a7265da8108c51b5141392b6",
      "tree": "1f6df966c84b97b84d2e296fbba1dca548d8be39",
      "parents": [
        "a1c9e943c0687a2fd1195033824d22600abbd51e"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Mon Jun 05 14:39:25 2017 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Mon Jun 05 23:21:23 2017 +0000"
      },
      "message": "add component metadata tag to CTS liblog test acses\n\nBug: 36140955\nBug: 35360169\nTest: new unit test to ensure that all modules have this field\nChange-Id: I352145965e8cd20371ccce3ba2b25f3a166bc3e8\nMerged-In: Ifb7a14817265b4624f1dc6414b547c86aafcf4ac\n"
    },
    {
      "commit": "e09e9a503effcc955b0a11d012916d9fb2554215",
      "tree": "c3bfa33332f168d67ddcd68d07f8ebf938829e56",
      "parents": [
        "daa6602a860765a279543469f802862359acc33b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jun 05 07:47:29 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jun 05 07:50:13 2017 -0700"
      },
      "message": "liblog: add bool to android_log_event_list\n\nTest: compile\nBug: 62241642\nChange-Id: I977702456417ceec21be96ff8463a5ed047560ec\n"
    },
    {
      "commit": "067e8a0725137e9286a0b33474db21354d3699bd",
      "tree": "fe67451a60a4c188324639517f5b6637df97091b",
      "parents": [
        "f71d718906a8b1a18929a7e86f7a8af952721384"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed May 24 15:24:55 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed May 24 15:30:07 2017 -0700"
      },
      "message": "liblog: test: CTS: enoent does not qualify\n\nEliminate liblog@enoent CTS test as it is bypassed on \"user\" builds\nin commit \"liblog: test: enoent requires userdebug or eng to run\".\nThis prevents time wasted running a test that bypasses during CTS.\n\nTest: CtsLiblogTestCases_list --gtest_list_tests |\n      (grep enoent \u0026\u0026 echo FAILED)\nBug: 62030441\nChange-Id: Ia440db3e74dacdc5c311c640aab3a11844cc195a\n"
    },
    {
      "commit": "558f2a166b229499a2c804a3b8bd388189835d47",
      "tree": "2cb542618b24e411fb690a3559324a244adbcf24",
      "parents": [
        "928e606d5af52ed4f253bda95451ff990b9a9f82"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue May 23 13:59:42 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed May 24 12:50:38 2017 -0700"
      },
      "message": "liblog: test: android_logger_get_ \"kernel\" log buffer can be empty\n\n(cherry picked from commit 37eaefa9a0792ece4db77bbc0cf03cc0b6793c54)\n\nIf user build and for the \"kernel\" log buffer, allow an empty report.\n\nTest: CTS: User: liblog#android_logger_get_\nTest: remove ro.debuggable line from /default.prop,\n      run liblog-unit-tests --gtest_filter\u003d*.android_logger_get_\nBug: 62030309\nChange-Id: I5f91af07608988f322b3c46574becc308e1d8b13\n"
    },
    {
      "commit": "37eaefa9a0792ece4db77bbc0cf03cc0b6793c54",
      "tree": "9102292715052f1bc4af222644454e8196f0a29d",
      "parents": [
        "efb30b0ccdd22500897033a0923a079d4454adb8"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue May 23 13:59:42 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed May 24 12:45:41 2017 -0700"
      },
      "message": "liblog: test: android_logger_get_ \"kernel\" log buffer can be empty\n\nIf user build and for the \"kernel\" log buffer, allow an empty report.\n\nTest: CTS: User: liblog#android_logger_get_\nTest: remove ro.debuggable line from /default.prop,\n      run liblog-unit-tests --gtest_filter\u003d*.android_logger_get_\nBug: 62030309\nChange-Id: I5f91af07608988f322b3c46574becc308e1d8b13\n"
    },
    {
      "commit": "928e606d5af52ed4f253bda95451ff990b9a9f82",
      "tree": "42ab4e056114647b47bdfb815c16a43cd81d3d31",
      "parents": [
        "ea6826448b6a4dee754d0173711517075ca97119"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue May 23 13:21:46 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed May 24 09:15:27 2017 -0700"
      },
      "message": "liblog: test: enoent requires userdebug or eng to run\n\n(cherry picked from commit 38dad6c9e457b43968157f4df8ea8e83322189bd)\n\nBypass test if we do not have all the prerequisites to run this check\nof liblog failure propagation.  We need to be root, or be able to\ncall su, in order to temporarily stop logd to measure the error\nresponse from liblog.  Basically a \"user\" build can not have the\nlevers to deny or fail the logger, preventing our ability to run the\nliblog.enoent test.\n\nTest: CTS: User: liblog#enoent\nTest: remove ro.debuggable line from /default.prop,\n      run liblog-unit-tests --gtest_filter\u003d*.enoent\nBug: 62030441\nChange-Id: I52177b8dd3c66d433bddf630e840ee088e13cddc\n"
    },
    {
      "commit": "38dad6c9e457b43968157f4df8ea8e83322189bd",
      "tree": "baf7413f413b2ca323efb345853b351c724d4796",
      "parents": [
        "5b17d7131bcb2a00b8b718190a52ed90b26bed8a"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue May 23 13:21:46 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed May 24 07:50:29 2017 -0700"
      },
      "message": "liblog: test: enoent requires userdebug or eng to run\n\nBypass test if we do not have all the prerequisites to run this check\nof liblog failure propagation.  We need to be root, or be able to\ncall su, in order to temporarily stop logd to measure the error\nresponse from liblog.  Basically a \"user\" build can not have the\nlevers to deny or fail the logger, preventing our ability to run the\nliblog.enoent test.\n\nTest: CTS: User: liblog#enoent\nTest: remove ro.debuggable line from /default.prop,\n      run liblog-unit-tests --gtest_filter\u003d*.enoent\nBug: 62030441\nChange-Id: I52177b8dd3c66d433bddf630e840ee088e13cddc\n"
    },
    {
      "commit": "f7690d919633b70a3109993a8aabf6dc76371efd",
      "tree": "56a283a63890cb9e61ca41731ae2027c57e4ed11",
      "parents": [
        "44673da3eb1b2fed013bdc1e2c158e3ef5020456"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri May 12 13:01:47 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri May 12 13:07:08 2017 -0700"
      },
      "message": "liblog: tests: crashes in logcat.descriptive\n\nscanTagLine has some loops that do not check for a terminating nul,\nproblematic for responses from the logger via __getEventTag.\n\nTest: gTest logcat-unit-tests --gtest_filter\u003d*.descriptive\nBug: 37791296\nChange-Id: Ib4e900b765b407bdee43e009d6625fe289863ddc\n"
    },
    {
      "commit": "f3452d817886829669a7ff6dbce5b73d336caa52",
      "tree": "da755004c1e40b74e6bbf43cb6d5a81bba96c3c8",
      "parents": [
        "0de03b53fcf8c5807abbfc71d082f3b9cad031fa"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Sun May 07 12:17:15 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Sun May 07 13:21:35 2017 -0700"
      },
      "message": "Remove old simulator support from liblog\n\nAs far as I know, this isn\u0027t used anymore, and is causing problems when\nbuilding with bionic on the host (with the cast of open).\n\nBug: 31559095\nTest: host bionic compiles\nChange-Id: I8b6e802e2d6dcc6e8476e387a5a365903aec3be1\n"
    },
    {
      "commit": "ac225780dd6ccf217e5fb64c7af8f41f9c54f4a1",
      "tree": "e1d7d6ac5060a784e0ed675e3dfb6ef7da963e8a",
      "parents": [
        "8fc6cc8910dbb4c77333aa432b4732237157ed0b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Apr 25 11:23:10 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue May 02 18:38:46 2017 -0700"
      },
      "message": "Move libc_logging to libasync_safe.\n\nMove the name of the \"private/libc_logging.h\" header to \u003casync_safe/log.h\u003e.\n\nFor use of libc_malloc_debug_backtrace, remove the libc_logging library.\nThe library now includes the async safe log functions.\n\nRemove the references to libc_logging.cpp in liblog, it isn\u0027t needed because\nthe code is already protected by a check of the __ANDROID__ define.\n\nTest: Compiled and boot bullhead device.\nTest: Run debuggerd unit tests.\nTest: Run liblog unit tests on target and host.\nTest: Run libmemunreachable unit tests (these tests are flaky though).\nChange-Id: Ie79d7274febc31f210b610a2c4da958b5304e402\n"
    },
    {
      "commit": "64328403b596acc86c216763a1cb9b7f7f7965ed",
      "tree": "035201727c7a09880a05156aca2f657b0b2f62b6",
      "parents": [
        "4c8acafa25ca69fc79ad14916e62e5cca501781f"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Apr 28 09:38:54 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon May 01 14:40:55 2017 +0000"
      },
      "message": "liblog: __android_log_error_write in vndk\n\nAlso added log_safetynet.h header. This contains a memory sensitive logging\nfunction which is used to detect attack attempts.\n\nFixes: 37442967\nTest: liblog-unit-tests on internal marlin\nTest: build liblog with BOARD_VNDK_VERSION :\u003d current on aosp_arm\nTest: libbinder vendor variant links with BOARD_VNDK_VERSION :\u003d current\n\nChange-Id: Icfcc2b1acbb3712bf4c84403870dc93401eafb15\n"
    },
    {
      "commit": "b7140c26d5a4628ca1feae19988585df9e11d652",
      "tree": "992f3d76025efae28dd294435ce702e24586ee80",
      "parents": [
        "ad8d533a045d44c7eb3142f38e715ffbb6b80b2c"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Apr 20 09:59:01 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 21 08:20:56 2017 -0700"
      },
      "message": "liblog: test: liblog.__security miscalculation\n\n(cherry pick from commit b867beac562edeec9006f876956407d00b71b314)\n\nThe gTest should not be able to set ro.device_owner, either as a unit\ntest or a CTS test.  The CTS test should not be able to set\npersist.logd.security, the gTest may as it is run on userdebug with\nroot, so check if we are root to discern expectations.\n\nTest: gTest liblog-unit-tests --gtest_filter\u003dliblog.__security\nTest: cts-tradefed run cts-dev -a armeabi-v7a -m CtsLiblogTestCases -t liblog#__security\nBug: 36480230\nChange-Id: I1da88aae34da4e2fca8dd88d740eeb879d9c65bb\n"
    },
    {
      "commit": "ad8d533a045d44c7eb3142f38e715ffbb6b80b2c",
      "tree": "364c477922502a7ff938800a139a31b74a40ae2e",
      "parents": [
        "1b0895300f1458aa523ae6c0d00154a40d16484c",
        "0a0a4652aaf33e3b20c3c546b4539f09c552721a"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Apr 20 20:44:28 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 20 20:44:28 2017 +0000"
      },
      "message": "Merge changes Iec369a50,I78959464,I3f9f8d56 into oc-dev\n\n* changes:\n  logd: instrument tests better for failure\n  logd: iterator corruption paranoia\n  liblog: log_time add explicit to some constructors.\n"
    },
    {
      "commit": "b867beac562edeec9006f876956407d00b71b314",
      "tree": "072f8eb29c2860208654ed83b9599dd2261b76d2",
      "parents": [
        "2e821078e432711006a580df19e68db48bfa9fae"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Apr 20 09:59:01 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Apr 20 13:26:12 2017 -0700"
      },
      "message": "liblog: test: liblog.__security miscalculation\n\nThe gTest should not be able to set ro.device_owner, either as a unit\ntest or a CTS test.  The CTS test should not be able to set\npersist.logd.security, the gTest may as it is run on userdebug with\nroot, so check if we are root to discern expectations.\n\nTest: gTest liblog-unit-tests --gtest_filter\u003dliblog.__security\nTest: cts-tradefed run cts-dev -a armeabi-v7a -m CtsLiblogTestCases -t liblog#__security\nBug: 36480230\nChange-Id: I1da88aae34da4e2fca8dd88d740eeb879d9c65bb\n"
    },
    {
      "commit": "0dd92d5b920d406f6cd6ab46f948a2b26d5d1ec5",
      "tree": "28b9afac0b94b37eb8b04f1cccf29d96eba336bd",
      "parents": [
        "02dd2f42f8713b09ed0526e4eb49812957b66d5e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 14 10:01:33 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 19 09:18:40 2017 -0700"
      },
      "message": "liblog: log_time add usec() and msec()\n\nTest: build\nBug: 37254265\nChange-Id: Ie7a5303e85e565800f2066e53e19a83496acae72\n"
    },
    {
      "commit": "86b136a4a410bdc140361ecd563dd94d8ae2d828",
      "tree": "d7528946de25a388cfd45cfe0b234636841fe8c8",
      "parents": [
        "a190551d2edc67131e020bc5ce06a5bbdf47790b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 18 08:43:16 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 19 08:24:31 2017 -0700"
      },
      "message": "liblog: __android_logger_property_bool svelte+eng default\n\n(cherry pick from commit 9fcaaba85ddee7ca181901b7409ef3eb2962a7d8)\n\nWhen BOOL_DEFAULT_FLAG_ENG and/or BOOL_DEFAULT_FLAG_SVELTE is set for\nflags parameter in __android_logger_property_get_bool, they can not be\noverridden by a supplied property value.  Reset these two flags if\nthere is something in the specified property.\n\nTest: gTest liblog-unit-tests, logcat-unit-tests and logd-unit-tests\nBug: 37425809\nChange-Id: I5fc2d727e8c30bc1e781f8b365f44ec62dd36b4d\n"
    },
    {
      "commit": "9fcaaba85ddee7ca181901b7409ef3eb2962a7d8",
      "tree": "0581a16d041aa6ee20da2b13771eb37721f8f834",
      "parents": [
        "edaed3ed7a6034bd0bd07e55585b6c81333b9d3a"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 18 08:43:16 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 18 15:36:36 2017 -0700"
      },
      "message": "liblog: __android_logger_property_bool svelte+eng default\n\nWhen BOOL_DEFAULT_FLAG_ENG and/or BOOL_DEFAULT_FLAG_SVELTE is set for\nflags parameter in __android_logger_property_get_bool, they can not be\noverridden by a supplied property value.  Reset these two flags if\nthere is something in the specified property.\n\nTest: gTest liblog-unit-tests, logcat-unit-tests and logd-unit-tests\nBug: 37425809\nChange-Id: I5fc2d727e8c30bc1e781f8b365f44ec62dd36b4d\n"
    },
    {
      "commit": "f358bed6248926bf98f3493ec7f5ffa6b5671e1b",
      "tree": "37ca4aff7d2c01f6e23b29f2d30123d86b4bdef3",
      "parents": [
        "6ad16cda199089ccb7c8d5e6e6a993a9d2fa5d0a",
        "d73be1b96beab812b86f8174e7fc928291f0cb44"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 18 14:46:25 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 18 14:46:27 2017 +0000"
      },
      "message": "Merge \"libcutils: compile with BOARD_VNDK_VERSION current\""
    },
    {
      "commit": "219ef270a6907f4310bc1640ac404707c5a6ecc4",
      "tree": "5735fe22c154dd22e5c92e5b2f4d8021a85a4dcf",
      "parents": [
        "912eb625957d92a1a68d1370bf8f73283554ff17"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Apr 17 12:37:11 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 18 07:23:38 2017 -0700"
      },
      "message": "liblog: log_time add explicit to some constructors.\n\n(cherry pick from commit d87d47f7dda69bf5729c31fb832e6e42886e68c8)\n\nAdd explicit to constructors, to prevent implicit conversions.\n\nTest: compile\nBug: 37378309\nChange-Id: I3f9f8d561e84c492eafa6528db7c238da072dad8\n"
    },
    {
      "commit": "d87d47f7dda69bf5729c31fb832e6e42886e68c8",
      "tree": "8467efd0b96a8c78eb74daf3e79c3f7d85daef41",
      "parents": [
        "3614a0c5d4aec84fbc5f6cbf1e919e8b3825b818"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Apr 17 12:37:11 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Apr 17 15:10:26 2017 -0700"
      },
      "message": "liblog: log_time add explicit to some constructors.\n\nAdd explicit to constructors, to prevent implicit conversions.\n\nTest: compile\nBug: 37378309\nChange-Id: I3f9f8d561e84c492eafa6528db7c238da072dad8\n"
    },
    {
      "commit": "d73be1b96beab812b86f8174e7fc928291f0cb44",
      "tree": "2239b8c02d02461fe5f39d823301e784bd95c763",
      "parents": [
        "ffa38cfc1ea33de4ddddb291cc70cc507506b758"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Apr 13 23:48:57 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 17 14:44:17 2017 -0700"
      },
      "message": "libcutils: compile with BOARD_VNDK_VERSION current\n\n- moved __android_log_is_debuggable to a new public header\n    (log_properties.h)\n- vendor version of sched_policy uses ALOG* instead SLOG*\n\nTest: (sanity) liblog-unit-tests\nTest: (sanity) libcutils_test (noting b/b/32972117, two tests continue\n  to fail)\nTest: system/core as a whole makes with BOARD_VNDK_VERSION :\u003d current\n  now with no problems.\nTest: boots/works on internal marlin\nBug: 33241851\n\n(cherry picked from commit 1f83aa424f537cf3f07e1d27dbbcc524818b5358)\n\nMerged-In: I5bc1f348dc0f0c8814bec5b5c3d2c52c825ab640\nChange-Id: I5bc1f348dc0f0c8814bec5b5c3d2c52c825ab640\n"
    },
    {
      "commit": "1f83aa424f537cf3f07e1d27dbbcc524818b5358",
      "tree": "22abf5f819c19c093667a856e4845647ad75db63",
      "parents": [
        "421067e040a0b9b33f9da4563d0b000e049eae6b"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Apr 13 23:48:57 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 17 12:18:36 2017 -0700"
      },
      "message": "libcutils: compile with BOARD_VNDK_VERSION current\n\n- moved __android_log_is_debuggable to a new public header\n    (log_properties.h)\n- vendor version of sched_policy uses ALOG* instead SLOG*\n\nTest: (sanity) liblog-unit-tests\nTest: (sanity) libcutils_test (noting b/b/32972117, two tests continue\n  to fail)\nTest: system/core as a whole makes with BOARD_VNDK_VERSION :\u003d current\n  now with no problems.\nTest: boots/works on internal marlin\nBug: 33241851\n\nChange-Id: I5bc1f348dc0f0c8814bec5b5c3d2c52c825ab640\n"
    },
    {
      "commit": "01bdb04be63bce0c81d1d07a77699631e913ceb5",
      "tree": "f0244feec1ad7e758c9b56f214de2f5214e6a29a",
      "parents": [
        "5768d3d9769c37ede68efa2f7df98bb146881e62"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 12 15:11:24 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 14 12:56:06 2017 -0700"
      },
      "message": "liblog: allow event tags to include some punctuations\n\nevent_log_tag parser complains about a period (.) in the name,\nwe would consider such an enhancement to the tag names possible.\nI expect we would want to be able to support alphanumerics,\nunderscore (_), period (.), minus (-), at (@) and comma (,) for\nstarters as they are present in the other text log buffer tags.\n\nWe introduce a local endOfTag function that is used during parsing and\nduring android_lookupEventTagNum for submitting new tags.  This\nfunction caused us to enforce const char more closely.  By filtering\nin both places we resolve an issue that could have plagued us if\ngarbage requests were made.\n\nTest: gTest liblog-unit-tests, logd-unit-tests \u0026 logcat-unit-tests\nBug: 31456426\nChange-Id: I596b8706e843719ddac07ec40e1cd2875c214bed\n"
    },
    {
      "commit": "5768d3d9769c37ede68efa2f7df98bb146881e62",
      "tree": "98f4809e437fc5231a0341b7728e10cd615901e0",
      "parents": [
        "46186a7238973c4f60ffcf1af0e2bee737bef63d"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Nov 10 10:24:44 2016 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 14 12:54:25 2017 -0700"
      },
      "message": "liblog: logprint supports number of seconds time event field\n\nAdd s to report time in seconds.  The time could be a period, duration\nor monotonic, expanded to seconds, minutes, hours and days.  gTest has\nto acquire a dynamic tag allocation as there are no users of this\nfeature yet.\n\nLooking to the future, audio media logging has binary content similar\nto the binary events structures Android logging uses and they have\na definition of a duration field in their internal binary logging, so\nmay be of use when we unify the logs.\n\nTest: gTest logcat-unit-tests --gtest_filter\u003d*.descriptive\nBug: 31456426\nChange-Id: I262c03775983b3bc7b1b00227ce2bb2b0f357bec\n"
    },
    {
      "commit": "7ecfd6ac10957ff392dda713e983cb6b09b2b203",
      "tree": "ab2c8fdb9d1c08a688ae35bfc484912b2ad467e1",
      "parents": [
        "fc500ddb5284d309fee3b26cd13be15784e23d1c"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Apr 13 08:19:52 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Apr 13 13:16:59 2017 -0700"
      },
      "message": "liblog: android_log_event_list class permit -EBUSY retry\n\nwrite() method was one-shot, a second shot on -EBUSY would always\nreturn -EBUSY even if successful.  Reset internal error if -EBUSY\nwhen retransmitting.  write() now reports a positive count for\ntransmission success.  Composition errors trump transmission errors.\n\nTest: gTest logcat-unit-tests --gtest_filter\u003d*.descriptive while\n      under heavy DOS stress levels of logging.\nBug: 31456426\nChange-Id: Ib1920c3f10cf1df8ad8eb6a884724794b577b29d\n"
    },
    {
      "commit": "ab89b34b6fcfb13829515e84ddac3d392d3485c5",
      "tree": "55dcccdf13015656e3e5cfa71f60b4f5a5fdfd2b",
      "parents": [
        "f8111b7df86a4678748d484e7292a52b0c2a7769"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Apr 07 15:26:08 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Apr 11 15:14:28 2017 +0000"
      },
      "message": "Remove .(ll)ndk suffix from (ll)ndk_library\n\nSoong handles these automatically now.\n\nBug: 33241851\nTest: Android-aosp_arm.mk is the same before/after\nTest: build.ninja is the same before/after\nTest: build-aosp_arm.ninja is the same before/after\nMerged-In: Ica4eedda51bb34db2f39d2c64ea436e1f633bfc3\nChange-Id: Ica4eedda51bb34db2f39d2c64ea436e1f633bfc3\n"
    },
    {
      "commit": "ce4c78224d03c1d26b7ec8ea856d68f0791416a4",
      "tree": "c548f22c15f5ee8117ecbd6d259159e7fd58cdd5",
      "parents": [
        "4d4348c7712977ae915731a70de12ea0dc8fb1be",
        "db9b260096dc13f3733dceba9d0935f0323b9b36"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 11 07:22:19 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 11 07:22:26 2017 +0000"
      },
      "message": "Merge changes from topic \u0027llndk_rename\u0027 into oc-dev\n\n* changes:\n  Remove .(ll)ndk suffix from (ll)ndk_library\n  Remove .(ll)ndk suffix from (ll)ndk_library\n"
    },
    {
      "commit": "b07c58758bd1b2ea67d89e75949c821548637d55",
      "tree": "951ff421e773229b620915efc52d13fac7c21a6e",
      "parents": [
        "ffa763208ba445d4fcbf8759728c84b83b0b1e4b",
        "c18f3102da853b49e51c17c26b5bd5e7f0c90478"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Apr 10 21:15:26 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 10 21:15:27 2017 +0000"
      },
      "message": "Merge \"liblog: adapt to removal of property name size limit\" into oc-dev"
    },
    {
      "commit": "c8202dc5f72e45079f71b7b52e11d58d16bb7409",
      "tree": "8626a66e5ed25ff45f6c8d601edfb86367a8e851",
      "parents": [
        "3f5757977c0e4dc540567d4550c7ebfe2fade23c"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Apr 07 15:26:08 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 10 12:54:31 2017 -0700"
      },
      "message": "Remove .(ll)ndk suffix from (ll)ndk_library\n\nSoong handles these automatically now.\n\nBug: 33241851\nTest: Android-aosp_arm.mk is the same before/after\nTest: build.ninja is the same before/after\nTest: build-aosp_arm.ninja is the same before/after\nChange-Id: Ica4eedda51bb34db2f39d2c64ea436e1f633bfc3\n"
    },
    {
      "commit": "38b4a9265d1c50dcf837c9f5e15858b350d912b3",
      "tree": "a2692fddb84994924962609a39a6979f4546da51",
      "parents": [
        "9cadfde2d603afd693699e8ca6587e3b694ffea6"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Mar 20 14:08:59 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Apr 07 20:35:02 2017 -0700"
      },
      "message": "Add LLNDK liblog stub library for the VNDK\n\nThis replaces the liblog_vndk_headers with a true stub library that\nexports the vndk headers, and exports the vndk-specific set of symbols.\n\nTest: generated NDK stub maps are the same before/after\nTest: aosp_arm; m -j\nTest: Enable BOARD_VNDK_VERSION on aosp_arm; m -j (with other changes)\nChange-Id: I9037241963b3872a3bc7cf7ab36a70dd4ddcf9bc\n(cherry picked from commit 28dab34cbb6c633ae7f2e50296c51fc74435d74d)\n"
    },
    {
      "commit": "f8111b7df86a4678748d484e7292a52b0c2a7769",
      "tree": "ec0af038e147bc8b791dcde3e5fc4e4996e2feb4",
      "parents": [
        "e800b97c46d86f112bb4087fa4857daf461b5500",
        "28dab34cbb6c633ae7f2e50296c51fc74435d74d"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Apr 07 21:21:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 07 21:21:32 2017 +0000"
      },
      "message": "Merge \"Add LLNDK liblog stub library for the VNDK\""
    },
    {
      "commit": "c18f3102da853b49e51c17c26b5bd5e7f0c90478",
      "tree": "30da698bbe739e33458c9a56bd349acf5d25a8b5",
      "parents": [
        "9cadfde2d603afd693699e8ca6587e3b694ffea6"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 05 10:11:09 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 07 11:29:44 2017 -0700"
      },
      "message": "liblog: adapt to removal of property name size limit\n\nThere is no longer a name size limit to the properties.\n\nTest: gTest liblog-unit-tests, logd-unit-tests and logcat-unit-tests\nTest: liblog-benchmarks BM_is_loggable\nBug: 36696208\nChange-Id: I80706a48583192b21f532a06cb8fa183a34e5f76\n"
    },
    {
      "commit": "d24dc95e871e8d201e894b36f4cd102af226287e",
      "tree": "e86292d22f8bdd5d9490bd7bc4dc9dbd22dcce97",
      "parents": [
        "acc0e98b0f07c7296a019b40fa4cdf02d5cf21b4"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 05 10:11:09 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 07 18:18:18 2017 +0000"
      },
      "message": "liblog: adapt to removal of property name size limit\n\nThere is no longer a name size limit to the properties.\n\nTest: gTest liblog-unit-tests, logd-unit-tests and logcat-unit-tests\nTest: liblog-benchmarks BM_is_loggable\nBug: 36696208\nChange-Id: I80706a48583192b21f532a06cb8fa183a34e5f76\n"
    },
    {
      "commit": "28dab34cbb6c633ae7f2e50296c51fc74435d74d",
      "tree": "4c0f7c9d27000f4fdf98248a4f5053d6c8915521",
      "parents": [
        "568dc01fdf973c2d731c9dafe7c5b73ecb6627aa"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Mar 20 14:08:59 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Apr 05 16:42:40 2017 -0700"
      },
      "message": "Add LLNDK liblog stub library for the VNDK\n\nThis replaces the liblog_vndk_headers with a true stub library that\nexports the vndk headers, and exports the vndk-specific set of symbols.\n\nTest: generated NDK stub maps are the same before/after\nTest: aosp_arm; m -j\nTest: Enable BOARD_VNDK_VERSION on aosp_arm; m -j (with other changes)\nChange-Id: I9037241963b3872a3bc7cf7ab36a70dd4ddcf9bc\n"
    },
    {
      "commit": "191afba9bd17d7302a5bfb16d60ff12198336cc5",
      "tree": "054abcaa49b085da965a8a0ceca2eabdca5218e7",
      "parents": [
        "568dc01fdf973c2d731c9dafe7c5b73ecb6627aa"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 05 12:47:50 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 05 13:02:08 2017 -0700"
      },
      "message": "liblog: worry over resource leaks\n\nAdd comments so that future selves can clearly see there are no file\ndescriptor resource leaks on normal return.\n\nSideEffects: None\nTest: Build\nChange-Id: Ieec504fea00fb849cdb69c669655a918d1334e61\n"
    },
    {
      "commit": "08c662c762b84b6b83c8f66b007cd175a84dec15",
      "tree": "93187accf61ab694175bbcf5484abf28b0c94f08",
      "parents": [
        "026d17dab35c618862bd2cc7707229f555bcf6e1"
      ],
      "author": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Tue Apr 04 20:16:25 2017 +0100"
      },
      "committer": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Wed Apr 05 11:30:06 2017 +0100"
      },
      "message": "Fix liblog#__security failure\n\nUpdate pid and gid value after calling setuid()\n\nBug: 36480230\nTest: cts-tradefed run cts -m CtsLiblogTestCases -t liblog#__security_buffer\nChange-Id: I707f7c724d64236ec17f2d978c85883a7b4f180f\nMerges-In: I707f7c724d64236ec17f2d978c85883a7b4f180f\n"
    },
    {
      "commit": "235cf8d729deabcee92c045457a197f99bb9ee91",
      "tree": "5d029aa3f725f4f9bda52ddbc04496b88dd37603",
      "parents": [
        "c1c0de3945f5f5dee8477a1101e158449b267efe"
      ],
      "author": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Tue Apr 04 20:16:25 2017 +0100"
      },
      "committer": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Wed Apr 05 11:27:48 2017 +0100"
      },
      "message": "Fix liblog#__security failure\n\nUpdate pid and gid value after calling setuid()\n\nBug: 36480230\nTest: cts-tradefed run cts -m CtsLiblogTestCases -t liblog#__security_buffer\nChange-Id: I707f7c724d64236ec17f2d978c85883a7b4f180f\nMerges-In: I707f7c724d64236ec17f2d978c85883a7b4f180f\n"
    },
    {
      "commit": "54f20c55539f7775708dc770ac610ad603669984",
      "tree": "747c88d1542824ae7e306b475f24f7938bd07d57",
      "parents": [
        "3c013de8d88c03a233efc3e9561e1a2ed93d5310",
        "525b34d142c98a9b7cdf176a042c8f2db4ad00b6"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Apr 03 14:21:57 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 03 14:21:57 2017 +0000"
      },
      "message": "Merge \"liblog: Speed up and extend the radio log redirect code\""
    },
    {
      "commit": "fe8c96d1526bd66d0c1adb757c87deefbbd29490",
      "tree": "cc250dbb90440a6b93b3a71c56de33629be977d5",
      "parents": [
        "cf29755e281a2027e79f8fbe5863ae37a8a72f62"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Mar 28 11:40:55 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Mar 31 13:25:36 2017 -0700"
      },
      "message": "liblog: benchmark add BM_log_event_overhead_42 for a well known tag\n\nMeasure the cost of using a known test event log tag from\nsystem/core/logcat/event.logtags:\n\n42    answer (to life the universe etc|3)\n\nTest: liblog_benchmarks BM_log_event_overhead_42\nBug: 36683634\nChange-Id: Ibd4be82bebfcedd381c84e8078cf6d05a636aa98\n"
    },
    {
      "commit": "525b34d142c98a9b7cdf176a042c8f2db4ad00b6",
      "tree": "0005380812ed6ee2ef84e3a142bb393b09a22cc4",
      "parents": [
        "cf29755e281a2027e79f8fbe5863ae37a8a72f62"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Mar 28 09:49:53 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Mar 31 13:10:18 2017 -0700"
      },
      "message": "liblog: Speed up and extend the radio log redirect code\n\nThis code was supposed to be deprecated in time.  Let\u0027s make it more\nefficient and add QC_RIL prefix to the list of catches to redirect\nfrom the main logs to the radio logs.\n\nTest: gTest liblog-unit-tests\nChange-Id: I38b371b25da472ec77cbde4affeebf2eafcf6155\n"
    },
    {
      "commit": "ef5d981977a0ac21e0e47718c6d9341ee4eb2499",
      "tree": "7e44319946c70046884059208d1376206bb2b6db",
      "parents": [
        "e941c5fa41b6e58e8bda663841dff4da5edcc823"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Mar 21 12:59:37 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Mar 21 15:22:29 2017 -0700"
      },
      "message": "liblog: tests: liblog.__security property failure\n\nCTS tests are failing to set ro.device_owner property.\n\nTest: gTest liblog_unit_tests --gtest_filter\u003dliblog.__security\nBug: 36480230\nChange-Id: Icafea9f7488ce9c4ea47d42dc08505bc0cf99a3e\n"
    },
    {
      "commit": "57075240038be316a6a08a5e4a627ddf73740b4a",
      "tree": "9d092abbe2d0b634788d3e98ef3cc6b0a4391f71",
      "parents": [
        "cc404b51fc424cbb786abce8b8f36b1dce1c0ab9"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Mar 17 10:29:41 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Mar 17 10:41:39 2017 -0700"
      },
      "message": "liblog: test: *.android_errorWriteWithinfoLog__android_logger_list_read__*\n\nWe would experience failures as test runs interfere with each other.\nCreate a unique tag for each test run signature.  Switch from using\nTEST_PREFIX to TEST_LOGGER to identify the logger transport being\ninspected and make that part of the signature.  Make sure 32 bit and\n64 bit tests do not interfere.\n\nTest: gTest liblog-unit-tests\n      cts-tradefed run cts -m CtsLiblogTestCases\nBug: 36232924\nChange-Id: I4d58242e5ef8e68e2d4b27cecf538938e17acf3f\n"
    },
    {
      "commit": "58aaee8eb1e528b9b059f7411bc02c39809251bb",
      "tree": "b01473bc218a4d578b5853fe409c4c25df3e89de",
      "parents": [
        "4278f7111894c0f80193aa4b4b7b88879071fade"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Mar 17 09:01:23 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Mar 17 09:11:45 2017 -0700"
      },
      "message": "liblog: tests: __security and enoent failures\n\n- __security test to allow 20ms resting time after setting ro.device_owner\n- enoent test resort to using \"su\" command if we are not root to start\n  and stop the logger.\n- Add some instrumentation to guide us in the future if issues.\n\nTest: gTest liblog-unit-tests\n      cts-tradefed run cts -m CtsLiblogTestCases\nBug: 36232924\nChange-Id: I6b926a1913497f7e6204493fc744ee6c454a5ce4\n"
    },
    {
      "commit": "c500abb40b612d9cc93150362630112d31b333b5",
      "tree": "a0eaa239f143a8d158a78c5664b4dd32b7394b48",
      "parents": [
        "210095136d9952e84174439389f9c3022ffd7178"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Mar 13 11:38:24 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Mar 13 16:29:04 2017 -0700"
      },
      "message": "liblog: test: __android_log_btwrite__android_log_close precharge\n\nTEST_PREFIX missing before operations on\nliblog*.__android_log_btwrite__android_log_close tests\n\nTest: gTest liblog-unit-tests\nBug: 27405083\nChange-Id: Iaddc4e1b1f9afcfd8231c3921605fecefd2b56bf\n"
    },
    {
      "commit": "81321a7980903fbdb42f6bd838445c651fd7996e",
      "tree": "18b42df23d875912af263931c6d3a1308771cf76",
      "parents": [
        "04bbc8ea4584b14c21e0c63f8dc4c6b4beb7bd47"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Mar 09 07:28:29 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Mar 09 09:36:34 2017 -0800"
      },
      "message": "liblog: replace \"frontend\" with \"transport\"\n\nWe still do not have any users of the \u0027frontend\u0027 interface, let\u0027s\nright a wrong and rename it to \u0027transport\u0027 as it makes more sense.\nRenames android_log_set_frontend, android_log_get_frontend and\ninclude/log/log_frontend.h.\n\nSideEffects: None\nTest: gTest liblog-unit-tests\nBug: 27405083\nChange-Id: I7c1c0f3dfdc7cf047285403e306edbd16ad1324d\n"
    },
    {
      "commit": "04bbc8ea4584b14c21e0c63f8dc4c6b4beb7bd47",
      "tree": "e906eca16f222fc43c8a0e848bc3fdda0461560b",
      "parents": [
        "2ed51d708eda64516ec79ac6397f690de38f0075"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 08 15:03:20 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Mar 09 09:36:34 2017 -0800"
      },
      "message": "liblog: stay away from C++ keyword private\n\nReplace with void* private with priv in context structure.\n\nSideEffects: None\nTest: gTest liblog-unit-tests\nBug: 27405083\nChange-Id: I670cb0b7fb2f3085ea13b4ac836d84239a3c8572\n"
    },
    {
      "commit": "2ed51d708eda64516ec79ac6397f690de38f0075",
      "tree": "9ea938a4ee0461c443dc99e197827fc36ecd643b",
      "parents": [
        "c1b3c8ef2629eac2a73aa4a95bf43a66edf4cd0f"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Mar 09 08:09:43 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Mar 09 09:36:19 2017 -0800"
      },
      "message": "liblog: specify clang format\n\nSwitch coding style to match\n\nSideEffects: None\nTest: compile\nBug: 27405083\nChange-Id: Id426d5c5e3b18f2ceec22b31bbc9781aabf6bcca\n"
    },
    {
      "commit": "4d99c986d9310eb5fbc29618487577d645788eec",
      "tree": "f765d656f2351c864f7dafa5e9e673c3f3b5ca77",
      "parents": [
        "e1bfafd241cc8a6c419e08248352f1a5eef46ae1"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Feb 28 12:59:01 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 08 07:17:31 2017 -0800"
      },
      "message": "liblog: add LOGGER_STDERR frontend\n\nStandalone, this logger provides no end-to-end capability.  Only\nprovides a writer, no reader transport.  All output goes, logcat-like,\ninto the stderr stream.  Output can be adjusted with environment\nvariables ANDROID_PRINTF_LOG and ANDROID_LOG_TAGS.\n\nliblog_*.__android_log_bswrite_and_print___max print fails if a string\nmember is truncated with \"Binary log entry conversion failed\" and -1.\nWe expose the truncated content in the tests and in LOGGER_STDERR.\n\nThe purpose of this transport selection is for command-line tools,\nproviding a means to shunt the logs to be mixed in with the tool\u0027s\nerror stream.\n\nTest: gTest liblog-unit-tests\nBug: 27405083\nChange-Id: If344b6e3e67df2dc86ce317cfad8af8e857727b7\n"
    },
    {
      "commit": "b1d150bc42d363e73002ed6076d5a413114ead44",
      "tree": "49a44e941091c1989892bbdf68381db7df7257e4",
      "parents": [
        "0ab93fdf3ae8af8bb9d8535bbcd5ec1808bf796f"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Mar 02 07:47:21 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Mar 03 11:10:11 2017 -0800"
      },
      "message": "liblog: logprint, error return and truncated data\n\nandroid_log_processBinaryLogBuffer and android_log_processLogBuffer\nerror return should have message and messageLen fields set to zero,\nor to a valid-but-truncated buffer so that we can discern the\ndifference.  This will resolve an issue with reporting content from\nan uninitialized field in liblogcat should caller add --debug flag.\n\nTo enhance the debugging capability, truncated string events because\nof the logger limits are provided rather than dropping the field, but\nstill with an error return.\n\nSome minor coding style issues resolved. Add required, or remove\nextraneous spaces.  Use C-style comments only.\n\nTest: gtest liblog-unit-tests\nBug: 27405083\nBug: 35326290\nChange-Id: I4a7ddd7278fb1c582f921e1ba10e0765fadb791b\n"
    },
    {
      "commit": "2a0044e4b00e7529dc8bc49464ec7b31b2e544f4",
      "tree": "76b7f3f7e2ef8a14c01fbc98dfe748040a0eacbb",
      "parents": [
        "a9ef4dc7a2f023295111762db1a67ae5c942b016"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Feb 21 16:25:58 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Feb 28 14:23:18 2017 -0800"
      },
      "message": "liblog: event log tags cache miss call logd for update\n\nDeal with cache miss in the event tag map resources and switch to\n\"Plan B\" to ask long-path to logd for a determination on the tag,\nname and format.\n\nlogcat-unit-tests liblogcat.descriptive does an under-the-hood call\nto logd to add a new logtag but the in-process mapping fails to\npick it up because the /dev/event-tag-map map is SHARED PRIVATE for a\nfew moments to garner some (linux) efficiency with other copies that\nare in the process.  Without the workaround of marking the mapping\ndirty to be reread, we are using this change as the proper workaround\nthat fixes the later parts of this test.\n\nTest: gTest logcat-unit-tests --gtest_filter\u003dliblogcat.descriptive\nBug: 31456426\nBug: 35326290\nChange-Id: Ibe54d4df00ed92248e1e644ecebc95f60b222b4d\n"
    },
    {
      "commit": "8dcd94b2cd01fed5fa0c1e6d56af1bba5389a866",
      "tree": "ffc33b8f6b2193dbeda6df0c1a1a27e092de6425",
      "parents": [
        "1d73abb4436f5c578f05dd016a820e4a37275f75"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Nov 07 13:54:42 2016 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Feb 22 14:16:31 2017 -0800"
      },
      "message": "liblog: logprint followup\n\nAdd comment and braces to add maintenance clarity.\n\nTest: gTest logcat-unit-tests\nBug: 35326290\nChange-Id: Ie25b42faba19ae3cf52d4c6cefc4fc539ec23e79\n"
    },
    {
      "commit": "d69e801fe890d1732906aaadb8aa06244bb4ac52",
      "tree": "e21608a6446e0ac209604ca5b3c086cc82707f90",
      "parents": [
        "01815fdcc52e6e94fe078d34ffdd71752e1aafdc"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Feb 14 13:06:12 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Feb 21 22:29:19 2017 +0000"
      },
      "message": "liblog: Harden log_id check.\n\nLogd currently checks against LOG_ID_MAX and LOG_ID_KERNEL to\ndetermine if a given log_id is available.  liblog uses only\nLOG_ID_KERNEL.  While this matches with the comments in log/log_id.h\nto always keep LOG_ID_KERNEL at the end it does not match with other\nchecks that logd makes, causing inconsistent behavior.  This\ninconsistency is noticable on devices that errantly rewrite\nLOG_ID_MAX to not equal LOG_ID_KERNEL + 1.  For log buffers with\nid\u0027s greater than LOG_ID_KERNEL, liblog reports that logd is\nunavailable while logd would accept the request.\n\nThe guideline is to not use buffer ids above LOG_ID_KERNEL.\nThis hardening change prevents an inconsistency that results if these\nguidelines are not followed.  Partners are urged instead to increase\nLOG_ID_KERNEL locally to match their LOG_ID_MAX - 1 when they add new\nlocal log buffers in their private builds.\n\nSigned-off-by: Evan Ralston \u003ceralston@amazon.com\u003e\nSigned-off-by: Mark Salyzyn \u003csalyzyn@google.com\u003e\nTest: compiles. no functional change\nChange-Id: Icd4b12ac79c1e5cd1d8a32f67a9795797580aad5\n"
    },
    {
      "commit": "2bc8e322423885114f76b7d7a9f4b0122a696107",
      "tree": "e05824c799a68f1c6944ce389543f8a53508d197",
      "parents": [
        "42aa9a1415b3dea85cf895e1aee556797d3f9573",
        "f8fc6f1870ed7ffc6ba343345d49099a8bfad6ce"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 14 23:08:15 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 14 23:08:16 2017 +0000"
      },
      "message": "Merge \"Revert \"Check against LOG_ID_MAX instead of LOG_ID_KERNEL\"\""
    },
    {
      "commit": "f8fc6f1870ed7ffc6ba343345d49099a8bfad6ce",
      "tree": "94ed007feca2d59bd1dbc986b70f952b53a79de4",
      "parents": [
        "2c2337a293dfcd7a144996048e48c2a54b44c5f8"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Feb 14 21:00:57 2017 +0000"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Feb 14 21:00:57 2017 +0000"
      },
      "message": "Revert \"Check against LOG_ID_MAX instead of LOG_ID_KERNEL\"\n\ncauses a regression, logcat -b kernel does not work.\n\nCheck should have landed in logd_writer.c\n\nThis reverts commit 2c2337a293dfcd7a144996048e48c2a54b44c5f8.\n\nChange-Id: I1004b44ecc87f5d83d1c4463dd8b1ac16499706d\n"
    },
    {
      "commit": "9fcabf739b23dd04cf1d43da74adfd6bbd51e493",
      "tree": "f408a32a4bd5b9a0516e2882d791810a1f6f70e4",
      "parents": [
        "bab6ec555c91d06dd075d3f8e9e3a52bfbcf7cec",
        "2c2337a293dfcd7a144996048e48c2a54b44c5f8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 10 01:14:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 10 01:14:23 2017 +0000"
      },
      "message": "Merge \"Check against LOG_ID_MAX instead of LOG_ID_KERNEL\""
    },
    {
      "commit": "71002885325be3a0c4a0d09a6a6ad9b14531bdd7",
      "tree": "280af7329dba542f40eaab69a29e19ccd08aadd6",
      "parents": [
        "96432fc6655fe035d0e66e593ffaf58856e1a826"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Mar 08 16:18:26 2016 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Feb 08 15:07:06 2017 -0800"
      },
      "message": "liblog: add local_logger\n\n- Create the local-only logger module\n- Add LOGGER_LOCAL flag to android_set_log_frontend to enable\n- Permit log reader for host compilation\n\nandroid_set_log_frontend(LOGGER_LOCAL) will result in logs going\ninto application local memory.  logcat can not retrieve the data,\nthe user must utilize the log reading interface directly to\nacquire their own logs.  Some local logger tests dropped as they\nrepresent testing other liblog facilities.  Other local logger\ntests dropped because we make the conscious decision to not\nsupport LOG_ID_SECURITY logging.\n\nToDo: Some local logger tests dropped because of missing\n      functionality associated with blocking reader.\n\nTest: gTest libcutils-tests, logd-unit-tests, liblog-unit-tests,\n      logcat-unit-tests, liblog-benchmarks and CtsLiblogTestCases_list\nBug: 27405083\nChange-Id: Ia23b932af9e05756eaa60bab9139876b14faf72d\n"
    }
  ],
  "next": "96432fc6655fe035d0e66e593ffaf58856e1a826"
}
