)]}'
{
  "log": [
    {
      "commit": "282e181b58cf72b6ca770dc7ca5f91f135444502",
      "tree": "e313e7ab30ff4679562efa37bde29cfcb9e375d3",
      "parents": [
        "7023df08f14ec5dee76ac54c03e870f84e297636"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jan 23 18:17:42 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jan 27 10:31:04 2014 -0800"
      },
      "message": "Revert \"Move frameworks/base/tools/ to frameworks/tools/\"\n\nThis reverts commit 9f6a119c8aa276432ece4fe2118bd8a3c9b1067e.\n"
    },
    {
      "commit": "9f6a119c8aa276432ece4fe2118bd8a3c9b1067e",
      "tree": "1391656f9ad624aa99d4c7d2880d38121801a424",
      "parents": [
        "647b6f5ed276bf93d95e5801e5e8af2802ef5fbb"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed Aug 28 09:44:17 2013 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed Aug 28 09:44:17 2013 -0700"
      },
      "message": "Move frameworks/base/tools/ to frameworks/tools/\n\nChange-Id: I3ffafdab27cc4aca256c3a5806b630795b75d5c8\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": "6ec6f79e1ac1714e3b837796e99f07ff88f66601",
      "tree": "02aa55617bfa6dd2eb0bec29156e279c8afaaa0d",
      "parents": [
        "a3bc565882dd3984e995363642b1295fe3d24d10"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 17 16:52:41 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 17 17:56:32 2012 -0700"
      },
      "message": "Support loading keyboard layout overlays from resources.\n\nAdded the concept of a keyboard layout overlay, which is\na key character map file that has \"type OVERLAY\".\n\nAdded support for loading keyboard layout overlays from\nresources dynamically.  The layouts are reloaded whenever they\nare changed in the Settings application or an application\nis installed.  This is somewhat more aggressive than necessary\nso we might want to optimize it later.\n\nBefore system-ready, the input system uses just the generic\nkeyboard layouts that are included on the device system image.\nAfter system-ready, it considers the user\u0027s selected keyboard\nlayout overlay and attempts to load it as necessary.  We need to\nwait until system-ready before doing this because we need to\nbe in a state where it is safe to start applications or access\ntheir resources.\n\nBug: 6110399\nChange-Id: Iae0886d3356649b0d2440aa00910a888cedd8323\n"
    },
    {
      "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": "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": "5bf842b22e79d779d82d5a1cc84b57b7ff7bd846",
      "tree": "46d1c693493c1f17378b134c0787647bc16e6343",
      "parents": [
        "4a7571bc0bd6d675d6964595407f0c184c51d9ac"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Feb 17 16:56:27 2012 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Feb 17 16:56:59 2012 -0800"
      },
      "message": "Fix build break.\n\nChange-Id: I0bc8ac6e76ff28bd4c3585afbd6b3aa1930bf710\n"
    },
    {
      "commit": "64ef6b47e020da5370af8897638a0a778fa52b74",
      "tree": "740353ef25502e55bae3bca6aaa81733f2fb3df9",
      "parents": [
        "63aa6622d0eb6592a582ac28078404bfc411bcef"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed Oct 19 22:35:56 2011 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu Oct 20 16:21:25 2011 -0700"
      },
      "message": "add -ldl to host executables\n\nThis fixes the build on Linux when RefBase is compiled with reference tracking\nenabled.\n\nChange-Id: I3e931e0b463ce836f6fdb30c37068d77144631a3\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "6f2fba428ca5e77a26d991ad728e346cc47609ee",
      "tree": "5dd07c24bd9b474ccfbcba4f63e078598fbd2b50",
      "parents": [
        "b1bdb64d641ac63097619e5ef08d5a25bfdc61bb"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Feb 19 01:08:02 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Feb 19 05:23:10 2011 -0800"
      },
      "message": "Add new axes for joysticks and mouse wheels.\n\nAdded API on InputDevice to query the set of axes available.\nAdded API on KeyEvent and MotionEvent to convert keycodes and axes\nto symbolic name strings for diagnostic purposes.\nAdded API on KeyEvent to query if a given key code is a gamepad button.\nAdded a new \"axis\" element to key layout files to specify the\nmapping between raw absolute axis values and motion axis ids.\nExpanded the axis bitfield to 64bits to allow for future growth.\nModified the Makefile for keyboard prebuilts to run the keymap\nvalidation tool during the build.\nAdded layouts for two game controllers.\nAdded default actions for game pad button keys.\nAdded more tests.\nFixed a bunch of bugs.\n\nChange-Id: I73f9166c3b3c5bcf4970845b58088ad467525525\n"
    },
    {
      "commit": "9065504a63d6bf37bf621191fda1d1fe4da76ee3",
      "tree": "500948db3ef54c52fc65f52f4ab4a220e4504009",
      "parents": [
        "d6a46103bfbed17451abf0fb608d7b778597846c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Dec 02 13:50:46 2010 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Dec 02 16:01:32 2010 -0800"
      },
      "message": "Improve support for external keyboards.\n\nUse Vendor ID, Product ID and optionally the Version to\nlocate keymaps and configuration files for external devices.\n\nMoved virtual key definition parsing to native code so that\nEventHub can identify touch screens with virtual keys and load\nthe appropriate key layout file.\n\nCleaned up a lot of old code in EventHub.\n\nFixed a regression in ViewRoot\u0027s fallback event handling.\n\nFixed a minor bug in FileMap that caused it to try to munmap\nor close invalid handled when released if the attempt to map\nthe file failed.\n\nAdded a couple of new String8 conveniences for formatting strings.\n\nModified Tokenizer to fall back to open+read when mmap fails since\nwe can\u0027t mmap sysfs files as needed to open the virtual key\ndefinition files in /sys/board_properties/.\n\nChange-Id: I6ca5e5f9547619fd082ddac47e87ce185da69ee6\n"
    },
    {
      "commit": "ab841350f99fad48c1bdeb0f62c1713fcfcbf437",
      "tree": "04e382e28f25a296d4dacd01a72f8583d44ebfc3",
      "parents": [
        "061cf758841dfc972be3f0ec4857762fafe49aa6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Nov 23 16:29:54 2010 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Nov 23 16:29:54 2010 -0800"
      },
      "message": "Fix build on Linux due to different strrchr prototype.\n\nIt seems Linux host build has a fancy strrchr overload that preserves\nconstness.  That\u0027s nice but it broke this.\n\nChange-Id: I3c9b57b9ce9abc5d334d1e7b2498a3248bd20a6a\n"
    },
    {
      "commit": "061cf758841dfc972be3f0ec4857762fafe49aa6",
      "tree": "cc91f82982cc7e0c5af117b5ddc40560777b0bae",
      "parents": [
        "86e735375eb4f681ec8501e12df4730397b4331c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 18 20:52:43 2010 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Nov 23 15:26:48 2010 -0800"
      },
      "message": "Port Emulator keymaps.\n\nAlso added a validation tool for keymaps (not currently integrated\ninto the build system but getting there).\n\nThis change brings back Android.mk with the intent that it will\nbe used to validate keymaps in a later change.\n\nAdded some missing keys that are present on phones.\n\nBug: 3215210\nBug: 3225421\nChange-Id: Id817c6e2215164616942c51a42752915d9ceacd3\n"
    }
  ]
}
