)]}'
{
  "log": [
    {
      "commit": "107366ad42567476ced9d6d86e047364e0438e44",
      "tree": "a41837c1e75da405df0c9b57a175f84c64a2f6d8",
      "parents": [
        "a0936c7b897afafbffdf85793b29a494fe98bf29",
        "10663e4f76cbcf647a6cecdede70ae04c00718d6"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 22 19:27:42 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 22 19:27:42 2017 +0000"
      },
      "message": "Merge \"Remove TTS symbols from NDK stub library.\" am: b056324630 am: 8d8c374307 am: 9424fad097\nam: 10663e4f76\n\nChange-Id: Ib9675e2e271bec1f2f0dfae65c915620682a9722\n"
    },
    {
      "commit": "b056324630b8adfeb38393bcab49f3b9c720f4fd",
      "tree": "8e164ac4a0c5b71e2e80174873e85b7f5de882f6",
      "parents": [
        "fa7e99ddf1e7b9625627915bf66ced62b9b62a7d",
        "3644edb0b6084f43446ee65222e0d46f97efa217"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 22 18:03:10 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 22 18:03:10 2017 +0000"
      },
      "message": "Merge \"Remove TTS symbols from NDK stub library.\""
    },
    {
      "commit": "3644edb0b6084f43446ee65222e0d46f97efa217",
      "tree": "e32fd100b5f2dce4b92aba577199e6985808137f",
      "parents": [
        "42d3eadb37a8788d62bc9dedfa9f4cb37f2a88d7"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 22 00:15:25 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 22 00:15:25 2017 -0700"
      },
      "message": "Remove TTS symbols from NDK stub library.\n\nThese haven\u0027t actually existed in libandroid for some time. We can\u0027t\nfix the past, so just remove the API from the NDK.\n\nTest: make checkbuild\nBug: http://b/64572149\nChange-Id: Ic68e81c63e738e6d341bcae6178cdcc080326da4\n"
    },
    {
      "commit": "e4f60cce8552a565efacf4907242574b9e00492d",
      "tree": "8bc59ea68022818524035e6269e13bd9db1bb40e",
      "parents": [
        "cbf16572eb8121a40ecba67ae15796b40f7bc346"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Aug 07 11:17:06 2017 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Aug 07 15:36:10 2017 -0700"
      },
      "message": "SharedMemory API changes\n\nHides getFd \u0026 getFileDescriptor due to lifecycle concenrs.\nAdds ASharedMemory_dupFromJava to allow sharing a shared\nmemory region between Java \u0026 Native as safe as possible.\nMis-use results in an FD leak instead of double-close.\n\nBug: 64394076\nTest: SharedMemory CTS tests\nChange-Id: I01a5eb978fc4e99559a79baac75754c32f13bdc4\n"
    },
    {
      "commit": "2412b4d979f0dbdb6ac8265bf97b3665fde83719",
      "tree": "54274f575a44904bc55666e661c169b37f48d48d",
      "parents": [
        "6c315479a3cd82ef1fd1ac02acfc270ef69b7956",
        "9f430b2782849090d2e5e3737304cd26724366fa"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Jul 20 03:11:00 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 20 03:11:00 2017 +0000"
      },
      "message": "Merge \"frameworks/base: use proper nativehelper headers\" am: 826eafd958 am: 5c091dc944 am: c840945a78\nam: 9f430b2782\n\nChange-Id: Ibe321dd4a8aae9342c76da0780edf94b90e8cd3a\n"
    },
    {
      "commit": "5c091dc9449b583e18656a8850a61f557dfcc945",
      "tree": "db4ca724dd661b112d2bd72da67f2a91edce0850",
      "parents": [
        "5f047a68d96f252772144a729f423c172ce816e4",
        "826eafd95885adbfc142f3f70ec82b4091abed85"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Jul 20 02:50:53 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 20 02:50:53 2017 +0000"
      },
      "message": "Merge \"frameworks/base: use proper nativehelper headers\"\nam: 826eafd958\n\nChange-Id: I36f10ff4d963284a313f1cc5b368f82549a4adb2\n"
    },
    {
      "commit": "2279b2534272282a5b5152723235da397e49195c",
      "tree": "884c0a32e34c87d58e8f36329eb77d6dec7a8ab4",
      "parents": [
        "a1d67fb38ec02150d674bc3b8d8354b53417552b"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Jul 19 09:50:45 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Jul 19 10:06:40 2017 -0700"
      },
      "message": "frameworks/base: use proper nativehelper headers\n\nlibnativehelper exports headers under nativehelper. These were\navailable before incorrectly as global headers in order to give\naccess to jni.h.\n\nTest: modules using frameworks/base find headers\nBug: 63762847\nChange-Id: I0f9f231acdebe460f279135462f43d3e32eff64d\n"
    },
    {
      "commit": "7a4f741f561c554e283aa76f717a96e3724798e4",
      "tree": "2a4bc6c2f2cdc661d446c621d8db9eeddd45deae",
      "parents": [
        "363226710523a5662519e8b5814299f8ca4ef7c1"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Jun 29 16:53:47 2017 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Jun 29 16:53:47 2017 +0900"
      },
      "message": "fix: android/multinetwork.h can\u0027t be imported when using libandroid_net\n\nlibandroid_net is a subset of libandroid exposing the multinetwork\nfunctionality. Contrary to libandroid which is not available to vendors,\nlibandroid_net is available to vendors as ll-ndk.\n\nHowever, the header path for the two libraries are different.\n\nfor libandroid:\ninclude \u003candroid/multinetwork.h\u003e\n\nfor libandroid_net:\ninclude \u003cmultinetwork.h\u003e\n\nThis is because multinetwork.h is located in\n\u003chome_of_libandroid_net\u003e/include directory. Since many vendors are using\n\u003candroid/multinetwork.h\u003e, we need to have a subdirectory \u0027android\u0027.\n\nBug: 63120916\nTest: build\nChange-Id: I1cbc6e1641edda2013c80f9b16b825f0854776c1\n"
    },
    {
      "commit": "e1c426f53c1792dd0ee1c80967539dd6ea84e816",
      "tree": "f19dca5cc31ef207a806c8207544fe0cd3a6b3f9",
      "parents": [
        "c11eecd489d5fa738793b58ad3c114d102aebbe0",
        "cffee96a16857219be43b43dfc010a000a90d670"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri May 26 01:01:21 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 26 01:01:21 2017 +0000"
      },
      "message": "Merge changes from topic \u0027multinetwork_vndk\u0027 into oc-dev\nam: cffee96a16\n\nChange-Id: I91cac262cdb6af6e441c4750636ec28a97f2ad1a\n"
    },
    {
      "commit": "ec37d5f6a68b8ab87258b0e2e661f72ad030a0c9",
      "tree": "b681e77e3300877f282eab5a2cac4f11db56e167",
      "parents": [
        "addb296226042268122dea73c4b3ae9bda14d4bb"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed May 17 16:50:17 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri May 26 06:02:26 2017 +0900"
      },
      "message": "Allow vendor code to link to libandroid_net.\n\nThis library contains only the multinetwork API, which is part\nof the NDK and has long-term support. It is needed by any native\nthat wants to use network communications on a different network\nthan the default network, and thus is necessary for vendor code\nsuch as IMS clients or carrier applications.\n\nBug: 37527489\nTest: marlin builds and boots\nTest: MultinetworkApiTest CTS tests passes\nChange-Id: I2aa592d1d082aae410173adf2a09f6d1dd8092dc\nMerged-In: I2aa592d1d082aae410173adf2a09f6d1dd8092dc\n"
    },
    {
      "commit": "addb296226042268122dea73c4b3ae9bda14d4bb",
      "tree": "75f6f458591ab958a9a50b25ee5197f5e65ea673",
      "parents": [
        "9eb635c428367f0b67ed8acd5bc11f3275c400af"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed May 17 16:46:02 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri May 26 06:00:00 2017 +0900"
      },
      "message": "Move libandroid_net from Android.mk to Android.bp.\n\nThis is the first step of making libandroid_net available to\nvendor code. This is a partial cherry-pick of ag/2210044 that\nonly moves the build target (hence the Merged-In change ID).\n\nBug: 37527489\nTest: marlin builds and boots\nChange-Id: Id9e4d13d4e75f6f6381c675c4e9f72e9f4769d22\nMerged-In: Ie3c9c3d3c8c75ade36422d1e8ee0a5fe117e9091\n"
    },
    {
      "commit": "d15f0af2fe5cf698e23ee1842814d4594e8eeb97",
      "tree": "02280ecad6b8148e7b7f8276c24dae0fa2812144",
      "parents": [
        "093f1098de43a376f79a9dd956117345f0fcbe3d"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed May 17 16:50:17 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu May 25 16:42:12 2017 +0900"
      },
      "message": "Allow vendor code to link to libandroid_net.\n\nThis library contains only the multinetwork API, which is part\nof the NDK and has long-term support. It is needed by any native\nthat wants to use network communications on a different network\nthan the default network, and thus is necessary for vendor code\nsuch as IMS clients or carrier applications.\n\nBug: 37527489\nTest: marlin builds and boots\nTest: MultinetworkApiTest CTS tests passes\nChange-Id: I2aa592d1d082aae410173adf2a09f6d1dd8092dc\n"
    },
    {
      "commit": "5c5b7f0ed7e9eb5c2452637fde542ba08cab1536",
      "tree": "7ac0af1fff16188c5102b68a37a45962086bb3dc",
      "parents": [
        "58f94a95268b68b8d4b5f6b5f58d0f4ffba52c62"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Apr 20 12:20:20 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat May 06 00:52:03 2017 +0000"
      },
      "message": "Convert libandroid and libandroid_runtime to Android.bp\n\nSee build/soong/README.md for more information.\n\nTest: m -j checkbuild\nChange-Id: Ie3c9c3d3c8c75ade36422d1e8ee0a5fe117e9091\nMerged-In: Ie3c9c3d3c8c75ade36422d1e8ee0a5fe117e9091\n(cherry picked from commit 3f8fd40f285dba5b3639ee1e3d4e4544048c1446)\n"
    },
    {
      "commit": "af737306f943570dd3d6c8a74681622bdb7ca275",
      "tree": "498645d5b2546dada67fc7e451c077c2b009f98f",
      "parents": [
        "a1103c0b6987b3a1cc29bef85c1732494ebec424"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Apr 20 12:20:20 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat May 06 00:50:39 2017 +0000"
      },
      "message": "Convert libandroid and libandroid_runtime to Android.bp\n\nSee build/soong/README.md for more information.\n\nTest: m -j checkbuild\nChange-Id: Ie3c9c3d3c8c75ade36422d1e8ee0a5fe117e9091\n(cherry picked from commit 3f8fd40f285dba5b3639ee1e3d4e4544048c1446)\n"
    },
    {
      "commit": "3f8fd40f285dba5b3639ee1e3d4e4544048c1446",
      "tree": "4bed8c8820578088851bbeafac3d90ed0b5ad116",
      "parents": [
        "99c9bf65ae84264498b9d6562cf5bf298e1c584f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Apr 20 12:20:20 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 04 13:00:21 2017 -0700"
      },
      "message": "Convert libandroid and libandroid_runtime to Android.bp\n\nSee build/soong/README.md for more information.\n\nTest: m -j checkbuild\nChange-Id: Ie3c9c3d3c8c75ade36422d1e8ee0a5fe117e9091\n"
    },
    {
      "commit": "5f73ab7e2a591d45b67a7aaf1b26cc9dcfe58502",
      "tree": "862378c284b954e961324a24b9fa84a4be82a15d",
      "parents": [
        "b16014169891509543ef229986a4559c1a185ffb"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Apr 17 08:54:43 2017 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Apr 17 08:55:24 2017 -0700"
      },
      "message": "Include vndk/hardware_buffer.h for AHardwareBuffer_getNativeHandle\n\nThis function is now VNDK-only, and not in the NDK header.\n\nBug: 34050596\nTest: build\nChange-Id: Id0147dbdb65157da9692e7f38b1a068be18be2b9\n"
    },
    {
      "commit": "68686dbb410940972c4189eec644608b6435005d",
      "tree": "e1d72616f75ce9fb62e6656210594c94712b92ea",
      "parents": [
        "7bf58d5975a00bb5ec810e21253e200f6e01c732"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Apr 07 15:48:45 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Apr 11 15:15:02 2017 +0000"
      },
      "message": "Remove .(ll)ndk suffix from (ll)ndk_library\n\nSoong handles these automatically now.\n\nBug: 33241851\nTest: Android-aosp_arm.mk is the same before/after\nTest: build.ninja is the same before/after\nTest: build-aosp_arm.ninja is the same before/after\nMerged-In: Ic10796e75bb886cc3f92c234714ab3e6c85112df\nChange-Id: Ic10796e75bb886cc3f92c234714ab3e6c85112df\n"
    },
    {
      "commit": "3dcf0318661fb66073122bd0c4b670b2b50e4546",
      "tree": "7d9e862d613b4c5e0bec8e87e725863bc18b595a",
      "parents": [
        "0ac8fd7adbebbbdfbe0f898fc3a82fbafba130ac"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Apr 07 15:48:45 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 10 12:54:37 2017 -0700"
      },
      "message": "Remove .(ll)ndk suffix from (ll)ndk_library\n\nSoong handles these automatically now.\n\nBug: 33241851\nTest: Android-aosp_arm.mk is the same before/after\nTest: build.ninja is the same before/after\nTest: build-aosp_arm.ninja is the same before/after\nChange-Id: Ic10796e75bb886cc3f92c234714ab3e6c85112df\n"
    },
    {
      "commit": "d28e8283d39e7eb6c714511a0430d4cc836298cb",
      "tree": "e83bd8cf3a0f4d3d4eef9aa10d978b783b22414c",
      "parents": [
        "b43a5305bddb81881992819a40846b52e72afd3e"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Fri Mar 31 11:19:50 2017 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Mon Apr 03 19:13:31 2017 -0700"
      },
      "message": "ANativeWindow_toSurface implementation\n\nThis enables the conversion from an ANativeWindow (created by NDK API\nsuch as: AImageReader_create) to a Java Surface, so that developers can\nhookup a Java Producer to a native buffer consumer.\n\nThis CL also introduces android_view_Surface_createFromSurface helper\nfunction in libandroid_runtime to convert a C++ sp\u003cSurface\u003e to a Java\nSurface object.\n\nBug: 36862948\nTest: android.media.cts.NativeImageReaderTest\nChange-Id: Ia99adb654da505ac117a8e58153ac800df23a650\n"
    },
    {
      "commit": "63483ad25280b66bd077b3b5e6864ff22a129e9d",
      "tree": "8219d77b45477d279261af64a5419f763a8e3a58",
      "parents": [
        "1c83656e3c5518287b3d8cc7dccaf98b81d84adf"
      ],
      "author": {
        "name": "Peng Xu",
        "email": "pengxu@google.com",
        "time": "Tue Feb 28 17:00:16 2017 -0800"
      },
      "committer": {
        "name": "Peng Xu",
        "email": "pengxu@google.com",
        "time": "Tue Mar 07 15:47:21 2017 -0800"
      },
      "message": "Parameter checks for sensor NDK APIs, fix map file\n\n* Add parameter check for all sensor NDK APIs.\n* Added a previously added API (from AOSP contribution) to\n  libandroid.map.txt file.\n\nTest: SensorNativeTest pass\nChange-Id: I6482a684767034f2a31d806a4cba0d6648dcabff\n"
    },
    {
      "commit": "caf8930960ae68d5be2a8952cc127bf3f154f433",
      "tree": "0dea58fb58cdad356e9e8dc72947f12e8ecce057",
      "parents": [
        "a3d279fa4b258498f3b7ee678e546a82e76cdaaf"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 06 16:06:49 2017 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 06 16:09:55 2017 -0800"
      },
      "message": "fallout of splitting libsensor out of libgui\n\nTest: compile \u0026 run\nBug: treble cleanup\nChange-Id: Ib696126506cc9df01dcf9e09779ce05ddb69e4b6"
    },
    {
      "commit": "bce1d3b60b145d75f6ed1fdd16d2bf3e31f41301",
      "tree": "3c848f59ba69e57e8c10a142b5a5aa85e618bb14",
      "parents": [
        "b5144655c20e4362087c3797d17838a4d54fe7b3"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 02 18:50:28 2017 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 02 18:55:39 2017 -0800"
      },
      "message": "Revert \"Remove AHardwareBuffer_ API from libandroid\"\n\nThis reverts commit 8e90cc3e3adf1d84b92b0b165193762cc8bb295d.\n\nBoth ANativeWindow and AHardwareBuffer need to be\navailable in libandroid (as well as libnativewindow)\notherwise it would make our developer’s life\nvery difficult when they want to support multiple\nversions of android.\n\nMoreover, this would have an impact on AndroidStudio\nwhen doing an NDK project.\n\nTest: compiled\nBug: treble\n\nChange-Id: I2cc63b06b3f80fa80f7170ba2ba2996228fa9b2c\n"
    },
    {
      "commit": "8e90cc3e3adf1d84b92b0b165193762cc8bb295d",
      "tree": "eccd67cf37f02a48adbeb0392038e8bbc9f2c7d7",
      "parents": [
        "c5e74cc2ff8be0c6b1b6282b151c89dbb1a0e97e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 28 17:02:58 2017 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 01 20:24:21 2017 +0000"
      },
      "message": "Remove AHardwareBuffer_ API from libandroid\n\nIt’s now in libnativewindow. Also tag\nANativeWindow_ symbols as removed (no-op currently)\n\n\nTest: compiled\nBug: treble\nChange-Id: I912a7d09b35f25cf7d33d224f42b9779a3e0ae71\n"
    },
    {
      "commit": "555bf41049bbc387d920704f7a1f23314bc84986",
      "tree": "14e17d2b6d476a6cb67fc7149c48f0b8b3417e06",
      "parents": [
        "abe498d16dad8714e2d71829de0d2451bc863f8d",
        "3b170173460def252c834fa46706775ed4e1d9a7"
      ],
      "author": {
        "name": "Peng Xu",
        "email": "pengxu@google.com",
        "time": "Wed Mar 01 17:58:31 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 01 17:58:36 2017 +0000"
      },
      "message": "Merge \"Add direct sensor report NDK API\""
    },
    {
      "commit": "3b170173460def252c834fa46706775ed4e1d9a7",
      "tree": "eb8de33784c449b710e463c66da2a457d6352fb9",
      "parents": [
        "5f88ac5ccef78203c62e32e0503f18dd46102c5e"
      ],
      "author": {
        "name": "Peng Xu",
        "email": "pengxu@google.com",
        "time": "Wed Feb 15 23:25:21 2017 -0800"
      },
      "committer": {
        "name": "Peng Xu",
        "email": "pengxu@google.com",
        "time": "Tue Feb 28 17:30:47 2017 -0800"
      },
      "message": "Add direct sensor report NDK API\n\nAdded libandroid mapping and implementation of the following API:\n\n  * ASensorManager_configureDirectReport\n  * ASensorManager_createSharedMemoryDirectChannel\n  * ASensorManager_createHardwareBufferDirectChannel\n  * ASensorManager_destroyDirectChannel\n  * ASensor_getHighestDirectReportRateLevel\n  * ASensor_isDirectChannelTypeSupported\n\nTest:  cts-tradefed run cts --module CtsSensorTestCases \\\n      --test android.hardware.cts.SensorNativeTest\n\nBug: 30985702\nChange-Id: Ic808cc50d1ecbc789944ef77a4b247dc0c83c28a\n"
    },
    {
      "commit": "2e2c35febfa13c41bc8778137f86429771b27687",
      "tree": "f38ad27023571f4a79a26039c06bb8624855534c",
      "parents": [
        "321ea181673cdf5a33624cfd37fe07e675a66896",
        "5f88ac5ccef78203c62e32e0503f18dd46102c5e"
      ],
      "author": {
        "name": "Peng Xu",
        "email": "pengxu@google.com",
        "time": "Mon Feb 27 20:58:19 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 27 20:58:23 2017 +0000"
      },
      "message": "Merge \"Added implementation of shared memory NDK API\""
    },
    {
      "commit": "5f88ac5ccef78203c62e32e0503f18dd46102c5e",
      "tree": "1bd5f063160e2b605034a1347a5093aef2b3cd70",
      "parents": [
        "a722a2ea38f65eda5e7cfaaff29465d396e6f1a3"
      ],
      "author": {
        "name": "Peng Xu",
        "email": "pengxu@google.com",
        "time": "Fri Feb 24 01:53:10 2017 -0800"
      },
      "committer": {
        "name": "Peng Xu",
        "email": "pengxu@google.com",
        "time": "Fri Feb 24 02:42:51 2017 -0800"
      },
      "message": "Added implementation of shared memory NDK API\n\nImplemeneted the following APIs:\n\n*  int ASharedMemory_create(const char *name, size_t size);\n*  size_t ASharedMemory_getSize(int fd);\n*  int ASharedMemory_setProt(int fd, int prot);\n\nTest: cts-tradefed run cts --module CtsSensorTestCases \\\n      --test android.hardware.cts.SensorNativeTest\nBug: 5995644, 30985702\n\nChange-Id: I645b35e67293673efce9bb90f042ec0d3b83aa42\n"
    },
    {
      "commit": "fee4a985fd599e5bbfb0eb2d5d75af18ed8ae86e",
      "tree": "007e66054e8d42fbbe26be8e66b5169355b2cf6d",
      "parents": [
        "339dc75d46035f711d8bfee6b0425975c020f311"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 09 18:48:21 2017 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 23 23:28:20 2017 +0000"
      },
      "message": "fallout of libandroid.so split\n\nTest: compiled \u0026 booted\nBug: 35164655\nChange-Id: I786167a21453e17493969cdacfc9d31bdb781d98"
    },
    {
      "commit": "f1cb02e7b53e22655f0e14041b0abf73f51a11b0",
      "tree": "195edc39095749375d567bb92bfd95d7e6513cdc",
      "parents": [
        "0df4c60716a230e2197c99a2224658efe9839e60"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 13 18:46:36 2017 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 17 12:25:26 2017 -0800"
      },
      "message": "fallout of splitting rect.h out of libandroid.\n\n- Main goal here: libandroid now links against \nlibarect and export its includes.\n\n- Also fix some wrongful makefiles that included \nheaders without proper dependency list.\n\nTest: built and booted device\nBug: 35164655\nChange-Id: Iae17b966bba00fe53424486a75eebff468873787"
    },
    {
      "commit": "e68b4f73a92b4683a668608e1a64548eb7dbd27a",
      "tree": "d6720a164df494bbafc17014225ff6eecd37de1e",
      "parents": [
        "a43d2325752c5b747f517a4351d4944ba48e1b14"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Feb 08 18:48:32 2017 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 10 20:07:33 2017 +0000"
      },
      "message": "separate the JNI part of the NDK into their own source\n\nTest: built and booted device\nBug: 35164655\nChange-Id: I944c9f28730b82e8c428b5384dc57e1b296144b2\n"
    },
    {
      "commit": "99015fe465475ddb442596d4741b75435bd7baf3",
      "tree": "14db4a07304ffbd129ee8dc322ec8009ad57def7",
      "parents": [
        "0c4f715a1406b693c8be59baaadb87def0bcc8df",
        "900510642a97bc1799bf82c6e1a938d17f345c81"
      ],
      "author": {
        "name": "Craig Donner",
        "email": "cdonner@google.com",
        "time": "Wed Feb 08 01:42:31 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 08 01:42:35 2017 +0000"
      },
      "message": "Merge \"Use gralloc1 flags to allocate AHardwareBuffers\""
    },
    {
      "commit": "900510642a97bc1799bf82c6e1a938d17f345c81",
      "tree": "02f22c7e8ab51c18c7e62327a311c2f245496592",
      "parents": [
        "a59b4912b441db96f392934b56eb8a1721661985"
      ],
      "author": {
        "name": "Craig Donner",
        "email": "cdonner@google.com",
        "time": "Thu Feb 02 12:14:30 2017 -0800"
      },
      "committer": {
        "name": "Craig Donner",
        "email": "cdonner@google.com",
        "time": "Fri Feb 03 14:24:10 2017 -0800"
      },
      "message": "Use gralloc1 flags to allocate AHardwareBuffers\n\nBug: 34939453\nTest: cts-tradefed run cts -m CtsNativeHardwareTestCases\nChange-Id: I48add1b78c4e1409c0e787d6197f0582f0c3fb4c\n"
    },
    {
      "commit": "f2f6961b7b353be5860ffd343c198efcc80581a1",
      "tree": "242a7c19b665109b44da569c48fded69fda07910",
      "parents": [
        "dfc152bd3264855479bdc9ce9ce47d00a99dd7d2",
        "2e61c0eea327e7689fabd764be70a99818d1e6ca"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Feb 02 21:08:08 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Feb 02 21:08:08 2017 +0000"
      },
      "message": "Compile native network functionis into libandroid_net. am: f3b7411060 am: af657d14fc am: 74a410ec81\nam: 2e61c0eea3\n\nChange-Id: I7a1d3c40bcf76a3e6eabb3eddff159a53af0c5c1\n"
    },
    {
      "commit": "2be5b9f9663f1f0d6a3b99b679cbfa3b43732e55",
      "tree": "fcdb119b2a6568e2415cb7ba0e095a30f5eef9e2",
      "parents": [
        "5559543e81e5bb82e84433f35453197ef991ce15"
      ],
      "author": {
        "name": "Craig Donner",
        "email": "cdonner@google.com",
        "time": "Tue Jan 24 18:14:44 2017 -0800"
      },
      "committer": {
        "name": "Craig Donner",
        "email": "cdonner@google.com",
        "time": "Tue Jan 24 18:43:30 2017 -0800"
      },
      "message": "Add support for BLOB format to HardwareBuffer.\n\nTest: updated CTS test to check for error conditions if the blob dimensions are\nbad.\nBug: 34050596\n\nChange-Id: I3ec6e7a43dae8d0ac2b2d04bc4b38cd3c12f8390\n"
    },
    {
      "commit": "0cff9d955e7bd378bcc57d34d34e8829cecb9dd3",
      "tree": "5d84e11d0cb9e4abd1b2accd91de77cb46fcaa5b",
      "parents": [
        "54df14956eb890bcd92ffa1590705f8b417ccf5b"
      ],
      "author": {
        "name": "Craig Donner",
        "email": "cdonner@google.com",
        "time": "Fri Dec 16 14:07:03 2016 -0800"
      },
      "committer": {
        "name": "Craig Donner",
        "email": "cdonner@google.com",
        "time": "Thu Jan 19 17:01:19 2017 -0800"
      },
      "message": "AHardwareBuffer implementation.\n\nBug: 34050596\nTest: Added gunit tests in CTS (CtsNativeHardwareTestCases)\nChange-Id: I41f914a6d346fbb5f818a6591c86e7bf12f0576c\n"
    },
    {
      "commit": "f3b7411060d5679515786b8792c2e0b518571b97",
      "tree": "594b72711d85d276e288b20bf68bc0ffdb4682be",
      "parents": [
        "0938b22c0ab3f28acfcbcc4099b93dc0a43a691a"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Nov 11 20:37:14 2016 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Fri Jan 13 23:01:32 2017 +0000"
      },
      "message": "Compile native network functionis into libandroid_net.\n\nlibandroid includes some local implementations, but depends on many\nother libraries to provide those (counting transitive dependencies, a\ntotal of 65). This patch copies the native network functions provided\nby android/multinetwork.h header to its own new libandroid_net shared\nlibrary. This new library has only one other shared library dependency.\n\nBug: 32842753\nTest: `make` on aosp_arm-eng\nChange-Id: Ifbd529d9bf74a8d4f754733cff345729de6b1521\n"
    },
    {
      "commit": "98e462df7df5b9b59b6068f29946a8babb320a96",
      "tree": "484a29690031c58c4223831a3af5cacb1870c472",
      "parents": [
        "cc4203221bda6f05902b2fdc16f6fde9f105b932"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jan 05 16:01:14 2017 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jan 06 11:04:14 2017 -0800"
      },
      "message": "Unversion NDK stub libraries.\n\nThe system versions of these libraries aren\u0027t versioned yet.\n\nBug: https://github.com/android-ndk/ndk/issues/278\nTest: make ndk\nChange-Id: I74e988be8f60f8728a0bfa7360091cbd9f5b1186\n"
    },
    {
      "commit": "2a8d9c20bd5bc2e9c05ef5909972507c1fa6dbe9",
      "tree": "f4011f18a06c10795e155e30e1a26bd73339bed3",
      "parents": [
        "b05b93a674804f38d327b24e3d660adc3ad8c982"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Sep 23 15:55:49 2016 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 27 13:59:04 2016 -0700"
      },
      "message": "Migrate libandroid.so to ndk_library.\n\nTest: make native\nBug: http://b/30465923\nChange-Id: I956b5014c4da4dce1ce28da706b9d868eba4cce3\n"
    },
    {
      "commit": "9650521ed12d68d3cee37c7bff553b0407816948",
      "tree": "419ed7ea70b52503b818bcc230e1c41bb7aad937",
      "parents": [
        "82957239fea4d09938b5d2ae47c3d6c686f4f6b9",
        "a11a8e50863e53124ec86ac248c0781d83f4bc48"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Aug 04 17:19:10 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 04 17:19:10 2016 +0000"
      },
      "message": "Merge \"Enable clang for arm64.\"\nam: a11a8e5086\n\nChange-Id: If6069ad099ec5068b9b77f1ea84b85ff4a20438d\n"
    },
    {
      "commit": "248bed03344831ebe6c4418605bf6770ea9e8f7c",
      "tree": "135ca464b0cc8d1dc00c91a8d3b1f56386be23a6",
      "parents": [
        "258a554f6299749322750a286d802267c240ec31"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 03 10:56:33 2016 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Aug 04 17:09:55 2016 +0000"
      },
      "message": "Enable clang for arm64.\n\nemutls should work now with latest prebuilt clang/llvm.\n\nBUG: 25642296\nTest: build and boot up on arm64 emulator.\n\nChange-Id: I5c8dd36a1575436e5fd56e91f7c285f2b3e6546f\n(cherry picked from commit 8ffb6b76f7a72e14882e09f882494e5f7d5fc45d)\n"
    },
    {
      "commit": "85e0c89ba55188ecc484538efbfdb570606fc1a2",
      "tree": "9e5d618c4446b2e4933b2035b77c8fb846062f93",
      "parents": [
        "237790ec48e83d1623ce44dd968e15059121df56",
        "1599b981fae5e606713e6c9a1698a7e36ef5ae09"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Apr 28 12:08:15 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Apr 28 12:08:15 2016 -0700"
      },
      "message": "resolve merge conflicts of 1599b981 to nyc-dev-plus-aosp\n\nChange-Id: I90807581e10b6a0024515ff634ac8b29eaa5fc9f\n"
    },
    {
      "commit": "c6baf563ba6aa207a48317c177b29f1d2b70cf3d",
      "tree": "38cb5ab3e8ce0ebe0bcdace644378ad037adb37f",
      "parents": [
        "cd4f7e12037acd16f500dc9a4be98e51fe58a11b"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Apr 27 11:29:23 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Apr 27 11:38:12 2016 -0700"
      },
      "message": "Fix google-explicit-constructor warnings.\n\nBug: 28341362\nChange-Id: Ibdd6a210bb7ff228e3624cc319169f77aca3b51e\n"
    },
    {
      "commit": "c0d3d3f80588c1bef5acd7d56ae701ac7271c7c6",
      "tree": "8d5f77a32fa24e36cab672fcf4a0cc02725c7018",
      "parents": [
        "63c168acf7a99a0120566a0a09a40ae04c789c5a"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Jan 26 16:03:25 2016 -0800"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Thu Apr 14 10:18:09 2016 +0200"
      },
      "message": "Change storage duration to static for native choreographer.\n\nThis ensures that the region is zero initialized, regardless of compiler.\n\nChange-Id: Ie0bfa5d2cd2486ba31a45aee4de6c370513bfc62\n"
    },
    {
      "commit": "63c168acf7a99a0120566a0a09a40ae04c789c5a",
      "tree": "649e8cca9ad30b616963843821d4b0eca3e2ff65",
      "parents": [
        "ba23e453487fcb18e91b4919b933012458f17fdd"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Dec 04 17:59:42 2015 +0000"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Fri Apr 08 16:55:02 2016 +0200"
      },
      "message": "Add choreographer API to the NDK.\n\nChange-Id: Icb8cffd3cd3bd06814466be72db3e26f6a62cbc6\n"
    },
    {
      "commit": "ee5c18f038d952ce9378493386310899e4d51c84",
      "tree": "cc06c6abc610a94408c52cf7a4a90643419137b9",
      "parents": [
        "95972768013fe9da93fa4e3a396284acaaf67039"
      ],
      "author": {
        "name": "Aniroop Mathur",
        "email": "a.mathur@samsung.com",
        "time": "Tue Nov 03 02:02:09 2015 +0530"
      },
      "committer": {
        "name": "Peng Xu",
        "email": "pengxu@google.com",
        "time": "Wed Mar 16 18:07:00 2016 -0700"
      },
      "message": "Sensor: Add batch support for native applications\n\nCurrently, it is not possible for native applications to use the\nsensor in batch mode. As it is a \u0027C\u0027 header file so function\noverloading is not possible. Therefore, lets add a new function to\nenable the sensor, set the delay and batch timeout, all together.\n\nChange-Id: I565ec2d945d57f31ae11ed43bf9ba351aebd67a0\nSigned-off-by: Aniroop Mathur \u003ca.mathur@samsung.com\u003e\n"
    },
    {
      "commit": "ff20b979e7abf55bef4aa7da85ec36afda3e4fbf",
      "tree": "90f5f2058a9301e65b636ff7cc0c4674cc5bab51",
      "parents": [
        "c9fd313f94f7e0dc1f1f865290a2eb1b1897d2ad"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Jan 26 16:03:25 2016 -0800"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Jan 26 16:03:25 2016 -0800"
      },
      "message": "Change storage duration to static for native choreographer.\n\nThis ensures that the region is zero initialized, regardless of compiler.\n\nChange-Id: Ie0bfa5d2cd2486ba31a45aee4de6c370513bfc62\n"
    },
    {
      "commit": "3d3fe5026a6a3e951ef56ad16a100b8d5ae84574",
      "tree": "80cf611c06bd2e4b1ba0965db1bd5b3ccc8bb1e8",
      "parents": [
        "e501c39e2cbfbe4cac473e97f8cae55ace3bb48c"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Dec 04 17:59:42 2015 +0000"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Jan 21 16:30:33 2016 -0800"
      },
      "message": "Add choreographer API to the NDK.\n\nChange-Id: Icb8cffd3cd3bd06814466be72db3e26f6a62cbc6\n"
    },
    {
      "commit": "2af91d0e104b3a80f3e832e464e52893a55a715f",
      "tree": "88af2f5c66cf2aab1989b9d14ff13110286c2e83",
      "parents": [
        "f9dee58395fa72dc3764292aef4937dfcca0a14a"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Wed Jul 29 18:39:52 2015 -0700"
      },
      "committer": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Thu Jul 30 19:04:40 2015 +0000"
      },
      "message": "Call getInstanceForPackage instead of creating a new SensorManager instance.\n\nBug: 22529981\nChange-Id: If077e042a4af940dfb1fc9c4ac8b9d352dd32685\n"
    },
    {
      "commit": "8d1e344f400fa35f3ddfef78a1dd1d805f3718b0",
      "tree": "2bac448f7c0fd62f2491ff99d9bbaf35826d5924",
      "parents": [
        "5967ddbf05f146bdb6744207e3daed1aa76fc637"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Jul 29 09:35:46 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Jul 29 09:35:46 2015 +0000"
      },
      "message": "Revert \"Call getInstanceForPackage instead of creating a new SensorManager instance.\"\n\nThis reverts commit 5967ddbf05f146bdb6744207e3daed1aa76fc637.\n\nChange-Id: I6d58129585a30d7c2ef39c8cbe796fd696c93f56\n"
    },
    {
      "commit": "5967ddbf05f146bdb6744207e3daed1aa76fc637",
      "tree": "f057920df521b0ba3a9597187c4bd48282ea67b3",
      "parents": [
        "8924f23d3ecdcb2b1ce4dbc9bb4fbb9ddfa62710"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Fri Jul 24 17:35:31 2015 -0700"
      },
      "committer": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Mon Jul 27 14:19:31 2015 -0700"
      },
      "message": "Call getInstanceForPackage instead of creating a new SensorManager instance.\n\nBug: 22529981\nChange-Id: Id3adfbcf55d1268db1a555c72a06456a5219c086\n"
    },
    {
      "commit": "b902453b40ef5ab0c200680a773923e8bfa99617",
      "tree": "3add56ec7d3b8e2f8fa8b07cd16cb56e10d9690d",
      "parents": [
        "cc87cfa29c4b38d1f119bdce652918565b0fed0f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 09 17:27:15 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jun 10 13:10:36 2015 -0700"
      },
      "message": "Add native tracing API\n\nbug:21195272\n\nChange-Id: I520de9fee7fc40d0570d6bef450d756ce42a1462\n"
    },
    {
      "commit": "2738c96d998dedfae5b4670d588d0cd299c4ca0f",
      "tree": "76b8571676d42a9c0b3bfa00f1937eebf2c05698",
      "parents": [
        "038959e851603500eb39b52fef33cbe75dbd73e3"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu May 14 14:25:36 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 15 15:10:58 2015 -0700"
      },
      "message": "Add -round and -notround qualifier to android runtime/aapt\n\nThe round qualifier denotes a device with a screen shape that\nis round. The qualifier shows up after the \u0027long/notlong\u0027 qualifier\nand before the orientation \u0027port/land/square\u0027 qualifiers.\n\nChange-Id: I3044258b2703a9165694b79725bade770fa6cea1\n"
    },
    {
      "commit": "cbb56a8f4e8a47fad95db9b1ae6c343055b07acd",
      "tree": "dfcd6faaeeb078c7a68d8fc4e898b79cf598119e",
      "parents": [
        "e91768d4b5c5e185b884a25bcf60457fb2ba8a5c"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu May 07 10:49:07 2015 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu May 07 12:56:48 2015 -0700"
      },
      "message": "Fix broke NDK sensor manager API\n\nChange-Id: I0f4e2a3ce20ce20e0aa5a7d38d1f988497c033c0\n"
    },
    {
      "commit": "b9d71a6f89b1183f6389b1774652445a420c6cbf",
      "tree": "b6f17102b2f86b40630e4a7cd681721797a8f324",
      "parents": [
        "9fc943d1a69f2ab0f6d8285b09aef7e344a1fd1a"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Apr 30 10:38:13 2015 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri May 01 13:56:04 2015 -0700"
      },
      "message": "Add body sensors app op - framework base\n\nChange-Id: Idd5cd573fab3405e5b2a6e51d2d9d115650826e9\n"
    },
    {
      "commit": "25f3b7bb2d05e4a020e7d82ada1543d2cdc75fbb",
      "tree": "726c4e5c76261b4df5be07a3fd5564e20a206869",
      "parents": [
        "0e08a225dab277d367b6665b933869dc7587090e"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Mar 05 15:13:37 2015 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Apr 15 15:32:08 2015 +0900"
      },
      "message": "multinetwork API: native implementation\n\nBug: 19537384\nChange-Id: I04f4a7de2b1e583989b67a853df6ab50289c2185\n"
    },
    {
      "commit": "d2361f2f1f54c8f244d4a25c59a6a0d2b29fe515",
      "tree": "83d7f5d04f19cbcb01c2c1eddd6cf1c94efeeff0",
      "parents": [
        "a31318620bce4e00e80188ee2778b7799cbdf0dc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 10 16:48:26 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 10 16:48:58 2014 -0800"
      },
      "message": "Frameworks/base: Wall Werror in native/android\n\nTurn on -Wall -Werror in native/android.\n\nChange-Id: I28bab9ebd2fe3f6935878816773a04531e26450f\n"
    },
    {
      "commit": "99fe16508200510e3d8ea2e3c34872be8cce826d",
      "tree": "64f2c001356aa78c883f338230b45e2e0c33a410",
      "parents": [
        "66b9e91801ba8867514fbcf0ef8f03a2f4fb8798"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Tue Aug 05 15:02:11 2014 -0700"
      },
      "committer": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Tue Aug 05 19:34:04 2014 -0700"
      },
      "message": "Sensor related changes for NDK.\n\n     i) Add ASensor_isWakeUpSensor and ASensorManager_getDefaultSensorEx\n        methods.\n\nBug: 16399898\nChange-Id: Icc252aad068fa337bef8b22f20584f98cd5a155d\n"
    },
    {
      "commit": "27900358f2f5b89e8b01516b28a916d16c99ba9b",
      "tree": "e298a6f85f6afe5f47f885b7574f01c15ebb7fa3",
      "parents": [
        "13d6cfb3b51c4740585cb7881f83ce789527901a"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Tue Jun 03 19:20:42 2014 -0700"
      },
      "committer": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Mon Jun 09 16:56:29 2014 -0700"
      },
      "message": "Add java APIs for Sensor reportingMode.\n\nChange-Id: Iba6bb11f990d9966b86bf02d70ced7312f3e64a8\n"
    },
    {
      "commit": "b5e3f4ea13ad331c0bc4bf9b3a56df7c87cd2f85",
      "tree": "157864caa591b3aff8db95e07d99b301d6223530",
      "parents": [
        "c9c88429a65812b618cf9d14cfd6a4ae6412060b",
        "c7153377cf03303e97185397544a13971a089961"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Fri May 23 18:04:18 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 23 18:04:18 2014 +0000"
      },
      "message": "am c7153377: am 73da981f: Merge \"Remove getRequiredPermission from NDK.\" into klp-modular-dev\n\n* commit \u0027c7153377cf03303e97185397544a13971a089961\u0027:\n  Remove getRequiredPermission from NDK.\n"
    },
    {
      "commit": "c7153377cf03303e97185397544a13971a089961",
      "tree": "372f52faae2f2842bc28c5fccbe4aa8d078c9a76",
      "parents": [
        "1af1371e1b3256b9405f6ef7d828297d152637ca",
        "73da981fd60f9dc855a04ea53e9fff59a011577e"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Thu May 22 22:44:49 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 22 22:44:49 2014 +0000"
      },
      "message": "am 73da981f: Merge \"Remove getRequiredPermission from NDK.\" into klp-modular-dev\n\n* commit \u002773da981fd60f9dc855a04ea53e9fff59a011577e\u0027:\n  Remove getRequiredPermission from NDK.\n"
    },
    {
      "commit": "8bcdd9b7a5c99e9a5bf1e45f7924b67037898e75",
      "tree": "bc8436e4986410d3a6eb22cb1174561bcc8c9e76",
      "parents": [
        "adb0a906dc71a0133b9345031dd88682e49a519a"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Thu May 22 13:33:52 2014 -0700"
      },
      "committer": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Thu May 22 13:33:52 2014 -0700"
      },
      "message": "Remove getRequiredPermission from NDK.\n\nChange-Id: Ieb1e97e44ef335e6087ba9164058fe3535e9998a\n"
    },
    {
      "commit": "35187bd5c1e40ea52a672c525411d05cbcdd6482",
      "tree": "0eaae3cec2a38f4123c836e5170c93b2afb05bff",
      "parents": [
        "3a025393b50658b988411fbbb7435f8f87a4e16e"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Tue Feb 11 18:44:42 2014 -0800"
      },
      "committer": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Wed Apr 23 17:05:41 2014 -0700"
      },
      "message": "Bug fix for wakeup sensors.\n\nSensorService should hold a wakelock till the app reads events from a wakeup sensor. Currently drivers hold a wakelock with a\ntimeout while delivering events from a wake up sensor like Significant Motion. This hack can be removed now.\nBug: 9774884\n\nChange-Id: I6cab0147c63f57a494a61f4dfe2a64a27dfe1b4e\n"
    },
    {
      "commit": "8ebd66c259602f6b0be26fdfd3fe2f55538f6424",
      "tree": "aa5e2f41ebf2eeb723cfd464ce4a51f54307b31d",
      "parents": [
        "9e99cab7d9a0ec2315140c21bb1958eb7ff76a09",
        "cd4c1c714c37a1bc7ba35ebd2509eca4f0f6a314"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Fri Apr 11 19:34:51 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 11 19:34:51 2014 +0000"
      },
      "message": "am cd4c1c71: Merge \"Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\" into klp-modular-dev\n\n* commit \u0027cd4c1c714c37a1bc7ba35ebd2509eca4f0f6a314\u0027:\n  Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\n"
    },
    {
      "commit": "cd9a7bb3ba742606f93dcbd549d6d6eeb1cb5247",
      "tree": "d073c795af27b374151ddb9481e3789924d1614c",
      "parents": [
        "819239e5bec90ee3c861ac45fffac4a832a183a1"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Mon Apr 07 22:55:21 2014 +0000"
      },
      "committer": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Fri Apr 11 00:05:24 2014 +0000"
      },
      "message": "Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\n\nThis reverts commit 819239e5bec90ee3c861ac45fffac4a832a183a1.\n\nChange-Id: I4bbb222e5c9dc65aed03aa28fd9e0f00fe335819\n"
    },
    {
      "commit": "acf395fd9441bce9fbe68c1b7efbf824570284bc",
      "tree": "de95b1b5999e82a26832560cfdfa7cf663bd6973",
      "parents": [
        "bdfe384106de364ea2effac6ab80108556d11649",
        "819239e5bec90ee3c861ac45fffac4a832a183a1"
      ],
      "author": {
        "name": "Etienne Le Grand",
        "email": "etn@google.com",
        "time": "Sat Apr 05 09:05:50 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Apr 05 09:05:50 2014 +0000"
      },
      "message": "am 819239e5: Revert \"Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\"\n\n* commit \u0027819239e5bec90ee3c861ac45fffac4a832a183a1\u0027:\n  Revert \"Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\"\n"
    },
    {
      "commit": "819239e5bec90ee3c861ac45fffac4a832a183a1",
      "tree": "1191459c7cfef8e68928b0d1b320116fc7c8e2a3",
      "parents": [
        "fd53d8352a4617941b0a0449390aa562a01ea1d3"
      ],
      "author": {
        "name": "Etienne Le Grand",
        "email": "etn@google.com",
        "time": "Sat Apr 05 04:47:14 2014 +0000"
      },
      "committer": {
        "name": "Etienne Le Grand",
        "email": "etn@google.com",
        "time": "Sat Apr 05 04:47:14 2014 +0000"
      },
      "message": "Revert \"Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\"\n\nThis reverts commit fd53d8352a4617941b0a0449390aa562a01ea1d3.\n\nChange-Id: I1c6322d1d992147bb5ef201238374966128c1a61\n"
    },
    {
      "commit": "bdfe384106de364ea2effac6ab80108556d11649",
      "tree": "a35fa2f1dffa3cd29947563ed584a4115b7a634c",
      "parents": [
        "8e2a4b539509f03c4b3521574a910f2ea3296a66",
        "fd53d8352a4617941b0a0449390aa562a01ea1d3"
      ],
      "author": {
        "name": "Etienne Le Grand",
        "email": "etn@google.com",
        "time": "Sat Apr 05 01:52:27 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Apr 05 01:52:27 2014 +0000"
      },
      "message": "am fd53d835: Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\n\n* commit \u0027fd53d8352a4617941b0a0449390aa562a01ea1d3\u0027:\n  Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\n"
    },
    {
      "commit": "fd53d8352a4617941b0a0449390aa562a01ea1d3",
      "tree": "d073c795af27b374151ddb9481e3789924d1614c",
      "parents": [
        "8e63696a73dfebae9b2ec123611db6b21968dbfd"
      ],
      "author": {
        "name": "Etienne Le Grand",
        "email": "etn@google.com",
        "time": "Mon Mar 24 21:29:28 2014 -0700"
      },
      "committer": {
        "name": "Etienne Le Grand",
        "email": "etn@google.com",
        "time": "Fri Apr 04 16:31:08 2014 -0700"
      },
      "message": "Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\n\nChange-Id: I16e5da68f860494e24cca64075be76fad02617bc\n"
    },
    {
      "commit": "896043d67d3ac75760bd99db8a1561e31ebee1e1",
      "tree": "8f2ca459558ed89495990bf51d967b4f05363b3e",
      "parents": [
        "1cadc07dd1e3711fb1e57548038e3026682c5ef8"
      ],
      "author": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Fri Jan 17 16:02:38 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Jan 31 14:14:29 2014 +0000"
      },
      "message": "AArch64: Make AssetManager and related classes 64-bit compatible\n\nFollowing changes have been done:\n\n[x] Long is used to store native pointers as pointers can be\n    64-bit.\n\n[x] AssetManager openAsset native function returned -1 if\n    file name was empty and java function considered any\n    non-zero value as success. This has been fixed by native\n    function throwing Illegal Argument Exception as well.\n\n[x] AssetManager incRefsLocked and decRefsLocked now accept\n    long as input to support 64-bit native references.\n\n[x] AssetManager incRefsLocked method incorrecly used\n    \u0027this.hashCode()\u0027 instead of the passed parameter id.\n    This has been fixed.\n\n[x] Some minor changes have been done to conform with\n    standard JNI practice (e.g. use of jint instead of int\n    in JNI function prototypes)\n\nChange-Id: I095b9f900d49e51f43ad6afc47cbc23116a6a64a\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\nSigned-off-by: Craig Barber \u003ccraig.barber@arm.com\u003e\nSigned-off-by: Kévin PETIT \u003ckevin.petit@arm.com\u003e\n"
    },
    {
      "commit": "82b007d7572dceb0981b269338bd1ac6c40496c5",
      "tree": "0adfd7d709e3fd4252f3f96c7ef72a9fae1f11d4",
      "parents": [
        "7f8c70a1a48df91ee5541b03dc380c08ab6ebf42"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Dec 12 23:12:55 2013 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 18 17:56:35 2013 -0800"
      },
      "message": "Track Looper decoupling from ALooper\n\nChange-Id: I54f4d36f105e60eaaa453ae60f591d634c681fd7\n"
    },
    {
      "commit": "9d3b1a424c5c61e24e9659d15fb353026a00d925",
      "tree": "0e543391e3ac7b6ac0bff377e08cd2e233ef7363",
      "parents": [
        "8f5e3d13e166e4873e130a5ef7c987333dbac917"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 01 19:07:15 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 01 20:11:42 2013 -0700"
      },
      "message": "Move input library code to frameworks/native.\n\nNo longer compile libandroidfw as a static library on the device\nsince it already exists as a shared library.  Keeping the static\nlibrary would force us to provide a static library version of\nlibinput for the device as well which doesn\u0027t make sense.\n\nChange-Id: I3517881b87b47dcc209d80dbd0ac6b5cf29a766f\n"
    },
    {
      "commit": "64b5f7cc4ca094754d4631ffb801b7bb771081ec",
      "tree": "2b1b8d46bf0f32e321174b0cd7c507e4634ee0be",
      "parents": [
        "ab4a0541994d5de9520ad4ba37c3a11c5f540eb5",
        "09377ddb93a964b9e0def6d84b8beb3a515f4a18"
      ],
      "author": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Tue May 28 17:08:54 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 28 17:08:54 2013 -0700"
      },
      "message": "am 09377ddb: Merge \"Fix AMotionEvent_getHistorical* to take const AInputEvent* motion_event\"\n\n* commit \u002709377ddb93a964b9e0def6d84b8beb3a515f4a18\u0027:\n  Fix AMotionEvent_getHistorical* to take const AInputEvent* motion_event\n"
    },
    {
      "commit": "c01e1ed68885edafd4ad9d62e0f31e7875651867",
      "tree": "2fc24c931a9bc90ae01fd4d940b6a7f3adf09d70",
      "parents": [
        "7f3ff133c19ed50dd245e025a44e1de7bcc3d38a"
      ],
      "author": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Mon May 27 12:27:10 2013 +0800"
      },
      "committer": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Mon May 27 12:27:10 2013 +0800"
      },
      "message": "Fix AMotionEvent_getHistorical* to take const AInputEvent* motion_event\n\nSee b.android.com/55873\n\nChange-Id: Idff7b71480991e16f57e55748fafa57d5827b10b\n"
    },
    {
      "commit": "a44dd26a75e24cc021802288fb81f4761e47be6b",
      "tree": "ce61491d8a35cc7a61af5597f6709b3c92504a54",
      "parents": [
        "c3d0a81a4a1809446bc1fa9abc9b5b74b01e676e"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Apr 10 21:12:00 2013 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Apr 22 17:01:51 2013 -0700"
      },
      "message": "Rewrite input handling for native applications\n\nBug: 8473020\nChange-Id: Ic4353d8924ab877bec21aff8c2dba9fe725bf906\n"
    },
    {
      "commit": "d685894212e6dbeac1fda4996903c1da115d49a6",
      "tree": "c52d05c78811e79a869afbcdbe55a906e38f2fa1",
      "parents": [
        "9fa49cc3308f6af593d780581121afc3c1d7e046"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:54:12 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:54:12 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: I746aa8258866508c3a725d0773faf4518096548f\n"
    },
    {
      "commit": "4fbbda4cecb078bd3867f416b02cc75f5455284f",
      "tree": "e4d988ec4be9e86e7fa5a2cfb1e20ecb1342ce72",
      "parents": [
        "5e21bf934b2a71b595deb9856a2044eea4dbce86"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Sep 24 18:34:07 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Sep 25 17:34:48 2012 -0700"
      },
      "message": "Handle multi-user mountObb() requests.\n\nSince emulated external storage paths differ based on execution\ncontext, carefully fix up paths for various use-cases:\n\n1. When sending paths to DefaultContainerService, always scope\n   OBB paths as belonging to USER_OWNER.\n2. When sending paths to vold, always build emulated storage paths\n   visible to root.\n3. Always use the original untouched path when talking with apps.\n\nMount OBB containers using shared app GID, so that an app can read\nthe mount point across users.\n\nHandle legacy paths like \"/sdcard\" by resolving the canonical path\nbefore sending to MountService.  Move tests to servicestests, and\nadd tests for new path generation logic.\n\nBug: 7212801\nChange-Id: I078c52879cd08d9c8a52cc8c83ac7ced1e8035e7\n"
    },
    {
      "commit": "035ce2ca92742894f7f906c93d7d217c647aa19a",
      "tree": "091278302dd86f6009db3d86ff95dd607fef8c11",
      "parents": [
        "167611811d4fd6318bc366128590701274488e84",
        "5f7979993979466c79ab4f38d83c6f2aca361662"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Sep 04 15:01:03 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 15:01:03 2012 -0700"
      },
      "message": "Merge \"Add support for \"-rtl\" in resources\" into jb-mr1-dev"
    },
    {
      "commit": "64a55af0ac700baecb0877235eb42caac59a3560",
      "tree": "0f3c36ce8204e6cf8eedf04ce9ae24373239ddd8",
      "parents": [
        "0b722fe9ce98d97dbcb6fefd170b85ab7037e528"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Aug 26 02:47:39 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 27 14:34:54 2012 -0700"
      },
      "message": "Add plumbing for new surface flinger display API.\n\nCleaned up the implementation of Surface and SurfaceSession\nto use more consistent naming and structure.\n\nAdded JNI for all of the new surface flinger display API calls.\n\nEnforced the requirement that all Surfaces created by\nthe window manager be named.\n\nUpdated the display manager service to use the new methods.\n\nChange-Id: I2a658f1bfd0437e1c6f9d22df8d4ffcce7284ca2\n"
    },
    {
      "commit": "5f7979993979466c79ab4f38d83c6f2aca361662",
      "tree": "90c8b098b3c9a53a90c039641b0b7ba379d6b4eb",
      "parents": [
        "5e8e41e41aecd2a4951659a1f3507f3371e0cc47"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Fri Jun 15 20:16:41 2012 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Aug 23 14:55:33 2012 -0700"
      },
      "message": "Add support for \"-rtl\" in resources\n\n- fix bug #7035019 Need to have \"-rtl\" support for Resource\n\nChange-Id: Ic82145c2ac672729d8a6c695a5f343276a1a0a2c\n"
    },
    {
      "commit": "89269cf98d263a4dd2e6e771e18c02a472b7bd78",
      "tree": "4104a5235e8432d0868c0f6a08cd6974501f0591",
      "parents": [
        "6113ce3be4ba7208bac7d9f0cad7e83104dbc8d3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 03 16:39:22 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 03 16:39:22 2012 -0700"
      },
      "message": "libnativehelper is implicitly available.\n\n(And is moving for the PDK.)\n\nBug: 6369821\nChange-Id: I9e082ef294cfb2d70384255eb06d97d8cb92b382\n"
    },
    {
      "commit": "544f1c334c603fad888037c9f2a595faaf2479cc",
      "tree": "3bf565fef0cb6c9c3eb17bfc354787a1b4ba15f9",
      "parents": [
        "b990893ffc591bc7de9d5fd54dbe1707388717a8",
        "0e5ed706a2a7c85ddb11bcac55a6e210f725c3f9"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Apr 11 18:52:12 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 18:52:12 2012 -0700"
      },
      "message": "Merge \"ANativeWindow: support for application buffer dimensions\""
    },
    {
      "commit": "9f25b7fdf216c9ef0bd2322cd223eeaf0d60f77f",
      "tree": "b0b509a261874435cab3f5f1a727c02b399bd91c",
      "parents": [
        "54ae14749bc7f9e73cfda35a8b49f9efa80a77fb"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 10 14:30:49 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 10 18:23:58 2012 -0700"
      },
      "message": "Request key maps from input manager service.\n\nInstead of each application loading the KeyCharacterMap from\nthe file system, get them from the input manager service as\npart of the InputDevice object.\n\nRefactored InputManager to be a proper singleton instead of\nhaving a bunch of static methods.\n\nInputManager now maintains a cache of all InputDevice objects\nthat it has loaded.  Currently we never invalidate the cache\nwhich can cause InputDevice to return stale motion ranges if\nthe device is reconfigured.  This will be fixed in a future change.\n\nAdded a fake InputDevice with ID -1 to represent the virtual keyboard.\n\nChange-Id: If7a695839ad0972317a5aab89e9d1e42ace28eb7\n"
    },
    {
      "commit": "0e5ed706a2a7c85ddb11bcac55a6e210f725c3f9",
      "tree": "5a569d941bd660a061aa4b95021a4b93f94293e8",
      "parents": [
        "54ae14749bc7f9e73cfda35a8b49f9efa80a77fb"
      ],
      "author": {
        "name": "Michael I. Gold",
        "email": "gold@nvidia.com",
        "time": "Mon Apr 09 19:51:55 2012 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Apr 10 18:15:47 2012 -0700"
      },
      "message": "ANativeWindow: support for application buffer dimensions\n\nMake the NDK use the new native_window_set_buffers_user_dimensions to implement\nthe ANativeWindow_setBuffersGeometry call.\n\nChange-Id: I2d5981cbd619ee2e090fe8f2ddc69217915c9d9e\n"
    },
    {
      "commit": "8335f1ccccedb6655d96d9d5b697a7f0938235dd",
      "tree": "30a7f8b3e646157365dd51222665a68753fa25e3",
      "parents": [
        "57235fc65b5920f4867e66c8263efab49e92a21b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Feb 25 18:48:35 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 13:03:08 2012 -0800"
      },
      "message": "fix libgui header location\n\nChange-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe\n"
    },
    {
      "commit": "83c64e6b624a876436d2ef5d2f173b10407e27b4",
      "tree": "c4effc3260ab399e8fdae23baf06b076cd87a604",
      "parents": [
        "94d0024557f415b8463f085c9784a3e1d02b58c6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 20 16:58:20 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 20 22:38:43 2012 -0800"
      },
      "message": "frameworks/base refactoring\n\ncreate the new libandroidfw from parts of libui and libutils\n\nChange-Id: I1584995616fff5d527a2aba63921b682a6194d58\n"
    },
    {
      "commit": "b13b9bdad2baf6ad1ec2e56b6b7598fa20f55fc4",
      "tree": "2b90dc39a35d8081ea47b038893624b69a01202d",
      "parents": [
        "6db0608dff408130b35e6f21abe746a635648b18"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 17 18:27:36 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 17 19:01:26 2012 -0800"
      },
      "message": "frameworks/base refactoring.\n\nstep 2: move libutils headers to their new home: androidfw\n\nChange-Id: I14624ba23db92a81f2cb929f104386e1fab293ef\n"
    },
    {
      "commit": "b93a03f841d93498bfea6cc92a22faa34bce1337",
      "tree": "b5c2e1c097ad9dc4a3580ee661223794e0560f60",
      "parents": [
        "e97df97b6cb5e4bff8f9da9ecff7cddb7d04ff41"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 17 15:34:57 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 17 15:36:10 2012 -0800"
      },
      "message": "frameworks/base refactoring.\n\nFirst step. Move libui includes to their new home: androidfw.\n\nChange-Id: Ic042b52fdba72f30edc3cc6339bf30b4c1b99662\n"
    },
    {
      "commit": "3762c311729fe9f3af085c14c5c1fb471d994c03",
      "tree": "7d4caccad80ac7327c7bff96dafc857d5f4631ad",
      "parents": [
        "7a939077bd14521c7d351af98df7ed75a8ec9c15"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 19:20:56 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Sun Jan 08 13:19:13 2012 +0000"
      },
      "message": "Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/157220\n\nBug: 5449033\nChange-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c\n"
    },
    {
      "commit": "6215d3ff4b5dfa52a5d8b9a42e343051f31066a5",
      "tree": "fa31802ed64676368447b67d20567fc1e806c79d",
      "parents": [
        "c9c76a82c6d0bf2362044d899013832882f32c94"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:49 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:49 2012 +0000"
      },
      "message": "Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/156801\n\nBug: 5449033\nChange-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea\n"
    },
    {
      "commit": "809820e28bdeb13a7625e0ce80e0dc2e2d76929f",
      "tree": "680c1e03b493dea02ccf2be0e3bb0e44ec09a281",
      "parents": [
        "5c405feb786d6d5f93a77d0cb26cc1c86ca4f3a4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Oct 21 12:52:29 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Oct 21 12:52:29 2011 -0700"
      },
      "message": "Remove obsolete NativeWindow_fromSurfaceTexture\n\nChange-Id: I9351103929da515cb411fb2e7906bb9f27c4da20\n"
    },
    {
      "commit": "1ee60119c4fa51ebfa781cf5fdc33f192e8551b8",
      "tree": "2fb0ce22107a1d3f0c73f3bd5d63a877f5a16d44",
      "parents": [
        "61bb11cfa03abc345f27ec14f63929b6f600edff"
      ],
      "author": {
        "name": "Ted Bonkenburg",
        "email": "tedbo@google.com",
        "time": "Tue Jul 26 09:51:18 2011 -0700"
      },
      "committer": {
        "name": "Ted Bonkenburg",
        "email": "tedbo@google.com",
        "time": "Thu Aug 11 19:58:25 2011 -0700"
      },
      "message": "Remove ParcelSurfaceTexture and update MediaPlayer\n\nThis removes the ParcelSurfaceTexture class since that functionality has been\nfolded into Surface.java. The change also updates the MediaPlayer to get rid\nof setParcelSurfaceTexture() and modifies setTexture() to use the new Surface\nfunctionality in order to simplify the code.\n\nChange-Id: Iafa75ea3188263928128325d8a726786971b4de4\n"
    },
    {
      "commit": "09d7ed7b395d66be97c6bcb052039f5c0dce646c",
      "tree": "f707f6e46bd9a0edeaac9b33bffe054a64e3062c",
      "parents": [
        "9d29d155c51a26d789cce2c4c24c659487c63554"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 13 15:24:42 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 19 13:05:11 2011 -0700"
      },
      "message": "Add set_scaling_mode() to ANativeWindow.\n\nThis allows to specify the scaling mode independently from\nthe buffer size.\n\nChange-Id: Iaa2baa660445531a97d3fac192e580f4929c5d3b\n"
    },
    {
      "commit": "949be32b671304d5281ac0abbf30dcf4ebaa9eaf",
      "tree": "f12cbc9997bd2270f1a7604ba4d78739688975c3",
      "parents": [
        "8d96f19692815aa14979c811a130b38eafc1bf65"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 13 17:39:11 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 15 17:47:08 2011 -0700"
      },
      "message": "move lock/unlock implementaion outside of Surface into SurfaceTextureClient\n\nThis makes ANativeWindow_lock/ANativeWindow_unlockAndPost work\nwith ANativeWindows implemented by Surface and SurfaceTextureClient.\n\nAlso, Surface now inherits directly from SurfaceTextureClient.\n\nBug: 5003724\nChange-Id: I9f285877c7bae9a262e9a7af91c2bae78804b2ef\n"
    },
    {
      "commit": "050316184b01c0d1a01c46afae7429b89a27c31b",
      "tree": "b21b202cd5345f3989b512b74b227f3fc910383a",
      "parents": [
        "890e013c05ed62bea9781168f3f65efebcbac4d5"
      ],
      "author": {
        "name": "tedbo",
        "email": "tedbo@google.com",
        "time": "Mon Jun 06 16:02:47 2011 -0700"
      },
      "committer": {
        "name": "tedbo",
        "email": "tedbo@google.com",
        "time": "Thu Jun 09 11:59:23 2011 -0700"
      },
      "message": "Add ParcelSurfaceTexture Java class to enable ISurfaceTexture sharing via Binder.\n\nThis adds a new ParcelSurfaceTexture.java class that can be instantiated with\na SurfaceTexture and used to send the corresponding ISurfaceTexture interface\nto another process via Binder. The ParcelSurfaceTexture java object can then\nbe used to create an ANativeWindow based on the SurfaceTextureClient interface.\n\nChange-Id: Ie38ea948b866e52f36a6d0f6cde19b54a8546817\n"
    },
    {
      "commit": "161e67ff3ba26408eea09221734ad2e29a1eed11",
      "tree": "6e98ff836fb5f134e01a7e9ef420ec35a78ad5d2",
      "parents": [
        "9e735541beed238d3b99d4bd284af1fc953c3775",
        "06a8ceacb0dc2713cb0bb2c93d2a750f2a58db68"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 21:44:52 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 21:44:52 2011 -0700"
      },
      "message": "resolved conflicts for merge of 06a8ceac to master\n\nChange-Id: Id51574c825affddfac14ad7214c5496d6a3d6e69\n"
    },
    {
      "commit": "69cb87576ba163b61bb0e6477a3b7c57a9b11d40",
      "tree": "a44be0af3d008409403be133358bdcd628741c01",
      "parents": [
        "b9537db8d9ee27efb4a98415ad2d6b50c1806e5d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 18:13:32 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 18:23:29 2011 -0700"
      },
      "message": "Add new \"-swNNNdp\" resource qualifier.\n\nChange-Id: I0101e88ca9d8d44138bdcaf571f24b0352f4f6ce\n"
    },
    {
      "commit": "fe9f8ab03a63b1037f07dd85799fbea80ec6adaa",
      "tree": "c0cfa91d0537321eeee0ede693fb414d8778a1a2",
      "parents": [
        "1abf1c59f8b15d5b4b198063b884e268bd79fb32"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 06 18:20:01 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 13 12:11:17 2011 -0700"
      },
      "message": "Add initial API for stylus and mouse buttons.\n\nAdded the concept of pointer properties in a MotionEvent.\nThis is currently used to track the pointer tool type to enable\napplications to distinguish finger touches from a stylus.\n\nButton states are also reported to application as part of touch events.\n\nThere are no new actions for detecting changes in button states.\nThe application should instead query the button state from the\nMotionEvent and take appropriate action as needed.\n\nA good time to check the button state is on ACTION_DOWN.\n\nAs a side-effect, applications that do not support multiple buttons\nwill treat primary, secondary and tertiary buttons identically\nfor all touch events.\n\nThe back button on the mouse is mapped to KEYCODE_BACK\nand the forward button is mapped to KEYCODE_FORWARD.\n\nAdded basic plumbing for the secondary mouse button to invoke\nthe context menu, particularly in lists.\n\nAdded clamp and split methods on MotionEvent to take care of\ncommon filtering operations so we don\u0027t have them scattered\nin multiple places across the framework.\n\nBug: 4260011\nChange-Id: Ie992b4d4e00c8f2e76b961da0a902145b27f6d83\n"
    },
    {
      "commit": "da5a4440f019074e7aa61c5531c5c61755adc44d",
      "tree": "acff4b9a3239978abe7033d56a182059d97e8725",
      "parents": [
        "616fb9a38a5b558b1245b0e7f6dc0c4e5ef1a985"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 31 20:59:58 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 31 20:59:58 2011 -0700"
      },
      "message": "ANativeWindow_setBuffersGeometry now returns proper error codes\n\nChange-Id: Iac59d513fa1d4a55b8378000714d344ef3e2e0a4\n"
    },
    {
      "commit": "696257ccf315a1da042787c5b2d1f80c7146fc94",
      "tree": "39c185c6f97540243e5d071e545343822f46f2cc",
      "parents": [
        "1be6cce70175bd90744498d5fca95e3f9eec1cf6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 25 18:42:40 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 25 18:42:40 2011 -0700"
      },
      "message": "merge libsurfaceflinger_client into libgui\n\nthis is the first step in unifying surfacetexture and surface.\nfor this reason the header files were not moved, as most of them\nwill eventually go away.\n\nNOTE: currently we keep libsurfaceflinger_client.so as an empty\nlibrary to workaround prebuilt binaries wrongly linking against\nit.\n\nChange-Id: I130f0de2428e8579033dc41394d093f4e1431a00\n"
    },
    {
      "commit": "bae716bc153962c3ac79660bf32e5c50f0de343d",
      "tree": "2ee7aa6eddbd9789b1b561143927c274004e0977",
      "parents": [
        "75597105e6e03f656bdc1e40acac44afb9a3b01b"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Mar 14 15:34:04 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Mar 15 10:37:37 2011 -0700"
      },
      "message": "SurfaceTexture: disallow unsupported uses.\n\nThis change makes the ANativeWindow_lock NDK function error out if it is\npassed an ANativeWindow with a concrete type that is not Surface.  It\nalso makes eglCreateWindowSurface fail if it is passed a\nSurfaceTextureClient as its \u0027window\u0027 argument.\n\nBug: 4087277\nChange-Id: Ie68c50c52d88f72d8a387f6c094908044c83a88c\n"
    }
  ],
  "next": "846db33313aa0899fa7928256c6734964bd92520"
}
