)]}'
{
  "log": [
    {
      "commit": "fd7216cc199f9211863dd53caa56e3be63153c4b",
      "tree": "a84abf5b63c1c07ff411a4714f9a14c34c62180a",
      "parents": [
        "ef18d440d9606d855d3cdc6af0b67279e7a9fff2"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Nov 05 11:31:42 2019 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Nov 05 12:33:33 2019 -0800"
      },
      "message": "Check that __system_property_set() doesn\u0027t leak FDs\n\nBug: 143936364\nTest: fail when b/143936364 repros\nTest: pass when b/143936364 is fixed\nChange-Id: I01d061c4fb4f37b0300ef418a19c88003038092c\n"
    },
    {
      "commit": "ca3f8e4901b7e7da0cef6b11aad0ee484978211d",
      "tree": "54d05aceab505881e1004625af82f19b0dea1c72",
      "parents": [
        "9615e0ddacafcc728ff432fce61eaa0a1049880e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 15:59:38 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 22:25:02 2019 -0700"
      },
      "message": "sleep/usleep: switch to trivial implementations.\n\nUpstream keeps rearranging the deckchairs for these, so let\u0027s just\nswitch to the [roughly] one-liners rather than track that...\n\nTest: treehugger\nChange-Id: If655cf7a7f316657de44d41fadd43a8c55ee6f23\n"
    },
    {
      "commit": "bcaa454d32e1b4ccf92467bb263d627695ac9a5b",
      "tree": "65d7d4c493242ecb51bfe1796f133b32538de514",
      "parents": [
        "ff16c0b89b7297bc70353f60afac9bb93d6b0087"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 08 15:20:23 2019 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 12 10:26:39 2019 -0700"
      },
      "message": "bionic tests: use GTEST_SKIP.\n\nAlso be a bit more to the point in our messages, focusing on \"why\" not\n\"what\".\n\nTest: ran tests\nChange-Id: I297806c7a102bd52602dcd2fcf7a2cd34aba3a11\n"
    },
    {
      "commit": "a0d374d587ec18d437d0dd15ba1332aceaa188af",
      "tree": "a9466c8841140cf70290c54d50354f245ea3a9db",
      "parents": [
        "132768084e24119c337e56fd110b97a23e5593c2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 10 18:13:46 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 13 13:30:10 2017 -0800"
      },
      "message": "Add __system_property_wait and return the serial in __system_property_read_callback.\n\nIn order to implement android::base::WaitForProperty well, we need a way to\nwait not for *any* property to change (__system_property_wait_any), but to\nspecifically wait for the property represented by a given `prop_info` to\nchange.\n\nThe android::base::WaitForProperty implementation, like attempts to cache\nsystem properties in the past, also needs a way to keep serials and values\nin sync, but the existing functions don\u0027t provide a cheap way to get a\nconsistent snapshot. Change the __system_property_read_callback callback\u0027s\ntype to include the serial corresponding to the given value.\n\nAdd a test, slightly clean up some of the existing tests (and name them to\ninclude the names of the functions they\u0027re testing, in our usual style).\n\nBug: http://b/35201172\nTest: ran tests\nChange-Id: Ibc8ebe2e88eef1e333a1bd3dd7f68135f1ba7fb5\n"
    },
    {
      "commit": "cafd3553751dfb524316884fb213eb80c75a26a2",
      "tree": "9accfb894608a6c131aa011490cce799f0160abe",
      "parents": [
        "16b2a4de143a026b8d467b7d242126adcf67242b"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 24 12:39:33 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 24 14:19:03 2017 -0800"
      },
      "message": "Do not send 0 byte string content.\n\nTrying to send even 0 bytes to closed socket leads to\nbroken pipe error. Sometimes property service is just\nquick enough and closes the socket between send(valuelen)\nand send(value) in the case where valuelen is 0.\n\nBug: http://b/34670529\nTest: adb reboot 20 times and make sure phone service did not fail\nTest: run bionic-unit-tests --gtest_filter\u003dprop*\nChange-Id: I96f90ca6fe1790614e7efd3015bffed1ef1e9040\n"
    },
    {
      "commit": "16b2a4de143a026b8d467b7d242126adcf67242b",
      "tree": "56e0d6455248408f5c485c8a5403bb970441f7a8",
      "parents": [
        "40250bb6837da0eb0f0882efd07bdaefb3f304b1"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 24 20:43:29 2017 +0000"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 24 12:58:18 2017 -0800"
      },
      "message": "Revert \"Revert \"Remove limit of system property name length\"\"\n\nThis reverts commit 489f58b5eaedd5a80635bb3a7b39e97037c585f6.\nBug: http://b/33926793\nBug: http://b/34670529\nTest: Run bionic-unit-tests --gtest_filter\u003dprop*\n\nChange-Id: Id4e94652dc2310a21f5b7bd3af098bf79df3f380\n"
    },
    {
      "commit": "489f58b5eaedd5a80635bb3a7b39e97037c585f6",
      "tree": "af22a101af7a53336af2669978e9a507f589fbd5",
      "parents": [
        "5c1ce278f31bc6fc338b9b951f1adc7c2b343d7c"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 24 18:39:04 2017 +0000"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 24 18:39:04 2017 +0000"
      },
      "message": "Revert \"Remove limit of system property name length\"\n\nThis reverts commit 5c1ce278f31bc6fc338b9b951f1adc7c2b343d7c.\nBug: http://b/33926793\nBug: http://b/34670529\n\nChange-Id: I0dc4a8ae55576c69b34b2958d8e664f7066b9c54\n"
    },
    {
      "commit": "5c1ce278f31bc6fc338b9b951f1adc7c2b343d7c",
      "tree": "0652006476a923c95c16837640a52f9298322a35",
      "parents": [
        "7844b4c5dbd0be9ea4212a523da2dd6a4804032c"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 03 11:26:38 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jan 23 11:21:18 2017 -0800"
      },
      "message": "Remove limit of system property name length\n\nThis change introduces new __system_property_read_callback\nmethod to use in place of deprecated __system_property_read\n__system_property_set() and get() should just work but now\ndo not have limit on system property names.\n\nBug: http://b/33926793\nTest: boot device, run adb shell propget\nTest: boot device with old version of init (protocol v1)\nTest: run bionic-unit-tests --gtest_filter\u003dprop*\nChange-Id: I619fb5a7e27a272aac30011579665f6160888bc7\n"
    }
  ]
}
