)]}'
{
  "log": [
    {
      "commit": "28b94af1b21bfd3eea1b932621b836e7e08e61d7",
      "tree": "97cefcc3318befb7d6c9d21243a75fe7fdb00c2b",
      "parents": [
        "c39d42ddde52fe27ec804e3087b0fde1366dc092"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Mon Oct 25 15:24:18 2021 -0700"
      },
      "committer": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Mon Oct 25 16:24:49 2021 -0700"
      },
      "message": "Fix 32-bit userspace on 64-bit kernel quota2 compatibility.\n\nTest: TreeHugger, manual testing of nearly identical code snippets.\nBug: 195716186\nBug: 203385942\nSigned-off-by: Maciej Żenczykowski \u003cmaze@google.com\u003e\nChange-Id: I42773c2b553a08919583b7932e757564b352c507\n"
    },
    {
      "commit": "d69ad69a938a27021adfcc2435dc1fd2ad0c8e1a",
      "tree": "184b620c9b0cddc4b15efa718ddc3961d2ce3d64",
      "parents": [
        "d57652f15b078d06d9258094f8a951374a677f2c"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Feb 16 19:02:14 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 19 12:59:05 2021 -0800"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to system/core\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  bootstat/Android.bp\n  cli-test/Android.bp\n  code_coverage/Android.bp\n  cpio/Android.bp\n  debuggerd/crasher/Android.bp\n  debuggerd/proto/Android.bp\n  diagnose_usb/Android.bp\n  fs_mgr/libdm/Android.bp\n  fs_mgr/libfiemap/Android.bp\n  fs_mgr/liblp/Android.bp\n  fs_mgr/libsnapshot/Android.bp\n  fs_mgr/libstorage_literals/Android.bp\n  fs_mgr/libvbmeta/Android.bp\n  fs_mgr/tests/Android.bp\n  fs_mgr/tools/Android.bp\n  gatekeeperd/Android.bp\n  healthd/Android.bp\n  healthd/testdata/Android.bp\n  init/Android.bp\n  init/Android.mk\n  init/sysprop/Android.bp\n  init/test_kill_services/Android.bp\n  init/test_service/Android.bp\n  libappfuse/Android.bp\n  libasyncio/Android.bp\n  libbinderwrapper/Android.bp\n  libcrypto_utils/Android.bp\n  libcrypto_utils/tests/Android.bp\n  libdiskconfig/Android.bp\n  libgrallocusage/Android.bp\n  libkeyutils/mini_keyctl/Android.bp\n  libmodprobe/Android.bp\n  libnetutils/Android.bp\n  libpackagelistparser/Android.bp\n  libprocessgroup/Android.bp\n  libprocessgroup/cgrouprc/Android.bp\n  libprocessgroup/cgrouprc_format/Android.bp\n  libprocessgroup/profiles/Android.bp\n  libprocessgroup/setup/Android.bp\n  libqtaguid/Android.bp\n  libsparse/Android.bp\n  libstats/push_compat/Android.bp\n  libsuspend/Android.bp\n  libsync/Android.bp\n  libsystem/Android.bp\n  libsysutils/Android.bp\n  libusbhost/Android.bp\n  libutils/Android.bp\n  libvndksupport/Android.bp\n  libvndksupport/tests/Android.bp\n  llkd/Android.bp\n  llkd/tests/Android.bp\n  property_service/libpropertyinfoparser/Android.bp\n  property_service/libpropertyinfoserializer/Android.bp\n  property_service/property_info_checker/Android.bp\n  qemu_pipe/Android.bp\n  reboot/Android.bp\n  rootdir/Android.bp\n  rootdir/Android.mk\n  rootdir/avb/Android.bp\n  rootdir/avb/Android.mk\n  run-as/Android.bp\n  sdcard/Android.bp\n  set-verity-state/Android.bp\n  shell_and_utilities/Android.bp\n  storaged/Android.bp\n  toolbox/Android.bp\n  trusty/apploader/Android.bp\n  trusty/confirmationui/Android.bp\n  trusty/confirmationui/fuzz/Android.bp\n  trusty/coverage/Android.bp\n  trusty/fuzz/Android.bp\n  trusty/fuzz/test/Android.bp\n  trusty/gatekeeper/Android.bp\n  trusty/gatekeeper/fuzz/Android.bp\n  trusty/keymaster/Android.bp\n  trusty/keymaster/fuzz/Android.bp\n  trusty/libtrusty/Android.bp\n  trusty/libtrusty/tipc-test/Android.bp\n  trusty/secure_dpu/Android.bp\n  trusty/storage/interface/Android.bp\n  trusty/storage/lib/Android.bp\n  trusty/storage/proxy/Android.bp\n  trusty/storage/tests/Android.bp\n  trusty/utils/spiproxyd/Android.bp\n  trusty/utils/trusty-ut-ctrl/Android.bp\n  usbd/Android.bp\n  watchdogd/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  debuggerd/Android.bp\n  fastboot/Android.bp\n  libkeyutils/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-MIT\nto:\n  libcutils/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT\nto:\n  fs_mgr/Android.bp\n  fs_mgr/libfs_avb/Android.bp\n  trusty/Android.bp\n  trusty/utils/rpmb_dev/Android.bp\n\nAdded SPDX-license-identifier-BSD\nto:\n  fastboot/fuzzy_fastboot/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\nChange-Id: Id740a7d2884556081fdb68876584b25eb95e1bef\n"
    },
    {
      "commit": "c3a206ccda9a78dd45d06b7d68dbe83e1fba779e",
      "tree": "cd137e76557bf1aadffe3cb43e02ab642bc81c71",
      "parents": [
        "187b7d19504ca8bdcbc6217c06a117017b4c6287"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 16 20:01:20 2021 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 16 20:01:20 2021 +0000"
      },
      "message": "Revert \"[LSC] Add LOCAL_LICENSE_KINDS to system/core\"\n\nThis reverts commit 187b7d19504ca8bdcbc6217c06a117017b4c6287.\n\nReason for revert: system/core is multiple projects, not one.\n\nChange-Id: I790ea41741f8cd9b8b6db2f59a49e71fb0958fd6\n"
    },
    {
      "commit": "187b7d19504ca8bdcbc6217c06a117017b4c6287",
      "tree": "0656ad03ff6e56b17ab0d4a8677955cab2c16cba",
      "parents": [
        "83eae36647eef27b75b128c5bce4732229d2ca0d"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 12 17:48:16 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Feb 16 04:10:03 2021 -0800"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to system/core\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  bootstat/Android.bp\n  cli-test/Android.bp\n  code_coverage/Android.bp\n  cpio/Android.bp\n  debuggerd/crasher/Android.bp\n  debuggerd/proto/Android.bp\n  diagnose_usb/Android.bp\n  fs_mgr/libdm/Android.bp\n  fs_mgr/libfiemap/Android.bp\n  fs_mgr/liblp/Android.bp\n  fs_mgr/libsnapshot/Android.bp\n  fs_mgr/libstorage_literals/Android.bp\n  fs_mgr/libvbmeta/Android.bp\n  fs_mgr/tests/Android.bp\n  fs_mgr/tools/Android.bp\n  gatekeeperd/Android.bp\n  healthd/Android.bp\n  healthd/testdata/Android.bp\n  init/Android.bp\n  init/Android.mk\n  init/sysprop/Android.bp\n  init/test_kill_services/Android.bp\n  init/test_service/Android.bp\n  libappfuse/Android.bp\n  libasyncio/Android.bp\n  libbinderwrapper/Android.bp\n  libcrypto_utils/Android.bp\n  libcrypto_utils/tests/Android.bp\n  libdiskconfig/Android.bp\n  libgrallocusage/Android.bp\n  libkeyutils/mini_keyctl/Android.bp\n  libmodprobe/Android.bp\n  libnetutils/Android.bp\n  libpackagelistparser/Android.bp\n  libprocessgroup/Android.bp\n  libprocessgroup/cgrouprc/Android.bp\n  libprocessgroup/cgrouprc_format/Android.bp\n  libprocessgroup/profiles/Android.bp\n  libprocessgroup/setup/Android.bp\n  libqtaguid/Android.bp\n  libsparse/Android.bp\n  libstats/push_compat/Android.bp\n  libsuspend/Android.bp\n  libsync/Android.bp\n  libsystem/Android.bp\n  libsysutils/Android.bp\n  libusbhost/Android.bp\n  libutils/Android.bp\n  libvndksupport/Android.bp\n  libvndksupport/tests/Android.bp\n  llkd/Android.bp\n  llkd/tests/Android.bp\n  property_service/libpropertyinfoparser/Android.bp\n  property_service/libpropertyinfoserializer/Android.bp\n  property_service/property_info_checker/Android.bp\n  qemu_pipe/Android.bp\n  reboot/Android.bp\n  rootdir/Android.bp\n  rootdir/Android.mk\n  rootdir/avb/Android.bp\n  rootdir/avb/Android.mk\n  run-as/Android.bp\n  sdcard/Android.bp\n  set-verity-state/Android.bp\n  shell_and_utilities/Android.bp\n  storaged/Android.bp\n  toolbox/Android.bp\n  trusty/apploader/Android.bp\n  trusty/confirmationui/Android.bp\n  trusty/confirmationui/fuzz/Android.bp\n  trusty/coverage/Android.bp\n  trusty/fuzz/Android.bp\n  trusty/fuzz/test/Android.bp\n  trusty/gatekeeper/Android.bp\n  trusty/gatekeeper/fuzz/Android.bp\n  trusty/keymaster/Android.bp\n  trusty/keymaster/fuzz/Android.bp\n  trusty/libtrusty/Android.bp\n  trusty/libtrusty/tipc-test/Android.bp\n  trusty/secure_dpu/Android.bp\n  trusty/storage/interface/Android.bp\n  trusty/storage/lib/Android.bp\n  trusty/storage/proxy/Android.bp\n  trusty/storage/tests/Android.bp\n  trusty/utils/spiproxyd/Android.bp\n  trusty/utils/trusty-ut-ctrl/Android.bp\n  usbd/Android.bp\n  watchdogd/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  debuggerd/Android.bp\n  fastboot/Android.bp\n  libkeyutils/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-MIT\nto:\n  Android.bp\n  libcutils/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT\nto:\n  fs_mgr/Android.bp\n  fs_mgr/libfs_avb/Android.bp\n  trusty/utils/rpmb_dev/Android.bp\n\nAdded SPDX-license-identifier-BSD\nto:\n  fastboot/fuzzy_fastboot/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\nChange-Id: I5bd81adb5cdcf2b4dd4141b204eb430ff526af8f\n"
    },
    {
      "commit": "2b3ebaf5c03acaffa1607d6385a2508f4bdd320e",
      "tree": "d16b25a5d554f13b6e9ecc929ea746ded7fac285",
      "parents": [
        "fcaed0effab54fa6face42a1b55c26760df0a074"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Jul 31 15:21:54 2020 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Jul 31 15:53:18 2020 -0700"
      },
      "message": "SocketClient: don\u0027t ignore SIGPIPE\n\n1) All current users are better off ignoring SIGPIPE at the beginning\n   of their process instead of ignoring it just for SocketClient\n2) This isn\u0027t thread safe if users did want it, since sigaction()\n   ignores SIGPIPE for the entire process\n3) This costs 5-10% of logd CPU time when logcat is reading logs\n\nAlso clean up the error handling in SocketClient::sendDataLockedv().\n\nTest: kill logcat and see that logd doesn\u0027t crash\nTest: run simpleperf and see that no cycles are going to sigaction\nChange-Id: I6532c8a0d71338e534411707b9a9bd785145c730\n"
    },
    {
      "commit": "2c89f97f0ae7eeb3474143a2d004e724272383b4",
      "tree": "7cd5082200ca149b8418161e4d9f057246a0ce26",
      "parents": [
        "5ce349927da512ee043aae119e73842db3283a18"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 11:11:55 2020 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 11:11:55 2020 -0700"
      },
      "message": "Cleanup for #inclusivefixit.\n\nTest: treehugger\nChange-Id: I44f710cbda4497c9d01a1ff7c1dcdb8f0eda6acc\n"
    },
    {
      "commit": "7ea0d74bc8e508f9603e21aa8c98ec11c22215b2",
      "tree": "ef4f1d7f340e67c8d326d01cefe82e4a00a33c55",
      "parents": [
        "18da289fac2dd3822f1da83b229df3d60d1c3e9f"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Thu Apr 16 18:48:33 2020 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Wed May 13 08:18:06 2020 +0900"
      },
      "message": "Set min_sdk_version to be part of mainline modules\n\nModules contributing mainline modules (APK/APEX) should set\nmin_sdk_version as well as apex_available.\n\nFor now setting min_sdk_version doesn\u0027t change build outputs.\nBut build-time checks will be added soon.\n\nBug: 152655956\nTest: m\nChange-Id: Ida890adfe6dfac79267fc0e18b63d2330266438c\n"
    },
    {
      "commit": "077d1ea61bff261caa81b2a8c4574cf0cf872124",
      "tree": "2cfc9489bffa362d003b219676ad0c1f102c4ece",
      "parents": [
        "6153b71aea12ca8595d15b87e1ee00310109c2ff"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon May 11 11:37:17 2020 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon May 11 22:33:27 2020 +0900"
      },
      "message": "Simplify code that parses ifa_flags.\n\nWhen parsing an RTM_NEWADDR or RTM_DELADDR, ifaddr is always\npresent (unless the message is invalid). So ifaddr-\u003eifa_flags is\nalways known before any attributes are parsed.\n\nBug: 155005831\nTest: atest NetworkStackNextIntegrationTests:IpClientIntegrationTest continues to apss\nChange-Id: Id1998faccca7d81c1b7f3e85e4912aa22919e94a\n"
    },
    {
      "commit": "096fc5351fba3c35f4ec2d45c738a594da672458",
      "tree": "49b4978652b28794efc031ecc78bcde750a915c3",
      "parents": [
        "c3d30bfdfff894419a4386685bc711b07ab917de"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Sun Apr 26 19:21:12 2020 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Sun May 10 11:36:59 2020 +0900"
      },
      "message": "Parse IFA_F_* values above 0x80.\n\nIn RTM_NEWADDR messages, the first 8 flags are reported in the\nifa_flags field in struct ifaddrmsg, but flags above 0x80 are\nreported in the IFA_FLAGS attribute. NetlinkEvent currently only\nlooks at ifa_flags, so it cannot see higher-value flags such as\nIFA_F_STABLE_PRIVACY. Fix this by parsing the IFA_FLAGS\nattribute.\n\nBug: 155005831\nTest: makes new test in aosp/1295495 pass\nChange-Id: I723f1106cbcea2186fc6452305942a0f8301fd2a\n"
    },
    {
      "commit": "a806a7153ffa1df5deb3921f5da709b7b7f87e21",
      "tree": "ccef03ff634d334b414331ba79bd125718cce6a4",
      "parents": [
        "db22f23dd325fe11103d7c8a4304bde179b8b5c7"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Tue Mar 31 19:55:06 2020 -0700"
      },
      "committer": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Tue Mar 31 20:25:33 2020 -0700"
      },
      "message": "NetlinkEvent - ignore captive portal and pref64 nd user opts\n\nThese are provided to userspace by newer kernels.\n\nTest: builds\nBug: 150648313\nChange-Id: I811c75e9a4739db149f502b9a43c99a8ed883341\n"
    },
    {
      "commit": "0c0b774a648fac23dd4168669579a1efaf05aee9",
      "tree": "7fc49f18eea4851ecd5b5e690baa4bfa4ac7a36b",
      "parents": [
        "59de77e777af15fe56bb3168a1518506953f5c2f"
      ],
      "author": {
        "name": "Jeffrey Huang",
        "email": "jeffreyhuang@google.com",
        "time": "Fri Feb 14 10:27:17 2020 -0800"
      },
      "committer": {
        "name": "Jeffrey Huang",
        "email": "jeffreyhuang@google.com",
        "time": "Fri Feb 14 10:41:15 2020 -0800"
      },
      "message": "Allow apexes to link against more libs\n\nBug: 145923087\nTest: m -j\nChange-Id: I45e002ffbd16f13b71f32c80e8a2f826bfa9ec2e\n"
    },
    {
      "commit": "71ac5c883bba78094dc8d193c2c445ef643777b6",
      "tree": "e353377c84fc33f48340cc5dbbd0463146cc55b5",
      "parents": [
        "687b55261c2e0e9732ab8b59e85872a863a0f1f5"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Dec 09 15:10:06 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Dec 10 12:53:39 2019 -0800"
      },
      "message": "Copy necessary ipt_ULOG.h structure to source.\n\nThe ipt_ULOG.h file has been deprecated, so it\u0027s being removed from\nthe bionic uapi kernel headers. Since this is the only code that\nis using that file, copy the one structure needed to parse one type\nof message into the file that needs it.\n\nTest: Builds.\nChange-Id: Ib879e655d598256c424792675d24e647eee33f89\n"
    },
    {
      "commit": "d0e4938dfe4d4ae92d5e16cf6085245b73316f7a",
      "tree": "93aa91165c8ec682e55923eefbc7c27c0ffacfd1",
      "parents": [
        "2ddb8df2ef22514f1bf91fe73b99877d19b2a964"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Apr 10 23:04:41 2019 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Apr 24 00:35:58 2019 +0900"
      },
      "message": "Enable clang-tidy for libsysutils.\n\nEnable the same warnings used elsewhere in the tree, and fix the\ntwo warnings it found (two safe uses of strcpy and one use of\natoi).\n\nTest: builds, boots\nTest: atest libsysutils_tests\nTest: atest --test-mapping system/netd\nChange-Id: I8e5d04da20cc4127439ad9fbda0e4e64f0e671d3\n"
    },
    {
      "commit": "dae0195380686dbec450e298f4acf47b5f9576e6",
      "tree": "e79afe5df5de5355fb3d3ceb73a9e10baa533254",
      "parents": [
        "3458bb6ce1d3e73e15075b5962a3662af0af5e04"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Apr 10 12:01:34 2019 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Apr 10 12:11:42 2019 +0900"
      },
      "message": "Make the SocketListener control pipe O_CLOEXEC.\n\nChildren of processes that use SocketListener should not be able\nto stop the SocketListener.\n\nTest: builds, boots\nTest: atest libsysutils_tests\nTest: atest --test-mapping system/netd\nChange-Id: I64898d9966f62004468b8e8a43b59be4a81a8cc4\n"
    },
    {
      "commit": "9f409f2e4c6e420ecce745868625d10a9b74dd33",
      "tree": "d09cb390e09504415215e729034a3282f3b99625",
      "parents": [
        "c3e96512c0e6243531f092e706ba002fd77997c6"
      ],
      "author": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Tue Mar 12 18:05:43 2019 +0800"
      },
      "committer": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Thu Mar 21 23:09:16 2019 +0800"
      },
      "message": "Enlarge cmd buffer size of FrameworkListener\n\nOnly Netd and Logd use FrameworkListener currently.\nRun realted test to ensure anything are still fine.\n\nBug: 126307309\nTest: built, flashed, booted\n      system/netd/tests/runtests.sh pass\n      atest CtsLogdTestCases\n\nChange-Id: Iacd0cc13f23f457a0868a8a706080c3edc9a3cbd\n"
    },
    {
      "commit": "54302442e2369986b0fceffe2208da8ee793f1e8",
      "tree": "51756ada9858e33caef4dd93329eb4b6e635a407",
      "parents": [
        "f5b7361cf454dc248a8c5f5f2ad7b948e8619b68"
      ],
      "author": {
        "name": "junyulai",
        "email": "junyulai@google.com",
        "time": "Tue Feb 12 13:39:21 2019 +0800"
      },
      "committer": {
        "name": "junyulai",
        "email": "junyulai@google.com",
        "time": "Thu Feb 14 14:13:53 2019 +0800"
      },
      "message": "Refactor OWNERS files for Android Core Networking\n\nBug: 120829091\nTest: build/make/tools/checkowners.py -c -v path/OWNERS\nChange-Id: I0b9dd6a6c01e46d887d1161179ca3791f461dce6\n"
    },
    {
      "commit": "c987859c702c2f6e299774cf7ab705945e0bd6ab",
      "tree": "a319e178f73979823bff48cc93602664cb1fa2b3",
      "parents": [
        "5ae47e10c82be1889a8d86f28f37302aaefcd306"
      ],
      "author": {
        "name": "Mike Yu",
        "email": "yumike@google.com",
        "time": "Wed Dec 05 20:53:07 2018 +0900"
      },
      "committer": {
        "name": "Mike Yu",
        "email": "yumike@google.com",
        "time": "Thu Dec 06 12:32:49 2018 +0900"
      },
      "message": "libsysutils can be linked statically\n\nLet libsysutils able to be statically linked by libnetd_resolv to\nminimize the dependence on system ABI.\n\nTest: m libsysutils\nChange-Id: Ideb322dbc8d594a8a37d64f8140bc37090a4e238\n"
    },
    {
      "commit": "e6e2b3cda4d702cffd887ec653d4435b9fa77241",
      "tree": "a20336bcc3b327bd255b9d7b8ca6bf6be7fd0296",
      "parents": [
        "ce2a8e5b9e8770acb461f7b336bc2eba9bf5f870"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Oct 10 14:39:02 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Oct 10 14:39:02 2018 -0700"
      },
      "message": "Suppress implicit-fallthrough warning.\n\nBug: 112564944\nTest: make checkbuild\nChange-Id: I2bcfd08ec62f6d5953a9e25dbeaa42ffefda6d1c\n"
    },
    {
      "commit": "502f4864d6c92fce4cb0e4f7f2b12d7124da902b",
      "tree": "b34cb377a8a6543fb0baf68e566b120209b3aaf9",
      "parents": [
        "c2501fda600ea2067099c1de042e3db7acde74ee"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 13 11:08:41 2018 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Sep 17 16:50:11 2018 +0000"
      },
      "message": "Suppress implicit-fallthrough warnings.\n\nAdd FALLTHROUGH_INTENDED for clang compiler.\n\nBug: 112564944\nTest: build with global -Wimplicit-fallthrough.\nChange-Id: I40f8bbf94e207c9dd90921e9b762ba51abab5777\n"
    },
    {
      "commit": "11b33690e446897d228dd22273483a5901d47b66",
      "tree": "b9e49b7e2f78569075391abeb46a6c20cc28346a",
      "parents": [
        "4931a29f6d29209be0c91dda3038a4a4fd83637c"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Wed Sep 05 16:52:36 2018 +0900"
      },
      "committer": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Wed Sep 05 21:07:23 2018 +0900"
      },
      "message": "Delete sysutils/List.h\n\nConvert the last user to a regular std::vector, and then put List.h out\nof its misery.\n\nTurns out there\u0027s another copy of this ancient header:\nsystem/core/libutils/include/utils/List.h. This one is included in\nvarious places, but most don\u0027t actually use it. There seems to\nbe a case for a tool to detect unused headers...\n\nTest: m\nChange-Id: Ie457bf5e06f6082537f5de2e1fefe7f05a1f0792\n"
    },
    {
      "commit": "33f91de2c60370edb336045aa9b65bb3cf099341",
      "tree": "c38ed935b102ece98db7c38341d3886238a6b4c6",
      "parents": [
        "7bb77d321dec978dedec2c5d292f165876c2879a",
        "3487e22b669dfd5a6ff238abbbfd2f9dacbacfd2"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 28 17:03:44 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 28 17:03:44 2018 +0000"
      },
      "message": "Merge \"Use multiple patterns and emails in per-file syntax.\""
    },
    {
      "commit": "ca76859aca4b7c69139e05014c5211781cfa3d56",
      "tree": "2b9fa006e900f296029c3211ca6db20c4580e2bc",
      "parents": [
        "763ccaa104e481614a25af05c4a639d4c4c089f3"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Wed May 23 19:02:52 2018 +0900"
      },
      "committer": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Tue Aug 28 05:52:56 2018 +0900"
      },
      "message": "SocketListener: use poll() instead of select()\n\nFD_SET is limited to 1024 file descriptors in Linux, which causes\nprocesses with too many open files or connections to crash:\n\n  FORTIFY: FD_ISSET: file descriptor 1024 \u003e\u003d FD_SETSIZE 128\n\nThe fix we used elsewhere is replacing select() with poll(), but in the\ncase of SocketListener we additionally need to replace the SocketClient\nlist with a map indexed by fd in order to avoid quadratic behavior on\neach poll() wakeup.\n\nBug: 79838856\nTest: device boots and appears to work normally, tests pass\nChange-Id: I4a8f1804fa990d3db3a2c96b9acd60b2c7135950\n"
    },
    {
      "commit": "763ccaa104e481614a25af05c4a639d4c4c089f3",
      "tree": "bf07da86228431acf3e9cd8a3ee6f216d7e2baab",
      "parents": [
        "572d33347baac6fbcda09a2e66e38a1bd969cf7c"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Tue Jun 05 22:32:34 2018 +0900"
      },
      "committer": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Tue Aug 28 05:52:48 2018 +0900"
      },
      "message": "libsysutils: add some rudimentary tests\n\nTest: atest libsysutils_tests\nChange-Id: I3aa44c5af821c3161cf598b86216480d2424d336\n"
    },
    {
      "commit": "3487e22b669dfd5a6ff238abbbfd2f9dacbacfd2",
      "tree": "a6601bcda8bc10ae4e92bf2981b3071321841b8e",
      "parents": [
        "472223ee35f5b3ab3bb662bfc8af9d06f46b43c5"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Aug 23 14:49:43 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Aug 27 10:19:32 2018 -0700"
      },
      "message": "Use multiple patterns and emails in per-file syntax.\n\nTest: build/make/tools/checkowners.py -c -v OWNERS\nChange-Id: I60460b93903afbb01a87d7f11ac526fbde9f392c\n"
    },
    {
      "commit": "4888525c558de0584c073b8701cebce312f768cc",
      "tree": "253531db7d771c207a50347a9c055b1720bc5595",
      "parents": [
        "56795ac483e09678b4c92b7cc213c1c68f8718f7"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Jul 24 16:34:27 2018 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Jul 24 16:34:27 2018 -0700"
      },
      "message": "[libsysutils] Modernize codebase by replacing NULL with nullptr\n\nFixes -Wzero-as-null-pointer-constant warning.\n\nTest: m\nBug: 68236239\nChange-Id: I9e95daa0750f2622d1c4788941fdfae23ee61801\n"
    },
    {
      "commit": "6effd4d6a36c5188d05cd43410e8903156431106",
      "tree": "7a49d53e695d289f49adcc7bdc7d42075ab3ec3e",
      "parents": [
        "f5aaa81d75ca968aed9a3e6796569568d44971a7",
        "5f4062438b22eea57d7ab04ac7e50829587157af"
      ],
      "author": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Wed Jun 27 16:27:26 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 27 16:27:26 2018 +0000"
      },
      "message": "Merge \"Parse IfIndex for Netlink RTM_NEWADDR / RTM_DELADDR event\""
    },
    {
      "commit": "59112043262a03877234b2ffc75fee273e39d9bd",
      "tree": "56357573487389d04f4a6e9ee89f094695462070",
      "parents": [
        "9be5f2df0ad147160cc2b2c2566b4b09834d963e",
        "246d35d02ba85784ff41187492a0ceb50a96d5b7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 07 16:44:24 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 07 16:44:24 2018 +0000"
      },
      "message": "Merge \"libsysutils: Delete dead code: FrameworkClient\""
    },
    {
      "commit": "246d35d02ba85784ff41187492a0ceb50a96d5b7",
      "tree": "36fec82c09946710fab2c82e8faa860046c43054",
      "parents": [
        "5c1d56dffa0c05ad6332ea6d9d31606ac782da44"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Thu Jun 07 20:03:02 2018 +0900"
      },
      "committer": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Thu Jun 07 20:20:01 2018 +0900"
      },
      "message": "libsysutils: Delete dead code: FrameworkClient\n\nTest: mm\nChange-Id: I372f2aa8d7f7e3f5ce1cd9399292bef9e4900de7\n"
    },
    {
      "commit": "5f4062438b22eea57d7ab04ac7e50829587157af",
      "tree": "4e92122d06a7f276e4fa072b373abeb24dc06ec0",
      "parents": [
        "51f0f7e791570d18dcfb13e2d9bd07faf7db50ec"
      ],
      "author": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Wed May 16 23:35:41 2018 +0100"
      },
      "committer": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Thu Jun 07 08:10:47 2018 +0100"
      },
      "message": "Parse IfIndex for Netlink RTM_NEWADDR / RTM_DELADDR event\n\nBug: 64692591\nTest: cts-tradefed run commandAndExit cts-dev -m CtsHostsideNetworkTests -t com.android.cts.net.HostsideVpnTests\nChange-Id: Icb2ae1264f0d2fcd285b04edd27641175dd2646f\nMerged-In: Icb2ae1264f0d2fcd285b04edd27641175dd2646f\n(cherry picked from commit 3668291d8ece81ce1eccdee150588c2d71cae723)\n"
    },
    {
      "commit": "2a7c887198939ac1d32cabfb916b902d0a0986d5",
      "tree": "aa93268a9b7fdaac70fa95dc4ef4def5d53f2e4c",
      "parents": [
        "5c1d56dffa0c05ad6332ea6d9d31606ac782da44",
        "58f2daaeb4eeb9211470c147c1ddf6428c2a63d3"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Jun 06 07:48:55 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 06 07:48:55 2018 +0000"
      },
      "message": "Merge \"Move per-file OWNERS directives to their directories.\""
    },
    {
      "commit": "58f2daaeb4eeb9211470c147c1ddf6428c2a63d3",
      "tree": "24e696cd0109b1a9570c308cb6d7560b10017537",
      "parents": [
        "666f62e1c77566beacf597edfb21d0c1053df6f6"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Jun 06 11:44:26 2018 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Jun 06 11:49:40 2018 +0900"
      },
      "message": "Move per-file OWNERS directives to their directories.\n\nAs documented at go/gerrit-owners, per-file directives cannot\ncontain directory paths. Therefore the current per-file\ndirectives in system/core/OWNERS have no effect.\n\nTest: build/make/tools/checkowners.py system/core/{,libsysutils/src/,include/sysutils/}OWNERS\nChange-Id: Ia88b2be42dd50346578bb51dd17fb6136a4591f1\n"
    },
    {
      "commit": "775ad2551053de3dae0d73a41364bacb78c2484f",
      "tree": "2f4e23bfd25cb4fb80147dea0243866d31581c36",
      "parents": [
        "0ad41cf3f44e5403132f7f620d8199446cb815b4"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jun 06 02:17:24 2018 +0000"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jun 06 02:17:24 2018 +0000"
      },
      "message": "Revert \"SocketListener: use poll() instead of select()\"\n\nThis reverts commit 0ad41cf3f44e5403132f7f620d8199446cb815b4.\n\nReason for revert: Breaks many tests, see b/109745952#comment18 b/109745952#comment20 and b/79838856#comment19 amongst others\n\nChange-Id: I92db38d47cd1dcd7841091e37e3b65dce9456cdf\n"
    },
    {
      "commit": "0ad41cf3f44e5403132f7f620d8199446cb815b4",
      "tree": "c9c0c28f5444cd9d97bff3d0fc1a457ad1df712e",
      "parents": [
        "39cab7cd2538b0f31b3672c71195c47ba3b00de9"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Wed May 23 19:02:52 2018 +0900"
      },
      "committer": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Fri May 25 18:43:12 2018 +0900"
      },
      "message": "SocketListener: use poll() instead of select()\n\nFD_SET is limited to 1024 file descriptors in Linux, which causes\nprocesses with too many open files or connections to crash:\n\n  FORTIFY: FD_ISSET: file descriptor 1024 \u003e\u003d FD_SETSIZE 128\n\nThe fix we used elsewhere is replacing select() with poll(), but in the\ncase of SocketListener we additionally need to replace the SocketClient\nlist with a map indexed by fd in order to avoid quadratic behavior on\neach poll() wakeup.\n\nBug: 79838856\nTest: device boots and appears to work normally\nChange-Id: I19ca4be675e9638104c0e7acf4a4bc62085e8ecd\n"
    },
    {
      "commit": "5e5e5e9a733d9427064f6fb0a72df9769f634d92",
      "tree": "53b7e9ae4dd887dc0622dce70e41e030c349ec43",
      "parents": [
        "d555e08224d2a08f4f12c16ae4109b63b9f7def9"
      ],
      "author": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Fri Mar 02 01:32:53 2018 -0800"
      },
      "committer": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Wed Mar 07 11:39:52 2018 +0900"
      },
      "message": "Include iface index in the netlink event\n\nThe TrafficController inside netd also get notified when the interface\non device added or removed, and it need both ifaceName and ifaceIndex\ninformation from Netlink event. Add the ifaceIndex in the event can\navoid the TrafficController to run if_nametoindex again when receive\nthe event.\n\nBug: 30950746\nBug: 73137611\nTest: new interface show up in bpf interface map.\nChange-Id: Ia3b4aeb8eff345ce7cf03ccec88f0893cfe125c0\n"
    },
    {
      "commit": "cbfd65d9475f914b384c1d2bb5a71817831704e9",
      "tree": "9d25c64ba4f0fadf6d991d2f34be54984f42317b",
      "parents": [
        "23cc38d44055fe12d544c59202375f10436c1904"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Nov 28 15:32:40 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Nov 28 06:42:04 2017 +0000"
      },
      "message": "Don\u0027t complain that the DNSSL RA option is \"unknown\".\n\nThis option isn\u0027t unknown, we just don\u0027t support it.\n\nBug: 69778511\nTest: walleye builds, boots, connects to IPv6 network\nChange-Id: If3a37d855f404da708fec4a7ba242ed41a493895\n"
    },
    {
      "commit": "e439ffc762c91fbc1e3512c3b9bad4360102b3a6",
      "tree": "31ffcd7151780a72cca5823c7e2bde24b090f506",
      "parents": [
        "7229576bfed017f78d90102db357de2f9f1f5b45"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Oct 03 18:44:11 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Oct 05 14:56:44 2017 +0900"
      },
      "message": "Stop depending on libnl.\n\nWe only use it for trivial functions. Replace them and drop the\ndependency.\n\nBug: 67345547\nTest: bullhead builds, boots\nTest: CtsOsTestCases android.os.cts.StrictModeTest passes\nChange-Id: I36254962284babdd1a55a32a76dd0dc92d85420c\n"
    },
    {
      "commit": "6a7e8823165dbe2e60caac9a8e09a9de7f3a157e",
      "tree": "6b048b89df29070c67d363eeb3a4e24f5ad1825c",
      "parents": [
        "e997ba9d22cfaadb20f990b6840934e2b25acd89"
      ],
      "author": {
        "name": "Justin Yun",
        "email": "justinyun@google.com",
        "time": "Mon Jul 24 15:19:45 2017 +0900"
      },
      "committer": {
        "name": "Jae Shin",
        "email": "jaeshin@google.com",
        "time": "Thu Sep 14 08:35:16 2017 +0000"
      },
      "message": "Mark the modules as VNDK in Android.bp\n\nAs a VNDK module, Android.bp must have \u0027vndk\u0027 tag as well as\n\u0027vendor_available: true\u0027.\n\nThe \u0027vndk\u0027 tag for VNDK module is formated as below:\nvndk: {\n        enabled: true,\n},\n\nVNDK modules will be installed both in system/lib(64) as normal and\nin system/lib(64)/vndk as a vendor variant.\n\nBug: 63866913\nTest: build and boot with BOARD_VNDK_VERSION\u003dcurrent\nMerged-In: Icecb22ed2ed0f58c3168605d4cf64815e2dda750\nChange-Id: Icecb22ed2ed0f58c3168605d4cf64815e2dda750\n(cherry picked from commit 9b0ed7294273d5f10020388e5a5b7e545a2fd1de)\n"
    },
    {
      "commit": "087f3b74afb8ba814fee8c76c668badece0c06f4",
      "tree": "04a3aadcead96334f37afb9e62d55d372175cc84",
      "parents": [
        "f444650d0dfd160f3a031e08898cd00c90ad92f7"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Jul 11 15:02:44 2017 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Jul 11 15:14:26 2017 -0700"
      },
      "message": "Remove old LOG_EVENT_* code from libsysutils\n\nAs a side effect, this change fixes\nlibbsysutils \u003d\u003e liblog dependencies. LOG_EVENT_*\nmacros are not defined for liblog.vendor.\n\nTest: BOARD_VNDK_VERSION\u003dcurrent mma\nBug: 33241851\nBug: 63034227\nChange-Id: I3df700d97481ec9aa59cf1796da1e991af28bdf5\n"
    },
    {
      "commit": "d3c86412adfb3b782ee8b4a70b8c25be5d35138a",
      "tree": "b12acd3e782c728bba22027665ea4a33c4a755eb",
      "parents": [
        "4c28ca1ac89afcc6bb9ec82b7cd4892aaf46addc"
      ],
      "author": {
        "name": "NIEJuhu",
        "email": "niejuhu@xiaomi.com",
        "time": "Sat Jun 10 13:20:41 2017 +0800"
      },
      "committer": {
        "name": "Juhu Nie",
        "email": "niejuhu@xiaomi.com",
        "time": "Tue Jun 20 06:32:11 2017 +0000"
      },
      "message": "libsysutils: Fix vold vulnerability in FrameworkListener\n\nDon\u0027t release the sender socket when FrameworkListener receives\na command that exceed the maximum buffer length\n\nBug: https://issuetracker.google.com/issues/62812018\nTest: manual\n\nChange-Id: I160f504f3fb902ba25fc79deb8ae7d78d811a807\n"
    },
    {
      "commit": "a1bdd2412e05a217a2c8bb1488050110b4568ed4",
      "tree": "b9f31eb77da7e8757906803a1e1229a39abf2f8b",
      "parents": [
        "efb30b0ccdd22500897033a0923a079d4454adb8"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Tue May 16 14:53:23 2017 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed May 24 13:01:24 2017 -0700"
      },
      "message": "Mark libsysutils vendor_available.\n\nlibsysutils belongs to vndk-cap. Mark it vendor_available to enable vndk\nabi stability checks on it.\n\nDetails: https://android-review.googlesource.com/368372\n\nTest: mm -j64\n\nBug: 38244611\n\nChange-Id: I3ef1d09c7e836549eb13ce68ac7cdcd5923bde0f\n"
    },
    {
      "commit": "d0d759dc09d7884298c39f7adc3bebdde08b12f5",
      "tree": "358e441d751e9a715d2ee3645f66b434a9c3744d",
      "parents": [
        "bd53ea406396c037f87444c7f0472682de25de50"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 24 17:15:31 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 24 17:15:31 2017 -0700"
      },
      "message": "libsysutils: Android.mk -\u003e Android.bp\n\nTest: links\nChange-Id: If1d034ecb880e8c41d58b14ebebcda5b72e88424\n"
    },
    {
      "commit": "b7788fd454da2201c6e48dededa9b11873ef621e",
      "tree": "cf78e024b3264037fc7fceeed4cf78abbf304e37",
      "parents": [
        "f719c255faf831357fe7ee5e3f8b23f4be7caee3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 28 09:54:36 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 28 14:12:54 2017 -0800"
      },
      "message": "There\u0027s no longer a limit to property names.\n\nBug: http://b/33926793\nTest: boots\nChange-Id: I8554d7af74e064c114cf817f5a2ba1247fa2a2db\n"
    },
    {
      "commit": "33f671782a1985b02e4410b923e9688ffd3c1e71",
      "tree": "058d87c1df35d2eb545450dad1158b30968b3421",
      "parents": [
        "23f4e6b0a5ce3eee548a4cd9e857f522ddaf492b"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Tue Feb 07 15:39:25 2017 -0800"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Wed Feb 08 16:47:20 2017 -0800"
      },
      "message": "fix warning: Null pointer argument in call to memory comparison function\n\nThis fixes  warning: Null pointer argument in call to\nmemory comparison function [clang-analyzer-cplusplus.NewDeleteLeaks]\n\nBug: None\nTest: The warning is gone.\nChange-Id: I957365184966cc1435d7e37d64f2cc6a32846ebd\n"
    },
    {
      "commit": "75acc7bf81d43850694d39d2c45a20ca81d99379",
      "tree": "39f8b964c90102fbc6a8b954110342724cf6f394",
      "parents": [
        "897bc9b2b38ead33aa883359593eb4356b68bda2"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Thu Jan 05 10:39:38 2017 -0800"
      },
      "committer": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Tue Jan 24 22:51:36 2017 +0000"
      },
      "message": "Exporting C++ headers from system/core\n\nMoved headers from include/libutils and include/libsysutils to\nlibutils/include and libsysutils/include respectively, so they can be\nexported via these libs. They needed to be moved since Soong does\nnot allow export from external folder.\n\nAdded symlink from old locations. They are needed since Soong\nincludes system/core/include by default. Once all modules are\ncleaned up to explicitly add the required libs, the symlinks will be\nremoved.\n\nMoved headers of libutils to libutils_headers. They should be used\nby modules for header-only inlines. Added libutils_headers as\ndependency of libutils.\n\nSplit of C++ headers into those that have no dependency and those that\nhave dependency on libutils.so will be handled in a later CL.\n\nTest: Add above libs to shared lib of local module\nChange-Id: I122db72056b26b1f39bad1d9a0c2a1c5efda3550\n"
    },
    {
      "commit": "8a7297a09f3a0d98a4a058767f6a447ef0e9d77d",
      "tree": "04081c2735ce7f9f54f5c6d23a89abe9d04e3de7",
      "parents": [
        "de3e60043ceb9c814bd7a3dabc5fd734a63835cf",
        "27d2d49f4872c26831d3e016765c62def3d2fb01"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Oct 20 18:03:57 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 20 18:03:57 2016 +0000"
      },
      "message": "Merge \"system/core: preparation to pull back interfaces from android/log.h\"\nam: 27d2d49f48\n\nChange-Id: I604bb1d4cf62636663fa92e3d14a55887dbcae23\n"
    },
    {
      "commit": "cfd5b080af8de527d768f0ff7902c26af8d49307",
      "tree": "32295b3aeb6ba8a116592576939348d09814b0be",
      "parents": [
        "1edd61ce5d2f34ff34d015643b5915b3b1c186e8"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Oct 17 14:28:00 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Oct 20 08:11:39 2016 -0700"
      },
      "message": "system/core: preparation to pull back interfaces from android/log.h\n\nPoint to log/log.h where necessary, define LOG_TAG where necessary.\nAccept that private/android_logger.h is suitable replacement for\nlog/logger.h and android/log.h.\n\nCorrect liblog/README\n\nEffectively a cleanup and controlled select revert of\n\u0027system/core: drop or replace log/logger.h\u0027 and\n\u0027system/core: Replace log/log.h with android/log.h\u0027.\n\nTest: compile\nBug: 30465923\nChange-Id: Ic2ad157bad6f5efe2c6af293a73bb753300b17a2\n"
    },
    {
      "commit": "16f77860326dbcc9a34e0b7e3eab3ca8a2027e76",
      "tree": "0f417f50301198522f842d42e361442158e4f6a6",
      "parents": [
        "a8d0a469566d462dad94e78c3f7582489b0568ac",
        "eb189f147b701315bfacf7fdc4338b9153964ed1"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 22:12:55 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 30 22:12:55 2016 +0000"
      },
      "message": "system/core Replace cutils/log.h with android/log.h am: 66ce3e08c5\nam: eb189f147b\n\nChange-Id: I3f2b13e259d9bbb7bc714f21eab7181fa72c35bf\n"
    },
    {
      "commit": "66ce3e08c5632a20ea66bde6dd76397041edf034",
      "tree": "e77589e0f6c62e8ac1c8faabe2d9dd2934d3ecee",
      "parents": [
        "0dd4431072cce3c62876b728cb20aa5b77b11a8d"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Sep 28 10:07:20 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 12:47:05 2016 -0700"
      },
      "message": "system/core Replace cutils/log.h with android/log.h\n\nShould use android/log.h instead of cutils/log.h as a good example\nto all others.  Adjust header order to comply with Android Coding\nstandards.\n\nTest: Compile\nBug: 26552300\nBug: 31289077\nChange-Id: I2c9cbbbd64d8dccf2d44356361d9742e4a9b9031\n"
    },
    {
      "commit": "66e5e2432a88a4b2ba8bacbc3137438e95eb4011",
      "tree": "4c48120999e51c26adff6d7936e3ee4b6fab207a",
      "parents": [
        "c8146aa39f6845b95f8a098015f5b195098ac921",
        "8615d79d85e53c86028b702152bc00864b18f9d5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 23 23:05:59 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 23 23:05:59 2016 +0000"
      },
      "message": "Merge \"Most accept/accept4 calls in system/core don\u0027t actually want the remote address.\" am: 299d64144b\nam: 8615d79d85\n\nChange-Id: I89aeabf6efa8217c9acd3f8a766bbd18f7e994fa\n"
    },
    {
      "commit": "8615d79d85e53c86028b702152bc00864b18f9d5",
      "tree": "65afa58c78ea612d8824729717ce18654b4a10ff",
      "parents": [
        "504d4ccd7cc27806781af880cb2479075c11ad30",
        "299d64144bdf28b06489c64aa4e99c423b84c1c4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 23 23:03:20 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 23 23:03:20 2016 +0000"
      },
      "message": "Merge \"Most accept/accept4 calls in system/core don\u0027t actually want the remote address.\"\nam: 299d64144b\n\nChange-Id: I3fb9678dfed08f0b1d6e90e547ecae6cdcabc9a1\n"
    },
    {
      "commit": "3dcfa3fb1cec36b21ad026c618c85790a2353f72",
      "tree": "b5f5daae853a2c420873b40f92d4f18175d96abd",
      "parents": [
        "82b67fff06363c8e7a17058cb5ce748f21a27f11"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 23 12:50:00 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 23 12:50:00 2016 -0700"
      },
      "message": "Most accept/accept4 calls in system/core don\u0027t actually want the remote address.\n\nSo don\u0027t write the extra code for it or waste the kernel\u0027s time\ncopying it around.\n\nChange-Id: I93de64064c2d4fe58ba5b5322cfa69bf31a76dad\n"
    },
    {
      "commit": "233c9902cf5a7074b0498ad65447ea06f8735bc5",
      "tree": "befade80439b980d71661b44417735c2a02fbdf8",
      "parents": [
        "de9e6fb4b006a17179805fd4647beed1cc4c7dc2",
        "2f16eeede62be75301b1b0c786dce94f0bfac5ae"
      ],
      "author": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Fri Aug 19 22:53:32 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 22:53:32 2016 +0000"
      },
      "message": "Fix vold vulnerability in FrameworkListener am: 470484d2a2 am: e9e046df6c am: 109024f74a am: b906ad88b9 am: 2fadbb93a4 am: e04054d9bb am: 9745b11db1 am: 2f78b2c3d6 am: 2b5e6d8ffc am: 2427a462c0 am: 6b155c1cc4\nam: 2f16eeede6\n\nChange-Id: I3d2fdfc10f91080ca32aa6557b13391355427edc\n"
    },
    {
      "commit": "2f16eeede62be75301b1b0c786dce94f0bfac5ae",
      "tree": "af1ab7732a7249ee9a785059de77f35bdb6dbf07",
      "parents": [
        "9008a5cb8091b0deb98192c5aa239eca72858423",
        "6b155c1cc4db114f5bc9a3c47cb2f21e492eaa01"
      ],
      "author": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Fri Aug 19 22:50:00 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 22:50:00 2016 +0000"
      },
      "message": "Fix vold vulnerability in FrameworkListener am: 470484d2a2 am: e9e046df6c am: 109024f74a am: b906ad88b9 am: 2fadbb93a4 am: e04054d9bb am: 9745b11db1 am: 2f78b2c3d6 am: 2b5e6d8ffc am: 2427a462c0\nam: 6b155c1cc4\n\nChange-Id: Ie6c2bcee1deacb94259a6153097757674fa19251\n"
    },
    {
      "commit": "2f78b2c3d6b3d1311e7ca21a25925d3bbb09ff9f",
      "tree": "8d04557a12388a955cc19f013b66b08f705430fa",
      "parents": [
        "07909364731c8a102676e1f276ce29cb5b956bb2",
        "9745b11db15876b5081d2042093e13941823b661"
      ],
      "author": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Fri Aug 19 22:36:29 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 22:36:29 2016 +0000"
      },
      "message": "Fix vold vulnerability in FrameworkListener am: 470484d2a2 am: e9e046df6c am: 109024f74a am: b906ad88b9 am: 2fadbb93a4 am: e04054d9bb\nam: 9745b11db1\n\nChange-Id: I61f685976803f51db9ba85729554fc14efaa4b2c\n"
    },
    {
      "commit": "9745b11db15876b5081d2042093e13941823b661",
      "tree": "c6dcef6835b0ab47de6a0c76618d3191b2bc49b5",
      "parents": [
        "fdb4cd42f6c8f78a17906adc4c1935aaf69245f6",
        "e04054d9bba8c203b08f8caa01fdc2f2801dd18e"
      ],
      "author": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Fri Aug 19 22:34:46 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 22:34:46 2016 +0000"
      },
      "message": "Fix vold vulnerability in FrameworkListener am: 470484d2a2 am: e9e046df6c am: 109024f74a am: b906ad88b9 am: 2fadbb93a4\nam: e04054d9bb\n\nChange-Id: Ia5f46e5b9622946ca0e44fbe7399729807d2d08a\n"
    },
    {
      "commit": "b906ad88b9dbd17f947cce963626abfbc4da950f",
      "tree": "ec3f73eddf97f6fa9f6ee2f1339bc7558f2ae531",
      "parents": [
        "58dd6f7cba7d439bbc5eb527e4badd2a05baa89a",
        "109024f74a4cb12dfb4b2e34fd1e913aae1e0d3e"
      ],
      "author": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Fri Aug 19 22:11:27 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 22:11:27 2016 +0000"
      },
      "message": "Fix vold vulnerability in FrameworkListener am: 470484d2a2 am: e9e046df6c\nam: 109024f74a\n\nChange-Id: Ia6e8dca36bc28d442a6e374ecf033b79176f4b93\n"
    },
    {
      "commit": "109024f74a4cb12dfb4b2e34fd1e913aae1e0d3e",
      "tree": "43fd67e895cd1ad554105b330d87497e5809036a",
      "parents": [
        "7ed099593049f07d9939e0149c3e77b6f08ea341",
        "e9e046df6ca5cdfdb068526d764263d608dd4516"
      ],
      "author": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Fri Aug 19 22:08:22 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 22:08:22 2016 +0000"
      },
      "message": "Fix vold vulnerability in FrameworkListener am: 470484d2a2\nam: e9e046df6c\n\nChange-Id: I8f2452782817ddf03051af08e70ba9d4c4fa578a\n"
    },
    {
      "commit": "470484d2a25ad432190a01d1c763b4b36db33c7e",
      "tree": "339c658f3eb38f6ce3f731e50bbb810ed9a5b0cc",
      "parents": [
        "23effb07ee20a5e8ed923eb236fe2b3e492fa934"
      ],
      "author": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Fri Aug 12 11:52:46 2016 -0700"
      },
      "committer": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Fri Aug 19 17:05:25 2016 +0000"
      },
      "message": "Fix vold vulnerability in FrameworkListener\n\nModify FrameworkListener to ignore commands that exceed the maximum\nbuffer length and send an error message.\n\nBug: 29831647\nChange-Id: I9e57d1648d55af2ca0191bb47868e375ecc26950\nSigned-off-by: Connor O\u0027Brien \u003cconnoro@google.com\u003e\n(cherry picked from commit baa126dc158a40bc83c17c6d428c760e5b93fb1a)\n"
    },
    {
      "commit": "773e8c5e7c2bec23a2d7378891bebaabfd22d772",
      "tree": "2709896084903ae2f90033a53afa633c6f128c7b",
      "parents": [
        "b9d75acace816146077651e9bcf5a8d54a1ff653",
        "f5a2f6e963b4c82adbb129b2df460594524ebedf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 23 18:51:22 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 23 18:51:22 2016 +0000"
      },
      "message": "Merge \"Clean up CLOEXEC in SocketListener.\" am: ed83cfba68\nam: f5a2f6e963\n\n* commit \u0027f5a2f6e963b4c82adbb129b2df460594524ebedf\u0027:\n  Clean up CLOEXEC in SocketListener.\n"
    },
    {
      "commit": "fcd7295962270dfedbbe539a41ed554751610819",
      "tree": "9ff95f336d75e62b5bd5d9e2c020e9c7355dd1f1",
      "parents": [
        "fbaefc4d9d4e7e40ec0262123cd54762b81ed47a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 19 18:14:22 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 19 18:14:22 2016 -0800"
      },
      "message": "Clean up CLOEXEC in SocketListener.\n\nChange-Id: I9811573a4b64ef2e38f1e4ba17158911b05a5f34\n"
    },
    {
      "commit": "ef6454d3d3e54730de1a5b751d6c7b286d5a8575",
      "tree": "c8a296b02aa26db77f31a558707543cf1b833367",
      "parents": [
        "9136922045978385be99b0171c2c873aa6c2e186"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Feb 16 21:42:16 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Feb 16 23:12:26 2016 +0900"
      },
      "message": "Tolerate RTM_DELADDR messages from deleted interfaces.\n\nWhen an interface is deleted (which can happen, for example, to\nthe tun interfaces used for VPN and 464xlat), the kernel sends\nRTM_DELADDR messages for all its IP addresses.\n\nCurrently we ignore these because we cannot fetch the interface\nname. Instead, pass them up with an empty interface name so that\nNetlinkHandler can do something useful for them, such as destroy\nconnections on the IP addresses that are being deleted.\n\nBug: 26976388\nChange-Id: I2ced7e389228f9d665d0a87d97bd3452c8c0c98b\n"
    },
    {
      "commit": "7e16cc15b5e16ec35f4c9f0516a6cacf90326856",
      "tree": "ac9676eac446d951c7a0726f9b2ec24c3e96fe1c",
      "parents": [
        "1462c78c9cb1b4ee8d6b68b33fa7be64d6b9fbd4"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Dec 01 17:27:59 2015 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Dec 07 16:07:46 2015 +0900"
      },
      "message": "Switch from using sockaddr to sockaddr_storage.\n\nThis is to ensure sufficient space is always available.\n\nChange-Id: Ifa87b93ecdc90dcacbfb24446c872344da6703d3\n"
    },
    {
      "commit": "cc451785fe4426566f6c4a6a5156d4fb40bcc22d",
      "tree": "6b7151f7a2c0cc4b210f3326aa2226528ea3f041",
      "parents": [
        "3f62a020c48d5d812fb2898759b93a59dc24d310"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Jul 28 17:31:19 2015 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Jul 28 17:56:06 2015 +0900"
      },
      "message": "Fix incorrectly sized buffer.\n\nAlso: use a more correct size type.\n\nBug: 21562630\nBug: 21764392\nBug: 22464419\nChange-Id: I9a9cf64f0481670828fac707e00196e222d0311e\n"
    },
    {
      "commit": "ba48ff7a5975ab9b90d2c98293dd2424baf52924",
      "tree": "5da2131362ba5a914d6f2b8dd47c133af08a94c2",
      "parents": [
        "d50393057a6551c3bb498ed3a3bb7bd9eeb48225"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Jun 17 15:53:29 2015 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Jun 18 15:44:41 2015 +0900"
      },
      "message": "Qualify IPv6 link-local DNS servers with an interface name\n\nBug: 21562630\nBug: 21764392\nChange-Id: I7d271ae0f3fd92f70049017d38ccc15e3c1dda83\n"
    },
    {
      "commit": "55fd316ea798f2c77ad80def9f9b50d59391f1c2",
      "tree": "857902fbdb319593a8109dd5700f4a1446952738",
      "parents": [
        "25775e8e638d9d323c2dbac6d770092b920a5360"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 01 22:31:40 2015 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 01 22:31:40 2015 -0700"
      },
      "message": "Give SocketListener some FD_CLOEXEC.\n\nSockets love FD_CLOEXEC.\n\nBug: 19993667\nChange-Id: I0d72a27e0f46b79843bb91ed48ebaf1c89484fd2\n"
    },
    {
      "commit": "995f45e30ef88d622bebe7370e3e5ac4b5c45b20",
      "tree": "54984a4181a5aa6e3615e4d98209829fecbee62c",
      "parents": [
        "31837298166e678d8e9c9fba1b30aea5abf1350f"
      ],
      "author": {
        "name": "Vineeta Srivastava",
        "email": "vsrivastava@google.com",
        "time": "Fri Mar 20 23:51:36 2015 +0000"
      },
      "committer": {
        "name": "Vineeta Srivastava",
        "email": "vsrivastava@google.com",
        "time": "Fri Mar 20 23:51:36 2015 +0000"
      },
      "message": "Revert \"Sigh, more vendors linking against hidden APIs.\"\n\nThis reverts commit 31837298166e678d8e9c9fba1b30aea5abf1350f.\n\nChange-Id: I5c041d7438b64c4c258c414ca9a133075999e1b6\n"
    },
    {
      "commit": "31837298166e678d8e9c9fba1b30aea5abf1350f",
      "tree": "b0222b7efb6b1edd3ebf52df27ce4163b9b37e7b",
      "parents": [
        "778b9c84b81cba056f0b9a3ba05ecd88331df00a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 16 10:52:03 2015 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 16 12:14:40 2015 -0700"
      },
      "message": "Sigh, more vendors linking against hidden APIs.\n\nBug: 19762346\nChange-Id: I6c0823bf69e3f7e854ffea7b5483d09bb7359ff6\n"
    },
    {
      "commit": "e4f394087d2073dbe8309e5a2d87127cfda66ff9",
      "tree": "f3e95bbf501b38487e26e05ba848f8d2ca693a92",
      "parents": [
        "b5662f93238978dba1877209bb88a1ca294fe521"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 13 13:27:33 2015 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 13 13:27:56 2015 -0700"
      },
      "message": "Define enum class for NetlinkEvent actions.\n\nThis lets us use it for switch statements, and gives us stronger\ntype safety.\n\nChange-Id: Idb3ad7098657a09f13c95dc7070611d35ede66ae\n"
    },
    {
      "commit": "a744b05984a963966cec08758ffe582d241be9d7",
      "tree": "f9bde7bcbcc5f3e49cafe045b5951d3acdf27d23",
      "parents": [
        "9c4c5a6ed934490ba0fcce661594975a6f4c2c89"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 28 11:37:57 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 28 11:37:57 2015 -0800"
      },
      "message": "Add missing \u003cmalloc.h\u003e and \u003cstring.h\u003e includes.\n\nChange-Id: Ia41756e607663d056e7d2fdd7ecbec7e5841a913\n"
    },
    {
      "commit": "d1ad84cfa4d276ff915cc8b0c97c848b29fffb0f",
      "tree": "bf8681682174f4ea3900bde69b5c375695c208de",
      "parents": [
        "492dd1e5c1c47bc8a804b58bed941c8eaa94d9a3"
      ],
      "author": {
        "name": "Trevor Drake",
        "email": "trevordrake.gerrit@gmail.com",
        "time": "Sat Jan 24 07:02:50 2015 +0000"
      },
      "committer": {
        "name": "Trevor Drake",
        "email": "trevordrake.gerrit@gmail.com",
        "time": "Sat Jan 24 07:02:50 2015 +0000"
      },
      "message": "Remove obsolete BUILD_TINY_ANDROID check from libsysutils makefile\n\nChange-Id: I3cd1430b1555a5cd27b31ed3eebc1663f43e7b3b\n"
    },
    {
      "commit": "9a20e67fa62c1e0e0080910deec4be82ebecc922",
      "tree": "6d8c268d95a26bfecc3e574c9df1eb9dea0f5336",
      "parents": [
        "4503a1450ce9b2ed86fd9bd3eb3c34c845e8ed08"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Oct 30 14:51:59 2014 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Jan 15 12:50:59 2015 -0800"
      },
      "message": "Extend to receive NFLOG packets.\n\nPackets captured and logged by the NFLOG target are unicast, so\nextend to catch and decode them.  To avoid escaping issues, the raw\ncontents are passed around as hex strings.\n\nBug: 18335678\nChange-Id: Ib7299500baa00080a1f000f9da843eb527363353\n"
    },
    {
      "commit": "f6b62d0a7d448e2685ef9afd934148943dc25a35",
      "tree": "a8a9f0a25040e073367740600523d8277ef088ff",
      "parents": [
        "af2cd21d00f16f4915a40004bdbdc2603e958f5a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 10 15:50:30 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 10 15:50:30 2014 -0800"
      },
      "message": "Fix formatting in 4df4dfedf6beef891d05d4e80704f5f4a594a885.\n\nChange-Id: I1ad219285cb1f4a39cfe2bdef224b78eff843317\n"
    },
    {
      "commit": "4df4dfedf6beef891d05d4e80704f5f4a594a885",
      "tree": "c2650b22f4d2d3f9a9ae7897ae67fe66b02af2ef",
      "parents": [
        "ae52248fa7ab12e1c3458aede101f143b1c76ead"
      ],
      "author": {
        "name": "Bo Huang",
        "email": "bo.b.huang@intel.com",
        "time": "Mon Sep 29 14:54:02 2014 +0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 10 15:45:16 2014 -0800"
      },
      "message": "When new error happend,then errno should be updated accordingly.\nOtherwise, need to keep previous errno.\n\nReproduced steps:\npre-condition:\nDUT support external SDcard or Usb mass storage;\n\n1. Insert blank(no partition) SDcard or UMS to DUT;\n\nExpected result:\nShould prompt user with storage error.\n\nTest result:\nThere is no notification for error.\n\nError log:\n01-01 01:06:49.239 I/fsck_msdos( 200): fsck_msdos terminated by exit(8)\n01-01 01:06:49.239 E/Vold ( 200): /dev/block/vold/179:16 failed FS checks (I/O error)\n01-01 01:06:49.239 D/Vold ( 200): Volume sdcard1 state changing 3 (Checking) -\u003e 1 (Idle-Unmounted)\n01-01 01:06:49.239 W/Vold ( 200): Returning OperationFailed - no handler for errno 0)\n\nRoot cause analysis:\n1.Volume::setState will call senBroadcase to send out state notification;\n2.Finally, SocketClient::sendDataLockedv was called to sent message.\nIn sendDataLockedv funtion,  when current \u003d\u003d iovcnt,  e is 0 by default.\nSo Vold get incorrect errno.\n\nChange-Id: Icb32a4193f02f22b5e3feaba177bc278f8f1f41b\nSigned-off-by: Bo Huang \u003cbo.b.huang@intel.com\u003e\n"
    },
    {
      "commit": "d7ff7ea65220718398cae1e1aa0005072229b4e7",
      "tree": "ac90523bc7e81c6580b869f74de7e8b8590e4dcc",
      "parents": [
        "9b34293566833ead1d7bac7518e5ccad0d92d61c"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Jun 11 17:37:12 2014 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Sat Jun 21 10:55:07 2014 +0900"
      },
      "message": "Support parsing netlink route messages.\n\nBug: 9180552\nChange-Id: I4a36d869ac692647fb226d0912285bdf2ffcb1fa\n"
    },
    {
      "commit": "9b34293566833ead1d7bac7518e5ccad0d92d61c",
      "tree": "187484e4b26c2ed4675af0d8ece2d67650a50507",
      "parents": [
        "bb8aec417531010eadc27bdfed0c19fc5f669fbc"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jun 19 13:16:04 2014 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Sat Jun 21 10:54:43 2014 +0900"
      },
      "message": "Improvements to netlink event parsing.\n\n1. Accept that parseNetlinkMessage can only parse one netlink\n   message, because its way of returning output is to modify its\n   member variables (mAction, mParams, etc.). Currently, it\n   loops through all the messages it finds, updating its member\n   variables as it goes along, and always returns true at the end\n   of the buffer. This has the following problems:\n\n   1. Since the function always returns true even when no\n      messages were parsed, the caller has no way to know if\n      parsing succeeded, and we get lots of \"No subsystem found\n      in netlink event\" logs if the buffer did not contain any\n      valid messages we were interested in.\n   2. If there are multiple messages in the buffer, all but the\n      last message will be silently ignored.\n   3. If there are multiple messages and previous messages have\n      more parameters than the last one, the resulting event will\n      have a mixture of parameters from multiple messages.\n\n   Instead of doing all this, change the contract to \"parse the\n   first valid message of interest in the buffer and return true,\n   or return false if there were no such messages\", and update\n   the code and the comments accordingly.\n\n2. Modify the caller (NetlinkListener) so it doesn\u0027t log an\n   error when parseBinaryNetlinkMessage returns false, because\n   this can now simply mean that we weren\u0027t interested in that\n   particular message. parseBinaryNetlinkMessage already logs\n   more informative errors.\n\n3. Provide utility functions to check received message lengths and\n   to convert message types to message names.\n\n4. Simplify logging duplicate attributes.\n\n5. Use the appropriate IFLA_xxx macros instead of rolling our own\n   code to parse link state messages.\n\n6. Move all the parsing code out to per-message-type parsing\n   functions to order to simplify parseBinaryNetlinkMessage.\n\nBug: 9180552\nChange-Id: I6bbc2f7a104f618674dde2369c1fd5e93ea49430\n"
    },
    {
      "commit": "80f63d4b2c45bd609cbda78bcd016baf0138a5d3",
      "tree": "f217b1f2477131b838e6ad84f5108990020f1f65",
      "parents": [
        "ebf49f3e875981e9037ce36eddcab3ccb5925ebf"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu May 01 07:47:04 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu May 01 12:19:45 2014 -0700"
      },
      "message": "libsysutil: turn on -Werror (part deux)\n\n- x86_64 format warnings\n\nChange-Id: I81c2702f564bcada946f6a10f34bbf34c90f766b\n"
    },
    {
      "commit": "03b00f33655608afb1d263677681957f5762f0b6",
      "tree": "998efabcf4cd8ee6523b957c1ab433f2ecac15bd",
      "parents": [
        "a2723e0f7faee831ebc85e092768ee1417ae60f1"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 30 17:01:39 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 30 17:01:39 2014 -0700"
      },
      "message": "libsysutil: turn off -Werror\n\ntemporary to work out issue with git_mirror-asop-master build\n\nChange-Id: Ie65c65abb0a70dc134fded15db8b9d98e1701edd\n"
    },
    {
      "commit": "9418fd1821d5f31e6004a6f70cb14f59735dc589",
      "tree": "ce6e12002daa0e320ca58882c232e3f78ad78a96",
      "parents": [
        "f3661cc2f124bb7ca38285f156c624dda974b4c5"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 29 13:12:59 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 30 07:51:47 2014 -0700"
      },
      "message": "libsysutils: turn on -Werror\n\n- Deal with some -Wunused / -Wunused-variable issues\n\nChange-Id: I428a0032a8743c68c97f528d5f305ba63fee1d29\n"
    },
    {
      "commit": "28fa45858edbf6fd7b784c40de9187f7ca499a1d",
      "tree": "735e8ce21f6104bd9aaf6b10ffef8dc0e42a644c",
      "parents": [
        "4f17e530f9dc785b6552f8e51d2d6de832a4a992"
      ],
      "author": {
        "name": "William Luh",
        "email": "williamluh@google.com",
        "time": "Mon Apr 21 11:30:29 2014 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Apr 29 13:16:26 2014 -0700"
      },
      "message": "Add prefx to netlink failure and dispatchCommand overflow logs.\n\nPrefix ensures proper user-consent filter.\n\n(cherry picked from commit 564244cd3809aee58c7e18114970bb88bce9e9e9)\n\nBug:5848002\nChange-Id: Iee7287773f0af52c225a821ee0e9d643c83cc060\n"
    },
    {
      "commit": "dfc47e86858ea67c72f1df2fdb97094b8e8248f2",
      "tree": "749adb2e006a75d4deb2fb769b0dd7b6bc8d2914",
      "parents": [
        "26bb9970c463eb1209803d833799f128484864ac"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Mar 24 10:26:47 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Apr 17 16:14:24 2014 +0000"
      },
      "message": "logd: libsysutils: logd startup outside init environment\n\nChange-Id: I3426b6c3eebdd0c8258e966dcaaaa2825d7a23d1\n"
    },
    {
      "commit": "581edc1b6c3799238cfb674dfddb97db44f2818e",
      "tree": "ea0951fc0b885f98631d3088354306e96616cea0",
      "parents": [
        "ba23d539328af36b2040a5bcbdcc840810a4df51"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Nov 20 13:38:52 2013 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Mar 03 12:48:00 2014 -0800"
      },
      "message": "set /proc/sys/net/unix/max_dgram_qlen to large value\n\n- init: set /proc/sys/net/unix/max_dgram_qlen to 300\n- libsysutils: Add listen backlog argument to startListener\n- logd: set listen backlog to 300\n\nChange-Id: Id6d37d6c937ba2d221e76258d89c9516619caeec\n"
    },
    {
      "commit": "4389588e8ded66148d9e616aa20307cf25144460",
      "tree": "ad010ea143e919c6b71c0bedc583f20fec2a5998",
      "parents": [
        "caefe564a4b05e717a3baec155b8968ad36e58b6"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Jan 29 11:25:01 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Jan 31 15:27:14 2014 -0800"
      },
      "message": "libsysutil: frequent native crash /system/bin/vold\n\nregression from commit a6e965578e44f9ae5f98de822ba5decec381dffc\n\n* wrap writev with sigaction SIG_IGN SIGPIPE to emulate the\n  send(,,,MSG_NOSIGNAL) call it had replaced.\n\n(cherry pick from commit 83fc720785c4e40f3341daf7c0bf5ee99261fee9)\n\nBUG: 12796279\nChange-Id: I14363630ada79c0a5b85bb6b2afd0a1c4d5c3109\n"
    },
    {
      "commit": "44b99c22af84331068935a9bc3e807165a88237c",
      "tree": "6f2641e55435a0b47946d323b966543ae08e9061",
      "parents": [
        "23f04107dcedcef22556c1f57502cdddbfa2663f"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Jan 08 12:44:23 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:22:49 2014 -0800"
      },
      "message": "libsysutils: SocketListener export release\n\n* Foreground thread (legacy) closes connection by\n  reporting false return value for onDataAvailable.\n* Background thread can choose instead to close the\n  connection asynchronously by calling release, must\n  return true for the onDataAvailable method.\n\n(cherry picked from commit d7ad4e409eaac53db3a9789060097b712850b337)\n\nChange-Id: I70ab37d5c22b02804aa3b4dfb26cc9b75291f8b6\n"
    },
    {
      "commit": "23f04107dcedcef22556c1f57502cdddbfa2663f",
      "tree": "f7040d57a21d668cecd9be5c18ffbb6509dbf747",
      "parents": [
        "40b21558e52e9245929495c5344443276e5d87c1"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jan 24 20:30:10 2012 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:22:04 2014 -0800"
      },
      "message": "libsysutils: Add iovec/runOnEachSocket\n\nSocketClient:\n* Replace sendDataLocked with sendDataLockedv which takes an iovec.\n* Add a version of sendData, sendDatav, which takes an iovec.\n* do not preserve iovec content through sendDatav\n\nSocketListener:\n* Add runOnEachSocket, which allows to to specify a SocketClientCommand to\n  run individually on each socket. This allows you to do broadcast-like\n  actions customized for each individual socket.\n* Client safe list reference counting for sendBroadcast \u0026 runOnEach Socket\n\n(cherry picked from commit a6e965578e44f8ae5f98de822ba5decec381d5fc)\n\nSigned-off-by: Nick Kralevich \u003cnnk@google.com\u003e\nSigned-off-by: Mark Salyzyn \u003csalyzyn@google.com\u003e\n\nChange-Id: I716f89c01b4cb7af900045c7e41fac1492defb06\n"
    },
    {
      "commit": "e16baef4d2f59c0b5f78e66c838d6c5e7d9b7363",
      "tree": "78c6b0663ea50237d7547c817ce5434851b1e532",
      "parents": [
        "a6aad4cdb3ec75668838f3eced59bbb2c7b70c59"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Nov 22 07:47:35 2013 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:06:22 2014 -0800"
      },
      "message": "libsysutils: Get rid of warnings\n\n- UNUSED argument warnings\n- Remove LOG_NDEBUG define\n\n(cherry picked from commit 696f267ff5a1e6227c2f5784dae60c190e0228b8)\n\nChange-Id: I48b0942adfdb7a46a7693e580bc6ed5a685b0d5b\n"
    },
    {
      "commit": "65dd88beccc571315ffc5d9cce90402d0426a28b",
      "tree": "d93222d37b640aebf25b3eea3abf20dcbf9ff8c5",
      "parents": [
        "3510637c85a93b3e535482822e7b57693a22d6ac"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jan 22 19:06:04 2014 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jan 22 19:06:04 2014 -0800"
      },
      "message": "system/core: remove $(KERNEL_HEADERS) from includes\n\nThe kernel headers are already in the include path, and manually\nadding them again will break on a multiarch build, where the\nkernel headers may be different for each arch.\n\nChange-Id: Ib13d96543f2c97b1b487a46e1748ceb2c5724169\n"
    },
    {
      "commit": "66ed50af6870210ce013a5588a688434a5d48ee9",
      "tree": "a879f3ea31083496d0efe491bc187b6e0ebada39",
      "parents": [
        "dd2ac3de625e6c0328a0f70530d8ade0d2151bfc",
        "536dea9d61a032e64bbe584a97463c6638ead009"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Nov 22 11:28:10 2013 -0800"
      },
      "committer": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Nov 22 13:44:43 2013 -0800"
      },
      "message": "Merge commit \u0027536dea9d61a032e64bbe584a97463c6638ead009\u0027 into HEAD\n\nChange-Id: I5c469a4b738629d99d721cad7ded02d6c35f56d5\n"
    },
    {
      "commit": "c7eec83f08329a2a0008ba939c07dd1dc7d9b7ff",
      "tree": "d56ce7475a6ff93463709ac01bb19c4fdf5e5e40",
      "parents": [
        "526b838c9d647e8767fac957c53133153c3cf909"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Aug 12 17:03:32 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Nov 20 10:31:19 2013 +0900"
      },
      "message": "Support parsing RDNSS ND options from netlink.\n\nThe RDNSS options (RFC 6106) used to configure DNS servers via\nrouter advertisements are passed from the kernel to userspace via\nRTM_NEWNDUSEROPT netlink messages. Add code to NetlinkEvent to\nparse them.\n\nAlso fix a compiler warning and a couple of style issues.\n\n[Cherry-pick of b185e90dcc6ac111bff908edcc6d89fd6b37dc11]\n\nBug: 9180552\nChange-Id: I6c532c8f0ceef3afdc977a431a036df398013e1a\n"
    },
    {
      "commit": "526b838c9d647e8767fac957c53133153c3cf909",
      "tree": "3607245eb76bcf88e31cb7b8414caa710aaba49d",
      "parents": [
        "96834569343f38dc006492fccdf6dad68521b005"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Sep 03 00:25:14 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Nov 20 10:29:42 2013 +0900"
      },
      "message": "Switch back to subsystem \"net\" for netlink events.\n\nThe change to enable address tracking via netlink incorrectly\nchanged the subsystem of rtnetlink events from \"net\" to\n\"interface\". This broke interface add/delete notifications,\nwhich come from the kernel with subsystem \"net\".\n\nSwitch back to \"net\" and deal with address tracking via new\naction codes instead of a new subsystem.\n\n[Cherry-pick of f34861346d5c207912075fba9874090e4c947869]\n\nBug: 10433320\nChange-Id: Ibf30efb426949dfd02304cc1d9adb1c005a539a6\n"
    },
    {
      "commit": "96834569343f38dc006492fccdf6dad68521b005",
      "tree": "de25214ce391051de2bc492b4464eafa25c0203f",
      "parents": [
        "381f70f52a282e6da780e4b686aaa9c230be2cdc"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Sat Aug 17 03:40:31 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Nov 20 10:29:19 2013 +0900"
      },
      "message": "Get rid of an infinite loop in NetlinkEvent.cpp.\n\n[Cherry-pick of 3984276ce47c965ad02a522280a139e0a0c7e5cf]\n\nBug: 10358527\nBug: 10263310\nBug: 10232006\nChange-Id: I750e4bdf2000040adf214d6a772591d7bd25b350\n"
    },
    {
      "commit": "381f70f52a282e6da780e4b686aaa9c230be2cdc",
      "tree": "b6a9975fad93b8fdc56a8c082ee9f6e1a75931b2",
      "parents": [
        "3fa14a53e70cd55df031646fe3735a6fde37deb8"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Aug 02 05:58:37 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Nov 20 10:29:05 2013 +0900"
      },
      "message": "Parse IP address changes in NetlinkEvent.\n\nThis adds support for parsing RTM_NEWADDR and RTM_DELADDR\nnetlink messages received on netd\u0027s netlink socket and\nformatting them them so NetlinkHandler can process them.\n\nAddress changes are notified in subsystem \"address\". Interface\nchanges, which used to be notified in subsystem \"net\", are now\nnotified in subsystem \"interface\" to avoid confusion.\n\n[Cherry-pick of a4b4e9ad8e35ab424e61d76ebe6654445fc61e63]\n\nBug: 10232006\nChange-Id: I93a50e8de17014e118a42f5cc0eb90a0cbfa73cc\n"
    },
    {
      "commit": "f34861346d5c207912075fba9874090e4c947869",
      "tree": "83cc2d05800af825a00c7eda6c2c7a83b6d9ab01",
      "parents": [
        "5835ac9e31aea910adb6b9d2de1d63df771df45b"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Sep 03 00:25:14 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Sep 03 00:25:14 2013 +0900"
      },
      "message": "Switch back to subsystem \"net\" for netlink events.\n\nThe change to enable address tracking via netlink incorrectly\nchanged the subsystem of rtnetlink events from \"net\" to\n\"interface\". This broke interface add/delete notifications,\nwhich come from the kernel with subsystem \"net\".\n\nSwitch back to \"net\" and deal with address tracking via new\naction codes instead of a new subsystem.\n\nBug: 10433320\nChange-Id: Ibf30efb426949dfd02304cc1d9adb1c005a539a6\n"
    },
    {
      "commit": "3984276ce47c965ad02a522280a139e0a0c7e5cf",
      "tree": "a46b6ebd8cb9cfc1d8c4a76d2f7d5a543177a8b5",
      "parents": [
        "341ed242d400951dd8436cbc988e64c1c075df41"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Sat Aug 17 03:40:31 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Sat Aug 17 04:02:14 2013 +0900"
      },
      "message": "Get rid of an infinite loop in NetlinkEvent.cpp.\n\nBug: 10358527\nBug: 10263310\nBug: 10232006\nChange-Id: I750e4bdf2000040adf214d6a772591d7bd25b350\n"
    },
    {
      "commit": "a4b4e9ad8e35ab424e61d76ebe6654445fc61e63",
      "tree": "5daa592aef5d300822bc7b937cd9a33f2d0826dd",
      "parents": [
        "f5d3012d2c6ac343a0b8bcc95b9cd5137d9ef02f"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Aug 02 05:58:37 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Aug 14 19:50:22 2013 +0900"
      },
      "message": "Parse IP address changes in NetlinkEvent.\n\nThis adds support for parsing RTM_NEWADDR and RTM_DELADDR\nnetlink messages received on netd\u0027s netlink socket and\nformatting them them so NetlinkHandler can process them.\n\nAddress changes are notified in subsystem \"address\". Interface\nchanges, which used to be notified in subsystem \"net\", are now\nnotified in subsystem \"interface\" to avoid confusion.\n\nBug: 10232006\nChange-Id: I93a50e8de17014e118a42f5cc0eb90a0cbfa73cc\n"
    },
    {
      "commit": "a9e08d3ed60a12f58fc5fdf89f74b4f215ce066f",
      "tree": "82772fcbcfd85a3e696d3792589b160d531fb54c",
      "parents": [
        "084753eedba485673fd070c44bc4a7feb63af483",
        "51a2e4d5d44a6f788da207dff301356e16b4e283"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue May 21 14:39:19 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 21 14:39:19 2013 -0700"
      },
      "message": "am 51a2e4d5: Merge \"libsysutils: fix null pointer and memory leak issue\"\n\n* commit \u002751a2e4d5d44a6f788da207dff301356e16b4e283\u0027:\n  libsysutils: fix null pointer and memory leak issue\n"
    },
    {
      "commit": "544a7f7a36cb9434505fe5cdc9e79d16937ac23f",
      "tree": "8fd1d7fd2e5fab789ef12c1b00e51fe70ce479e8",
      "parents": [
        "f5562cb66c1c15d65bc372ede4c180430e1ce9d7"
      ],
      "author": {
        "name": "Hong-Mei Li",
        "email": "a21834@motorola.com",
        "time": "Mon Apr 01 11:24:44 2013 +0800"
      },
      "committer": {
        "name": "Hong-Mei Li",
        "email": "a21834@motorola.com",
        "time": "Mon May 20 17:30:11 2013 +0800"
      },
      "message": "libsysutils: fix null pointer and memory leak issue\n\nIn SocketClient::quoteArg function\n1. Fix potential null pointer accessing issue\n2. Fix potential memory leak introduced by realloc fail\n\nChange-Id: I1ca0f9089290d43452e9a71428244545f4ed866b\nSigned-off-by: Hong-Mei Li \u003ca21834@motorola.com\u003e\n"
    },
    {
      "commit": "083b5ccba345ed2b4950454f16bd89c5d86b6b27",
      "tree": "4ee4bf33ff25e4ffbb9c06bacce9507ed6d14997",
      "parents": [
        "7716aef138e8029357a7b3dc6a73b41f4de4b0ad"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 22:03:45 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 22:03:45 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: Iab3a9b4307f207c14a04a922cc7350c54e60e9ad\n"
    },
    {
      "commit": "6d358ae44ccfbcd5b89511d142f334b2cc1b67b1",
      "tree": "ab3c1035f273adc03b7cd01f13028cf9f4a59780",
      "parents": [
        "a6fb0e05aa95995445c6f2b65f07db26bdbfd46c"
      ],
      "author": {
        "name": "Josef Kindberg",
        "email": "josef.kindberg@stericsson.com",
        "time": "Wed Feb 23 12:40:44 2011 +0100"
      },
      "committer": {
        "name": "Patrik Ryd",
        "email": "patrik.ryd@stericsson.com",
        "time": "Mon Nov 12 14:40:21 2012 +0100"
      },
      "message": "libsysutils: Increase command buffersize and command args\n\nNeeded to support tethering of multiple remote Bluetooth devices.\n\nChange-Id: I9f736affd83226e8b2fa4f0faacd3654175dd8c9\nSigned-off-by: Patrik Ryd \u003cpatrik.ryd@stericsson.com\u003e\n"
    },
    {
      "commit": "6f523cda13094bf493cdf37e7ecc480bb5a37a2b",
      "tree": "6770c133428553ac2e3abb3545afa281813fe4f4",
      "parents": [
        "99565a9e80882658e1b4ea5b7c610d40d4d7cb0b",
        "7bb1b9585d2d61beaf05c997971aee27f87ad3f7"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed May 30 15:29:07 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 30 15:29:07 2012 -0700"
      },
      "message": "am 7bb1b958: am ff856a2b: Merge \"Add error handling to SocketClient::sendData\"\n\n* commit \u00277bb1b9585d2d61beaf05c997971aee27f87ad3f7\u0027:\n  Add error handling to SocketClient::sendData\n"
    },
    {
      "commit": "2e5fcd08ac177e984ebf1fb05bab5dfcf296c5a4",
      "tree": "8e932ad0f6147550bc4d2b31d74076bfc8025e70",
      "parents": [
        "1d5e7885698ca81241f10d06d475ef4e6075089b"
      ],
      "author": {
        "name": "Mattias Falk",
        "email": "mattias.falk@sonyericsson.com",
        "time": "Fri May 13 16:25:38 2011 +0200"
      },
      "committer": {
        "name": "Henrik Baard",
        "email": "henrik.baard@sonymobile.com",
        "time": "Tue May 29 14:19:06 2012 +0200"
      },
      "message": "Add error handling to SocketClient::sendData\n\nReturn failure and set errno if mSocket isn\u0027t valid.\n\nChange-Id: I579114d435db46d0bb5682167ef34bebe061a8f8\n"
    }
  ],
  "next": "b982bce73b7e2c824ffb50115ea382fe45c751a4"
}
