)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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": "8ffb6b76f7a72e14882e09f882494e5f7d5fc45d",
      "tree": "0340fe6b752d993d70e9e4dada66a191e05cdefa",
      "parents": [
        "703df7f0faf686adcc7c2c8bc48441d057af8c32"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Mar 04 11:09:46 2016 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Mar 04 11:09:46 2016 -0800"
      },
      "message": "Enable clang for arm64.\n\nemutls should work now with latest prebuilt clang/llvm.\n\nBUG: 25642296\nChange-Id: I1d6725c7d447c2794997c5eb6c620a123b67753b\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": "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": "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": "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": "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": "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": "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": "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": "05105f7abe02b2dff91d6260b3628c8b97816bab",
      "tree": "f42676d818548d76b2c55045a1bcc4866d6feec1",
      "parents": [
        "ea2cf2f936b03f1720bc43863e41c89ea2a7903a"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Sep 22 17:29:43 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Sep 28 17:23:26 2010 -0700"
      },
      "message": "Update OBB API to include callbacks\n\nAdd a callback for users of the StorageManager API to be able to receive\nnotifications when the requested operation completes for mountObb and\nunmountObb.\n\nAdd NDK API to get to ObbInfo like the Java API has.\n\nAlso update the docs for the API and remove the \"STOPSHIP\" comments.\n\nChange-Id: I23a4409c7f8b74d3169614beba920b4d667990a4\n"
    },
    {
      "commit": "086d084dd9deab4350981da5e48c8bda5e88fb75",
      "tree": "f43719f65c6cb73dbd5f05cf283fac2618f26b3f",
      "parents": [
        "be857d42849eaaa554d4772dbba7755f8a0f3547"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Aug 19 17:55:56 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Aug 20 13:27:31 2010 -0700"
      },
      "message": "Add AStorageManager API to NDK\n\nAStorageManager allows users of the NDK to access OBBs for now.\n\nChange-Id: I8a25757901a175aa90a9f3e8c2a5db7873e8615e\n"
    },
    {
      "commit": "08d5b8fad8d46ccb64db2fdcb4d66972ec87bf48",
      "tree": "7e2e67603ec8a2ca164548301b65a2b733df76a0",
      "parents": [
        "091c5238a00ca51dc69b8b09459e6ac88e1eb077"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 04 11:12:40 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 11 00:29:59 2010 -0700"
      },
      "message": "More native work.\n\nImplement save/restore of state, and add native APIs for\nconfiguration information.\n\nChange-Id: I2a3ddc2ba605db58d7c8b2b31b9215fb323f90b5\n"
    },
    {
      "commit": "6cce32b6adbb3a9725fc730ba0e0068a74657e60",
      "tree": "659b099eb08109f3e4e51e184d929f392928e722",
      "parents": [
        "d6343c26b8580f61a257a3045bfa124049201116"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jul 12 18:21:36 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 15 14:28:21 2010 -0700"
      },
      "message": "Add native C APIs for working with the Asset Manager\n\nChange-Id: I493b142c4b35e5cc1a1e85283bb5dfb306a6d261\n"
    },
    {
      "commit": "b957b9d63c88efd3a961759424987b99219adeed",
      "tree": "930432d7a5ca739d27d494734de339a938ec7fb6",
      "parents": [
        "e558010a623ead3564fe4d656a5963bf05c17edd"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 13 22:21:56 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 13 22:21:56 2010 -0700"
      },
      "message": "first step at implementing the native sensor support\n\nin this commit:\n- implemented the C stub\n- implemented the binder interfaces involved\n- implemented most of the C++ client side\n\nmissing:\n- SensorManager cannot connect to the SensorServer yet\n(because there is no SensorServer yet)\n\nChange-Id: I75010cbeef31c98d6fa62fd5d388dcef87c2636b\n"
    },
    {
      "commit": "289b9b62372ef52a06113b83dfb870e2c2fb325a",
      "tree": "e444446a331fdbe9b936a0c2570a609675468d05",
      "parents": [
        "2aaa9e9fc5ddc05cedbe530c7a41eca0e3a62b7a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 09 11:44:11 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 09 16:58:19 2010 -0700"
      },
      "message": "Add ANativeWindow API for directly drawing to the surface bits.\n\nAlso other cleanup and fixes:\n\n- We now properly set the default window format to 565.\n- New APIs to set the window format and flags from native code.\n- Tweaked glue for simpler handling of the \"destroy\" message.\n- Um, other stuff.\n\nChange-Id: Id7790a21a2fa9a19b91854d225324a7c1e7c6ade\n"
    },
    {
      "commit": "682674154e3fe88f6061245145f934f25f1a2eb8",
      "tree": "a105ce9f0ae4d88732bfc8fb1a52d4474f17bc86",
      "parents": [
        "8ecfb60a8e74dfcd51bbf3f236d5f414a4d5ac7d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 02 18:52:01 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 02 18:57:02 2010 -0700"
      },
      "message": "Add new native Looper API.\n\nThis allows us to avoid exposing the file descriptor of\nthe event queue; instead, you attach an event queue to\na looper.  This will also should allow native apps to be\nwritten without the need for a separate thread, by attaching\nthe event queue to the main thread\u0027s looper and scheduling\ntheir own messages there.\n\nChange-Id: I38489282635895ae2cbfacb88599c1b1cad9b239\n"
    },
    {
      "commit": "54a181b1a2b1517a9479b21fbf7705a688232faf",
      "tree": "90bf20d8f5f818d357c677cb713e964b920dea67",
      "parents": [
        "65c83b906d01c3c1493d0547757dbb16d4c3722a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 30 18:35:14 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 01 14:43:23 2010 -0700"
      },
      "message": "Make real API for native code to get its window.\n\nAdded implementation to use ANativeWindow and provide\nit to a NativeActivity.\n\nChange-Id: I890d71b6e15d4af71e6cf81b327961d7061ec1c2\n"
    },
    {
      "commit": "a95e4cb62f3642cb190d032dbf7dc40d9ecc6973",
      "tree": "ae4437444a3d3ebeff48dabfd1e9c11fc14620ac",
      "parents": [
        "ef730e6ececa96a3e0576140eea707f7c48cd66c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 18 18:09:33 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 22 11:21:50 2010 -0700"
      },
      "message": "First stab at attaching native event dispatching.\n\nProvides the basic infrastructure for a\nNativeActivity\u0027s native code to get an object representing\nits event stream that can be used to read input events.\n\nStill work to do, probably some API changes, and reasonable\ndefault key handling (so that for example back will still\nwork).\n\nChange-Id: I6db891bc35dc9683181d7708eaed552b955a077e\n"
    }
  ]
}
