)]}'
{
  "log": [
    {
      "commit": "163ecc68c7a7ee06a384880fec0d05d303812a4e",
      "tree": "ad606f2d47fb000b5e4205a979391d5c337db29e",
      "parents": [
        "0447a3e5d1591b0a232106534ca0463bac5346dc"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue May 02 08:56:15 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed May 03 08:04:35 2017 -0700"
      },
      "message": "libcutils: convert fs_config.cpp\n\nC++ify fs_config.c\n\nTest: gTest libcutils-test\nBug: 37703469\nChange-Id: Id48ae22f203ed923942257575296c69b32345ae6\n"
    },
    {
      "commit": "dd6e73f432b78bdcba813d6f7ab3b3d18389418f",
      "tree": "f62e5cc24907075fc787886214e31bfcbbdff2b0",
      "parents": [
        "66b25eb810eb542e7b6ef5d5b0f89cf5f23abe06",
        "bf0492a9a1e3976dd4aea5596d1b1e10e8cbeea2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 03 01:02:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 03 01:02:21 2017 +0000"
      },
      "message": "Merge \"Preserve errno better in native_handle functions.\""
    },
    {
      "commit": "bf0492a9a1e3976dd4aea5596d1b1e10e8cbeea2",
      "tree": "0d636e0d98234ca805c649a6c1f4099552da0dbc",
      "parents": [
        "16214f2955eb8570f120893a02d978ca91f0a5a7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 01 21:34:15 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 01 21:34:15 2017 -0700"
      },
      "message": "Preserve errno better in native_handle functions.\n\nSo a caller of native_handle_clone can trust errno to be relevant.\n\nBug: http://b/37215366\nTest: builds\nChange-Id: I0992f38ad559db4a02fce07123842dbad8e3f473\n"
    },
    {
      "commit": "43e910641049a6b9977fd5b07348f19384e54c28",
      "tree": "5b02034d88b79effbfd66ed59b3ee30f7dde954f",
      "parents": [
        "05eed13247f1c37cf9b388df80f74ebccdaa5df4",
        "f0b53d072688ecbe7e7d57631a74d59cfb914b15"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 01 21:01:56 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 01 21:01:58 2017 +0000"
      },
      "message": "Merge \"libcutils: fs_config.c mark vendor, odm and oem partitions in duplicate\""
    },
    {
      "commit": "d6f8b5f2d48413d365f0846eb53178145d0d7687",
      "tree": "2d4b02eb32a14fd01baac544085483c8135808c8",
      "parents": [
        "16214f2955eb8570f120893a02d978ca91f0a5a7",
        "d32331fb272048eeb55184bee15071fb95b6a6c2"
      ],
      "author": {
        "name": "Erik Staats",
        "email": "estaats@google.com",
        "time": "Mon May 01 18:35:28 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 01 18:35:30 2017 +0000"
      },
      "message": "Merge \"Change set_sched_policy to set slack for current thread.\""
    },
    {
      "commit": "f0b53d072688ecbe7e7d57631a74d59cfb914b15",
      "tree": "3ea12916182a6f354e0e01f7d455795cc9ae588b",
      "parents": [
        "483d2f9a59bf4a5130e0a79306f30c25f675812c"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 28 09:43:36 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon May 01 16:17:31 2017 +0000"
      },
      "message": "libcutils: fs_config.c mark vendor, odm and oem partitions in duplicate\n\nCover both direct and symlink indirect paths to the referenced\nfiles in the vendor, odm and oem partitions.\n\nTest: compile and hand-verify properties\nBug: 37703469\nChange-Id: I5b3a887e904baee2ac193ac4a73aaaee0bbfdb9f\n"
    },
    {
      "commit": "4c8acafa25ca69fc79ad14916e62e5cca501781f",
      "tree": "4e0d4967e49f2587a3e3a15bf38e7a0c89532dac",
      "parents": [
        "6de56724a2f2100f21574e030a8c1115d54746b7",
        "0e8810ccbec84999727940e68a5a5d654ee589e1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Apr 30 02:45:44 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Apr 30 02:45:46 2017 +0000"
      },
      "message": "Merge \"Remove unused cruft from \u003ccutils/bitops.h\u003e.\""
    },
    {
      "commit": "0e8810ccbec84999727940e68a5a5d654ee589e1",
      "tree": "8e2251de947f34b56c92fb2f13917d33f2cfcec3",
      "parents": [
        "bd53ea406396c037f87444c7f0472682de25de50"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 29 10:22:40 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 29 10:22:40 2017 -0700"
      },
      "message": "Remove unused cruft from \u003ccutils/bitops.h\u003e.\n\nBug: N/A\nTest: builds\nChange-Id: I5931f2b91b2d64d8e26f9ba092879c14d0ed3622\n"
    },
    {
      "commit": "d32331fb272048eeb55184bee15071fb95b6a6c2",
      "tree": "562ca691fa218381e6640598d22d0f0b2c7516dc",
      "parents": [
        "1ac29896b079f0d2c279f93f882fccca22947ab9"
      ],
      "author": {
        "name": "Erik Staats",
        "email": "estaats@google.com",
        "time": "Wed Apr 26 15:15:55 2017 -0700"
      },
      "committer": {
        "name": "Erik Staats",
        "email": "estaats@google.com",
        "time": "Wed Apr 26 15:39:26 2017 -0700"
      },
      "message": "Change set_sched_policy to set slack for current thread.\n\nChange set_sched_policy to use prctl PR_SET_TIMERSLACK if setting the policy\nfor the current thread and /proc/\u003ctid\u003e/timerslack_ns is not supported by the\nkernel.\n\nBug: 32972117\nTest: Verified that libcutils SchedPolicy tests pass.  See details in\ntesting done comment in\nhttps://android-review.googlesource.com/381303 .\nChange-Id: Id70940ed7f9ed94c3d105213f069bf3e5a8d8824\n"
    },
    {
      "commit": "1ac29896b079f0d2c279f93f882fccca22947ab9",
      "tree": "05a8013ea3021092609306106bbfa0bbbe60e516",
      "parents": [
        "e74ecbfddd3dc7e80ed7070d19a845472441da29",
        "e08303d8cf6f69fc1cb53ad7084984e4c24cbfa2"
      ],
      "author": {
        "name": "Philip Cuadra",
        "email": "philipcuadra@google.com",
        "time": "Wed Apr 26 16:55:59 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 26 16:56:00 2017 +0000"
      },
      "message": "Merge \"Allow Bluetooth HAL CAP_SYS_NICE\""
    },
    {
      "commit": "b4c4654c7ca829865c8ecfe74d1a15de11375926",
      "tree": "f326427c7b33291d915b2a10e27c1fe332a83fb2",
      "parents": [
        "41346e553b76c6702c68b49d3588e710455483b9"
      ],
      "author": {
        "name": "Erik Staats",
        "email": "estaats@google.com",
        "time": "Mon Apr 24 14:49:28 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 25 15:26:53 2017 +0000"
      },
      "message": "Change get_sched_policy to check \"schedtune\" and \"cpuset\".\n\nget_sched_policy will first attempt to get the policy from the \"schedtune\"\nsubsystem cgroup and, if not set, attempt to get the policy from the\n\"cpuset\" subsystem cgroup.  If neither subsystem has a cgroup set,\nSP_FOREGROUND is returned.\n\nBug: 32972117\nTest: Verified that SchedPolicy libcutils test passes and that ps displays\nthe expected policies.  See details in testing done comment in\nhttps://android-review.googlesource.com/379426 .\n\nChange-Id: I586a921a38eea99d65590b07ece96c9808a2e56d\n"
    },
    {
      "commit": "e08303d8cf6f69fc1cb53ad7084984e4c24cbfa2",
      "tree": "af1cb88d22e7956ecd22f69c74290b65fa31affa",
      "parents": [
        "5002a48ceeb4cce3ec2c240ac89df8c4ec502c70"
      ],
      "author": {
        "name": "Philip Cuadra",
        "email": "philipcuadra@google.com",
        "time": "Thu Mar 23 10:05:45 2017 -0700"
      },
      "committer": {
        "name": "Philip Cuadra",
        "email": "philipcuadra@google.com",
        "time": "Mon Apr 24 17:59:20 2017 -0700"
      },
      "message": "Allow Bluetooth HAL CAP_SYS_NICE\n\nThe Bluetooth HAL has threads that process Bluetooth audio.  They need\nto be scheduled as RT priority, so allow the Bluetooth HAL to set its\nthreads to RT scheduling.\n\nBug 37518404\nTest:  play Bluetooth audio, confirm priority via systrace\nChange-Id: I4928cf182a0805c0714e4d073cba15c864fbe328\n"
    },
    {
      "commit": "b6e4b35fe45279c57e7005169e995eec04df6667",
      "tree": "cb127892847102f69e50f7b01572bb33acb21121",
      "parents": [
        "e32517d7739f32014695d3082da50ab0186460c3"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Apr 21 00:51:31 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Apr 21 16:41:35 2017 +0000"
      },
      "message": "Revert \"Make the xtables lock readable only by AID_RADIO and root.\"\n\nThis reverts commit 5e801e7bd52d890583f44dffc41116c2dbc2a770.\n\nThe file permissions don\u0027t allow access to the lock on devices\nwhere vendor code runs with UID root and GID radio. They are\nno longer necessary because we have a more flexible selinux-based\nsolution in https://android-review.googlesource.com/#/c/354223/ .\n\nTest: strace -f -e flock -p \u003cnetmgrd_pid\u003e on angler shows flock succeeds\nTest: strace -f -e flock -p \u003cnetmgrd_pid\u003e on marlin shows flock succeeds\nTest: netd_unit_test passes on marlin\nTest: strace -f -e flock -p \u003cnetd_pid\u003e on marlin shows flock succeeds\nBug: 36108349\nBug: 37483189\nChange-Id: Ia1bbf8d93ec6777514be66cbd1a32dfc95df95c0\n"
    },
    {
      "commit": "2bd434223415b09ce7d0e21eb74e81c8c2174b3d",
      "tree": "627465d5c5d066b156208fd501ecbdc15237bf61",
      "parents": [
        "d10a02320821c00f849a2a6954d714669a8fe402"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 17 12:55:40 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Apr 19 10:32:49 2017 -0700"
      },
      "message": "Remove VNDK warning.\n\nAdded todo once usages are fixed.\n\nBug: 33241851\nTest: things with -Werror now compile in VNDK\n(cherry picked from commit 81626e48cb075aeab36e95047f047922d9a2715f)\nMerged-In: I6c4a148dca4d4710912fe62a8854cb8077651701\nChange-Id: I6c4a148dca4d4710912fe62a8854cb8077651701\n"
    },
    {
      "commit": "385fe692cccce3a00534bd3b20c471f62fadcd4d",
      "tree": "97479d4978ca85eabfab712268ac102be6f1fae2",
      "parents": [
        "bb11af88e234f27c08499994f23994289077f5c1"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Apr 13 14:29:58 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Apr 19 10:32:45 2017 -0700"
      },
      "message": "libcutils: vendor_available\n\nBy setting vendor_available, the following may become true:\n\n* a prebuilt library from this release may be used at runtime by\n  in a later releasse (by vendor code compiled against this release).\n  so this library shouldn\u0027t depend on runtime state that may change\n  in the future.\n* this library may be loaded twice into a single process (potentially\n  an old version and a newer version). The symbols will be isolated\n  using linker namespaces, but this may break assumptions about 1\n  library in 1 process (your singletons will run twice).\n\nBackground:\n\nThis means that these modules may be built and installed twice --\nonce for the system partition and once for the vendor partition. The\nsystem version will build just like today, and will be used by the\nframework components on /system. The vendor version will build\nagainst a reduced set of exports and libraries -- similar to, but\nseparate from, the NDK. This means that all your dependencies must\nalso mark vendor_available.\n\nAt runtime, /system binaries will load libraries from /system/lib*,\nwhile /vendor binaries will load libraries from /vendor/lib*. There\nare some exceptions in both directions -- bionic(libc,etc) and liblog\nare always loaded from /system. And SP-HALs (OpenGL, etc) may load\n/vendor code into /system processes, but the dependencies of those\nlibraries will load from /vendor until it reaches a library that\u0027s\nalways on /system. In the SP-HAL case, if both framework and vendor\nlibraries depend on a library of the same name, both versions will be\nloaded, but they will be isolated from each other.\n\nIt\u0027s possible to compile differently -- reducing your source files,\nexporting different include directories, etc. For details see:\n\nhttps://android-review.googlesource.com/368372\n\nNone of this is enabled unless the device opts into the system/vendor\nsplit with BOARD_VNDK_VERSION :\u003d current.\n\nBug: 36426473\nBug: 36079834\nTest: m -j libcutils\nTest: attempt to compile with BOARD_VNDK_VERSION :\u003d current\nTest: (sanity) boot internal marlin\n(cherry picked from commit 9610c548a8e9018ecdfbe3d7204e8fd70d2554fc)\nMerged-In: I76f9b28ef08a26d84d1365881e00696cc1dcfe5d\nChange-Id: I76f9b28ef08a26d84d1365881e00696cc1dcfe5d\n"
    },
    {
      "commit": "edaed3ed7a6034bd0bd07e55585b6c81333b9d3a",
      "tree": "0f8c0f7c38682469cd7627594c46604ebcc3b75b",
      "parents": [
        "0bdf6539d6952425029a7f85d4736a6e6065a728",
        "fa164739210c1b8188051612b28204373db963fa"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 18 22:34:15 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 18 22:34:16 2017 +0000"
      },
      "message": "Merge \"Allocate a GID range for external cache files.\""
    },
    {
      "commit": "d73be1b96beab812b86f8174e7fc928291f0cb44",
      "tree": "2239b8c02d02461fe5f39d823301e784bd95c763",
      "parents": [
        "ffa38cfc1ea33de4ddddb291cc70cc507506b758"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Apr 13 23:48:57 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 17 14:44:17 2017 -0700"
      },
      "message": "libcutils: compile with BOARD_VNDK_VERSION current\n\n- moved __android_log_is_debuggable to a new public header\n    (log_properties.h)\n- vendor version of sched_policy uses ALOG* instead SLOG*\n\nTest: (sanity) liblog-unit-tests\nTest: (sanity) libcutils_test (noting b/b/32972117, two tests continue\n  to fail)\nTest: system/core as a whole makes with BOARD_VNDK_VERSION :\u003d current\n  now with no problems.\nTest: boots/works on internal marlin\nBug: 33241851\n\n(cherry picked from commit 1f83aa424f537cf3f07e1d27dbbcc524818b5358)\n\nMerged-In: I5bc1f348dc0f0c8814bec5b5c3d2c52c825ab640\nChange-Id: I5bc1f348dc0f0c8814bec5b5c3d2c52c825ab640\n"
    },
    {
      "commit": "fa164739210c1b8188051612b28204373db963fa",
      "tree": "96b4281aed455124d23ef4e15e9d34a729721145",
      "parents": [
        "66f44d823f51c2283ec6ec59675953949a4a63fb"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 17 14:45:16 2017 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 17 14:50:27 2017 -0600"
      },
      "message": "Allocate a GID range for external cache files.\n\nWe can\u0027t reuse the GID range for internal cache files, otherwise\nwe don\u0027t have a way to tease apart the difference when deciding if\nit\u0027s safe to move apps.\n\nTest: builds, boots\nBug: 37193650\nChange-Id: I22c4e575cd557636e74c5c73035adb1d4dcbb7f7\n"
    },
    {
      "commit": "0301b3217be97631e5595bb9cc2cb51dcf8be24b",
      "tree": "3b73fbc10ee042774017fddd563749e4039ce56e",
      "parents": [
        "e771b69e72ad464c511c504cc9e9da2ada790873",
        "47330e21db24b2bce3e238a596904e17d178a78d"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 14 20:04:02 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 14 20:04:04 2017 +0000"
      },
      "message": "Merge changes from topics \u0027adb_thread\u0027, \u0027adb_loopback\u0027\n\n* changes:\n  adb: statically link libbase into the tests.\n  adb: kill adb_thread_{create, join, detach, exit}.\n  adb: don\u0027t try to resolve \u0027localhost\u0027\n"
    },
    {
      "commit": "46de1d7f03b7debfd14ccf77a6e63fa2e66f9f04",
      "tree": "6bca7d59c50c68827f625cdd0671672eb6acfd6c",
      "parents": [
        "ebc87c98e35327e7403ed767c935a8e6a02b6f03"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Apr 12 13:57:06 2017 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Apr 12 16:07:49 2017 -0700"
      },
      "message": "adb: don\u0027t try to resolve \u0027localhost\u0027\n\nMisconfigured systems can have localhost pointing to an address that\nisn\u0027t 127.0.0.1 or ::1.\n\nadb is the only caller of the libcutils socket_loopback functions, so\nmove them into adb and switch the implementations over to using\nINADDR_LOOPBACK and in6addr_loopback, instead of resolving \u0027localhost\u0027\nwhen connecting.\n\nBug: http://b/37282612\nTest: `killall adb; adb shell`\nTest: `killall adb; ip addr del 127.0.0.1/8 dev lo; adb shell`\nChange-Id: I01c1885f1d9757ad0f7b353dd04b4d1f057741c8\n"
    },
    {
      "commit": "6748f24d70fe0391ddc5df14cc45add5d7984a9b",
      "tree": "0ddeb1d10bb47f1dd64ae474178a02aeddcd318d",
      "parents": [
        "120add07ab2aa03cb7c073ef7629817b41643dc1"
      ],
      "author": {
        "name": "Ganesh Mahendran",
        "email": "opensource.ganesh@gmail.com",
        "time": "Wed Apr 12 16:25:25 2017 +0800"
      },
      "committer": {
        "name": "Ganesh Mahendran",
        "email": "opensource.ganesh@gmail.com",
        "time": "Wed Apr 12 16:25:25 2017 +0800"
      },
      "message": "libcutils: fix system-background tasks shown in top command\n\ntasks in system-background cgroup will be shown as below:\n 580   580 system   12  -8   1% S 190656K  19408K unk surfaceflinger  /system/bin/surfaceflinger\n\nThis patch fix this issue.\n\nChange-Id: Ib39ff892010498548d7fbfb4021df62498acd033\nSigned-off-by: Ganesh Mahendran \u003copensource.ganesh@gmail.com\u003e\n"
    },
    {
      "commit": "6e9cb8fd79ef5d933194eed02baf3af6394c500f",
      "tree": "9ce9712947e017be4e8cda40c6668bcd0a87490a",
      "parents": [
        "33e6b18d354cf0dcbd9f209443c082e76384a60f"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 05 12:15:49 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 07 10:29:51 2017 -0700"
      },
      "message": "libcutils: fs_config: target_out_path assumed /system breaking partitions\n\nStrip off trailing / then /system and then add back the appropriate\nconfig directory.  This fixes an issue with reading vendor, oem or odm\npartitions.\n\nTest: manual build successfully interprets all etc/fs_config_* files.\nTest: manual incremental build successfully interprets all etc/fs_config_* files.\nBug: 36071012\nChange-Id: Iba363f0731bb8d15e595bb45c56db97722edabc2\n"
    },
    {
      "commit": "29e0c8f1a9e5cd2be224be872b7f64d403846d62",
      "tree": "054abcaa49b085da965a8a0ceca2eabdca5218e7",
      "parents": [
        "7130fb345dd5473fae538dfe1e1db64499d87fad"
      ],
      "author": {
        "name": "Thierry Strudel",
        "email": "tstrudel@google.com",
        "time": "Fri Apr 07 00:33:16 2017 +0000"
      },
      "committer": {
        "name": "Thierry Strudel",
        "email": "tstrudel@google.com",
        "time": "Fri Apr 07 00:34:03 2017 +0000"
      },
      "message": "Revert \"libcutils: fs_config: target_out_path assumed /system\"\n\nThis reverts commit 7130fb345dd5473fae538dfe1e1db64499d87fad.\n\nBug: 36816191\nChange-Id: I7d604d510865b1fa15781ffb4ad8b3e77ac44395\n"
    },
    {
      "commit": "7130fb345dd5473fae538dfe1e1db64499d87fad",
      "tree": "c110b99dffe009549da4bc147d85a06461f5f5f0",
      "parents": [
        "acc0e98b0f07c7296a019b40fa4cdf02d5cf21b4"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 05 12:15:49 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 05 22:32:22 2017 +0000"
      },
      "message": "libcutils: fs_config: target_out_path assumed /system\n\nStrip off /system/ and add appropriate config directory.\n\nTest: manual build successfully interprets all etc/fs_config_* files.\nBug: 36071012\nChange-Id: I2563248e91cea10fef3cc2f9e954e4782fdfce4f\n"
    },
    {
      "commit": "c1c0de3945f5f5dee8477a1101e158449b267efe",
      "tree": "77aef39521e184e605184ca4a74505f0c34d1640",
      "parents": [
        "8b951f5adc4c537874dc0af7161bf9edd84e2448",
        "2c67dfbc097b1dc817592ab20dff5a668e6416bc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 05 06:39:40 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 05 06:39:42 2017 +0000"
      },
      "message": "Merge \"Add test config to libcutils_test\""
    },
    {
      "commit": "a9403f0db88d9cdc7ec8627210ae66d3ec250d06",
      "tree": "e7c7c9bb01836e7eaa39a9d2eec9b0041872bbb6",
      "parents": [
        "7c06d2c79a24b718b27c9c38c89f9fee6b267202"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Apr 03 07:30:06 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 04 19:14:32 2017 +0000"
      },
      "message": "libcutils: create private/fs_config.h\n\nprivate/fs_config.h is required in order to build an independent\ntest that requires internal binary knowledge of the\netc/fs_config_(files|dirs) files.\n\nTest: compile\nBug: 36071012\nChange-Id: I268bcfdbb6d45b7bf6040cbf307a4e34812f5fef\n"
    },
    {
      "commit": "d185445eee69f0c1f7c4d0da5ebd350c10f07bcf",
      "tree": "8f3b72fe5e60b4c6e80b8f21d96d955c5301530c",
      "parents": [
        "82f8bb785e2beae58a9ea6984a7067530200c236"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 03 04:00:23 2017 +0000"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 03 04:00:36 2017 +0000"
      },
      "message": "Revert \"Allocate GID to use reserved disk space.\"\n\nThis reverts commit 82f8bb785e2beae58a9ea6984a7067530200c236.\n\nSadly, we\u0027d have to extend CAP_SYS_RESOURCE to a bunch of execution\ndomains to make this work, which isn\u0027t feasible.\n\nBug: 36450358\nChange-Id: Iffe88e45d538c044382eb0d0ac24ff11a10d73c3\n"
    },
    {
      "commit": "2c67dfbc097b1dc817592ab20dff5a668e6416bc",
      "tree": "2d9bb354797510eb5398efe50e3602afad4cfc2e",
      "parents": [
        "bc9cb3885b7cbb515698f62ec9162102ebc58157"
      ],
      "author": {
        "name": "Dan Shi",
        "email": "dshi@google.com",
        "time": "Fri Mar 31 17:12:18 2017 -0700"
      },
      "committer": {
        "name": "Dan Shi",
        "email": "dshi@google.com",
        "time": "Fri Mar 31 17:12:18 2017 -0700"
      },
      "message": "Add test config to libcutils_test\n\nThis change allows TradeFederation to run the test directly.\nRefer to b/35882476 for design and discussion of this change.\n\nBug: 35882476\nTest: local test\ntradefed.sh run template/local --template:map test\u003dlibcutils_test\n\nChange-Id: Ie083d1641e4ea226cbf7b82c6fd2c115e15b6bf6\n"
    },
    {
      "commit": "82f8bb785e2beae58a9ea6984a7067530200c236",
      "tree": "ba850d1211fdd1f83b2482a8ee76319fb3507e37",
      "parents": [
        "bc9cb3885b7cbb515698f62ec9162102ebc58157"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 31 16:39:42 2017 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 31 16:39:45 2017 -0600"
      },
      "message": "Allocate GID to use reserved disk space.\n\nFilesystems like ext4 allow the setting of the \"resgid\" parameter\nto designate a GID that is allowed to use the \"reserved\" disk space\n(in addition to UID 0).  We\u0027ll be granting this GID to critical\nsystem processes, so that the system is usable enough for the user\nto free up disk space used by apps.\n\nTest: builds\nBug: 36450358\nChange-Id: I224bd1e597130edb411a1528872faff1ada02a89\n"
    },
    {
      "commit": "d8f533aab2cfec1330b30a0fa017f22b7fe374fd",
      "tree": "1012763a4972e560b06362a430c764bedc369394",
      "parents": [
        "9ead7c4a7421fbcf2e424c21c572eb432859ddb7"
      ],
      "author": {
        "name": "Dan Shi",
        "email": "dshi@google.com",
        "time": "Wed Mar 29 23:13:08 2017 -0700"
      },
      "committer": {
        "name": "Dan Shi",
        "email": "dshi@google.com",
        "time": "Wed Mar 29 23:13:08 2017 -0700"
      },
      "message": "Add test config to libcutils_test_static\n\nDesign doc:\nGeneralized Suites \u0026 the Unification of APCT \u0026 CTS Workflows Design/Roadmap\nhttps://docs.google.com/document/d/1eabK3srlBLouMiBMrNP3xJPiRRdcoCquNxC8gBWPvx8/edit#heading\u003dh.78vup5eivwzo\n\nDetails about test configs changes are tracked in doc\nhttps://docs.google.com/document/d/1EWUjJ7fjy8ge_Nk0YQbFdRp8DSHo3z6GU0R8jLgrAcw/edit#\n\nBug: 35882476\nTest: local test\nChange-Id: I9faa1c929fff43635aff06b4228501e1227c4d06\n"
    },
    {
      "commit": "a8d59faa753c027e7375067f96a30e6429178105",
      "tree": "6ba6eacea784bd8f52febc1a94b32da37e5ac608",
      "parents": [
        "6105dbd01bfd88d64d5c5451f6570f146c8b91b8"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Tue Mar 28 11:13:51 2017 -0700"
      },
      "committer": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Tue Mar 28 13:01:20 2017 -0700"
      },
      "message": "libcutils: remove sched_set/getscheduler\n\nBug: 36667354\nTest: angler taking video\nChange-Id: Ie7fbcccbd02314468c03317319574ee7e433561d\n"
    },
    {
      "commit": "3d642d48e2884296bd084f6b8d8d51609d68de3f",
      "tree": "ababcbe4d88efefacff6cc36e0119292fc3e144f",
      "parents": [
        "8678872a0076d31335d91622b9b2b5d7b0fc3551"
      ],
      "author": {
        "name": "Jeremy Compostella",
        "email": "jeremy.compostella@intel.com",
        "time": "Tue May 10 18:25:02 2016 +0200"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Mar 28 14:57:22 2017 +0000"
      },
      "message": "libcutils: handle root directory empty path\n\nUsually, the canned paths lack the leading \u0027/\u0027 which means that the\nroot directory is an empty path.  This patch makes\nload_canned_fs_config() handle this empty path as the root directory.\nIt also make it flexible enough to handle an optional leading \u0027/\u0027.\n\nOriginal-Author: Jeremy Compostella \u003cjeremy.compostella@intel.com\u003e\nSigned-off-by: Jeremy Compostella \u003cjeremy.compostella@intel.com\u003e\nSigned-off-by: Gaelle Nassiet \u003cgaellex.nassiet@intel.com\u003e\nChange-Id: Ice759ef37d1df23a54df1158ec0d3ad7f577a069\n"
    },
    {
      "commit": "40267986dab665b206773f834153783898e50294",
      "tree": "ae35973d503f94a9321b4bbc44e5f7fb4dbfbe96",
      "parents": [
        "ca622b4e78cd6ddc8b7d10a5acc9f685b3f11c04"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Sat Mar 25 09:53:31 2017 -0700"
      },
      "committer": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Mon Mar 27 11:57:29 2017 -0700"
      },
      "message": "libcutils: remove schedgroup\n\nAfter removing bg_non_interactive cgroup, there is only a ROOT cgroup.\nThis CL removes the no-op trying to set cgroup.\nIt also removes the attempt to open non-exist bg_non_interactive cgroup.\n\nBug: 36649832\nTest: marlin boosts and cgroup ROOT task looks normal\nChange-Id: Ibccd6db1499306174c940aec9219b20c1b86173d\n"
    },
    {
      "commit": "438720ac2c16880ffe85765c6f588ecafa55502f",
      "tree": "8ff7cbefbb4dc9b8bf3e6cb8317b291224dd087b",
      "parents": [
        "dd26e1a28cea035c53b30b5726208d4a169bbb77",
        "5e801e7bd52d890583f44dffc41116c2dbc2a770"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Mar 24 06:25:37 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 24 06:25:38 2017 +0000"
      },
      "message": "Merge \"Make the xtables lock readable only by AID_RADIO and root.\""
    },
    {
      "commit": "2b616cea9ea9f8b1008f497a94deca7c8576aaba",
      "tree": "cfc244f766aec945103d3cfe15f805a1251e6dba",
      "parents": [
        "2af784bf202085d0ed03497f596b4447f37bd25c"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 22 15:23:24 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 22 15:28:40 2017 -0700"
      },
      "message": "libcutils: fs_config() add check /odm/etc/fs_config_*\n\nAdd reading of vendor file-system config files\n/odm/etc/fs_config_dirs and /odm/etc/fs_config_files.\n\nOrder of interpretation (for dirs and files respectively):\n- /system/etc/fs_config_dirs or /system/etc/fs_config_files\n- /vendor/etc/fs_config_dirs or /vendor/etc/fs_config_files\n- /oem/etc/fs_config_dirs or /oem/etc/fs_config_files\n- /odm/etc/fs_config_dirs or /odm/etc/fs_config_files\n- internal android_dirs[] or android_files[] structures.\n\nNo restrictions are placed on the odm file-system config files,\nalthough the developer is advised to restrict the scope to the /odm\nfile-system since the intent is to provide support only for\ncustomized portions of odm.img.\n\nTest: full build and install smoke test and inspection\nBug: 36071012\nChange-Id: Ic3afb5bb4ea20b15bd5df728be9f16045bf5b039\n"
    },
    {
      "commit": "437dc91fa39803607ddc83ce52ee40ce3208696a",
      "tree": "199f955339b7b8f0ac276b68ef363bf3ca845153",
      "parents": [
        "a4bc98941af87ba95bb72b8be59e74ad5686e7d8",
        "8d01f63f50fb001f41835a0dab636981f2ba76dd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 22 20:13:42 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 22 20:13:43 2017 +0000"
      },
      "message": "Merge \"remove emergency shutdown and improve init\u0027s reboot logic\""
    },
    {
      "commit": "8d01f63f50fb001f41835a0dab636981f2ba76dd",
      "tree": "4da313fb2f460ddbb8f79a119bf93169795883c9",
      "parents": [
        "2a54ae97ebcb69fe0ca5807f860739f499079ca1"
      ],
      "author": {
        "name": "Keun-young Park",
        "email": "keunyoung@google.com",
        "time": "Mon Mar 13 11:54:47 2017 -0700"
      },
      "committer": {
        "name": "Keun-young Park",
        "email": "keunyoung@google.com",
        "time": "Wed Mar 22 11:23:31 2017 -0700"
      },
      "message": "remove emergency shutdown and improve init\u0027s reboot logic\n\n- Emergency shutdown just marks the fs as clean while leaving fs\n  in the middle of any state. Do not use it anymore.\n\n- Changed android_reboot to set sys.powerctl property so that\n  all shutdown can be done by init.\n\n- Normal reboot sequence changed to\n    1. Terminate processes (give time to clean up). And wait for\n      completion based on ro.build.shutdown_timeout.\n        Default value (when not set) is changed to 3 secs. If it is 0, do not\n        terminate processes.\n    2. Kill all remaining services except critical services for shutdown.\n    3. Shutdown vold using \"vdc volume shutdown\"\n    4. umount all emulated partitions. If it fails, just detach.\n       Wait in step 5 can handle it.\n    5. Try umounting R/W block devices for up to max timeout.\n      If it fails, try DETACH.\n      If umount fails to complete before reboot, it can be detected when\n      system reboots.\n    6. Reboot\n\n- Log shutdown time and umount stat to log so that it can be collected after reboot\n\n- To umount emulated partitions, all pending writes inside kernel should\n  be completed.\n- To umount /data partition, all emulated partitions on top of /data should\n  be umounted and all pending writes should be completed.\n- umount retry will only wait up to timeout. If there are too many pending\n  writes, reboot will discard them and e2fsck after reboot will fix any file system\n  issues.\n\nbug: 36004738\nbug: 32246772\n\nTest: many reboots combining reboot from UI and adb reboot. Check last_kmsg and\n      fs_stat after reboot.\n\nChange-Id: I6e74d6c68a21e76e08cc0438573d1586fd9aaee2\n"
    },
    {
      "commit": "5e801e7bd52d890583f44dffc41116c2dbc2a770",
      "tree": "15823bba1129e1a56d720d997634dc8e6ae6e961",
      "parents": [
        "2a54ae97ebcb69fe0ca5807f860739f499079ca1"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Mar 22 16:37:42 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Mar 22 17:03:19 2017 +0900"
      },
      "message": "Make the xtables lock readable only by AID_RADIO and root.\n\nAnyone who can read this file can call flock(..., LOCK_EX) on it,\nthereby blocking any future iptables commands from running.\nRestrict it to user AID_RADIO, which includes device-specific\nnetwork management daemons, and group root.\n\nBug: 36108349\nTest: see https://android-review.googlesource.com/#/c/348939/\nChange-Id: I4dae4b5a835fabdc1a61a330e0446b39651f8156\n"
    },
    {
      "commit": "d4e238605733074b7d45c38b960bcada7a25dbd5",
      "tree": "d6cf13f52927d4883aeb6b2ce44b5025c474a1aa",
      "parents": [
        "2a54ae97ebcb69fe0ca5807f860739f499079ca1"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Mon Mar 20 16:46:34 2017 -0700"
      },
      "committer": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Tue Mar 21 17:34:58 2017 -0700"
      },
      "message": "Moved include/android_filesystem_*.h and canned_fs_config.h to libcutils\n\nBug: 33241851\nTest: No changes needed for modules not using VNDK.\nFor VNDK, enable BOARD_VNDK_VERSION in BoardConfig.mk\nand add libcutils to modules that need these headers.\n\nChange-Id: I6102778aab35ed26a5ddde11230502dcd4edc852\n"
    },
    {
      "commit": "e941c5fa41b6e58e8bda663841dff4da5edcc823",
      "tree": "67367713677de96373370c060a84f6689290672e",
      "parents": [
        "e87a826a1df1891d2819aa70d613f7f140b11953",
        "97957fc420b0d2dc019f4728b2d3611b7305ab91"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 21 22:09:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 21 22:09:51 2017 +0000"
      },
      "message": "Merge changes from topic \u0027remove_bg_cgroup\u0027\n\n* changes:\n  libcutils: only change cgroup when fd is initialized\n  init.rc: remove bg_non_interactive cgroup\n"
    },
    {
      "commit": "62c701e1740847afab640b3610fc44c1d8eeb5e9",
      "tree": "01b19da81de9d0e8072f04d2ad06f208a286100c",
      "parents": [
        "9ceadcb0c458c8ab5715d1fb82221464cc09d667"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Mar 21 08:09:52 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Mar 21 08:15:58 2017 -0700"
      },
      "message": "libcutils: fs_config() add check /oem/etc/fs_config_*\n\nAdd reading of vendor file-system config files\n/oem/etc/fs_config_dirs and /oem/etc/fs_config_files.\n\nOrder of interpretation (for dirs and files respectively):\n- /system/etc/fs_config_dirs or /system/etc/fs_config_files\n- /vendor/etc/fs_config_dirs or /vendor/etc/fs_config_files\n- /oem/etc/fs_config_dirs or /oem/etc/fs_config_files\n- internal android_dirs[] or android_files[] structures.\n\nNo restrictions are placed on the oem file-system config files,\nalthough the developer is advised to restrict the scope to the /oem\nfile-system since the intent is to provide support only for\ncustomized portions of oem.img.\n\nTest: full build and install smoke test and inspection\nBug: 36071012\nChange-Id: I56f3fed5efa44d622a9a110937dbc949083d44ae\n"
    },
    {
      "commit": "9ceadcb0c458c8ab5715d1fb82221464cc09d667",
      "tree": "f0dbba461286c8d8f2807e11aa71017f51af81a7",
      "parents": [
        "a45eae93f6ca99e7f9e51b96e14856e2f8d946bb"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Mar 20 08:15:40 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Mar 21 08:14:42 2017 -0700"
      },
      "message": "libcutils: fs_config() add check /vendor/etc/fs_config_*\n\nAdd reading of vendor file-system config files\n/vendor/etc/fs_config_dirs and /vendor/etc/fs_config_files.\n\nOrder of interpretation (for dirs and files respectively):\n- /system/etc/fs_config_dirs or /system/etc/fs_config_files\n- /vendor/etc/fs_config_dirs or /vendor/etc/fs_config_files\n- internal android_dirs[] or android_files[] structures.\n\nNo restrictions are placed on the vendor file-system config files,\nalthough the developer is advised to restrict the scope to the /vendor\nfile-system since the intent is to provide support only for\ncustomized portions of vendor.img.\n\nTest: full build and install smoke test and inspection\nBug: 36071012\nChange-Id: I4077bd6afcda2ee16189b2eb3c322af15205bbb9\n"
    },
    {
      "commit": "a45eae93f6ca99e7f9e51b96e14856e2f8d946bb",
      "tree": "2403da3c406ddea50426fa5ec422f6179043d72c",
      "parents": [
        "c4f9f4c216eab252851d8490751aac4b97f87e18"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Mar 20 08:53:24 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Mar 21 08:14:42 2017 -0700"
      },
      "message": "libcutils: fs_config: sort files\n\nSort android_files[] first by requirements, grouping, specificity and\nfinally by alphanumeric order.\n\nTest: full build and install smoke test and inspection\nBug: 36071012\nChange-Id: I92c4090eac0067e0327ac7c8dde229747893d585\n"
    },
    {
      "commit": "c4f9f4c216eab252851d8490751aac4b97f87e18",
      "tree": "01de361080d65b93bebd89c600db1bee6ad27721",
      "parents": [
        "f5ee213a5cb4c30d96a8d26b3683e366e7368765"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Mar 20 08:15:40 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Mar 21 08:14:42 2017 -0700"
      },
      "message": "libcutils: fs_config: sort dirs\n\nSort android_dirs[] first by requirements, grouping, specificity and\nfinally by alphanumeric order.\n\nTest: full build and install smoke test and inspection\nBug: 36071012\nChange-Id: Iff579600b05d7b2a0b9fc7d9e9d897e0bb69aebd\n"
    },
    {
      "commit": "97957fc420b0d2dc019f4728b2d3611b7305ab91",
      "tree": "e4e94dcc44f84ccf6c52124e758df2df55cede7c",
      "parents": [
        "a27a91a5fd23730c9ef0af751cddf119d869e029"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Mon Mar 20 15:13:05 2017 -0700"
      },
      "committer": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Mon Mar 20 22:13:22 2017 -0700"
      },
      "message": "libcutils: only change cgroup when fd is initialized\n\nThis is to avoid failues on setting non-exist cgroup\n\nBug: 34193533\nTest: on marlin\nChange-Id: I619dcba332fda9ec421df811745cf10311beddd3\n"
    },
    {
      "commit": "166e24c91b6982f99c4deeaa96fe2a340c7db255",
      "tree": "f9a6894014f3d0fd47b5920702f8466e41281d50",
      "parents": [
        "e1c4e04f82822d597d7d8964eb99e2be2c2ff7d8"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Mar 20 08:15:40 2017 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Mar 20 15:32:11 2017 -0700"
      },
      "message": "libcutils: fs_config.c code compliance\n\nComply with clang-format. Adjust some comments.\n\nTest: full build and install smoke test and inspection\nBug: 36071012\nChange-Id: I459a08b4dc4333ab3d75207621a27587849386a5\n"
    },
    {
      "commit": "e63f366ee32667fb7c32513c9770fa24bac1fcb4",
      "tree": "1a446b6ce94f9bda2a202aa7e1b02388ea9a07a7",
      "parents": [
        "eac33da63b118c79e117b289216bcbdb5c0beed3"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Mon Feb 06 15:43:05 2017 -0800"
      },
      "committer": {
        "name": "Keun-young Park",
        "email": "keunyoung@google.com",
        "time": "Fri Mar 17 17:27:36 2017 -0700"
      },
      "message": "android_reboot: move reboot reason file to data/misc/reboot/\n\nMove last reboot reason file to new directory data/misc/reboot/ to\nrequire only SELinux permissions specific to this new file.\n\nBug: 30994946\nTest: manual: reboot command, setprop sys.powerctl\nChange-Id: I1e067235aa4b06391cff8ab0741a9d317ba5b7da\n"
    },
    {
      "commit": "eac33da63b118c79e117b289216bcbdb5c0beed3",
      "tree": "658185fe396cf2b74a980911bc021b6815af7165",
      "parents": [
        "16663a2aa45eff3df50df562abdf757fd09bbb7a"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Mon Jan 30 17:28:55 2017 -0800"
      },
      "committer": {
        "name": "Keun-young Park",
        "email": "keunyoung@google.com",
        "time": "Fri Mar 17 17:26:57 2017 -0700"
      },
      "message": "libcutils: android_reboot: save reboot reason in file\n\nSave a string identifying the reason for last Android reboot or power\noff in file /data/misc/recovery/last_reboot_reason .  This file may\nbe used for informing users of reboot or shutdown reasons at next\nboot, and for other diagnostic purposes.\n\nBug: 30994946\nTest: Manual: reboot, setprop sys.powerctl\nChange-Id: I01e44473fdd21b33e9e4dced77aba9a66b6d3755\n"
    },
    {
      "commit": "4822b01b12bae88c32494e6da812dfacd2b6209f",
      "tree": "95f99e264c65c1d34cef39dce0b5795447c7a926",
      "parents": [
        "e323976e747c28b78b5e1be565317f500e0f5c06"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Mar 16 19:15:27 2017 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Mar 17 17:48:52 2017 +0000"
      },
      "message": "Update qtaguid tag/untag documentation.\n\nThe qtaguid_tagSocket() function tags a network socket by passing a\nreference to the given socket to the qtaguid kernel module. The module\nwill keep the socket alive even if the process calls close() on said\nsocket. In this scenario, the socket object would not be destroyed\neven if all the file descriptor.\n\nWhile this is at least a memory leak, it plays bad with epoll(7)\nif you also didn\u0027t remove the socket from the epoll fd before closing\nsince epoll will not notice that the socket was closed and there is no\nway to remove the socket from epoll after it was closed.\n\nThis patch updates the documentation to explicitly mention that the\nsocket must be untag before closing or bad things happen.\n\nBug: 36264049\nTest: None.\nChange-Id: I564a9b6d11d22b43a6c12312524386c0338b42ed\n"
    },
    {
      "commit": "e0cd1e043dbcbe9e4a134584b16339a753d2f69c",
      "tree": "1625815eb6c3713df1aaa19af5331ee4ba89e6de",
      "parents": [
        "e7b335b4712bc650c93b5b5777a6f8b1d85ad83f"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Mar 15 15:23:36 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Mar 15 15:44:00 2017 -0700"
      },
      "message": "Enable more modules on linux_bionic builds\n\nBug: 31559095\nTest: Enable host bionic, run soong\nChange-Id: Ib4ebd909322cf464b6a40040e4b60ece7d905b6f\n"
    },
    {
      "commit": "37bba3b88ad226cba8fbba0c7e1a6eb55213170a",
      "tree": "724560b87dd74889145e9a426e026939724fc4d1",
      "parents": [
        "41c7bb50556e435c9b270b766b1880fdda8b4830"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Mon Jan 30 17:27:39 2017 -0800"
      },
      "committer": {
        "name": "Keun-young Park",
        "email": "keunyoung@google.com",
        "time": "Tue Mar 14 17:58:25 2017 -0700"
      },
      "message": "libcutils: android_reboot: add thermal shutdown command\n\nAdd ANDROID_RB_THERMOFF command to android_reboot(), denoting a power\noff due to thermal limits exceeded.  When this command is used, Android\nmay provide notification to the user about the potentially unexpected\npower off at next boot.\n\nBug: 30994946\nTest: Manual: setprop sys.powerctl thermal-shutdown\nChange-Id: If2cde1b6a3c281a5750b50295412a4801ed5b2f2\n"
    },
    {
      "commit": "1e48879b6cafa6168addc1e1bdb8344450ca3627",
      "tree": "5e2d2e95b9df180e2aa68c39b66b47734bfea565",
      "parents": [
        "f719c255faf831357fe7ee5e3f8b23f4be7caee3",
        "18676b2ca868f3b9ca41f3974c9a369f03563d83"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 28 04:00:57 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 28 04:00:58 2017 +0000"
      },
      "message": "Merge \"Bluetooth hal: moved to vendor partition.\""
    },
    {
      "commit": "18676b2ca868f3b9ca41f3974c9a369f03563d83",
      "tree": "445d6bdbf872ae89e4eaeaa8fc637b1766cf90e6",
      "parents": [
        "7a5d535cd219707056865caac88571305f99faac"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Feb 27 09:01:21 2017 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Feb 28 01:34:59 2017 +0000"
      },
      "message": "Bluetooth hal: moved to vendor partition.\n\nBug: 35328775\nTest: works in both binderized and passthrough modes\nMerged-In: I61f1ff6b777089d7aad5184c0aee4f653897b32e\nChange-Id: I61f1ff6b777089d7aad5184c0aee4f653897b32e\n"
    },
    {
      "commit": "dfbae6ddbbc1dfaf9ba2b712f0de2cba786b092c",
      "tree": "78818a54d6e298f1d500c78f764d2eecf1321845",
      "parents": [
        "0cde0eae09e1a3751bb0d921e289ba5cdc228965",
        "a930af89217aa264a593b89a18eda6802d341e94"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 28 00:11:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 28 00:11:07 2017 +0000"
      },
      "message": "Merge changes Iede18a00,Ib0fa24fb,Ic4c8a137\n\n* changes:\n  libcutils: build tests with -Wall -Wextra -Werror\n  libcutils: fix socket type in SocketsTest.TestGetLocalPort\n  libcutils: fix Wsign-compare warnings in multiuser_test\n"
    },
    {
      "commit": "3380927e718fe136aa068f938db89c35b833e4b4",
      "tree": "8d0e6db7c04552a874a07fbacf7efb0f909d346b",
      "parents": [
        "7a5d535cd219707056865caac88571305f99faac"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Mon Feb 27 12:41:50 2017 -0800"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Mon Feb 27 13:27:58 2017 -0800"
      },
      "message": "Make secilc accessible by root only\n\nThere\u0027s no reason for SELinux policy compiler to be accessible by\nanybode other than root.\n\nTest: Device boots -- secilc isn\u0027t used yet anyway\nBug: 31363362\nChange-Id: I26cf34f1412b8dd471f79271c491b473617a6df6\n"
    },
    {
      "commit": "a930af89217aa264a593b89a18eda6802d341e94",
      "tree": "0ee11384fbf69e83d21d7ccb0628174c41ccc84b",
      "parents": [
        "7c60ec3029e68931f3c5cb6647b8bc764de71398"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Feb 22 10:50:26 2017 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Feb 22 10:58:38 2017 -0800"
      },
      "message": "libcutils: build tests with -Wall -Wextra -Werror\n\nTest: mmm system/core/libcutils/tests\n\nChange-Id: Iede18a008df5834b8ecedd6019c4444150748f68\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "7c60ec3029e68931f3c5cb6647b8bc764de71398",
      "tree": "2385f918bdce6ad94de3442eebcd62dc232e8da3",
      "parents": [
        "6d90fdc5e5c69a5f16802364c489d51398e856d6"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Feb 22 10:42:34 2017 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Feb 22 10:58:38 2017 -0800"
      },
      "message": "libcutils: fix socket type in SocketsTest.TestGetLocalPort\n\nWith -Wall enabled locally, clang points out that the second parameter\nto socket_inaddr_any_server() was accidentally hard-coded:\n\nsystem/core/libcutils/tests/sockets_test.cpp:103:18: warning: unused variable \u0027type\u0027 [-Wunused-variable]\n        for (int type : {SOCK_DGRAM, SOCK_STREAM}) {\n                 ^\n\nBug: 26936282\nTest: mmm system/core/libcutils/tests\nTest: adb shell /data/nativetest/libcutils_test/libcutils_test32 \\\n\t--gtest_filter\u003dSocketsTest.TestGetLocalPort (on hikey)\nTest: adb shell /data/nativetest64/libcutils_test/libcutils_test64 \\\n        --gtest_filter\u003dSocketsTest.TestGetLocalPort (on hikey)\n\nChange-Id: Ib0fa24fb02a5ee14db0afd6591a62089e43bbec0\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "6d90fdc5e5c69a5f16802364c489d51398e856d6",
      "tree": "7f8d7b23c80f8a4dba84f625f998470efd5f492a",
      "parents": [
        "1d73abb4436f5c578f05dd016a820e4a37275f75"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Feb 22 10:35:31 2017 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Feb 22 10:58:34 2017 -0800"
      },
      "message": "libcutils: fix Wsign-compare warnings in multiuser_test\n\ngid_t and uid_t are unsigned ints, so we need to compare against unsigned\nconstants.\n\nBug: 26936282\nTest: mmm system/core/libcutils/tests\nTest: adb shell /data/nativetest/libcutils_test/libcutils_test32 \\\n\t--gtest_filter\u003dMultiuserTest.* (on hikey)\nTest: adb shell /data/nativetest64/libcutils_test/libcutils_test64 \\\n\t--gtest_filter\u003dMultiuserTest.* (on hikey)\n\nChange-Id: Ic4c8a137e3f37cb5e95ba925814f201cfd5a06b0\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "795267d4c74821cce884c6f1e1082f00e8e12c4a",
      "tree": "e1d55c69bd7842013ac0136255263c21400c347f",
      "parents": [
        "dce4b65fe095efeab8e2ab2d1d319dc9a0626baa"
      ],
      "author": {
        "name": "Isaac Chen",
        "email": "ycchen@google.com",
        "time": "Thu Feb 16 11:47:33 2017 +0800"
      },
      "committer": {
        "name": "Isaac Chen",
        "email": "ycchen@google.com",
        "time": "Mon Feb 20 20:53:24 2017 +0800"
      },
      "message": "Removed cpusets/schedboost build time dependency.\n\nThese two Soong product_variables were usually controlled by\nENABLE_CPUSETS and ENABLE_SCHEDBOOST in BoardConfig.mk. This change\nturns the build time variables into runtime decision by checking if\na special file, \"tasks\", can be found under the mount points,\n/dev/cpuset and /dev/stune, for cpusets and schedboost, respectively.\n\nThat special file only exists when the corresponding Linux kernel\nconfigurations, CONFIG_CPUSETS and CONFIG_SCHEDTUNE, are set.\n\nBug: 34726944\n\nTest: Tested on Sailfish with following configurations\n          neither cpuset nor schedtune enabled in the kernel\n          cpuset enabled, but schedtune disabled in the kernel\n          both cpuset and schedtune enabled in the kernel\n\nChange-Id: I6695b8b32b2fecb4fd995018418bbe2edc5d590f\n"
    },
    {
      "commit": "01003d40fc03080604f4dfb905a77a814feedffe",
      "tree": "dcbc850ab6bf379d481ab46c7fde0a4d6e09fabe",
      "parents": [
        "11d3d4d22a6c6a3962a53cb75252132a173727b8",
        "b30769a87acc15fc7f628d8541cdf97aba22e2e2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 14 03:48:23 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 14 03:48:26 2017 +0000"
      },
      "message": "Merge \"Implement android::base::WaitForProperty.\""
    },
    {
      "commit": "b7ca92349eb54dcd89a92cf900b70c28430af1de",
      "tree": "99568731220257ac8b205d2adffeb37073eeae17",
      "parents": [
        "a3e4977325763b4a6fd290ee01b9ce133df8ab93"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Feb 13 17:21:17 2017 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Feb 13 17:21:17 2017 -0800"
      },
      "message": "fs_config: wifi is now on vendor partition\n\nBug: 34135607\nTest: pass\nChange-Id: I0c9dd9642e780a0303e6aaa6d80e443c59cc0c28\n"
    },
    {
      "commit": "b30769a87acc15fc7f628d8541cdf97aba22e2e2",
      "tree": "d93d47723f27c92021a558e2b71cff64fe5084a9",
      "parents": [
        "7e7913cb6703c7ff7e2fc31d5dafdfd25f01b899"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 10 19:02:51 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 13 11:29:02 2017 -0800"
      },
      "message": "Implement android::base::WaitForProperty.\n\nAlso adapt libcutils to the bionic change that was necessary for this.\n\nBug: http://b/35201172\nTest: ran tests\nChange-Id: I72a98b70b03d23e958b46778b505fbd5c86c32ae\n"
    },
    {
      "commit": "67959bceb2e15fdf6e114e34eb6b6d013a3b0faf",
      "tree": "2b1e8ae78e38a2555b6d5c5b56f895ae9e3abd54",
      "parents": [
        "ce07b6fa4f20facc8beae6f91d62802c50e9d5a5"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Feb 08 23:57:59 2017 -0800"
      },
      "committer": {
        "name": "Alex Naidis",
        "email": "alex.naidis@linux.com",
        "time": "Thu Feb 09 20:18:19 2017 +0100"
      },
      "message": "cutils: Add clang FORTIFY support\n\nBug: 32073964\nTest: Builds on angler, bullhead, marlin, sailfish. Bionic CTS tests\npass on Angler and Bullhead.\n\nChange-Id: I3d7f8ff73f92b1deb1e07f08282098e71e2d03a9\nSigned-off-by: Alex Naidis \u003calex.naidis@linux.com\u003e\n"
    },
    {
      "commit": "ac91b0c4526e252325ebe613f553812d1cfedf7e",
      "tree": "df8c43a07e600b0054e4980c55e1356f2f97bf19",
      "parents": [
        "afe25958b66f6186ada566a7c4af6b776b00cc42"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 01 12:15:22 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 01 17:55:22 2017 -0800"
      },
      "message": "Revert \"Give crash_dump CAP_SYS_PTRACE.\"\n\nThis reverts commit 36397cb1684d52b5a58612a9042884f975a4e12a.\n\nBug: http://b/34853272\nTest: debuggerd -b `pidof system_server`\nTest: debuggerd -b `pidof zygote`\nChange-Id: Ibccbccd956779f268d498a52aa737c1959538831\n"
    },
    {
      "commit": "54c7886c403dfe097b23389c16d9c735c4142bcc",
      "tree": "6606ef84b1c219288b841ed8893999a8cd9171e8",
      "parents": [
        "26a714a0ab6814267cf55d0b0e90784d5a395f5e"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jan 31 16:33:53 2017 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jan 31 16:33:53 2017 -0800"
      },
      "message": "Disable integer sanitization on host.\n\nTest: NFC until https://android-review.googlesource.com/#/c/329510\nChange-Id: I4d1bb66821b2984bbee12438cfd72b9b63d56605\n"
    },
    {
      "commit": "c8121ba029fe7a3075b59157e88b95dcf3261107",
      "tree": "547a8bbcd37d777d8a1dfe87631ef4f23b56168f",
      "parents": [
        "ff21dba167181e65502f4ee6d4e14cd16430e940",
        "4eacd70f85ec2ffc071d06945524c40967ce30f7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 27 03:18:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 27 03:18:04 2017 +0000"
      },
      "message": "Merge \"Support arbitrary-length properties in property_list.\""
    },
    {
      "commit": "4eacd70f85ec2ffc071d06945524c40967ce30f7",
      "tree": "820e1820a5c5637a8ca56e59a19befc26fac98ad",
      "parents": [
        "9e60a54f67154a1fbbe77bc483f6b842166460b1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 26 17:31:40 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 26 17:33:12 2017 -0800"
      },
      "message": "Support arbitrary-length properties in property_list.\n\nBug: http://b/33926793\nTest: visual inspection\nChange-Id: Ida84c3aaafa5411a9886f8d3d45679fd60ddc00d\n"
    },
    {
      "commit": "09175a0264d86b6e0cae9324cd95aef0711ae560",
      "tree": "82c6a0e9033e4ddabd47a39927e47836b9c35b2d",
      "parents": [
        "5b202c43760c5f9d833875dae70ac119a5416e97"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Jan 25 17:25:57 2017 -0800"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Jan 25 17:31:43 2017 -0800"
      },
      "message": "Add mode bits to a call to open with O_CREAT\n\nOpen with O_CREAT needs mode bits: https://linux.die.net/man/3/open\n\nFound by running clang FORTIFY over AOSP.\n\nBug: 32073964\nTest: Now builds with clang FORTIFY.\nChange-Id: Iee4c93c5482f510e0adf8104c27e394b5d87ec88\n"
    },
    {
      "commit": "01678a0c84e1f94420630709fe7aea7b4357f019",
      "tree": "b5f72bed216e45516a7c39b08bb5a35514b00788",
      "parents": [
        "4c38a921c225ef065ab0b3765f193fea64e2d6fb",
        "651f8383e66a32741d78f485c714ced345db7b3d"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Wed Jan 25 23:37:00 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 25 23:37:01 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Exporting C headers from system/core\"\"\""
    },
    {
      "commit": "651f8383e66a32741d78f485c714ced345db7b3d",
      "tree": "2eda81a4f89865afc14f265126884905c91f2d44",
      "parents": [
        "4d61417997a46592449d84ec2900c338ae5680d6"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Wed Jan 25 18:52:17 2017 +0000"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Jan 25 12:50:29 2017 -0800"
      },
      "message": "Revert \"Revert \"Exporting C headers from system/core\"\"\n\nThis reverts commit a3f2be2b73cebb057218db2a19e8fad04ecb88f6.\n\nTest: compile\nChange-Id: I04b3a8e47e1fa3eb9d80c14ae3a90c68a780e858\n"
    },
    {
      "commit": "36397cb1684d52b5a58612a9042884f975a4e12a",
      "tree": "fce64ee5d081073cd42497c4ef761459b4555ebb",
      "parents": [
        "7e14d020f18eec79481c562e35750a8391b71f77"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Jan 25 11:48:23 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Jan 25 11:48:23 2017 -0800"
      },
      "message": "Give crash_dump CAP_SYS_PTRACE.\n\nCAP_SYS_PTRACE is needed to ptrace processes that have capabilities\ngreater than their bounding set. Eventually, this will still be an\nimprovement, because we can ptrace attach, and then turn on a seccomp\nfilter that blocks further attaches.\n\nBug: http://b/34694637\nTest: debuggerd `pidof system_server`\nChange-Id: I4b9da164ec1fbb5060fdba590e886ac24b6a0785\n"
    },
    {
      "commit": "acdb06de6b979762c5fbbb5be644306e852689e7",
      "tree": "e057547d0c762cf536c9d65994f129d52f86647f",
      "parents": [
        "894f3ea7cb030efce805fc50b03aef46f6bf37de",
        "e04c3b05339dd48e050cfc7ad9f9460e259e3797"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 25 16:39:11 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 25 16:39:11 2017 +0000"
      },
      "message": "Merge \"Remove unused klog_get_level.\""
    },
    {
      "commit": "a3f2be2b73cebb057218db2a19e8fad04ecb88f6",
      "tree": "18cd799115341818f94e7d4857c89bbbe36ce4a3",
      "parents": [
        "3c6763ca21c1150d66daf8fde9b440b1c3219fe6"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Wed Jan 25 00:44:08 2017 +0000"
      },
      "committer": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Wed Jan 25 00:44:08 2017 +0000"
      },
      "message": "Revert \"Exporting C headers from system/core\"\n\nThis reverts commit 3c6763ca21c1150d66daf8fde9b440b1c3219fe6.\n\nChange-Id: If3b3e106478d28a5df927d57649abdca0a99dd0e\n"
    },
    {
      "commit": "3c6763ca21c1150d66daf8fde9b440b1c3219fe6",
      "tree": "7a8df02f4d5f95e86faa96886f77e21e61eba4e1",
      "parents": [
        "41ee55a8754f12389394c0266c05d09123707f77"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Thu Jan 05 10:22:52 2017 -0800"
      },
      "committer": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Sun Jan 22 19:45:38 2017 -0800"
      },
      "message": "Exporting C headers from system/core\n\nMoved headers from include/libcutils and include/liblog to\nlibcutils/include and liblog/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\nAlso added liblog_vndk_headers that exports a special log/log.h for\nVNDK.\n\nMoved headers of libcutils to libcutils_headers. They should be used\nby modules for header-only inlines. Added libcutils_headers as\ndependency of libcutils.\n\nAdded libcutils_vndk_headers that exports a special cutils/log.h\ndeprecating usage of the file. A later CL will deprecate the one in\nlibcutils_headers\n\nTest: Add above libs to shared lib of local module\nChange-Id: I6e1f9c5f23d8b6eae13dc3b7e5dfe7fae93b8510\n"
    },
    {
      "commit": "8dbab358f01ed0957ff4d5b1c505981dfe93d5de",
      "tree": "c659f78b59a17018b95a3e7f8673ade9a6e236f0",
      "parents": [
        "18044da57674dff66af818a05b70afdb51a11d05",
        "de21de7a420e5b946757f5abefb6e1dd6f1db2b1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 20 03:58:51 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 20 03:58:52 2017 +0000"
      },
      "message": "Merge \"Load default/build props from each partition\""
    },
    {
      "commit": "7e5d0b1fae241ba5fe7a6f909ad99346167cb2ed",
      "tree": "2c84b8010421053f94f9e1c52146d57d650d12ba",
      "parents": [
        "230201dcbf2f3ee178402a739f22ba7e45841cac"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jan 18 17:04:21 2017 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jan 18 17:11:05 2017 -0700"
      },
      "message": "Define GID range for external data and OBBs.\n\nTo quickly answer the question of \"how much data is a UID using?\" we\nneed a GID range to label files on external storage, similar to\nthe GID ranges already defined for cached and shared data.\n\nAlso define a new GID that will be used to label the OBB files shared\nbetween all users under /data/media/obb.\n\nTest: builds, newly added tests pass\nBug: 34263266\nChange-Id: I16fb7d166c3dcdeafbf477162d191d3b73ae8ac2\n"
    },
    {
      "commit": "de21de7a420e5b946757f5abefb6e1dd6f1db2b1",
      "tree": "7700145b573cdc15bd8e7850e5fea9d12aeadfcb",
      "parents": [
        "80112f73cd926077f0682c22d0744bebd1b2d47e"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Tue Jan 17 14:33:55 2017 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Thu Jan 19 08:45:40 2017 +0900"
      },
      "message": "Load default/build props from each partition\n\nThe following files will be loaded additionally.\n- /odm/default.prop and /vendor/default.prop for default props.\n- /odm/build.prop for build props.\n\nThe props files must follow the following priority order.\n- /default.prop \u003e /odm/default.prop \u003e /vendor/default.prop\n- /system/build.prop \u003e /odm/build.prop \u003e /vendor/buid.prop\n\nTest: tested default/build prop files with enabling early mount, but\ndidn\u0027t test files of odm partition because odm partition doesn\u0027t\nexist now.\nBug: 34116668\nChange-Id: I946d076dae38f2288865dd986fb16d801d4abcc0\n"
    },
    {
      "commit": "cbe70cb0a8cb0171f3802273050e851a47b090ed",
      "tree": "87a2805f11d9fa5283fe169d9b155f5b08a94f85",
      "parents": [
        "4c5c9db17b55bfcb2d62eec158440d0e794e30bb"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Oct 18 18:17:52 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Jan 17 13:57:57 2017 -0800"
      },
      "message": "debuggerd: advance our amazing bet.\n\nRemove debuggerd in favor of a helper process that gets execed by\ncrashing processes.\n\nBug: http://b/30705528\nTest: debuggerd_test\nChange-Id: I9906c69473989cbf7fe5ea6cccf9a9c563d75906\n"
    },
    {
      "commit": "e04c3b05339dd48e050cfc7ad9f9460e259e3797",
      "tree": "cd40b25f2978f763fe2527840ee8cdd6c67aa5f7",
      "parents": [
        "3052d123a85442deb7b2048753ebab3adc7dded0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 13 18:14:12 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 13 18:14:12 2017 -0800"
      },
      "message": "Remove unused klog_get_level.\n\nEvery little helps...\n\nBug: N/A\nTest: builds\nChange-Id: Ibcac5cda1619420c95903211ed0b96af81351f9e\n"
    },
    {
      "commit": "677ba31db20d214ffb83e0102a9b78d811b5bf68",
      "tree": "a0c4c32c78249ac3bd1709eb133827585d5cfaac",
      "parents": [
        "dd9fa24091e28490eddeea1583f47cdc968b57f6"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Thu Jan 12 15:32:26 2017 -0800"
      },
      "committer": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Thu Jan 12 22:18:46 2017 -0800"
      },
      "message": "libcutils: change klog_level to KLOG_INFO_LEVEL\n\nSome of Android componets e.g. init have migrated to use base/logging to get rid\nof klog utilities. However, without explicit initilization, the default\nklog_level is set to 3 which masks the logwrap output.\nThis patch sets default klog_level to KLOG_INFO_LEVEL to make\nandroid_fork_execvp_ext log available.\n\nBug: 34256270\nTest: manual\nChange-Id: Ibe74707a92c954053cd0e6828a984fbd72b4acae\n"
    },
    {
      "commit": "01e12b4ee76897c64a7dda63a2ba933e973bec6d",
      "tree": "5f5ef2b229b3f312a3894ed5168d22b39998fa9f",
      "parents": [
        "6540dfefca55d4daffe69548291ae4e4e72336bf",
        "30f991f251940be3ed11566fb71139852286f68a"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Jan 11 19:07:16 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 11 19:07:17 2017 +0000"
      },
      "message": "Merge \"liblog: use log/log.h when utilizing ALOG macros\""
    },
    {
      "commit": "30f991f251940be3ed11566fb71139852286f68a",
      "tree": "5cef5c112aa400da1ad1572d26fcc3b6b3099b6e",
      "parents": [
        "cdd7ec12be3dfb6a7fa2f597d2220445c96725cf"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jan 10 13:19:54 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Jan 11 09:31:15 2017 -0800"
      },
      "message": "liblog: use log/log.h when utilizing ALOG macros\n\nTest: compile\nBug: 30465923\nChange-Id: Id6d76510819ebd88c3f5003d00d73a0dbe85e943\n"
    },
    {
      "commit": "809721009380038a9ce02bc568d97403bbe498a2",
      "tree": "c875186a2ad39d6f592c6025b7e994f067dbd3fc",
      "parents": [
        "f3780f3cc8ef743538bbfa61c85b1ae36d958145"
      ],
      "author": {
        "name": "Andre Eisenbach",
        "email": "eisenbach@google.com",
        "time": "Tue Nov 22 14:18:55 2016 -0800"
      },
      "committer": {
        "name": "Myles Watson",
        "email": "mylesgw@google.com",
        "time": "Tue Jan 10 23:40:20 2017 +0000"
      },
      "message": "Allow Bluetooth HAL to access /sys/class/rfkill\n\nTest: compiles; HAL can write rfkill state\nChange-Id: I5815a1f50ef8d09bf83541a6d2389b61bd007306\n"
    },
    {
      "commit": "e67abec51428bf93c664d632af24fb28e74a6281",
      "tree": "44757666753d035321969306020104f02d0d520d",
      "parents": [
        "22c0962ab9897d2eadb7876902e7af7ca9d17852"
      ],
      "author": {
        "name": "Myles Watson",
        "email": "mylesgw@google.com",
        "time": "Thu Dec 22 09:05:18 2016 -0800"
      },
      "committer": {
        "name": "Myles Watson",
        "email": "mylesgw@google.com",
        "time": "Thu Dec 22 09:21:06 2016 -0800"
      },
      "message": "libcutils: Use strnlen for default property values\n\nAdd unit tests to test the corner cases.\n\nTest: unit tests pass before and after the change.\nChange-Id: Idafeb8354cd6c7db2a68cd398dafe153453a3940\n"
    },
    {
      "commit": "22c0962ab9897d2eadb7876902e7af7ca9d17852",
      "tree": "3db3f840a7440b68f4b25619cb8525646b19e1c2",
      "parents": [
        "1d5965e40f33331094cb55957d6f2e0c2295c550"
      ],
      "author": {
        "name": "Myles Watson",
        "email": "mylesgw@google.com",
        "time": "Tue Dec 20 06:47:36 2016 -0800"
      },
      "committer": {
        "name": "Myles Watson",
        "email": "mylesgw@google.com",
        "time": "Thu Dec 22 09:20:57 2016 -0800"
      },
      "message": "Use clang-format to fix up properties.c\n\nBasedOnStyle: Google\nIndentWidth: 4\nColumnLimit: 100\n\nTest: unit tests pass\nChange-Id: Ie1a9bf85c001ef1a2dcdafdc5bf696b9267116f7\n"
    },
    {
      "commit": "5f9fa904255dd384481c74f04bb9034b9702f29b",
      "tree": "93a77bb092e8c8acfbc6ea64ab05a3269d820aa0",
      "parents": [
        "d0ee73932f6a7c047617aa74ecd845a69566c56b"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Dec 16 14:52:35 2016 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Dec 16 14:54:02 2016 -0800"
      },
      "message": "fs_config.c: make *.prop files 0600\n\nEnforce that the only API for reading properties is through the property\nserver, not by reading the (system|vendor|rootfs) *.prop files.\n\nTest: Device boots and no property errors.\nChange-Id: Ibb6ed4e74a80cac00010c707d7574f8e92fc6448\n"
    },
    {
      "commit": "da94f09e224242541fd8aa51930eb739d819cc7f",
      "tree": "ac8204173ff9e84b918056bab52ba21a5a8ea5be",
      "parents": [
        "049376f14d31cbc65a94b0bb2641df51e73ac5c0",
        "dff44709cf462a3af7eb5770c90e3ada492295b7"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Dec 15 21:46:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 15 21:46:31 2016 +0000"
      },
      "message": "Merge \"Define range of GIDs for cached app data.\""
    },
    {
      "commit": "dff44709cf462a3af7eb5770c90e3ada492295b7",
      "tree": "260698ec335906df76fe1db439baa5f71089a953",
      "parents": [
        "2361ab0d3172adf472c7a8bbb7030f514543104d"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Dec 13 11:55:19 2016 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Dec 13 13:28:08 2016 -0700"
      },
      "message": "Define range of GIDs for cached app data.\n\nTo support upcoming disk usage calculation optimizations, this change\ncreates a new GID for each app that will be used to mark its cached\ndata.  We\u0027re allocating these unique GIDs so that we can use\nquotactl() to track cached data on a per-app basis.\n\nThis change also tightens up the implementation of both the cache\nand shared GID calculation to ensure that they stay inside the valid\nranges, and includes tests to verify.\n\nTest: builds, boots, tests pass\nBug: 27948817\nChange-Id: Ie4377e5aae267f2da39a165888139228995987cb\n"
    },
    {
      "commit": "5fee496e6220228b4a9059e06e430178ee1ba1ec",
      "tree": "6f5e9843921bc371233371568fed27be192b1655",
      "parents": [
        "a79477559213e25c6a1f4bf29fc1f4a2e741f8df"
      ],
      "author": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Wed Dec 07 10:55:45 2016 -0800"
      },
      "committer": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Fri Dec 09 15:16:28 2016 -0800"
      },
      "message": "socket: uevent: use SO_RCVBUF instead of SO_RCVBUFFORCE\n\nThe SO_RCVBUFFORCE option requires the caller of uevent_create_socket()\nto have net_admin capabilities.\n\nSet platform default rcv/snd buffer sizes to 256kb that will always be\noverridden by the device/target. However, it will allow\nueventd / healthd to use the uevent_create_socket() API w/o requiring\nthe net_admin capability.\n\nNote: All devices override the buffer sizes according to the technology\nmaximum to at least ~8MB. So, the init.rc change here is to make sure\nplatform code can work w/o any overrides.\n\nTest: no SELinux failures for healthd with \u0027net_admin\u0027 removed.\n\nBug: https://b/32733887\n\nChange-Id: Ida346468cd550ad07901bf3a78ad508939849906\nSigned-off-by: Sandeep Patil \u003csspatil@google.com\u003e\n"
    },
    {
      "commit": "8656ed109b172bab965187d5833fbf32b2e49729",
      "tree": "3e107540b6ee94a5f699c88536adf1ed29be57fa",
      "parents": [
        "66d86967bd04ad4b5bf41e813b3f2c01c6a0ccc7",
        "769a5a19621b80840d9f091d060579ddacaf010f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 30 22:49:53 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 30 22:49:53 2016 +0000"
      },
      "message": "Merge \"Use hasmntopt(3) rather than reinventing the wheel.\"\nam: 769a5a1962\n\nChange-Id: I62541c0ff6961888239a7686bb37115b39fc787b\n"
    },
    {
      "commit": "769a5a19621b80840d9f091d060579ddacaf010f",
      "tree": "0a2e0935ad0d1c9b5fc8eadb12b462aab74e732b",
      "parents": [
        "9e8467a070b282b1534edbba597c308cb0561450",
        "8c1838823a806ee3efac9cdd5c940000e577b8c7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 30 22:32:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 22:32:44 2016 +0000"
      },
      "message": "Merge \"Use hasmntopt(3) rather than reinventing the wheel.\""
    },
    {
      "commit": "8c1838823a806ee3efac9cdd5c940000e577b8c7",
      "tree": "edb926d35d83660c5a1be238e8401150f3562f7d",
      "parents": [
        "1abc3cd641120aceabde7dd927f6dfc5b565e242"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 30 09:37:17 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 30 09:37:17 2016 -0800"
      },
      "message": "Use hasmntopt(3) rather than reinventing the wheel.\n\nBug: N/A\nTest: \"power off\" still works\nChange-Id: I11d3dc22f98ac71608c9929a3fd43319c787d49e\n"
    },
    {
      "commit": "6878cd20e64a14736e0099c90c6b896302f795d2",
      "tree": "3c3a07ee6f7eb69d8a6d0b0d21a79da24a63157a",
      "parents": [
        "8a96f5e4a7f603f33d306d1a407bb90a1fbcc5f8",
        "bac388e4241f20a655d5ca1b291d747ec119d7ab"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Nov 30 17:28:39 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 30 17:28:39 2016 +0000"
      },
      "message": "Merge \"libcutils: tests\"\nam: bac388e424\n\nChange-Id: I86a00ea257985836400b530c1e60bdc5e070dd00\n"
    },
    {
      "commit": "678194ddac316ee1e2b394dc95d25c5e836def49",
      "tree": "6967d1d1a2b635f395c3588a57386ca6d8509917",
      "parents": [
        "a10bd47d603995835412334504d0fbeffe0ae299"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Nov 28 10:39:21 2016 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Nov 29 10:08:12 2016 -0800"
      },
      "message": "libcutils: tests\n\nRespect \"android\" and \"not_windows\" (linux + darwin). This\nmeans the string test and control support routines were not\nbeing tested on android.\n\nTest: gTest libcutils_test\nBug: 32450474\nChange-Id: I9505fefeb0a4a8c5b54aa637812b4f3c07c2893c\n"
    },
    {
      "commit": "5a411029de89b9eb83e66d789a2eee458d411a5e",
      "tree": "c1c08a33af518c2cc5168483d9b333442d7ebc46",
      "parents": [
        "7bc8810a4affe77262a1517b0af3b2e40221dd61",
        "ed0a48c617e7dce710bcc498000be9b9e0a43ce4"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Nov 17 16:43:06 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 17 16:43:06 2016 +0000"
      },
      "message": "Merge \"libcutils:  sdk(mac) build error (part deux)\"\nam: ed0a48c617\n\nChange-Id: Id6d3a5568a3383111592fd097ab8c96568783522\n"
    },
    {
      "commit": "0958b18da03e664802c5d4956629c4a2fb6e5664",
      "tree": "f8e32fe58f7b82ca8e8a5f2a2929181a70fac464",
      "parents": [
        "231d1ac640c4112c984fdea41a372e74d239d2bb"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Nov 17 08:33:19 2016 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Nov 17 08:33:26 2016 -0800"
      },
      "message": "libcutils:  sdk(mac) build error (part deux)\n\nTest: Build\nBug: 32450474\nChange-Id: I92cca30217715779a9db6a60e2e4831a20cec3d4\n"
    },
    {
      "commit": "7bc8810a4affe77262a1517b0af3b2e40221dd61",
      "tree": "2dd946510f2fa914b01d093fb0c622488e651eac",
      "parents": [
        "c8124d159210befc9ebddb980db6a826c17a5a5f",
        "231d1ac640c4112c984fdea41a372e74d239d2bb"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Nov 17 16:19:34 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 17 16:19:34 2016 +0000"
      },
      "message": "Merge \"libcutils: sdk(mac) build error\"\nam: 231d1ac640\n\nChange-Id: Icca67be8194faa296b93e9bfec2a15002ac06147\n"
    },
    {
      "commit": "6b652160d1f33ecb31663224813c57288f7008e1",
      "tree": "cc8b45fc562f848f144e7d6e251c766b2664cd01",
      "parents": [
        "c097c79b7787493fec7a097ac2ba603e42e30d0c"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Nov 17 08:05:10 2016 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Nov 17 08:05:16 2016 -0800"
      },
      "message": "libcutils: sdk(mac) build error\n\nSurprise surprise, MAC sdk build has F_GETFD \u0026 not TEMP_FAILURE_RETRY.\nRevert code to original form with the three alternatives for all OSii.\n\nTest: Build\nBug: 32450474\nChange-Id: Ia7361d8107675a620968d8395c5e2351ad364d29\n"
    },
    {
      "commit": "809dee506e000bea8aab462611e3cff016ac77ff",
      "tree": "d74cd0442b6c801fab6e85d7b00b08d4cdc73e73",
      "parents": [
        "f5964b5cf9fdf8ea4b174310e0000372f96ae88e",
        "8c41e791ed726449bd51a35f03dd6269274668c0"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Nov 17 15:33:02 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 17 15:33:02 2016 +0000"
      },
      "message": "Merge \"libcutils: move cutils/files.h to cutils/android_get_control_file.h\"\nam: 8c41e791ed\n\nChange-Id: Ifbc00285da734859d590153a7c6cfc8e51c014f9\n"
    },
    {
      "commit": "52bd37e63373b410c009e8611508191dfbf31d30",
      "tree": "32ed2ad56a69bb6d00b2193eaaed07d813e46982",
      "parents": [
        "e631e470e059d84388f3aacfe11a3fa60a584ba7"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Nov 07 09:39:30 2016 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Nov 16 15:56:56 2016 -0800"
      },
      "message": "libcutils: move cutils/files.h to cutils/android_get_control_file.h\n\nfiles.[h|cpp] is bound to be abused with junk, replace with\nandroid_get_control_file.[h|cpp]. Plus some sundry cleanup.\n\nTest: gTest libcutils-tests, logd-unit-tests, liblog-unit-tests,\n      logcat-unit-tests and init_tests\nBug: 32450474\nChange-Id: Ibd4a7aa4624ea19a43d1f98a3c71ac37805d36b5\n"
    }
  ],
  "next": "d32e7f4703d329104941828d5280f4f05438a489"
}
