)]}'
{
  "log": [
    {
      "commit": "0e69160ebc7ba41c9456788c55e1a6ea1d72d79e",
      "tree": "f1e0b35b87e9f4d294254663d556d5a2d62d909a",
      "parents": [
        "862b01746ef5b028cf928ff0611cf42a624653dc"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Oct 14 14:13:58 2020 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Oct 20 12:46:14 2020 -0700"
      },
      "message": "Remove include/backtrace symlink.\n\nThis requires a few other changes to support building libutils\nproperly. It does appear the windows versions of libutils is\nreferencing CallStack code, but it doesn\u0027t seem to cause any problems.\nHowever, I removed those references completely for the windows build.\n\nAlso removed a few extra spaces that seem to have accumulated in the\nRefBase.cpp.\n\nBug: 170465278\n\nTest: Builds and libutils unit tests pass.\nChange-Id: Ibeee7791b13636b34bdd592c5420fd91620f752a\n"
    },
    {
      "commit": "1783f12106b25113fed92021399ecafd826a5293",
      "tree": "912e48ea5c875cf31cf8f552b1190d3dfc958979",
      "parents": [
        "824ef9ade64b57a756510133a4c412ac5863a526"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 16 16:51:29 2020 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Oct 06 10:45:11 2020 -0700"
      },
      "message": "Reland: \"Remove logging symlinks from system/core/include\"\n\nSoong will instead directly include those paths.\n\nBug: 165825252\nTest: treehugger\nChange-Id: If1ee31ebf83715c0dfc4797305784fbfa7bd97db\n"
    },
    {
      "commit": "c274f9ff693bc3cdc7dd74f16c56a002a2775d4e",
      "tree": "c0d6e372444a9198965f3e3fd1951d69daf64bd3",
      "parents": [
        "f30b12e6ad87734a8c96e469ba4647edeb2b4b21",
        "f94b88fa610e16326b85012ee02be05f3c2dbe77"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Oct 05 19:26:17 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 05 19:26:17 2020 +0000"
      },
      "message": "Merge \"Revert \"Remove logging symlinks from system/core/include\"\""
    },
    {
      "commit": "f94b88fa610e16326b85012ee02be05f3c2dbe77",
      "tree": "e4bb0893af742ffb892c2ac88fe00a897fedec67",
      "parents": [
        "93ad204395fc94a8e1f77493272f71021f458612"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Oct 05 19:24:12 2020 +0000"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Oct 05 19:24:12 2020 +0000"
      },
      "message": "Revert \"Remove logging symlinks from system/core/include\"\n\nRevert \"Include system/core/liblog/include instead of using symlinks\"\n\nRevert submission 1428983-no-log-header-symlinks\n\nReason for revert: Build breaks\nReverted Changes:\nI248a2f045:Include system/core/liblog/include instead of usin...\nIc189e0f59:Remove logging symlinks from system/core/include\n\nChange-Id: Ia7d9efb29a5e83bb5d7c0e4a73f40c72c719bc62\n"
    },
    {
      "commit": "f8a89dc3a2901600867742c1b8839057c151a9e6",
      "tree": "06f9dd59c0ed2ac236f8ead1134e098add83ec3e",
      "parents": [
        "351586822fc4f12ff462683f14b8d96c34e181b8",
        "93ad204395fc94a8e1f77493272f71021f458612"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Oct 05 15:26:51 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 05 15:26:51 2020 +0000"
      },
      "message": "Merge \"Remove logging symlinks from system/core/include\""
    },
    {
      "commit": "167fbf534bf5036c9d0262a60fc8bd3029a8ef58",
      "tree": "e553c669d50b2c64e9c959ac37dbffbc316f0788",
      "parents": [
        "012ee0ae0a9548e64a7d1b803cc94ed2138d24aa"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Sep 17 09:39:24 2020 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Oct 05 15:26:24 2020 +0000"
      },
      "message": "Delete include/private/android_filesystem_config.h\n\nThis header should be accessed through libcutils.\n\nTest: build\nChange-Id: Ifb0ad3bc63ec5806d9c474a5d39721b2189c34de\n"
    },
    {
      "commit": "93ad204395fc94a8e1f77493272f71021f458612",
      "tree": "bb1f9a669f95b5e624aeae17e336258314e058df",
      "parents": [
        "b80d98dcf7c740ea6b1aeeb07f01d18169fb8ad6"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 16 16:51:29 2020 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Sep 17 14:32:48 2020 -0700"
      },
      "message": "Remove logging symlinks from system/core/include\n\nSoong will instead directly include those paths.\n\nTest: treehugger\nChange-Id: Ic189e0f597f69ab36b25a94dcde81165da3e53db\n"
    },
    {
      "commit": "0407302aa8b38fa806e2fa718130fed85f80339e",
      "tree": "d55d5a58fe8aecdd7936648e7abb443827985b17",
      "parents": [
        "975ea3217eb4bc452682ec005a2f3a353c2b2d42",
        "5164f9c9e9c723770934bc7e571b53abdaf083f8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 17 19:49:01 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 19:49:01 2020 +0000"
      },
      "message": "Merge \"Remove sysutils symlink from system/core/include.\""
    },
    {
      "commit": "73b1ac878ba6c31e29ba796f2b3716b31faeed7f",
      "tree": "ef37798cd34b0c2ccc2b93a072bb7f7c456ac074",
      "parents": [
        "46ec1a561d8052765ce90995537d0708c968b041",
        "3d8b739f94a69d7a49823b563f2887b5629f1f95"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 16 22:07:02 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 16 22:07:02 2020 +0000"
      },
      "message": "Merge \"Remove include/private/android_logger.h\""
    },
    {
      "commit": "3d8b739f94a69d7a49823b563f2887b5629f1f95",
      "tree": "87d85123640769fe5940d54af4fd49cfdc665038",
      "parents": [
        "190921ed5c3283ba6b3f45debbd6c4c91ef8a38b"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 16 11:32:47 2020 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 16 11:32:47 2020 -0700"
      },
      "message": "Remove include/private/android_logger.h\n\nUsers should depend on liblog or liblog_headers for this include.\n\nTest: treehugger\nChange-Id: I10dca8638082b2231e2c0713644f103c4c7e9b3f\n"
    },
    {
      "commit": "7eb9580a298506625e11f19f57302ffc88c141a9",
      "tree": "170fb11078c06c6c792af4d3da739909be7e5198",
      "parents": [
        "61ebd66137acae655069c60dfffac3d26467e252"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 16 10:43:03 2020 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 16 10:43:03 2020 -0700"
      },
      "message": "Remove include/private/android_filesystem_capability.h\n\nandroid_filesystem_capability.h should be included as part of\nlibcutils, not as a global include.  It looks like the few users of\nthis file already do this correctly, so it\u0027s time to remove the\nsymlink.\n\nTest: treehugger\nChange-Id: I150dc5fee24bef3518b1f26728ef2bec669ee63a\n"
    },
    {
      "commit": "61ebd66137acae655069c60dfffac3d26467e252",
      "tree": "1b69e5c4bc2e616a7718d8367fc2898b0152ba69",
      "parents": [
        "9c2005fc27da23751acdbf29531fa15d62ac1038"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 16 10:23:43 2020 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 16 10:23:43 2020 -0700"
      },
      "message": "Remove include/private/canned_fs_config.h\n\ncanned_fs_config.h should be included as part of libcutils, not as a\nglobal include.  It looks like the few users of this file already do\nthis correctly, so it\u0027s time to remove the symlink.\n\nTest: treehugger\nChange-Id: I72d327c2f1f374a1fa9e22b5ee1cceb0311a6818\n"
    },
    {
      "commit": "9c2005fc27da23751acdbf29531fa15d62ac1038",
      "tree": "d0e57232aec432095039b3dc7c93059c7014710d",
      "parents": [
        "190921ed5c3283ba6b3f45debbd6c4c91ef8a38b"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 16 10:20:46 2020 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 16 10:20:46 2020 -0700"
      },
      "message": "Remove include/private/fs_config.h\n\nThis file is empty and should have no users including it.\n\nTest: treehugger\nChange-Id: I6c5a97dc42456d51c89762c93c6a744a69780843\n"
    },
    {
      "commit": "5164f9c9e9c723770934bc7e571b53abdaf083f8",
      "tree": "7e819288647d3c3646e056f40cee546e5b4423cc",
      "parents": [
        "5d0eb6659055fa3eac714a78e294fdd026ac732b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 20 14:34:20 2020 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 20 14:34:20 2020 -0700"
      },
      "message": "Remove sysutils symlink from system/core/include.\n\nTest: treehugger\nChange-Id: I947c939bc4b5d3c0fdd7ff220bec74e98642108b\n"
    },
    {
      "commit": "09c89672b6a5ed6e6b6fc3ad28ac309c7ff69170",
      "tree": "3837bd0ced3100188d70c0d037ebc5353800e5ea",
      "parents": [
        "b5c90e9d6b3218d80055dddf7b27cd1fa2a5c024"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Aug 01 16:33:11 2017 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Aug 02 16:31:19 2017 -0700"
      },
      "message": "Move android_filesystem_config.h \u003d\u003e fs_config.h\n\nThe non AID_ things in android_filesystem_config.h are moved\nto fs_config.h. For libcutils.vendor and libcutils_headers.vendor,\nfs_config.h is not exported.\n\nAn empty system/core/include/private/fs_config.h is placed to\nappease the dependency from certain modules (logd, etc.)\nthat includes system/core/include/private/android_filesystem_config.h\ndirectly.\n\nTest: m -j\nTest: BOARD_VNDK_VERSION\u003dcurrent m -j\nBug: 63135587\nChange-Id: I95dfb874a426941022b100c0ca26a0576b0f4aa3\nMerged-In: I95dfb874a426941022b100c0ca26a0576b0f4aa3\n"
    },
    {
      "commit": "508e0b8b34b841f85f1269826bb2ae33967f081f",
      "tree": "08e8465964c356fabcf46279019e57247fa1a717",
      "parents": [
        "ae590fe7231d674b7bef51136cbb2969d13f8441",
        "b2b88e35eadc9b5c6f0b61d2dd025a725bb85980"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 06 23:36:34 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 06 23:36:34 2017 +0000"
      },
      "message": "Merge \"Move libnativebridge headers into the module.\""
    },
    {
      "commit": "b2b88e35eadc9b5c6f0b61d2dd025a725bb85980",
      "tree": "3fbe937b115a74d18489dd82ff6176c4b7e132f6",
      "parents": [
        "c31963b5c255d57e162f4666f80b438ac74413ac"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Jun 30 12:46:57 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Jul 06 11:23:16 2017 -0700"
      },
      "message": "Move libnativebridge headers into the module.\n\nTest: links\nChange-Id: I2e19d1ba7845b4b3d3fee934fcb1c90151fd7192\n"
    },
    {
      "commit": "d201b292fd22c899f305c389a784f3c8400f1450",
      "tree": "1daa0ed8a3d039c9037c18335ba75b22cd17703a",
      "parents": [
        "a10a7e71147be0f54a860a021d59669a64ad9e87"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 05 20:30:56 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 05 22:03:44 2017 -0700"
      },
      "message": "System/core: Remove include/ziparchive\n\nRemove the now unnecessary link.\n\nPartially reverts commit cdf7ff8e204beb6bbfe263c3d6255c2b2d0095a7.\n\nBug: 37342627\nTest: m\nChange-Id: Ia44df234923c798618d7dc79d8f9f9432fbfada9\n"
    },
    {
      "commit": "cdf7ff8e204beb6bbfe263c3d6255c2b2d0095a7",
      "tree": "c5cb33d4d99a46b0d622eb30b82d7de11e2dd10a",
      "parents": [
        "cd997e609405cfd6b1f82a1f849f98352b12ae72"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Sun Jul 02 11:52:40 2017 +0900"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sun Jul 02 04:33:34 2017 +0000"
      },
      "message": "libziparchive headers are moved to local directory\n\nlibziparchive headers are moved from the global include directory\n(/system/core/include) to the local directory inside libziparchive.\n\nNote: /system/core/include/ziparchive still exists as a symlink to\nlibarchive/include/ziparchive. This will be removed when there is no\nheader-only dependency to libziparchive.\n\nBug: 37342627\nTest: build\nChange-Id: I3631ffc2df7be8a064d64a625d10436090c3bb0f\n"
    },
    {
      "commit": "cd997e609405cfd6b1f82a1f849f98352b12ae72",
      "tree": "db2d044e52fe9f8d4b3dc1d541f3a15d3b5cfd5b",
      "parents": [
        "22de50d35133c29c06bd8921937489e49d86900f"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Jun 30 17:23:33 2017 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Sun Jul 02 11:46:53 2017 +0900"
      },
      "message": "Ran clang-format on libziparchive sources and headers\n\nTest: build aosp_arm\nChange-Id: I469b82b68f2c457f480fb9cd9da2026672985ce3\n"
    },
    {
      "commit": "55fd293dfe89c7b1f856bc60cac643ee72d5ef22",
      "tree": "affedba31808951788e8ac3db770539a7afea994",
      "parents": [
        "b46fd68653131d276ccb23ba7790640c6a9c1c7d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun May 28 22:59:04 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jun 04 11:53:48 2017 -0700"
      },
      "message": "Add libziparchive-based unzip.\n\nBug: N/A\nTest: new toybox unzip.test\nChange-Id: I00be388578be9a0a0390a9e2ecfac664c6ab39ca\n"
    },
    {
      "commit": "882cad2d87fc003ced61ddf9d68f8810ec8c4b3f",
      "tree": "e8c320809a6b684cfaa5bb1174e6b514b4763a78",
      "parents": [
        "102eb90837d1e30fe9603b046e351c28cbaebbd9"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 01 15:12:49 2017 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 25 10:30:55 2017 -0700"
      },
      "message": "Load vendor public libraries to sphal namespace\n\nLoad vendor public libraries to sphal namespace\nif it exists - preserve old behavior of loading\nthese libraries to default namespace if sphal\nnamespace is not present on the device.\n\nBug: http://b/37410104\nTest: cts-tradefed run singleCommand cts --skip-preconditions -m CtsJniTestCases\n      on marlin (with enabled sphal configuration) and on angler where ld.config.txt\n      is not present.\n\nChange-Id: Iaa3fa437ba2900acc2e5b9c78039fe1553e4c9dd\n(cherry picked from commit af0264bbe9f5e1228eb8fb486fa3d0d8e6e8605e)\n"
    },
    {
      "commit": "8f2c28d572e08cb456da05d692e41f978c3776b1",
      "tree": "f24d6e2e935760dd877452ad81f8f4c0fc2a97d3",
      "parents": [
        "a4b40020ef5ae339e19b832f441c26b598f6c4aa"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Tue Apr 11 11:22:43 2017 -0700"
      },
      "committer": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Tue Apr 11 11:22:43 2017 -0700"
      },
      "message": "Moved include/backtrace to libbacktrace/include\n\nExport libbacktrace_headers\n\nBug: 33241851\nTest: Build sailfish\nChange-Id: Iba310ffc21d17ba542bed954a960ab305037061c\n"
    },
    {
      "commit": "1238292db5031fdf0cfe9e753265c30a46a21ec3",
      "tree": "7bf744cb5b457cf2fed14e08c823727b8d944e3e",
      "parents": [
        "f8111b7df86a4678748d484e7292a52b0c2a7769",
        "e8fb11dfa1b376124d0a1a349c8800799f25606a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 07 21:46:14 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 07 21:46:18 2017 +0000"
      },
      "message": "Merge \"NativeBridge: add \"linked namespace\" semantic corresponding to linker\""
    },
    {
      "commit": "deb32544ba8a4ffa6c8a78e8b5a314d3ec317b89",
      "tree": "4d0024a2a64e1ea35f2ec9a3c7367d33823ffefb",
      "parents": [
        "7660c46c661a84f11ce114e58c224371fd561801",
        "b3ef9022e90a062ceae3d35a3655c558d96a17c0"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Fri Apr 07 18:28:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 07 18:28:47 2017 +0000"
      },
      "message": "Merge \"Moved all files from include/system to libsystem/include/system\""
    },
    {
      "commit": "47f558192767eec34455c9179a9fb6138630aecd",
      "tree": "bc3108f262e2664fd66329c4487bcdc1a76652a4",
      "parents": [
        "e7fbd6a2b42b1a498a4c3587a829127bd32dc63d",
        "e2fa70bcb048566eff4d0e271288f24f0bdbc0a8"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 07 00:33:18 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 07 00:33:20 2017 +0000"
      },
      "message": "Merge \"ZipWriter: Do not write DataDescriptor for STORED files\""
    },
    {
      "commit": "e2fa70bcb048566eff4d0e271288f24f0bdbc0a8",
      "tree": "6ff0407b9ef12c67958e576f004642377c1ab39c",
      "parents": [
        "0e19795a621ddb9912edc58b832f078405e485fd"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Mar 29 16:10:11 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Apr 06 17:03:32 2017 -0700"
      },
      "message": "ZipWriter: Do not write DataDescriptor for STORED files\n\nOlder implementations of ZIP (Java\u0027s ZipInputStream) don\u0027t\nlike a Data Descriptor trailing after an uncompressed entry.\n\nIf the FILE is seekable, and the entry is uncompressed, seek\nback to the header and write out the crc and sizes.\n\n(cherry-pick of commit 639814d946867c20537820cd0c08a6202a251583)\n\nBug: 36686974\nTest: make ziparchive_tests\nChange-Id: I61664515e5afa3e2ba814874eeac847a2aaac319\n"
    },
    {
      "commit": "b3ef9022e90a062ceae3d35a3655c558d96a17c0",
      "tree": "06e418c00d96f8000e91399dece7995ca9aec57c",
      "parents": [
        "b15882faab26af76f0bca30c2ce4ef4890eb4502"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Wed Apr 05 16:45:44 2017 -0700"
      },
      "committer": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Thu Apr 06 10:28:50 2017 -0700"
      },
      "message": "Moved all files from include/system to libsystem/include/system\n\nBug: 33241851\nTest: No changes for modules not using VNDK. For compiling with VNDK,\nadd libsystem_headers as dependency for using these headers\n\nChange-Id: I1a8a44073424cc0db625e31d44cb16b78c5a9ca1\nMerged-In: I2acce0ab771e10ac83461c2f931e2c19e922089e\n"
    },
    {
      "commit": "e8fb11dfa1b376124d0a1a349c8800799f25606a",
      "tree": "6b10f653cd6c76db1966a007aaea26498509a3fa",
      "parents": [
        "c169b2018fb72ea31da68616548dcf6582cb0a93"
      ],
      "author": {
        "name": "Zhenhua WANG",
        "email": "zhenhua.wang@intel.com",
        "time": "Mon Feb 27 10:14:45 2017 +0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 29 17:34:11 2017 -0700"
      },
      "message": "NativeBridge: add \"linked namespace\" semantic corresponding to linker\n\nFor dynamic linking perspective, semantics of NativeBridge needs to\nalign with dynamic linker. This patch adds \"linked namespace\" semantic\nwhich shares some libraries from one namespace to another.\n\nTest: make test-art-host-run-test-115-native-bridge\nChange-Id: I71ce1dde19d61363d5eb9731fd4795a8c315b3a0\n"
    },
    {
      "commit": "a41597ba0ed74f659ecd428582dd1ae27eb8dead",
      "tree": "2730b7e3664d63e126dcbee902fd16ff27b9ecc2",
      "parents": [
        "69482cc12791e87532309f4367cc0010dc9ac986",
        "0e19795a621ddb9912edc58b832f078405e485fd"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 23 18:07:27 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 23 18:07:27 2017 +0000"
      },
      "message": "Merge \"libziparchive: Add ability to backup in ZipWriter\"\nam: 0e19795a62\n\nChange-Id: Id15ab4bf8bd40640d2a301f0464230b620e8b603\n"
    },
    {
      "commit": "0e19795a621ddb9912edc58b832f078405e485fd",
      "tree": "327d33a5dd15c87f9f297f5b241b1d585b104261",
      "parents": [
        "27a091d4a1ae616f3a16ba68e1b8d09fd1d8370e",
        "537713bace8975d02576225536ec55bd61f9ca91"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 23 17:59:46 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 23 17:59:47 2017 +0000"
      },
      "message": "Merge \"libziparchive: Add ability to backup in ZipWriter\""
    },
    {
      "commit": "cc99ba7ff55c734662703a7453bdd34adb37434c",
      "tree": "86a56cfc38c9c0bd6dc9f49ad5f73172b9d8a55a",
      "parents": [
        "c0405200b80711a4d6be214e00f51e472ae08b36",
        "a06e1c9eefb50791f65fa9d68e5000f5ab9370a6"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 23 00:53:18 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 23 00:53:18 2017 +0000"
      },
      "message": "Merge \"Do not access device maps.\"\nam: a06e1c9eef\n\nChange-Id: Id30b71a301953d8450bd66552a020437c5e91b94\n"
    },
    {
      "commit": "a06e1c9eefb50791f65fa9d68e5000f5ab9370a6",
      "tree": "cb3542cd4721f35d314bd6b0bf5e4b52aff5e891",
      "parents": [
        "6edabc75ab6658554e4d68fa99d0951c191f9185",
        "f5e568e653d0dd6bccc86d1a60db5a2573f75f0e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 23 00:32:40 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 23 00:32:40 2017 +0000"
      },
      "message": "Merge \"Do not access device maps.\""
    },
    {
      "commit": "537713bace8975d02576225536ec55bd61f9ca91",
      "tree": "426a4efd55768e8085f760968365ed19c819e36c",
      "parents": [
        "a4bc98941af87ba95bb72b8be59e74ad5686e7d8"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 16 13:23:51 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Mar 22 16:46:42 2017 -0700"
      },
      "message": "libziparchive: Add ability to backup in ZipWriter\n\nBased on the compressed size of a file entry,\nthe decision needs to be made to instead store the file\nuncompressed. This adds support to ZipWriter to backup\nits last file entry.\n\nThe file is now always truncated when the EOCD is written out,\nto account for the case where a file entry is backed-up and the\nresulting file written is much smaller, leaving garbage data at\nthe end of the file.\n\nThis change also includes a rename of FileInfo -\u003e FileEntry.\nThis struct was private (now public), so it shouldn\u0027t affect any\nclients.\n\nBug: 35461578\nTest: make ziparchive-tests\nChange-Id: I23dc584406274ab7b8ce62b3fbc3562ca4c2603e\n"
    },
    {
      "commit": "f5e568e653d0dd6bccc86d1a60db5a2573f75f0e",
      "tree": "15b6eb5ebf107abc74ee75703867b38a36daaf17",
      "parents": [
        "435fc451031a6a186284d43a340f6e35be4aa170"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Mar 22 13:18:31 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Mar 22 14:55:05 2017 -0700"
      },
      "message": "Do not access device maps.\n\nIt\u0027s possible that a device map has memory controlled by a single entry\ndevice driver. Thus, you can deadlock if a process is touching that\ndevice memory and we try to unwind it and also touch that device memory.\nSimply skip any attempts to step through, or get function names from\ndevice memory maps.\n\nBug: 36130325\n\nTest: Ran new unit tests, ran bionic unit tests, ran art ThreadStress.\nChange-Id: Ibc62d7ec8106c619ee08968f05e04aea55d7cbfa\n"
    },
    {
      "commit": "c0c4aeb556956be7e7166414aa8bdc4cd72029cd",
      "tree": "9017eae4225ac7e7f78dfeaf7858dcfdbfc6c984",
      "parents": [
        "6f4175fefc19f71d3850a465faa10106c5469fb7",
        "a4bc98941af87ba95bb72b8be59e74ad5686e7d8"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Wed Mar 22 18:31:55 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Mar 22 18:31:55 2017 +0000"
      },
      "message": "Merge \"Moved include/android_filesystem_*.h and canned_fs_config.h to libcutils\"\nam: a4bc98941a\n\nChange-Id: Ib90d711895c8a75f5abec2284ff66723c4f5b35e\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": "2e86917f929f130ab9a234255bdfce2ef3f03b73",
      "tree": "762580a8f894a3c88ea45e4986b1379d981423c7",
      "parents": [
        "7e5b10b18cbf750fa7ae1db300a76ba1ca8e86f3",
        "1ed1d3dac90bb521f9e03b7411746ac432c08f07"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 20 23:11:37 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Mar 20 23:11:37 2017 +0000"
      },
      "message": "Merge \"Allocate new UID for OTA update resource tracking.\"\nam: 1ed1d3dac9\n\nChange-Id: Ic365e6f4084d063363005cd42b66ee0799691031\n"
    },
    {
      "commit": "e1bddc78bfb660aa44fe36412d844908d14a69af",
      "tree": "34dfb53380389dae8efe21ae3dec7aaca1ec9509",
      "parents": [
        "e1c4e04f82822d597d7d8964eb99e2be2c2ff7d8"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 20 14:53:14 2017 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 20 14:57:42 2017 -0600"
      },
      "message": "Allocate new UID for OTA update resource tracking.\n\nRecent changes to OTA updates started \"blaming\" network usage on the\nsystem UID, which makes it difficult to triage incoming bugreports\nthat claim heavy network usage.  Instead, this change gives OTA\nupdates an explicit UID to make triage easier.\n\nTest: builds, boots\nBug: 36130264\nChange-Id: I0a0cc009f3d891b19b419bc12cd237ef8ac64519\n"
    },
    {
      "commit": "4614ba513403dc1c35b8148a57f51d2edca2fb86",
      "tree": "09d100387d56b5e2d182ff81d1dda4140c12eeb4",
      "parents": [
        "d8e854fdf1e212e26f978bfbb027015500b4ab28",
        "e323976e747c28b78b5e1be565317f500e0f5c06"
      ],
      "author": {
        "name": "Andrew Scull",
        "email": "ascull@google.com",
        "time": "Thu Mar 16 18:03:21 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 16 18:03:21 2017 +0000"
      },
      "message": "Merge \"Add eSE AID.\"\nam: e323976e74\n\nChange-Id: I0ce8f821fa1e2028a1d7a1275773b54bd250a612\n"
    },
    {
      "commit": "e323976e747c28b78b5e1be565317f500e0f5c06",
      "tree": "7177c3d90fc42ce82bfc1338cff20b30b1ba168a",
      "parents": [
        "7390d96ff2f42305addfaf32388d9f7d3be509f4",
        "b364328a595c9489542f903f5b41bc548c75c8dd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 16 17:58:47 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 16 17:58:48 2017 +0000"
      },
      "message": "Merge \"Add eSE AID.\""
    },
    {
      "commit": "b364328a595c9489542f903f5b41bc548c75c8dd",
      "tree": "fbf44c70b60dc31605865fdcd2b3cdf0e29a7933",
      "parents": [
        "8eb237ad57a0a9b17b264d7528d9e01fe6b7e1d2"
      ],
      "author": {
        "name": "Andrew Scull",
        "email": "ascull@google.com",
        "time": "Thu Mar 16 11:11:01 2017 +0000"
      },
      "committer": {
        "name": "Andrew Scull",
        "email": "ascull@google.com",
        "time": "Thu Mar 16 15:05:19 2017 +0000"
      },
      "message": "Add eSE AID.\n\nThis is used by components that communicate with the embedded secure\nelement.\n\nTest: Boot system with a daemon and device using this AID.\nBug: 35628284\nChange-Id: I1fd1a300c69fefbd19fda69add5d3b098be873c2\n"
    },
    {
      "commit": "294d44be33bf6ad6d7d53189d38202a4911f2bd7",
      "tree": "82d9299999b155bd4c2a1d7bb531a36e3668e222",
      "parents": [
        "1e48879b6cafa6168addc1e1bdb8344450ca3627"
      ],
      "author": {
        "name": "bohu",
        "email": "bohu@google.com",
        "time": "Tue Feb 28 14:58:36 2017 -0800"
      },
      "committer": {
        "name": "bohu",
        "email": "bohu@google.com",
        "time": "Wed Mar 01 16:33:44 2017 -0800"
      },
      "message": "DO NOT MERGE ANYWHERE Qemu-pipe: refactor qemu_pipe.h into libqemu_pipe\n\nTraditionally, qemu_pipe has both the declaration and implentation of each\nfunction in one header file--qemu_pipe.h, and it is getting incovenient to\nmaintain.\n\nThis CL separates the implementation of functions from the header file,\nand makes qemu_pipe a static library for other modules to link to.\n\nNote that the interface and implementation of qemu_pipe are kept unchanged,\nand future CLs will enhance the implementation to make it more reliable and\nmore compatible with old and new API levels.\n\nFollowing projects are affected by this refactoring, and they are modified\naccordingly:\n\ndevice/generic/goldfish\ndevice/generic/goldfish-opengl\nhardware/ril/reference-ril\n\nChange-Id: I541ecbf0cc7eadeef9d4e37ffd9ca7bfcc5c94c0\n"
    },
    {
      "commit": "bdac221cc3e87f0c1779f22df45f8efb3c610ffc",
      "tree": "4a8333e79d534fc38116cf1cb475a74016e9d0d9",
      "parents": [
        "a5cfc8b1e6140ac7a7bfc7bffa36de3d6543b59a"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Dec 21 23:15:24 2016 +0000"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 30 22:14:59 2017 +0000"
      },
      "message": "Revert \"Continue using the legacy NDK android/log.h.\"\n\nUse refreshed android/log.h for NDK\n\nThis effectively a modern revert of the commit\nb7c3996f7c048eac6f113697a5734870f0b2cfdb\n\nTest: build\nBug: 30465923\nBug: 34250038\nChange-Id: I7d4a5134bb711051283c36a2d5bc803436dca12e\n"
    },
    {
      "commit": "1cb8d9df6c82c26c1af0d44082d21f53bffae7bc",
      "tree": "02be20ffe7700df267d8afb692008429b5e53347",
      "parents": [
        "cb199c3fc7a479fe35a10b7e3ef714ca32c8134c",
        "c89fea44accab8c95cf9b7d74c265439963fbd8a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 26 18:42:21 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 26 18:42:22 2017 +0000"
      },
      "message": "Merge changes Iad5b5abf,Iad3704cc,If182dd9b\n\n* changes:\n  liblog: add log/log_radio.h\n  liblog: add log/log_id.h\n  ndk: reverse course on android/log.h\n"
    },
    {
      "commit": "5c967da341c9395a4c378c149f326505224ec66e",
      "tree": "0e1de2d192d55de6300d99269441882ccbb0b2bd",
      "parents": [
        "01678a0c84e1f94420630709fe7aea7b4357f019"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 09 12:44:13 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Jan 25 15:41:43 2017 -0800"
      },
      "message": "ndk: reverse course on android/log.h\n\nmove LOG macros to log/log_main.h\n\nmove include/android/log.h to liblog/include/android/log.h\n\nTest: compile of all components and gTest liblog-unit-tests\nBug: 34250038\nBug: 30465923\nChange-Id: If182dd9b83689e8b7bc1a44b2f5d913c7ee5eeee\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "dd9fa24091e28490eddeea1583f47cdc968b57f6",
      "tree": "0c00848d981501a710edb120b97acc4fb66e0d66",
      "parents": [
        "ae770a4728dd22dea87b1d073236ab2035dd7996",
        "51c33b7011f55686a6fcdcf5b559860832d397cc"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 12 23:46:28 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 12 23:46:29 2017 +0000"
      },
      "message": "Merge \"liblog: use log/log.h for ALOG macros\""
    },
    {
      "commit": "51c33b7011f55686a6fcdcf5b559860832d397cc",
      "tree": "363c8e246e1b41e568e6f718f2520d8fc7d6f931",
      "parents": [
        "6bc1d3838173bcb59f28e3157f95da4b507f748e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 12 15:44:06 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 12 15:44:06 2017 -0800"
      },
      "message": "liblog: use log/log.h for ALOG macros\n\nTest: compile\nBug: 34250038\nChange-Id: I0f56c563871f377c03380498cd867b916892f1dc\n"
    },
    {
      "commit": "3eba74fec1b5e18b70ed1084897e49a801a2119e",
      "tree": "dc8cb87df221d865aaa18912b52623ac309be751",
      "parents": [
        "6bc1d3838173bcb59f28e3157f95da4b507f748e"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Jan 12 11:15:32 2017 -0800"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Jan 12 11:15:32 2017 -0800"
      },
      "message": "Fix typo in radio_metadata_t definition.\n\nTest: none, this struct is opaque.\nChange-Id: I6b8f5787441618a7a818c7d4595010d241574c13\n"
    },
    {
      "commit": "e324500f3f885b8eeab03d2b6901c590bd9b66cf",
      "tree": "112c5adf2c3eedd255d704d2a0702fd0995ee2e0",
      "parents": [
        "b2375fc40c674ad3e798069fb5ab9457ebc19260",
        "70a8148b5207273f3cef4aafe247a4dc229c91b3"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue Jan 10 01:24:27 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 10 01:24:27 2017 +0000"
      },
      "message": "Merge \"Make metadata field mandatory for program info struct.\""
    },
    {
      "commit": "b2375fc40c674ad3e798069fb5ab9457ebc19260",
      "tree": "1ddbace73e8897373770b6faf6a54748ff3cd1b9",
      "parents": [
        "d5583867c61867252d4a8d794704f9c2d40bbca8",
        "e801a68239396f61751c3f8b94c44636719fc7ec"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 10 01:15:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 10 01:15:30 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"android_ids: move to bionic\"\"\""
    },
    {
      "commit": "70a8148b5207273f3cef4aafe247a4dc229c91b3",
      "tree": "261fb75051e8553c6a9f08b771038ef8f940e268",
      "parents": [
        "d5583867c61867252d4a8d794704f9c2d40bbca8"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Mon Jan 09 14:26:43 2017 -0800"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Mon Jan 09 14:26:43 2017 -0800"
      },
      "message": "Make metadata field mandatory for program info struct.\n\nAlso, make metadata struct aligned.\n\nTest: VTS, manual\nChange-Id: I7dbd62d36ac21475fdbc49723ba3ea6744460d21\n"
    },
    {
      "commit": "b175ee271b6b6c1e24632e5026e0b1e4efe1f82d",
      "tree": "786d3d4b7c7967055dd61380943d261b9f7d2b7d",
      "parents": [
        "7d24dea9cbbc36a54a5891c98b662fc1ce4dafc4",
        "a970c8f1fc3baa890dbf872a444781b84d6ef865"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 30 19:40:55 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 30 19:40:56 2016 +0000"
      },
      "message": "Merge \"Make libziparchive C++-only.\""
    },
    {
      "commit": "a970c8f1fc3baa890dbf872a444781b84d6ef865",
      "tree": "91a13ed0374f2c6885633c58293706712ae1b856",
      "parents": [
        "8a1c4b85303cd636f4920f99093063f57ecc8e73"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 29 10:38:37 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 29 10:38:37 2016 -0800"
      },
      "message": "Make libziparchive C++-only.\n\nIf we\u0027re going to build libziparchive with _FILE_OFFSET_BITS\u003d64, which\nseems like a reasonable idea, we don\u0027t want off_t/off64_t mixups in the\nABI, and C++ name mangling helps protect against that where C wouldn\u0027t.\n\nBug: N/A\nTest: builds\nChange-Id: I5f068b41fb4cd9e1e055e5250054318b35bcbc08\n"
    },
    {
      "commit": "fc148f7f3371ccc0584261dd0b2462c09798d4f8",
      "tree": "7726843bc189788cbab5b1ca7342ca76e613eea3",
      "parents": [
        "8a1c4b85303cd636f4920f99093063f57ecc8e73"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Dec 14 12:52:50 2016 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Dec 21 21:36:14 2016 +0000"
      },
      "message": "liblog: add IF_ALOG_RATELIMIT\n\nIF_ALOG_RATELIMIT()\n    ALOGE(\"Only one message globally using IF_ALOG_RATELIMIT()\"\n          \" in the process may appear ever ten seconds,\"\n          \" (%s)\", strerror(errno));\n\nstatic time_t last; /* initial state zero */\nIF_ALOG_RATELIMIT_LOCAL(60, \u0026last)\n    ALOGE(\"Only one message locally may appear every minute,\"\n          \" (%s)\", strerror(errno));\n\nThese new calls are guaranteed not to affect the value of a\nnon-zero errno to simplify logging of errors.  However, the\nALOGE calls in the above examples may update the errno value\nupon their return.\n\nTest: gTest liblog-unit-tests --gtest_filter\u003dliblog.__android_log_ratelimit\nBug: 33535908\nChange-Id: Id8cc192fc7d14504ffd418933cf88ae945c089f2\n"
    },
    {
      "commit": "e801a68239396f61751c3f8b94c44636719fc7ec",
      "tree": "cf2cef30d9929854341185bd14d8d7201839bf53",
      "parents": [
        "7b7a8074e1b949231dd18618a3d4b720c8400c66"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 13 23:47:16 2016 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 13 23:47:16 2016 +0000"
      },
      "message": "Revert \"Revert \"android_ids: move to bionic\"\"\n\nThis reverts commit 7b7a8074e1b949231dd18618a3d4b720c8400c66.\n\nChange-Id: Icdc7221af6745084e5a4a28d851d3ad14e2a4ece\n"
    },
    {
      "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": "b0a15d83191c69f9a1279a09a40929b8b9fa6720",
      "tree": "5fcd4a3694a6b4873cc0d212672e9238900183a7",
      "parents": [
        "8e7c782eaab1c018d9885634d24dfa8c2bb0e683",
        "7b7a8074e1b949231dd18618a3d4b720c8400c66"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 13 00:31:25 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 13 00:31:26 2016 +0000"
      },
      "message": "Merge \"Revert \"android_ids: move to bionic\"\""
    },
    {
      "commit": "7b7a8074e1b949231dd18618a3d4b720c8400c66",
      "tree": "8c79813bd3dd80f5762e177bcbec092bde6d6e92",
      "parents": [
        "bc56847e84816e10908d8eea599f2afff5cc139d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 12 22:11:29 2016 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 12 22:11:29 2016 +0000"
      },
      "message": "Revert \"android_ids: move to bionic\"\n\nThis reverts commit bc56847e84816e10908d8eea599f2afff5cc139d.\n\nChange-Id: I2d00db0aaa7dfe292e36c6bdbaaa76230849e732\n"
    },
    {
      "commit": "e2d9732682ad8f0bf126547c4717247598209159",
      "tree": "c9c337554b8c6844907e12f760f8003ffc1743f2",
      "parents": [
        "01937ee2b9ad00ac72162c92d838f2520ab5ae8d"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Dec 05 11:38:30 2016 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Dec 12 12:28:45 2016 -0800"
      },
      "message": "cutils: add adb trace tag.\n\nBug: http://b/31289465\nTest: systrace\nChange-Id: I8537731febc6629f055b86f6e19b16104208c4f8\n"
    },
    {
      "commit": "01937ee2b9ad00ac72162c92d838f2520ab5ae8d",
      "tree": "86c28d17e568295817a0364221f08f731ac5acca",
      "parents": [
        "4173d9b57c3877532c99d05478a7e9664a737439"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Nov 29 10:49:23 2016 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Dec 12 12:28:04 2016 -0800"
      },
      "message": "libutils: allow multiple ATRACE_NAMEs in a scope.\n\nBug: http://b/31289465\nTest: m\nChange-Id: Iabd97439fa55ea285ce0501dbb4fd9d07149ae61\n"
    },
    {
      "commit": "b0aa8b23697a55cb1139ab1412d1fd0198726adf",
      "tree": "396991bff7790f29343fae99bd638e34b533b6c4",
      "parents": [
        "0f8890d985456d8d9040ec3629efa236c83b7c54",
        "acdf527c52020da5f5d0e6c361e6521d5de24e08"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Dec 10 00:13:04 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Dec 10 00:13:05 2016 +0000"
      },
      "message": "Merge changes from topic \u0027fsconfig-2\u0027\n\n* changes:\n  fs_config: add comment to header\n  android_ids: move to bionic\n"
    },
    {
      "commit": "0eeb06b932f185e10377e4494475d2cdd6adfa1b",
      "tree": "70b797c0f3f752a6a76e9818640b1fadf06ca189",
      "parents": [
        "aece425166b1636de79efbddb5997ecdcea2ce03"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Dec 02 10:08:48 2016 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Dec 09 12:40:17 2016 -0800"
      },
      "message": "utils: Add FastStrcmp.h\n\nMove existing fast\u003cstr*cmp\u003e templates for general use, pulled from\nthe implementation used in logd that dealt with speed through cache\nlocality and subroutine call mitigation.  Rename to fastcmp.\n\nTest: logd-benchmarks and based on manual profiling from the past\nBug: 31456426\nChange-Id: Ic62f4a437fc3e06ffdeaae73a6f34e197957a6b0\n"
    },
    {
      "commit": "bc56847e84816e10908d8eea599f2afff5cc139d",
      "tree": "cf2cef30d9929854341185bd14d8d7201839bf53",
      "parents": [
        "aece425166b1636de79efbddb5997ecdcea2ce03"
      ],
      "author": {
        "name": "William Roberts",
        "email": "william.c.roberts@intel.com",
        "time": "Fri Apr 08 13:46:10 2016 -0700"
      },
      "committer": {
        "name": "William Roberts",
        "email": "william.c.roberts@intel.com",
        "time": "Thu Dec 08 16:57:17 2016 -0800"
      },
      "message": "android_ids: move to bionic\n\nPrevent others from using android_ids and force them\nto use grp.h and pwd.h family of functions.\n\nTest: Build and boot, verify services are running properly.\nBug: 27999086\n\nChange-Id: Idcd75cf7e91a49ef07a0ed3bdb514ad61aa82e69\nSigned-off-by: William Roberts \u003cwilliam.c.roberts@intel.com\u003e\n"
    },
    {
      "commit": "acdf527c52020da5f5d0e6c361e6521d5de24e08",
      "tree": "0d4ab3d710ab20b09534056526ffa7e4e5ca1ef6",
      "parents": [
        "bc56847e84816e10908d8eea599f2afff5cc139d"
      ],
      "author": {
        "name": "William Roberts",
        "email": "william.c.roberts@intel.com",
        "time": "Mon Apr 11 17:41:41 2016 -0700"
      },
      "committer": {
        "name": "William Roberts",
        "email": "william.c.roberts@intel.com",
        "time": "Thu Dec 08 16:57:17 2016 -0800"
      },
      "message": "fs_config: add comment to header\n\nAdd a comment to android_filesystem_config.h\nabout AID and OEM Range \"scraping\" done by\nbuild/tools/fs_config.\n\nTest: Build and boot.\n\nChange-Id: I2d4845d91546ae967a1ee5166b73d119938faccc\nSigned-off-by: William Roberts \u003cwilliam.c.roberts@intel.com\u003e\n"
    },
    {
      "commit": "33d1ec216b2d20966f0db85abbd2ade3b936aaee",
      "tree": "f256ab1aee37ab8c9ad9317f0f9cb51b249d6ef0",
      "parents": [
        "32ca0ab616037bfd6bcc624cbf91c37b622e1657",
        "4b4475308598659137657261218fc5a3207ec79c"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sat Dec 03 04:23:24 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Dec 03 04:23:24 2016 +0000"
      },
      "message": "Merge \"Define GIDs for internal media file types.\"\nam: 4b44753085\n\nChange-Id: I95df8c122f0600e3af6306d800724d1ac9f26040\n"
    },
    {
      "commit": "4de27c6a6d56a71a1ca87d1d972cf3cfaa6acf96",
      "tree": "39c92a9a433e5eb33e6db325b1d91a84eb13d506",
      "parents": [
        "48dfc220cbb1f1315a565edb18c8e03923b14aa3"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Dec 02 14:16:37 2016 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Dec 02 14:17:48 2016 -0700"
      },
      "message": "Define GIDs for internal media file types.\n\nCurrently, all internal media storage files (under /data/media) are\ngiven the same \"media_rw\" GID.  To support an upcoming optimization\nto disk usage calculation, this CL defines three new GIDs that can be\nused to quickly identify common types: audio, video, and images.\n\nTest: builds\nBug: 27948817\nChange-Id: I8548459c3d3ccbf7d822431c6e2ebd1c2e309d70\n"
    },
    {
      "commit": "a95e19abd23cf4aeeb93fc0b80d3b1db709b883e",
      "tree": "3093e40cb9a61f0910cc8ed44159e656cab40388",
      "parents": [
        "d96b925d9c829717bd5e07772738448d50aa7b39",
        "636c851f8dc7634c570c82f8638940c426a41b2a"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Nov 22 15:56:49 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 22 15:56:49 2016 +0000"
      },
      "message": "Merge \"liblog: add private android_log_write_list_buffer()\"\nam: 636c851f8d\n\nChange-Id: If0c24576c69b9d2aad6637c7548d61f79173e932\n"
    },
    {
      "commit": "d96b925d9c829717bd5e07772738448d50aa7b39",
      "tree": "c27b3b648ec43a810460766a547550bf6776713c",
      "parents": [
        "715e33452e728855251578d918467d94666fe10a",
        "418558f8af3297736acc2e90213491d4db367cb0"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Nov 22 15:56:32 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 22 15:56:32 2016 +0000"
      },
      "message": "Merge \"liblog: move android_log_event_context class to log/log_event_list.h\"\nam: 418558f8af\n\nChange-Id: I4f537d4010e60b86ad4f565135804cf92fa7bd37\n"
    },
    {
      "commit": "2ca4f49476a4e4e46dc7b47b2ce56ccaaadb9c8d",
      "tree": "cc32d53fc391e614623d99a61353594afcf5dcc9",
      "parents": [
        "472245d9625b8f0c52737aa8753524facfa211db"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Sep 12 11:54:57 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Nov 21 09:46:39 2016 -0800"
      },
      "message": "liblog: add private android_log_write_list_buffer()\n\nAllows us to compose an event message for our own in-memory purposes.\nWill be used to compose an event message in logd and directly write\nit to just the pmsg buffer.  Provide an internal enhanced C++ wrapper\nfor event handling.\n\nTest: gTest liblog-unit-tests --gtest_filter\u003dliblog.android_log_write_list_buffer\nBug: 31456426\nChange-Id: I98246898ba580f9e506baba8af2fd1b26a2a8aae\n"
    },
    {
      "commit": "472245d9625b8f0c52737aa8753524facfa211db",
      "tree": "739bda1ad78ca8fbf784cc19affd9ecaa9b33404",
      "parents": [
        "b6552f376ca2903d987faa9b05808d72952af858"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Nov 18 10:45:45 2016 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Nov 21 09:46:34 2016 -0800"
      },
      "message": "liblog: move android_log_event_context class to log/log_event_list.h\n\nrename class from android_log_event_context to android_log_event_list\n\nTest: gTest logcat-unit-tests\nBug: 31992412\nBug: 31456426\nChange-Id: Ib61cbca7d453837d64959c56b0e11f8c5edbfbdd\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"
    },
    {
      "commit": "af2a8858c4633c060e101ce911d4a8e9b39d9071",
      "tree": "ff0ea5bdbcd74c6ef3a40b44967250b2df9133d7",
      "parents": [
        "3ee9807554c85c1faa7ec70bf46f9e7f84b8c3b6",
        "787482ecd9658b3078044aa287680b32795c2375"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Tue Nov 15 22:11:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 15 22:11:21 2016 +0000"
      },
      "message": "Merge \"ziparchive: Allow ExtractEntryToFile() to work with block device.\"\nam: 787482ecd9\n\nChange-Id: Icdce4207cb64e084e200b6f7f8ae194831d5c4f0\n"
    },
    {
      "commit": "a456c2134882c7cede4d0f617a20ce0f8f8f3358",
      "tree": "79aa2cd87055714284e2cce447210695c128e060",
      "parents": [
        "557359863c0d1fcda9a85e3b7fb275cb12a3eb70"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Tue Nov 15 10:08:07 2016 -0800"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Tue Nov 15 10:19:04 2016 -0800"
      },
      "message": "ziparchive: Allow ExtractEntryToFile() to work with block device.\n\nFileWriter::Create() calls ftruncate(2) to truncate the destination\nfile, which doesn\u0027t work with FD that references a block device. It\nleads to kIoError when calling ExtractEntryToFile() to extract an entry\nto block device FD.\n\nAs a result, it fails the package_extract_file() command in OTA updates\n(e.g. \u0027package_extract_file(\"boot.img\",\n\"/dev/block/platform/soc.0/f9824900.sdhci/by-name/boot\")\u0027).\n\nThis CL skips the call to ftruncate(2) if FD references a block device.\n\nBug: 32903624\nTest: ziparchive-tests works.\nTest: Build an OTA updater (m updater) and call package_extract_file().\n\nChange-Id: Ia81116f1a8d7cab802396bdc32c6096b4cb56a3c\n"
    },
    {
      "commit": "cacd9dc2447ec653d5193f452ba0387be2dce1f6",
      "tree": "bd9f931f249f8783711da641c78020a7107028f9",
      "parents": [
        "494a3945451a40b17df2947d0fb1618a1b9248bc",
        "4fd0507b20d5afcc7b67ec355dcd89df62e62fc6"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Nov 07 22:46:45 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 07 22:46:45 2016 +0000"
      },
      "message": "liblog: logcat: logprint support -v descriptive\nam: 4fd0507b20\n\nChange-Id: Idd4379d83b1d2f708451e1f2dd21cd40bfa49811\n"
    },
    {
      "commit": "494a3945451a40b17df2947d0fb1618a1b9248bc",
      "tree": "8d6ac217139d7afe32ecdd8cc58ff3762a4ed2e1",
      "parents": [
        "9b1d1cb92398389f81196c430a7423c3aabffc8e",
        "530711b39e0447b0ce6824de936cedc294634e0e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Nov 07 22:46:39 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 07 22:46:39 2016 +0000"
      },
      "message": "liblog: add android_lookupEventFormat_len\nam: 530711b39e\n\nChange-Id: I62a33b249df6afdc4405a89b3f60a51a2897f98e\n"
    },
    {
      "commit": "e133feb6b4c25ea3f28ca34a9cde2d8c1361b7b0",
      "tree": "ab3f199dfe5601a749370ae52eaae36e1881deb6",
      "parents": [
        "a61c48d5fd59e6077219750a28f63be28e05a40b",
        "4fd0507b20d5afcc7b67ec355dcd89df62e62fc6"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Nov 07 22:42:07 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 07 22:42:08 2016 +0000"
      },
      "message": "Merge changes I93a1c003,I283fec89\n\n* changes:\n  liblog: logcat: logprint support -v descriptive\n  liblog: add android_lookupEventFormat_len\n"
    },
    {
      "commit": "9b1d1cb92398389f81196c430a7423c3aabffc8e",
      "tree": "2fc2158fbf58dc0928704b843c899d7a8178e70f",
      "parents": [
        "3915012a461c2e9d77e5547c9b056e43d95bf07c",
        "a61c48d5fd59e6077219750a28f63be28e05a40b"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 07 18:08:06 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 07 18:08:06 2016 +0000"
      },
      "message": "Merge \"Allow different namespace types for different classloaders\"\nam: a61c48d5fd\n\nChange-Id: Idcf998f47e8a09fbe1e56a898f23b2c82a75aa44\n"
    },
    {
      "commit": "4fd0507b20d5afcc7b67ec355dcd89df62e62fc6",
      "tree": "1ee80a99ec5ecedb6615909f9ef138d862755000",
      "parents": [
        "530711b39e0447b0ce6824de936cedc294634e0e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Oct 18 11:30:11 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Nov 04 15:22:52 2016 -0700"
      },
      "message": "liblog: logcat: logprint support -v descriptive\n\nExpand logprint feature to pull out the log tag description\nfields, parse them and merge into the logging content.  Add\n-v descriptive, -v colour(british, hidden) and -v help. Also\nadded a unit test for the descriptive format borrowing from\nevent tags that have been unchanged since 2009.\n\nHad to add -v help because we have too many undocumented\nformats and format adverbs.\n\nTest: gTest logcat-unit-tests --gtest_filter\u003dlogcat.descriptive\nBug: 31456426\nChange-Id: I93a1c003b7a3f4c332544946fdedb7277919cec3\n"
    },
    {
      "commit": "530711b39e0447b0ce6824de936cedc294634e0e",
      "tree": "deadcbe97a9dfbe1974669a78d4a4f8b26f32c61",
      "parents": [
        "b5f062bde4c9d2d5e3d2be9b9711231a4fc64a6e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Oct 18 11:08:04 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Nov 04 15:22:52 2016 -0700"
      },
      "message": "liblog: add android_lookupEventFormat_len\n\nTest: compile\nBug: 31456426\nChange-Id: I283fec89431c18af788fa0477a2ab78792221878\n"
    },
    {
      "commit": "d836ab005a3fd70e477a01d4200483131a285c9a",
      "tree": "bed575ec93b56e95650318697219c1daa75e43d8",
      "parents": [
        "8d339e940fb6aab288287139cdc3617c52d7ae00"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Nov 02 18:03:10 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Nov 04 15:21:13 2016 -0700"
      },
      "message": "Allow different namespace types for different classloaders\n\nAn app should be able to make cross-arch calls to different apps\nvia other app\u0027s Context.getClassLoader()\n\nBug: 32542970\nTest: Boot fugu. Check that there are no linker-namespace\n      related errors in the log.\n\nChange-Id: I1593f4688bcde0121a5e24a707441a4935fa7dc4\n"
    },
    {
      "commit": "c020d3fa6eb5bb71fae8c16b90b856878fbc7855",
      "tree": "52ba42a19a3724a6590aa6cacf61700da17260dd",
      "parents": [
        "4ffdd5d805f12fa6acee32da8db9ad3309bd2379",
        "0b034d9d7b1af4e2f608ddf2dc2a0e08773e69ac"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Nov 04 14:42:57 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 04 14:42:57 2016 +0000"
      },
      "message": "libcutils: add android_get_control_file()\nam: 0b034d9d7b\n\nChange-Id: I7d0a58c12839dba59aa43b96e5a920d3c415efcf\n"
    },
    {
      "commit": "0b034d9d7b1af4e2f608ddf2dc2a0e08773e69ac",
      "tree": "e2c9188ed7cf1bf51ae707c505658c32b93a78db",
      "parents": [
        "547e0dc45a6f2eca161b29b34a7f5ebbbc8d4b01"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Oct 27 08:04:48 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Nov 03 13:34:20 2016 -0700"
      },
      "message": "libcutils: add android_get_control_file()\n\nSolve one more issue where privilege is required to open a file and\nwe do not want to grant such to the service. This is the client side\nof the picture, init is the server. The file\u0027s descriptor was placed\ninto the environment as \"ANDROID_FILE_\u003cpath\u003e\" where non-alpha and\nnon-numeric characters in the \u003cpath\u003e are replaced with _ and this\nfunction picks the file descriptor up.\n\nAdded definition ANDROID_FILE_ENV_PREFIX (\"ANDROID_FILE_\") and\nandroid_get_control_file() prototype in a new include \u003ccutils/files.h\u003e\n\nandroid_get_control_file() checks if the resulting file descriptor is\nvalid, open and matches the name reference, which on purpose will fail\nif a symbolic link is in the path rather than using a fully qualified\npath.  Add gTest unit test for both.\n\nTest: gTest libcutils_test --gtest_filter\u003dFileTest.android_get_control_file\nBug: 32450474\nChange-Id: I2d0310a1727f1e393a00d9fc7e6cf5d028f27905\n"
    },
    {
      "commit": "3142267ff24bc108df3225a8f8ba833a5e5f0a69",
      "tree": "ac277f0474dba6c6aad7a4289a17b62d2e5750b1",
      "parents": [
        "d37b649e9ada9098751a4d5e98c12c77ed89bb79",
        "9112b419bd314e8fbb2861fc3ddbb02c347271bb"
      ],
      "author": {
        "name": "Keun-young Park",
        "email": "keunyoung@google.com",
        "time": "Fri Oct 28 21:09:36 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Oct 28 21:09:36 2016 +0000"
      },
      "message": "Merge \"Add UID for vehicle network\"\nam: 9112b419bd\n\nChange-Id: Ie6111026580d97d8552fd3de1fe10e88820205c6\n"
    },
    {
      "commit": "42e802c2fb6a637d77dc4cc4a754c1fd39af8802",
      "tree": "e6ddfbebd6be615e172834137f81ada09a328f37",
      "parents": [
        "e381ecf63bb6a68a7bae6970a3491d4d00e61506"
      ],
      "author": {
        "name": "Keun-young Park",
        "email": "keunyoung@google.com",
        "time": "Fri Oct 28 12:05:36 2016 -0700"
      },
      "committer": {
        "name": "Keun-young Park",
        "email": "keunyoung@google.com",
        "time": "Fri Oct 28 12:08:07 2016 -0700"
      },
      "message": "Add UID for vehicle network\n\n- Access to vehicle network is done in vehicle network service process.\n\nTest: build\nbug: 32508433\nChange-Id: I340d1f4964d70b53f10d84fb15a62107e1dedc0e\n"
    },
    {
      "commit": "996cfc70a00f9ec56cd7b8c902e2c7a1228dba65",
      "tree": "8c650407ef711e011333d7be43123e4d1642a1ae",
      "parents": [
        "66321bc8891ee95f48d08c7d825969bb4fecccc4",
        "28c0c0762eb8d0de011d85b577244d26a7c00fd0"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Oct 26 20:11:25 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 26 20:11:25 2016 +0000"
      },
      "message": "Merge \"Upgrade native bridge to version 3 to support namespace\"\nam: 28c0c0762e\n\nChange-Id: Ic4263e89f59b1ad34f1f8f28b52f4b45a4df351d\n"
    },
    {
      "commit": "28c0c0762eb8d0de011d85b577244d26a7c00fd0",
      "tree": "7b750db868f7db4db8cd7d91f958c3082ee04b59",
      "parents": [
        "a16ae8717c73f06066ddf572dfbd965c51f47ff4",
        "f2804e59854c2c7e7d3d5b58f987e5ec5cdc5b66"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Oct 26 18:27:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 26 18:27:38 2016 +0000"
      },
      "message": "Merge \"Upgrade native bridge to version 3 to support namespace\""
    },
    {
      "commit": "171a6a4277c767e6207f4b4299265e6b17fb73e5",
      "tree": "1c1df74ca3edd68ad7635994f94cf7dda058f489",
      "parents": [
        "e060cdadc8a6d8507aa3a0574be58d9bf005c40a",
        "d97efe0383a8bdad7a335b268d4492c9ee5e39c6"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Oct 25 19:24:54 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 25 19:24:54 2016 +0000"
      },
      "message": "Merge \"log/logd.h should point to log/log.h\"\nam: d97efe0383\n\nChange-Id: I5fbbe7f957f303fb61d60177474f615c9f3e7c25\n"
    },
    {
      "commit": "f2804e59854c2c7e7d3d5b58f987e5ec5cdc5b66",
      "tree": "536a348fda09a1b31edecd5ef12a58e47a588bf9",
      "parents": [
        "0ca2fe4c43e4d525979befd0a59d80fb0a9fa649"
      ],
      "author": {
        "name": "Zhenhua WANG",
        "email": "zhenhua.wang@intel.com",
        "time": "Mon May 30 11:16:08 2016 +0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 25 11:11:38 2016 -0700"
      },
      "message": "Upgrade native bridge to version 3 to support namespace\n\nNative bridge implements namespace related interfaces in version 3.\nThe namespace semantic here is same as Android dynamic linker\u0027s.\nNative loader wraps library loading functions of dynamic linker and\nnative bridge. Thus, Android runtime is able to load native library\nof different ISA on one device by calling native loader directly.\n\nBug: http://b/28242460\nTest: mm \u0026\u0026 make test-art-host -j48\nChange-Id: Idde2b9d99fb6ebe547407c716b5478a231f745a7\nSigned-off-by: Zhenhua WANG \u003czhenhua.wang@intel.com\u003e\n"
    },
    {
      "commit": "57ba9c96e339d3365931b0dd16cd4443207d2861",
      "tree": "1d78b53323964ea072776b107c32bff206f24642",
      "parents": [
        "4818194a25771ae386bd7ffc66215739227fb844"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Oct 25 09:21:00 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Oct 25 09:21:00 2016 -0700"
      },
      "message": "log/logd.h should point to log/log.h\n\nTest: compile\nBug: 32395896\nBug: 30465923\nChange-Id: I1ee85594a0dc6b094480161dc5dbec71eaecdfb9\n"
    }
  ],
  "next": "28fcac705b0c6c015b8d48c261b2895bfef13ea1"
}
