)]}'
{
  "log": [
    {
      "commit": "4e713f14419a37f385cf1509b011982bdcf67edc",
      "tree": "80ffe6aca8540d81dd5792e4e6911a4feaf85f98",
      "parents": [
        "c108613fb8ef0fabb3f08198a52bd0877e382937"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Tue Feb 28 16:51:15 2012 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Tue Feb 28 17:00:46 2012 +0900"
      },
      "message": "Unblock IPC call in TextServicesManagerService\n\nBug: 5471520\nChange-Id: Iedf2c2cdd8d4834545d06d72ade3ce211b104b1d\n"
    },
    {
      "commit": "5265466e8a5453e738713869f61ca45482b85319",
      "tree": "f5e5b79613f7e223895cb9b66e6aa2794d1b8469",
      "parents": [
        "2abb1381524bdbbc7a09b573505abde4178be2e3",
        "e639da7baa23121e35aa06d6e182558e0e755696"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 24 18:40:37 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 24 18:40:37 2012 -0800"
      },
      "message": "Merge \"New development permissions.\""
    },
    {
      "commit": "0aec3ea6defdee1ee4a9c0d6c4a3c13df3e7b812",
      "tree": "91e2e56e8b3a4da1ea037fded1f9c7078bae6d99",
      "parents": [
        "7b49b4bea8090bb8e5015225eb05686d3676205c",
        "911b505f11c719906985f169a4f45930bdec8695"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 24 15:44:55 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Feb 24 15:44:55 2012 -0800"
      },
      "message": "am 911b505f: am dc5fa185: am 133dc2d7: Merge \"Fix issue #6048808: sometimes auto-correct is inactive\" into ics-mr1\n\n* commit \u0027911b505f11c719906985f169a4f45930bdec8695\u0027:\n  Fix issue #6048808: sometimes auto-correct is inactive\n"
    },
    {
      "commit": "7663d80f6b6fd6ca7a736c3802013a09c0abdeb9",
      "tree": "266fa968bd0d82616ff8d83e5f183a0ba6431cc9",
      "parents": [
        "566328a2a5fcd8c40fc67d8974d6df0df48b0056"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 24 13:08:49 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 24 13:18:23 2012 -0800"
      },
      "message": "Fix issue #6048808: sometimes auto-correct is inactive\n\nMy previous change to speed up the time the IME is dismissed was\nfundamentally flawed.  That change basically switched the order\nthe application called the input method manager service from doing\nstartInput() and then windowGainedFocus(), to first windowGainedFocus()\nand then startInput().\n\nThe problem is that the service relies on startInput() being done\nfirst, since this is the mechanism to set up the new input focus,\nand windowGainedFocus() is just updating the IME visibility state\nafter that is done.  However, by doing the startInput() first, that\nmeans in the case where we are going to hide the IME we must first\nwait for the IME to re-initialize editing on whatever input has\nfocus in the new window.\n\nTo address this, the change here tries to find a half-way point\nbetween the two.  We now do startInput() after windowGainedFocus()\nonly when this will result in the window being hidden.\n\nIt is not as easy as that, though, because these are calls on to\nthe system service from the application.  So being able to do that\nmeant a fair amount of re-arranging of this part of the protocol\nwith the service.  Now windowGainedFocus() is called with all of\nthe information also needed for startInput(), and takes care of\nperforming both operations.  The client-side code is correspondingly\nrearranged so that the guts of it where startInput() is called can\ninstead call the windowGainedFocus() entry if appropriate.\n\nSo...  in theory this is safer than the previous change, since it\nshould not be impacting the behavior as much.  In practice, however,\nwe are touching and re-arranging a lot more code, and \"should\" is\nnot a promise.\n\nChange-Id: Icb58bef75ef4bf9979f3e2ba88cea20db2e2c3fb\n"
    },
    {
      "commit": "3f0c58eb708ca520e84396fe764147800395812f",
      "tree": "550651c9789b6950c1e3cc8e1c90fe084ba3ca71",
      "parents": [
        "525ece4098a636818148dd5a660ebe4d7a2138af",
        "2561b0b10a55841a08e0e1d467e73e10b1bf256d"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Feb 24 10:53:42 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 24 10:53:42 2012 -0800"
      },
      "message": "Merge \"New notification priority and related APIs.\""
    },
    {
      "commit": "2561b0b10a55841a08e0e1d467e73e10b1bf256d",
      "tree": "707a5812a2d6a711838babe41fd4947b96f13649",
      "parents": [
        "c725a3705ba8646e134091981e84da99fe4076b1"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Feb 13 21:04:12 2012 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Feb 24 13:47:00 2012 -0500"
      },
      "message": "New notification priority and related APIs.\n\nThis change introduces a few new bits of data on\nNotification that will help the Notification Manager and\nSystem UI route and display them more intelligently:\n\n -\u003e priority: an integer in a predefined range that\n    indicates the app\u0027s best guess as to the relative\n    importance (to the user, right now) of that information\n\n -\u003e kind: a tag (really, set of tags) indicating the general\n    type of notification (realtime, asynchronous, etc)\n\n -\u003e extras: a Bundle of additional key/value pairs\n    associated with this notification (currently @hidden)\n\nThe notification manager takes these data into account when\nassigning to each notification a score which is passed with\nthe notification on to the system UI, where it can be used to\naffect presentation. For example:\n\n  - Spammy apps (identified explicitly by the user or by\n    some other means) will have their notifications scored\n    very negatively by the notification manager, allowing\n    the UI to suppress them\n  - Notifications of higher score might be shown larger\n    or in a different way\n  - Very important notifications (indicated by a very high\n    score) might interrupt the user during an otherwise\n    important task (videochat, game, etc)\n\nImplementation note: This replaces/extends the old internal\nnotion of \"priority\", which was mostly used to organize\nongoings and system notifications at the top of the panel.\n\nChange-Id: Ie063dc75f198a68e2b5734a3aa0cacb5aba1ac39\n"
    },
    {
      "commit": "42d840b91d161fe98ebe3305f011b3b0f6d4561c",
      "tree": "9aa85d13cc18f6a1c6ce597ab2e9ff50d0f67201",
      "parents": [
        "6caa03004df8bfc7f4718c2afecf56b0b59fa764",
        "57c7fd5a43237afc5e8ef31a076e862c0c16c328"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Feb 23 19:04:41 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 23 19:04:41 2012 -0800"
      },
      "message": "Merge \"Fixing issues with the AccessibilityNodeInfo cache.\""
    },
    {
      "commit": "57c7fd5a43237afc5e8ef31a076e862c0c16c328",
      "tree": "4edfd7d14db15e115089e73dc06aebfce69eb79e",
      "parents": [
        "0d04e245534cf777dfaf16dce3c51553837c14ff"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Feb 23 18:31:39 2012 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Feb 23 18:51:04 2012 -0800"
      },
      "message": "Fixing issues with the AccessibilityNodeInfo cache.\n\n1. Before there were two caches one in the app process that\n   kept track only the ids of infos that were given to a\n   querying client and one in the querying client that\n   holds the infos. This design requires precise sync\n   between the caches. Doing that is somehow complicated\n   since the app has cache for each window and it has\n   to intercept all accessibility events from that window\n   to manage the cache. Each app has to have a cache for\n   each querying client. This approach would guarantee that\n   no infos are fetched twice but due to its stateful nature\n   and the two caches is tricky to implement and adds\n   unnecessary complexity. Now there is only one cache in\n   the client and the apps are stateless. The client is\n   passing flags to the app that are a clue what nodes to\n   prefetch. This approach may occasionally fetch a node\n   twice but it is considerably simpler and stateless\n   from the app perspective - there is only one cache.\n   Fetching a node more than once does not cause much\n   overhead compared to the IPC.\n\nChange-Id: Ia02f6fe4f82cff9a9c2e21f4a36747de0f414c6f\n"
    },
    {
      "commit": "e639da7baa23121e35aa06d6e182558e0e755696",
      "tree": "7d956fc301eb1988a8646ff3a62786639a843da0",
      "parents": [
        "b8678d76c3e09d0d65255f3971b6112a48e19099"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 21 15:11:13 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 23 16:39:15 2012 -0800"
      },
      "message": "New development permissions.\n\nThese are permissions that an application can request, but won\u0027t\nnormally be granted.  To have the permission granted, the user\nmust explicitly do so through a new \"adb shell pm grant\" command.\n\nI put these permissions in the \"development tools\" permission\ngroup.  Looking at the stuff there, I think all of the permissions\nwe already had in that group should be turned to development\npermissions; I don\u0027t think any of them are protecting public APIs,\nand they are really not things normal applications should use.\n\nThe support this, the protectionLevel of a permission has been\nmodified to consist of a base protection type with additional\nflags.  The signatureOrSystem permission has thus been converted\nto a signature base type with a new \"system\" flag; you can use\n\"system\" and/or \"dangerous\" flags with signature permissions as\ndesired.\n\nThe permissions UI has been updated to understand these new types\nof permissions and know when to display them.  Along with doing\nthat, it also now shows you which permissions are new when updating\nan existing application.\n\nThis also starts laying the ground-work for \"optional\" permissions\n(which development permissions are a certain specialized form of).\nCompleting that work requires some more features in the package\nmanager to understand generic optional permissions (having a\nfacility to not apply them when installing), along with the\nappropriate UI for the app and user to manage those permissions.\n\nChange-Id: I6571785c6bb5f6b291862b7a9be584885f88f3a5\n"
    },
    {
      "commit": "b8678d76c3e09d0d65255f3971b6112a48e19099",
      "tree": "231096efd52582e1747f2378896122366ca17f6e",
      "parents": [
        "c42067d7d7a080ef87ba8a287a794955f98e195b",
        "210c1a262a18c301f218260a8e2727bd4ce04ac6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 23 10:54:06 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 23 10:54:06 2012 -0800"
      },
      "message": "resolved conflicts for merge of 210c1a26 to master\n\nChange-Id: Ic44193e62215086c22225f2def5eee3159d26ae8\n"
    },
    {
      "commit": "5489e4af193e7e57ac5af4f6ea2632f5df5bda80",
      "tree": "5a570a8dd315f359f0364f97768142e42b07d6bd",
      "parents": [
        "5c9b4329f335b80ee3282b7ee1f1d27292173f24",
        "2f995a7eaa1aba2c038c698039ed6837dfe7e51e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Feb 22 07:53:43 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 22 07:53:43 2012 -0800"
      },
      "message": "Merge \"- Consolidate all animations in a single place outside of layout loop. - Move mPolicy.startAnimationLw and mPolicy.finishAnimationLw into same method as mPolicy.animatingWindowLw. - Fix first parameter of performLayoutLockedInner(initial, ...) to pass true on initial pass.\""
    },
    {
      "commit": "0d04e245534cf777dfaf16dce3c51553837c14ff",
      "tree": "5ef4b779312394e890bfe5078901e896cc92591a",
      "parents": [
        "b6ad5b14cbb09f8a10c3155895337c773e7a850b"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Feb 21 13:46:36 2012 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Feb 21 17:09:09 2012 -0800"
      },
      "message": "Improving accessibility APIs used for UI automation.\n\n1. UiTestAutomationBridge was accessing the root node in the\n   active window by tracking the accessibility event stream\n   and keeping the last active window changing event. Now\n   the bridge is stateless and the root node is fetched by\n   passing special window and view id with the request to\n   the system.\n\n2. AccessibilityNodeInfos that are cached were not finished,\n   i.e. not sealed, causing exception when trying to access\n   their children or rpedecessors.\n\n3. AccessibilityManagerService was not properly restoring its\n   state after the UI automation bridge disconnects from it.\n   I particular the devices was still in explore by touch mode\n   event if no services are enabled and the sutomation bridge\n   is disconnected.\n\n4. ViewRootImpl for the focused window now fires accessibility\n   events when accessibility is enabled to allow accessibility\n   services to determine the current user location.\n\n5. Several missing null checks in ViewRootImpl are fixed since\n   there were scenraios in which a NPE can occur.\n\n6. Update the internal window content querying tests.\n\n7. ViewRootImpl was firing one extra focus event.\nbug:6009813\nbug:6026952\n\nChange-Id: Ib2e058d64538ecc268f9ef7a8f36ead047868a05\n"
    },
    {
      "commit": "01011c3d7ce4f76c1a76b33a04fc63da784ddbea",
      "tree": "8dcaf6f1e6ef5426631d2d88513fbd1218e8178b",
      "parents": [
        "2d559b5311be1cd909e5a445afe75a840688b822"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 21 13:54:21 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 21 13:54:21 2012 -0800"
      },
      "message": "Fix issue #6037252: Screen shifts after all apps are upgraded\n\nTwo things: (1) make sure the boot message is always positioned within\nthe entire unrestricted display, and (2) allow the dim background to go\non top of the nav bar when being used for the boot message (this latter\nis really a hack that should be more generally fixed in the future).\n\nChange-Id: I7261b044eb802a39cadff931b50a679ff18781d6\n"
    },
    {
      "commit": "2f995a7eaa1aba2c038c698039ed6837dfe7e51e",
      "tree": "3a30901273955840a4115cbaa012a53dea1ffa47",
      "parents": [
        "dbbb175258d39fc8a528527a8ce1ad4cb338b496"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Feb 21 09:53:21 2012 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Feb 21 09:53:21 2012 -0800"
      },
      "message": "- Consolidate all animations in a single place outside of layout loop.\n- Move mPolicy.startAnimationLw and mPolicy.finishAnimationLw into same method as mPolicy.animatingWindowLw.\n- Fix first parameter of performLayoutLockedInner(initial, ...) to pass true on initial pass.\n\nChange-Id: If1b47bb8a7e03cf427769c657e371abc0910b3e3\n"
    },
    {
      "commit": "94d0024557f415b8463f085c9784a3e1d02b58c6",
      "tree": "c1a3c37d8ce334975890b335f7d7b852ebf8f1d6",
      "parents": [
        "4e753e08d146ecd1a45a4402bb6b2e392d890a33"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Wed Jan 11 20:14:34 2012 -0800"
      },
      "committer": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Fri Feb 17 22:19:45 2012 -0800"
      },
      "message": "Power HAL PowerManagerService hookup\n\nUse PowerHAL to set system awake/suspend state.\n\nChange-Id: If58a6f548564ea141b68f304455997d9ff04eace\nSigned-off-by: Todd Poynor \u003ctoddpoynor@google.com\u003e\n"
    },
    {
      "commit": "ba217ef207f85559f6b8cab1a5166414a7276805",
      "tree": "98fa3dfd5ac22f66f44748d1e93d709e68a4042c",
      "parents": [
        "580d079101ef69e562ba491b33ecf4672fb10e58",
        "9806a2307f3e47e847ad5e62e302eab36d3eb3e4"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Feb 17 10:30:50 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 17 10:30:50 2012 -0800"
      },
      "message": "Merge \"Ignore broken input channel when finishing input event.\""
    },
    {
      "commit": "9806a2307f3e47e847ad5e62e302eab36d3eb3e4",
      "tree": "5a9a19dddce6d3520e76042cbfc6fb96b626c413",
      "parents": [
        "b503f1eea1b2ab699e3325450a08f3f62aa0c403"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Feb 17 10:28:09 2012 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Feb 17 10:28:09 2012 -0800"
      },
      "message": "Ignore broken input channel when finishing input event.\n\nThere are occasional races during application shut down where the\ninput dispatcher will close an input channel before the application\nhas finished its last event.  So just ignore EPIPE.\n\nAlso tweak the logging for failed input event injection to make\nit clearer which pid was trying to perform the injection.\n\nBug: 6013004\nChange-Id: I7bbb01441d41762b03eafd4d39dcf0323e1cadf3\n"
    },
    {
      "commit": "b9ee4f4425612037139dba70d0a7d9a089eeb3d2",
      "tree": "6c1c96abf2dd35c04fc3ddcc914661173d13ca24",
      "parents": [
        "30e2fbe0d2565952928feaf9d3d9194340113af4",
        "621e2fecb559d5afa5e43d58e8a7ee2d71c74430"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 16 18:01:31 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 16 18:01:31 2012 -0800"
      },
      "message": "Merge \"Revert \"Don\u0027t wait for current activity to pause before resuming next.\"\""
    },
    {
      "commit": "621e2fecb559d5afa5e43d58e8a7ee2d71c74430",
      "tree": "be4aa1f545c6354adfc5c5228232f64dfdff4be0",
      "parents": [
        "b9345b9496527eb710fb89dc771df52b4e5bc1ad"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 16 17:07:33 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 16 17:07:33 2012 -0800"
      },
      "message": "Revert \"Don\u0027t wait for current activity to pause before resuming next.\"\n\nThis reverts commit cbb722ed06092a9e2be37150aa8bc635f0fe21da.\n"
    },
    {
      "commit": "3c3155abea3a6776c8a903dbbdc3e7c7d810fb4f",
      "tree": "b25a094ad0572987ff9adb793b4454cc53f0f51b",
      "parents": [
        "06c51e2f48c5db325a6f6905660a7a0f7558b4d5",
        "67cf7d314b5b94db1a9f1c57140b6615b0ea8291"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Feb 16 15:48:14 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 16 15:48:14 2012 -0800"
      },
      "message": "Merge \"Fix Power Control widget\""
    },
    {
      "commit": "67cf7d314b5b94db1a9f1c57140b6615b0ea8291",
      "tree": "2de67be8b686a2909a93f2aca89ec7e2328597bc",
      "parents": [
        "8181201c6e55765fd58d2ff07921a143b879edd9"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Feb 16 14:31:23 2012 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Feb 16 15:03:42 2012 -0800"
      },
      "message": "Fix Power Control widget\n\nSome changes in AppWidgetService were interfering with widget permissions.\n\nAdded some hidden methods in Context to communicate the requesting user\ninformation instead of using the calling uid.\n\nBug: 6019296\nChange-Id: I5e519fd3fbbfa5b3fcc5c297b729c671dac8e7c7\n"
    },
    {
      "commit": "c157673a590e670a9a509ec13d47ffada0b56335",
      "tree": "cec0528e5a0407c40acda1b0c2954a39607c50eb",
      "parents": [
        "37237839e87988208296a57d70767ebbd9c6880b"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Wed Feb 01 15:23:33 2012 -0800"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Feb 16 13:45:10 2012 -0800"
      },
      "message": "Add the CommonTimeManagementService.\n\nAdd a small service to the high level core set of system services to\ncontrol the configuration of the native common time service.  This\nservice is responsible for controlling policy regarding when the\ncommon time service should be allowed to run, which networks it is\nallowed to run on, what priority it runs at in the master election\nalgorithm, and so on.\n\nChange-Id: I1fcd834c0286aea0df9557520693a3f42de59d69\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "cb46d80d217899e51c3d1ad6fc930d9b61883cf9",
      "tree": "38eb3a24c1c575907ca1d304d635ad7d0f3b909f",
      "parents": [
        "e36f19a1a5e22dfb6c126f41ab7a00c10e87e7c9",
        "25872aa3ef189ae5506a923398af11ce5eb1a9b9"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Feb 16 13:06:29 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 16 13:06:29 2012 -0800"
      },
      "message": "Merge \"Adding shell commands for modifying content.\""
    },
    {
      "commit": "4a06c8008b2edd6677f9a411af79b0a4971b87fe",
      "tree": "ce3bca001e3f2a7778d39be2cb5049f7b1620e16",
      "parents": [
        "fef3d62b16bccd9ef7a32c2e1da94f694b34c405"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Feb 15 15:06:01 2012 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Feb 15 15:06:01 2012 -0800"
      },
      "message": "Simplify Choreographer API.\n\nRemoved the listeners and schedule animation / draw methods.\nInstead all requests are posted as one-shot callbacks, which is a\nbetter match for how clients actually use the Choreographer.\n\nBug: 5721047\nChange-Id: I113180b2713a300e4444d0d987f52b8157b7ac15\n"
    },
    {
      "commit": "25872aa3ef189ae5506a923398af11ce5eb1a9b9",
      "tree": "ece1cffcc342e5e7133ca42d33ce97bbf403f779",
      "parents": [
        "91ec0b722f659bb5e4bcc64339f2fbbe30a31287"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Feb 03 19:19:09 2012 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 15 14:55:47 2012 -0800"
      },
      "message": "Adding shell commands for modifying content.\n\n1. Added methods to the ActivityManagerService remote interface\n   that allow accessing content providers outside of an application.\n   These methods are guarded by an internal signature protected\n   permission which is given to the shell user. This enables a\n   shell program to access content providers.\n\n2. Implemented a shell command that takes as input as standart\n   fagls with values and manipulates content via the content provider\n   mechanism.\n\nChange-Id: I2943f8b59fbab33eb623458fa01ea61a077b9845\n"
    },
    {
      "commit": "ea555e27407ad2a32d2682c08f423d2af71f2a91",
      "tree": "40000318f20d4e9f8cc50a47656a15038dc42567",
      "parents": [
        "d658c024ea35ec267be98f1d0b9b3cec7cbde888",
        "c600e21ffc723260b487e0b8b097452f6b880aab"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Feb 14 16:12:27 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 14 16:12:27 2012 -0800"
      },
      "message": "Merge \"Mixed up uid and user-id.\""
    },
    {
      "commit": "c600e21ffc723260b487e0b8b097452f6b880aab",
      "tree": "126052749cfc99d415f8ba466d762148b985f2a3",
      "parents": [
        "3be5c8565154c9a6aa7abf0a0d61eaecf114b450"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Feb 14 16:08:07 2012 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Feb 14 16:08:07 2012 -0800"
      },
      "message": "Mixed up uid and user-id.\n\n1000 is not a userId !\n\nPotential fix for #5990664,#6008692\n\nChange-Id: I528e742e494bc24beef7b59ccb315b7a5d4e84fe\n"
    },
    {
      "commit": "ef9d55a6b004685daefee43b49e833c1030de017",
      "tree": "a54e5b33b7fed066cada28039fdf5d57a3f0f5a0",
      "parents": [
        "286b364c7b2438148fc71f3e99f2495f19f1577f",
        "8f7cc7af66520e3bd5e59e8eadb6907e3e043661"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Tue Feb 14 13:08:01 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 14 13:08:01 2012 -0800"
      },
      "message": "am 8f7cc7af: am b9be8eff: am ffc89899: Merge \"Don\\\u0027t pulse LED on new notification unless notification has LED flag set\" into ics-mr1\n\n* commit \u00278f7cc7af66520e3bd5e59e8eadb6907e3e043661\u0027:\n  Don\u0027t pulse LED on new notification unless notification has LED flag set\n"
    },
    {
      "commit": "2384386f3132839bec0cf460a3f19d068ad28507",
      "tree": "c2a9ee697b4342f8bacd6dd32dd1b323261f1fe7",
      "parents": [
        "ffc89899652f5c815b6d156f55a909001420891e"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon Feb 13 11:39:04 2012 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Feb 14 11:44:09 2012 -0800"
      },
      "message": "Stop using shared DUN APN when tethering stops.\n\nBackported from master, including a bug fix and a cdma enhancement.\n\nEven if other people are sharing the connection (ie, carrier wants\ndefault and tethered traffic on the same APN) stop using a carrier-\ndescribed APN when the tethering stops.\n\nbug:5972599\nChange-Id: I25e4831855e6b62c0c3ab3a6f4d4846aaee6ac50\n"
    },
    {
      "commit": "ece18efb35f762d2f7d2e802be29464ec6abdfbf",
      "tree": "3ef4fa0c0d155e3b6e0eb77a8d40f2f3aa65cb9d",
      "parents": [
        "08eb7dd630a2de8dd51a988a747da26ff9d3f8fb"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Feb 13 20:42:19 2012 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Feb 13 20:42:19 2012 -0800"
      },
      "message": "Don\u0027t pulse LED on new notification unless notification has LED flag set\n\nBug: 6006131\n\nChange-Id: I719c7d68e310bfaca227f6286159b3993784926b\nSigned-off-by: Mike Lockwood \u003clockwood@google.com\u003e\n"
    },
    {
      "commit": "07f941f026ed2aef8945d0d44134162b3db50eb5",
      "tree": "c40a87063b8cd605c3f671a31524ecf8f7068af7",
      "parents": [
        "95d4c9934f27b2c7276005b0235e0da44a89aea8",
        "40c8db5a28e9abae2033facce1354e3677911fcc"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 13 14:34:26 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 13 14:34:26 2012 -0800"
      },
      "message": "Merge \"Move BroadcastQueue out of the ActivityManager class.\""
    },
    {
      "commit": "ec5b5156e7a6f46cb90f1b3e980b70a11384f43c",
      "tree": "c2bc115ce3cbd389edb5469871397f6b94a3e2ee",
      "parents": [
        "0bbd872ea806470fd007b8ea35f953380a8b4162",
        "4dcece8e509027cd28e20b1f9f14d2c0446d84c0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 13 13:30:53 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 13 13:30:53 2012 -0800"
      },
      "message": "Merge \"Fix issue where screen rotations would stop animating.\""
    },
    {
      "commit": "4dcece8e509027cd28e20b1f9f14d2c0446d84c0",
      "tree": "37d96e76f1b08dfdf308765e0bdcc7981ec92717",
      "parents": [
        "5dd4754f58e5e99f893749ab3bb3eda1de4cfbe7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 10 14:50:32 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 13 10:37:08 2012 -0800"
      },
      "message": "Fix issue where screen rotations would stop animating.\n\nIf we went through the update loop multiple times, and had finished\nanimating the first time, we would blow away that information the\nsecond time and never kill the animation.\n\nAlso moved killing the animation back up to the animation step --\nthis involves destroying surfaces and such, and so really should\nbe done as part of the surface transaction.  We can also consider\nthe screen rotation animation object to be owned by the animation,\nso it can destroy it when done.\n\nChange-Id: If24356c509c66d046f2ddfd9ad5bfe12504d7716\n"
    },
    {
      "commit": "62d1058cc972a8fcb7739547abd3298f5d98a9b1",
      "tree": "10e00975abf03e71e33dd7e2c3051c8ecb10d721",
      "parents": [
        "5a1f6fb4073ee4b27359faa950808a6eeac33a4c",
        "308028049a75b36d5ed525c0bcef441da850c2a5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Feb 13 10:26:33 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 13 10:26:33 2012 -0800"
      },
      "message": "Merge \"Remove the input dispatcher throttle.\""
    },
    {
      "commit": "40c8db5a28e9abae2033facce1354e3677911fcc",
      "tree": "c6fa812cdc2ceba73611a5bffba22ff9736b0c34",
      "parents": [
        "5dd4754f58e5e99f893749ab3bb3eda1de4cfbe7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 10 18:59:48 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 10 18:59:48 2012 -0800"
      },
      "message": "Move BroadcastQueue out of the ActivityManager class.\n\nChange-Id: Ib468481588a1aa506ff00f3c4b1a6ecf672c7b99\n"
    },
    {
      "commit": "41b564f354e7bbe1df96fdf2fe60ebafb3f06a18",
      "tree": "be87e3a2875fd1a59f40c57ab396f8a4ed97d84e",
      "parents": [
        "6f5f9ce713b3ea58cbc71f3f4b02c2b694ce9dec",
        "e8b57feaab3b15bd5aa563fc9472715e225da071"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Fri Feb 10 16:11:18 2012 -0800"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Fri Feb 10 16:11:18 2012 -0800"
      },
      "message": "resolved conflicts for merge of e8b57fea to master\n\nChange-Id: I2ccf2b4cb73faadd0c8608cc21dda5db888d2937\n"
    },
    {
      "commit": "c199e2c7e0f8895273fdd912c5c88495a8b30e35",
      "tree": "3cc7fa6ff0f78905e27fc3184d3d0904116594ae",
      "parents": [
        "0ee0969ffb92d40c290c9da9bfc6f2cd5b1ba3aa",
        "efeba018bde81e02e1255714e3d4eeeb43c055e7"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 10 15:26:36 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 10 15:26:36 2012 -0800"
      },
      "message": "Merge changes Iefeba018,I1ce5b26d,Ie3f59793,Id3c5e1ec,I9063154a,Ib7bd88a3,I20963df8,I01060b08,I7dc29739,I5c55a051,Ia07aa3c4,I3194ea94,I0dc37cce,Ic3a7bb65,I0a7eaecf,Ifa7b0614,Ice952c8e,Ia5abdb9e,Ifcb310f9,If5f4ec97,I4767690f,I79824179,I6e0f981e,Id60ae7f6\n\n* changes:\n  EthernetDataTracker: Don\u0027t run DHCP or set network available until link is up\n  Only send master volume or mute updates if the settings have changed\n  Make AudioManager.adjustMasterVolume public and hidden\n  Allow disabling network stats support in a resource overlay\n  Restore persisted master volume if the media server restarts\n  Don\u0027t allow changing master volume when muted\n  Show the flags in package manager debugging.\n  Modified the constructor of EndpointBase\n  Add a getEndpointInfo accessor to AIDL-generated RPC proxy classes\n  Defer persisting master data to avoid excessive database writes\n  Add an option that disables the AUDIO_BECOMING_NOISY intent send when a headset is hotplugged.\n  Remove reference counting and client death notification for master mute\n  AudioService: Send broadcasts when master volume and mute state change\n  Use the new get/putFlattenable methods on RpcData.\n  Don\u0027t try to unmarshal void return types when there are out parameters being returned.\n  AudioManager: Add wrapper methods for master volume support\n  AudioManager: Add support for master mute\n  NetworkTimeUpdateService: Schedule NTP on ethernet connect as well as wifi\n  For events, require that the parameters be marked in.\n  PhoneWindowManager: stifle warning that ITelephony service does not exist\n  AudioManager: transparently convert volume settings for other streams to master volume if config_useMasterVolume is set.\n  Support putting Flattenables in Lists.\n  Was generating code that uses the wrong RpcData.\n  store the hw addr in the extraInfo field of ethernet NetworkInfos\n"
    },
    {
      "commit": "0ee0969ffb92d40c290c9da9bfc6f2cd5b1ba3aa",
      "tree": "232321123b671e8a62114fe147fadba177bd2801",
      "parents": [
        "87a36a3b291e78a612d2d08c14b245ff970080e0",
        "9b666d0faadd26827ca5b7cf6af3aa94af6adcd9"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Feb 10 15:13:26 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 10 15:13:26 2012 -0800"
      },
      "message": "Merge \"UI automation service disconnected upon package change.\""
    },
    {
      "commit": "9b666d0faadd26827ca5b7cf6af3aa94af6adcd9",
      "tree": "ca882b35d791faeb85e9f4641479e5e836bbff91",
      "parents": [
        "d36ad9b1ff99675dd0eca6a3fda1f52353f451a4"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Feb 10 14:55:41 2012 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Feb 10 14:55:45 2012 -0800"
      },
      "message": "UI automation service disconnected upon package change.\n\n1. The AccessibilityManagerService used to disable the IU\n   automation service on package change. This behavior\n   was incorrect since the automation service has to\n   survive package installations.\n\nbug:5975207\n\nChange-Id: Idb5e76d02625c333a5842a6b5c5bc90c9b9634c9\n"
    },
    {
      "commit": "20963df86f3f27f4c54c1ddf177c57d58f0a9128",
      "tree": "bc296348a8f36cbfef2212c671b9cddbaa77c0eb",
      "parents": [
        "01060b08fbf258d21d344b38d9967b9ef0b50fd5"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Jan 04 18:13:24 2012 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 10 14:44:07 2012 -0800"
      },
      "message": "Show the flags in package manager debugging.\n\n"
    },
    {
      "commit": "a07aa3c4c7527eeb42346934a54cd79f3f15bef7",
      "tree": "7ff96edfca652a495e5d749516bba1233f95fe2b",
      "parents": [
        "3194ea94348bce8e7ee9f803698d877f46f8279a"
      ],
      "author": {
        "name": "Jason Simmons",
        "email": "jsimmons@google.com",
        "time": "Wed Dec 07 13:52:23 2011 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 10 14:44:07 2012 -0800"
      },
      "message": "Add an option that disables the AUDIO_BECOMING_NOISY intent send when a headset is hotplugged.\n\nHDMI audio hotplug is treated as a \"headset\" in the audio services.  When a headset is unplugged,\nWiredAccessoryObserver sends an AUDIO_BECOMING_NOISY broadcast so that applications can take\nappropriate action (e.g. pausing audio if headphones were unplugged).\n\nHowever, on Tungsten, when you unplug HDMI audio, the Music2 service was getting the NOISY intent\nand pausing the transmitter media player.  We could add Tungsten-specific code to Music2 to\ndisable this behavior, but it\u0027s probably better to disable this broadcast entirely because\napplications on Tungsten probably shouldn\u0027t treat HDMI hotplug in the same way they treat\nheadphone hotplug on phones.\n\n"
    },
    {
      "commit": "a5abdb9e580f7598ae5553f4490d16871453f9f5",
      "tree": "8f2f5bf6181fa935660ea9e27e9b1a96a82a291b",
      "parents": [
        "fcb310f93680b87943c90a321e2beedcb8c528b8"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Nov 09 10:49:29 2011 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 10 14:44:05 2012 -0800"
      },
      "message": "NetworkTimeUpdateService: Schedule NTP on ethernet connect as well as wifi\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "f0451db4224e2b6360efa39cd65c88cd391f14e0",
      "tree": "1f99b18395e36de69f93db85b64cf516b4ad72b7",
      "parents": [
        "385f1cafa6e55d2f4b8846746fe7fe4e8755aedd",
        "37ce3a8af6faab675319d0803b288ab1dddc76be"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Feb 10 14:34:52 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 10 14:34:52 2012 -0800"
      },
      "message": "Merge \"Multi-user - wallpaper service\""
    },
    {
      "commit": "37ce3a8af6faab675319d0803b288ab1dddc76be",
      "tree": "4619ebc854dc7c5ebe641bc915599ab6715deed9",
      "parents": [
        "11ca31729c05a5c82aa298fb52ddebbe08a26627"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Feb 06 12:04:42 2012 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Feb 10 14:34:07 2012 -0800"
      },
      "message": "Multi-user - wallpaper service\n\n- Allow each user to have their own wallpaper (live or static).\n- Migrate old wallpaper on upgrade.\n- Update SystemBackupAgent to backup/restore from primary user\u0027s\n  new wallpaper directory.\n\nReduce dependency on Binder.getOrigCallingUser() by passing the\nuserId for bindService.\n\nChange-Id: I19c8c3296d3d2efa7f28f951d4b84407489e2166\n"
    },
    {
      "commit": "54a4a41a60ea6c32787dcf16522053cd192b90cd",
      "tree": "7c37bb4f7bff465014923428819dc786861456bc",
      "parents": [
        "c067c9c373e673b2474e8dc2e5a00db274d5e13d"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Nov 02 20:50:08 2011 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 10 12:52:54 2012 -0800"
      },
      "message": "Make ActivityManagerService just kill apps when they crash on headless devices.\n\n"
    },
    {
      "commit": "c067c9c373e673b2474e8dc2e5a00db274d5e13d",
      "tree": "b147464dffbfeb42044edb1ac7f1c6735708ae90",
      "parents": [
        "491f40ddf2a87d62f825cbf5b2088e86713b2032"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Oct 31 12:50:12 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 10 12:52:46 2012 -0800"
      },
      "message": "Add support for disabling wallpaper service\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "afd8f1820eeee21e960be44b22113dc2cecacf98",
      "tree": "4de6b15d8bb53b5da1fecb172522e565e2c7319a",
      "parents": [
        "744c5b0bdee6a26e2dc7e740a695d53c32104326"
      ],
      "author": {
        "name": "Kazuhiro Ondo",
        "email": "kazuhiro.ondo@motorola.com",
        "time": "Mon Feb 06 17:35:50 2012 -0600"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Fri Feb 10 12:29:12 2012 -0800"
      },
      "message": "Add OEM specific USB mode enumeration based on ro.bootmode property\n\nThis patch is adding a capability so that OEM can override USB mode\nin case the device is boot up with OEM specific mode. (i.e. modem\ndebug, factory test etc.)\n\nBug:5964042\nChange-Id: Ic8e23d302563ce71eedb74ce94cca8c65838a4f7\n"
    },
    {
      "commit": "491f40ddf2a87d62f825cbf5b2088e86713b2032",
      "tree": "2405cc073e5c5cdc63d0024b13c297a8a36c027d",
      "parents": [
        "3a2ce935b94383141d1c8a7878fa9308ce718fe5"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Oct 31 10:30:29 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 10 12:09:31 2012 -0800"
      },
      "message": "Fix merge problem\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "cba928cef7d614d375253246f014c4a52bb8b913",
      "tree": "342ab11de11807882aa3cf24a653c37fd74d4b65",
      "parents": [
        "a21e9455027a20c68e31358aaa1c8d9c8c28e357"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Aug 17 15:58:52 2011 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 10 12:02:04 2012 -0800"
      },
      "message": "SystemServer: Add support for disabling AudioService and MountService\n\nUsing the same convention in system_init.cpp, you can disable these\nservices by setting system properties:\n\n\tsystem_init.startaudioservice\u003d0\n\tsystem_init.startmountservice\u003d0\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "11ca31729c05a5c82aa298fb52ddebbe08a26627",
      "tree": "2dccdf3b3a7e5764e0b44cd04caa8a93ec3109f0",
      "parents": [
        "adf7c11e56e84531a3f4e9097cb05db663d7d246",
        "d747dc8179df3cfcc68df78ec46b93992de52eaf"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 10 11:50:10 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 10 11:50:10 2012 -0800"
      },
      "message": "Merge changes Id747dc81,I3a74bd36,I2395527c,I86aeb066,Ic33d5766,I7bef7390,I4b797dd8,Id3622e9e,I28087c63,Ia1c6d909,I95a766dd,I6c0236c5,Ib71287f4,I4bcbefdc,I22a7cb8d,Ie24dbeaf,I7dbc4b45,I21d524ea,Iaa5bf14e,I7db766c3,I93fcaca2,I1eb72044,I05ffbe7c,Ifdfe2ff8,Ia8f767a2\n\n* changes:\n  Fix problems dispatching media button events on headless devices\n  Add headless mode for running the framework without the surface flinger\n  SettingsProvider: Allow overridding default value for Setttings.Secure.DEVICE_PROVISIONED\n  Load lockscreen.disabled setting on database create as well as upgrade\n  SystemUI: Log an error instead of throwing an exception if navigation bar is enabled in tablet UI\n  SettingsProvider: Add support for overriding lockscreen.disabled default value\n  Allow overriding default STAY_ON_WHILE_PLUGGED_IN setting value in an overlay\n  Disable output processing when opening serial port.\n  Update aidl for new Broker API.\n  aidl: All flattenable types now must also be parcelable.\n  Update aidl to new APIs.\n  Suport RpcData as a parcelable type.\n  Modified AIDL to support authentication\n  Fix disconnect from wired ethernet issues.\n  Fix PresenterClass by adding a _listener field\n  add presenters to aidl.\n  Add SerialPort.sendBreak()\n  Generate fallthrough for unhandled actions in RPC methods.\n  PhoneWindowManager: Disable boot progress dialog on headless builds\n  Support custom flattenable types for RPC.\n  SystemServer: Don\u0027t start A2DP service if audio is not enabled\n  Add RpcData as a built-in marshallable type.\n  Add the full suite of RpcData types.\n  Checkpoint adding @home RPC support to aidl\n  ActivityManager: Make sure BOOT_COMPLETED Intent is sent when running headless\n"
    },
    {
      "commit": "1e11c6519a5b657ad6af4369b8580fbe681ebe0e",
      "tree": "7a62970b3781e9ce32691155d7954cd327cda132",
      "parents": [
        "d262744b7e4fd9e01a9a0a5d70927328e9391bf9",
        "b01e8bf57b7492b77e3445db51471edcbadda75e"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Feb 10 11:41:41 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 10 11:41:41 2012 -0800"
      },
      "message": "Merge \"New Serial Manager API:\""
    },
    {
      "commit": "d262744b7e4fd9e01a9a0a5d70927328e9391bf9",
      "tree": "b986a6e15d59b9ae63fb15e25cc57cbe13a792f5",
      "parents": [
        "f59f92f1ac33e39a3cba2a060cbf360d4b681a4d",
        "21fbd1f7da53dc044737803dccddf8099f1fc1e9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 10 11:14:39 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 10 11:14:39 2012 -0800"
      },
      "message": "Merge \"Some cruft removal.\""
    },
    {
      "commit": "21fbd1f7da53dc044737803dccddf8099f1fc1e9",
      "tree": "e8de991996e1a5df738066683f6c5124efa33a9d",
      "parents": [
        "d10035d52bcd4eed9f83cad580d606cd522dd6c7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 10 10:38:10 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 10 10:54:15 2012 -0800"
      },
      "message": "Some cruft removal.\n\nChange-Id: If4a94bfd4a033748eb13e8f3ff25e24382746778\n"
    },
    {
      "commit": "d747dc8179df3cfcc68df78ec46b93992de52eaf",
      "tree": "303ae37c3319e3e53dbe232554b2f67a490d78dc",
      "parents": [
        "3a74bd36f8af1a12353db8ddbc5227d33c2ce680"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Sep 13 16:28:22 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 10 10:51:24 2012 -0800"
      },
      "message": "Fix problems dispatching media button events on headless devices\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n\nConflicts:\n\n\tpolicy/src/com/android/internal/policy/impl/PhoneWindowManager.java\n"
    },
    {
      "commit": "3a74bd36f8af1a12353db8ddbc5227d33c2ce680",
      "tree": "3f3de29d5d9014b8169d5d65b19d8c8e2b6bc1ee",
      "parents": [
        "2395527c9bb1cdc3bcd3dfcbc8b72b90ed3e7080"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Aug 12 13:55:22 2011 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 10 10:51:24 2012 -0800"
      },
      "message": "Add headless mode for running the framework without the surface flinger\n\nEnabled by setting system property ro.config.headless to 1\nThis will allow the framework to run without starting activities,\nsystem UI and the keyguard.\nFramework can still run services, content providers and broadcast receivers.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n\nConflicts:\n\n\tpolicy/src/com/android/internal/policy/impl/PhoneWindowManager.java\n\tservices/java/com/android/server/PowerManagerService.java\n\tservices/java/com/android/server/am/ActivityManagerService.java\n"
    },
    {
      "commit": "93fcaca2aa329e60f8fecc69cb81e7b0fe47066b",
      "tree": "fd24eb920744448ce775e3e75bd79f22c42afb75",
      "parents": [
        "1eb720446dec3248ba102c4635bf113d450d0d73"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Sep 18 18:19:59 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 10 10:51:21 2012 -0800"
      },
      "message": "SystemServer: Don\u0027t start A2DP service if audio is not enabled\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "a8f767a2395c0127b7f5adb9e207fdd994144e17",
      "tree": "af3888250f7eee41c543690df001631c805e56ac",
      "parents": [
        "25d1fdc35767e84ba5f9ee352ae25f52f139a791"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Aug 31 14:32:37 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 10 10:51:20 2012 -0800"
      },
      "message": "ActivityManager: Make sure BOOT_COMPLETED Intent is sent when running headless\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "b01e8bf57b7492b77e3445db51471edcbadda75e",
      "tree": "efbff9d0094660d195d46322a23ce7bbd1a453ad",
      "parents": [
        "341ff2b08380fcab0f2313fb4feca732cf70f840"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Aug 29 20:11:07 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 10 10:51:19 2012 -0800"
      },
      "message": "New Serial Manager API:\n\nSerialManager: provides access to serial ports\nSerialPort: for reading and writing data to and from serial ports\n\nIO with both array based and direct ByteBuffers is supported.\n\nAccessing serial ports requires android.permission.SERIAL_PORT permission\n\nEach platform must configure list of supported serial ports in the\nconfig_serialPorts resource overlay\n(this is needed to prevent apps from accidentally accessing the bluetooth\nor other system UARTs).\n\nIn addition, the platform uevent.rc file must set the owner to the\n/dev/tty* files to \"system\" so the framework can access the port.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "c62242a55a5cfb82f69c7db5208e90667da7ec56",
      "tree": "df2b1ac0a905ac71be34a75e3ac438dfc268f11e",
      "parents": [
        "59d46b06653b5f55c2f26d3ff8d642ffda0cecd8",
        "de7408c94e09a34fe0779ee894c64b4315aec17c"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 10 07:13:23 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 10 07:13:23 2012 -0800"
      },
      "message": "Merge \"Fix \"dumpsys activity provider\"\""
    },
    {
      "commit": "59d46b06653b5f55c2f26d3ff8d642ffda0cecd8",
      "tree": "bdd117467060579bace40958f00a5066bdaf6bff",
      "parents": [
        "55ee84154b3afe07afef6311f707928856840f89",
        "688bd47fccf1a1373e6287bc49b5b33fad12b7f3"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Feb 10 02:22:57 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 10 02:22:57 2012 -0800"
      },
      "message": "Merge \"Add an api to switch to the next IME and subtype\""
    },
    {
      "commit": "688bd47fccf1a1373e6287bc49b5b33fad12b7f3",
      "tree": "8b394c364fc55aad2d87188156a058ef52d43fd5",
      "parents": [
        "ed219c117d449304bd720fc7d7da1f361015dc58"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu Feb 09 20:09:17 2012 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Feb 10 16:44:12 2012 +0900"
      },
      "message": "Add an api to switch to the next IME and subtype\n\nBug: 5975302\n\nChange-Id: I48aa4220159c65f456d61a324efcdf0a1ceec91c\n"
    },
    {
      "commit": "a573f6a1d9b12393fbdfd2c0850499973849854b",
      "tree": "b44ae056ae7688ef8698c42bb401d55760b9ccf5",
      "parents": [
        "7ff3144aa6a4c5e6f0f64933ce174b424cfbfd6e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 09 16:12:18 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 09 18:06:01 2012 -0800"
      },
      "message": "Some hardening of isolated processes by restricting access to services.\n\nServices now must explicitly opt in to being accessed by isolated\nprocesses.  Currently only the activity manager and surface flinger\nallow this.  Activity manager is needed so that we can actually\nbring up the process; SurfaceFlinger is needed to be able to get the\ndisplay information for creating the Configuration.  The SurfaceFlinger\nshould be safe because the app doesn\u0027t have access to the window\nmanager so can\u0027t actually get a surface to do anything with.\n\nThe activity manager now protects most of its entry points against\nisolated processes.\n\nChange-Id: I0dad8cb2c873575c4c7659c3c2a7eda8e98f46b0\n"
    },
    {
      "commit": "a0c283eac33dd2da72235751bbfa4f2d9898d5ea",
      "tree": "4a772771c79de9a0817115a49b5018397cd64add",
      "parents": [
        "f6a7e1f7cd12fbbb2e35391850aec7d7d57b8f66"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 09 10:47:01 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 09 11:18:33 2012 -0800"
      },
      "message": "Add new feature for running services in \"isolated\" sandbox processes.\n\nThis reserves a range of uids (for each user) in which these processes\nrun.  These uids are not associated with an application, so they\neffectively run with no permissions.  When a Service requests to\nrun in such a process through android:isolatedProcess\u003d\"true\", each\ntime it is brought up a new isolated process is started with its\nown unique uid.\n\nWhat we have so far gives us the basic infrastructure; more work\nremains to further lock down what these uids have access to.\n\nChange-Id: Ibfd27c75619cba61f528f46ede9113f98dc5f45b\n"
    },
    {
      "commit": "de7408c94e09a34fe0779ee894c64b4315aec17c",
      "tree": "ce04cb1b6c52b3ab938a4bf35c4157455874b8fc",
      "parents": [
        "f6a7e1f7cd12fbbb2e35391850aec7d7d57b8f66"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Feb 08 14:57:38 2012 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Feb 08 14:57:38 2012 -0800"
      },
      "message": "Fix \"dumpsys activity provider\"\n\nChange-Id: Ic0678a6edb539bb5648529dd9c38a382bc9cc3fb\n"
    },
    {
      "commit": "f6a7e1f7cd12fbbb2e35391850aec7d7d57b8f66",
      "tree": "a12584ff3f805df85518fc0640cbe21507b7f6da",
      "parents": [
        "e1a409ba68087c66238c986b270c17932e39f0ba",
        "cbb722ed06092a9e2be37150aa8bc635f0fe21da"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 08 11:38:23 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 08 11:38:23 2012 -0800"
      },
      "message": "Merge \"Don\u0027t wait for current activity to pause before resuming next.\""
    },
    {
      "commit": "6ffa76077ddbecb0f432a805ed9999436ac308f1",
      "tree": "172121e72cf110d3dd363d7c3dc441faad6205f3",
      "parents": [
        "28587f445a2af6d94d1b215e019e8bcc377c17a1"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Tue Feb 07 19:14:02 2012 -0800"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Tue Feb 07 19:25:42 2012 -0800"
      },
      "message": "Revert \"Make NDC not block forever and handle restart.\"\n\nReverting because it seems to break `adb reboot`\n\nThis reverts commit 813af8d46467f41ed2d492917cbb9f9f45d2a3d7.\n\nChange-Id: I75d827664a08799de15369c24c84cc3f49a8f297\n"
    },
    {
      "commit": "308028049a75b36d5ed525c0bcef441da850c2a5",
      "tree": "fd5f6c8563d10381ad192934d26818f9494e7325",
      "parents": [
        "28587f445a2af6d94d1b215e019e8bcc377c17a1"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Feb 03 13:35:13 2012 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Feb 07 18:38:11 2012 -0800"
      },
      "message": "Remove the input dispatcher throttle.\n\nThis is part of a series of changes to improve input system pipelining.\n\nBug: 5963420\nChange-Id: Iab33594bc5df8aa05232ef64c64e98fc61c5bf52\n"
    },
    {
      "commit": "cbb722ed06092a9e2be37150aa8bc635f0fe21da",
      "tree": "66b85aeb671a95a52876a0713cb601cf2343e696",
      "parents": [
        "dc210ade0ad4770c5294320453f8ddfbfcbaf943"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 07 18:33:49 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 07 18:33:49 2012 -0800"
      },
      "message": "Don\u0027t wait for current activity to pause before resuming next.\n\nWe can do this now that we ensure processes are not killed until\nthey have been stopped.  If the two activities are in the same\nprocess, the ordering will still be correct because we schedule\nthe pause before the resume.\n\nChange-Id: I209ba739b41e832d35db3edd34d1e7af354cc183\n"
    },
    {
      "commit": "ec159352fe7fb4c6a476c3542dc65037cb57f982",
      "tree": "8e764789a202753b5c4e08ad2dd12e00eb20f889",
      "parents": [
        "28900a7b36c372b953648a6ce4c8858de25e9197",
        "813af8d46467f41ed2d492917cbb9f9f45d2a3d7"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Feb 07 16:19:56 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 07 16:19:56 2012 -0800"
      },
      "message": "Merge \"Make NDC not block forever and handle restart.\""
    },
    {
      "commit": "813af8d46467f41ed2d492917cbb9f9f45d2a3d7",
      "tree": "4448df209374e7dd77394f261106b0eac296827d",
      "parents": [
        "d36ad9b1ff99675dd0eca6a3fda1f52353f451a4"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Feb 07 11:36:55 2012 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Feb 07 15:59:49 2012 -0800"
      },
      "message": "Make NDC not block forever and handle restart.\n\nNeed changes in core.\n\nStill possible for netd to get wedged but system won\u0027t die because of it.\nLeads the way to having forking netd - then only individual commands would\nwedge, promoting stability.\n\nbug:5864209\nChange-Id: Ifcd37511c8239fe3df7e9070869b63a9c5649bd2\n"
    },
    {
      "commit": "b5718c29aece51dd337e719c5b94be867833d53e",
      "tree": "ea2dd5af2102d29556de0921f8af11c0696beb4b",
      "parents": [
        "bdeec118a120d2424ff80c54c2f218ed0d52d3e2",
        "1f8ea2dcd1ed3cde4b84fbb27b5a55b3fea7ff2a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Feb 07 15:50:02 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 07 15:50:02 2012 -0800"
      },
      "message": "Merge \"Send broadcast when changing restrict background.\""
    },
    {
      "commit": "1f8ea2dcd1ed3cde4b84fbb27b5a55b3fea7ff2a",
      "tree": "21db818fc9acf4130663a138ea6816a1eb3aaacf",
      "parents": [
        "706498d387eaceb574cf4aa982fee3c288819dad"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Feb 07 12:05:43 2012 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Feb 07 12:08:58 2012 -0800"
      },
      "message": "Send broadcast when changing restrict background.\n\nWhen changing global restrict background status, send connectivity\nchange broadcast, since it radically changes DISCONNECTED/BLOCKED\nstatus system-wide.\n\nAlso reduce verbose stats logging.\n\nBug: 5854466\nChange-Id: I3b612c520f50cc3000a3a569b7e0ab5f691cc2bd\n"
    },
    {
      "commit": "e7171effdf9ef0700782520187c0a292b0a74759",
      "tree": "2d927ff45cb21056d8a47c0b186d8333f4648776",
      "parents": [
        "8320e70fbee26dc72a23aaad498f57e2252cc7c8",
        "706498d387eaceb574cf4aa982fee3c288819dad"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Feb 07 10:45:41 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 07 10:45:41 2012 -0800"
      },
      "message": "Merge \"List rotated netstats files during --checkin dump.\""
    },
    {
      "commit": "706498d387eaceb574cf4aa982fee3c288819dad",
      "tree": "5da18da15479fbaa0c7337f94f2ec6f0767509b1",
      "parents": [
        "0afa7e2d95a1ae047ceddf2ca67f05c67ac30770"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Feb 06 17:35:07 2012 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Feb 06 17:35:11 2012 -0800"
      },
      "message": "List rotated netstats files during --checkin dump.\n\nAlso disable verbose logging.\n\nChange-Id: I4c51e05d695eac43f0d9c28f9699f1655c642a99\n"
    },
    {
      "commit": "a52b6e7bcf5ee6e80a4443f19b31a3df0ec4e518",
      "tree": "9582c14923e19b8d91bc4576e64dab2183e0ea29",
      "parents": [
        "429cf48e2c777cc72925955d7943091b3cf3e181",
        "61ac6bb250494db602b485491a493b64776eaf3b"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Feb 06 17:04:23 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 06 17:04:23 2012 -0800"
      },
      "message": "Merge \"Extract code from performLayoutAndPlaceSurfacesInnerLocked() into multiple methods.\""
    },
    {
      "commit": "61ac6bb250494db602b485491a493b64776eaf3b",
      "tree": "d779cc7b1928836f99059b4bb342ad594665cffb",
      "parents": [
        "37f6934e863de13926975ff5c4e60b9ee9fa79cc"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Feb 02 17:29:33 2012 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Feb 06 16:52:16 2012 -0800"
      },
      "message": "Extract code from performLayoutAndPlaceSurfacesInnerLocked() into multiple methods.\n\nChange-Id: I80152c38741ce73b92da9483cfed84efbac34f89\n"
    },
    {
      "commit": "13c7b82234c1c76aca74e23d635a69099611b18e",
      "tree": "0306a75829a8921d100eca5726fa0a4b77e28414",
      "parents": [
        "5bd41b2949fe25e19ba8ec62da7e204403c51061",
        "2f6c9eb9c244e206ce495c7ea118bcead1fa4162"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Feb 06 15:39:40 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 06 15:39:40 2012 -0800"
      },
      "message": "Merge \"Check for null ActivityInfo.\""
    },
    {
      "commit": "2f6c9eb9c244e206ce495c7ea118bcead1fa4162",
      "tree": "1ecb52a7cfdb2fdc777a7fc8655a6971ad6e0d55",
      "parents": [
        "041a434d38c098848c0472bd6d89c55fd96d1ac3"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Feb 06 15:31:35 2012 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Feb 06 15:31:35 2012 -0800"
      },
      "message": "Check for null ActivityInfo.\n\nBug: 5970556\nChange-Id: I87ebad1918311f24333d16cb6732742a1dd96685\n"
    },
    {
      "commit": "241dde2306202e7655fdf41d5381f2874e47e108",
      "tree": "a63e0d09610d9a93f71d725789e5dc3da5f75621",
      "parents": [
        "1c9fcd9086accad30146b7440820ff84d3c77567"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Feb 03 14:50:07 2012 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Feb 03 14:50:13 2012 -0800"
      },
      "message": "Unify shorthand for byte-based units.\n\nChange-Id: If990859dee3f0973e1d4c48f05312c84071b3328\n"
    },
    {
      "commit": "1ef7d13172248848805b9ceb6161b0741d8580dd",
      "tree": "5166ec77df9727efecbb2672774c99a072def65f",
      "parents": [
        "2d315df64118da9b03cfa4f65a43850299084730",
        "742a67127366c376fdf188ff99ba30b27d3bf90c"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Feb 03 12:04:40 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 12:04:40 2012 -0800"
      },
      "message": "Merge \"Multi-user - 1st major checkin\""
    },
    {
      "commit": "742a67127366c376fdf188ff99ba30b27d3bf90c",
      "tree": "4a801b0b2e9ee10fb322e3b450e2af9eb6e3002f",
      "parents": [
        "8ca8a69d5801ad4b809e7b9dbf53bd728820924b"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed May 04 14:49:28 2011 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Feb 03 12:01:47 2012 -0800"
      },
      "message": "Multi-user - 1st major checkin\n\nSwitching activity stacks\nCache ContentProvider per user\nLong-press power to switch users (on phone)\n\nAdded ServiceMap for separating services by user\nLaunch PendingIntents on the correct user\u0027s uid\nFix task switching from Recents list\nAppWidgetService is mostly working.\n\nCommands added to pm and am to allow creating and switching profiles.\n\nChange-Id: I15810e8cfbe50a04bd3323a7ef5a8ff4230870ed\n"
    },
    {
      "commit": "f0be1d89bf1cf5592ea1786d837f4f2329bdf66d",
      "tree": "98fb9a8b3382f63dd8ea19da9e76df9601dc4781",
      "parents": [
        "b545eaa9cbe39b8209a40044aa0a5f00846278d4"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Jan 20 16:33:15 2012 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Feb 02 16:38:38 2012 -0800"
      },
      "message": "Add some logging to NDC.\n\nWe\u0027re getting some lockups of netd and this can help point us\nin the right direction.\n\nbug:5864209\nChange-Id: Id8bdb0a758c5b161e0143de61b5f39c3a982e329\n"
    },
    {
      "commit": "34c4d2e249085344cabfe418e8f973f2766cf6c9",
      "tree": "3639d501eff6d45fe4e762cc65f6e8c493df7b7a",
      "parents": [
        "96d4f4d8d80974bfff2c29cb6abc0a64e28bb800",
        "0e2e5f8b564bebd5798c9fa387fbff96429ab5d2"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Feb 02 16:26:41 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 02 16:26:41 2012 -0800"
      },
      "message": "Merge \"Support snoozing of data warning notification.\""
    },
    {
      "commit": "0e2e5f8b564bebd5798c9fa387fbff96429ab5d2",
      "tree": "8cbc8b96dc703b506f24f529cd29b0e5e32bf95a",
      "parents": [
        "25ce9ed57f137dc0b21045ab90fe595640ebf926"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Feb 02 16:02:51 2012 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Feb 02 16:22:33 2012 -0800"
      },
      "message": "Support snoozing of data warning notification.\n\nIntroduce second snooze timestamp to support dismissal of data usage\nwarning notification.  Also explicitly set notification \"when\" to\navoid fighting with other notifications, such as ongoing downloads.\n\nBug: 5443756, 5262414\nChange-Id: I03342c25b0410b1b2db84de9a40884f04cb1d8ae\n"
    },
    {
      "commit": "2c5674aa7ba006a712cf885be1657f754f2dee96",
      "tree": "ca17797bd8c524e25d791d46312fea7d2bb43b0c",
      "parents": [
        "8ca8a69d5801ad4b809e7b9dbf53bd728820924b",
        "25ce9ed57f137dc0b21045ab90fe595640ebf926"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Feb 02 13:19:37 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 02 13:19:37 2012 -0800"
      },
      "message": "Merge \"Avoid NDC deadlock when re-arming network alert.\""
    },
    {
      "commit": "25ce9ed57f137dc0b21045ab90fe595640ebf926",
      "tree": "5b0a3b6bf07232bf79d74e822161c7a07a86758a",
      "parents": [
        "88de70f3c5824acae7524a774f9d2e2a6d125eb9"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Feb 02 13:07:47 2012 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Feb 02 13:09:52 2012 -0800"
      },
      "message": "Avoid NDC deadlock when re-arming network alert.\n\nWhen NDC delivers limitReached() event, NMS re-arms the alert, which\nmakes another call back to NDC.  If NDC already started processing\nanother call, this causes deadlock.\n\nFix this by re-arming on a handler thread.\n\nBug: 5879848\nChange-Id: I46fa78fe1f1122c5f31dd6020483e5ae89a9f39d\n"
    },
    {
      "commit": "659793bcd0e0d08306d841f3836a891e56e4e756",
      "tree": "e60ce83db8cfe8610852d97913df45fddc4f694b",
      "parents": [
        "306eed22e58381bbd694e3a297adc2313cc50c85",
        "c38fa1f63674971f9ac6ced1a449fb81026b62f7"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Feb 02 10:42:44 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 02 10:42:44 2012 -0800"
      },
      "message": "Merge \"Add Developer Option setting for Animator scaling.\""
    },
    {
      "commit": "c38fa1f63674971f9ac6ced1a449fb81026b62f7",
      "tree": "980e021b46c606b7b5ba7a33ad2b40a55a4a3d11",
      "parents": [
        "26daa02bdb0c62f8162ad8d4d771cabce8644b4a"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Feb 01 16:37:46 2012 -0800"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Feb 02 08:40:44 2012 -0800"
      },
      "message": "Add Developer Option setting for Animator scaling.\n\nThis new setting allows users to set a scale factor for the\nduration and startDelay of all Animator-based animations. This\nsetting is very similar to the Transition animation scale and\nWindow animation scale settings, except this one applies specifically\nto Animator animations. The property is only accessible by users\nthrough the Settings UI, not programmatically. The value applies\nsystem-wide and is picked up per-process at the time of the first\nValueAnimator construction.\n\nThis is an update to a previous CL; this approach uses the WindowManager\nto store the animator scale settings, instead of SystemProperties.\n\nChange-Id: I8295fab060aa6d597ae507ded8f9c9d6077be966\n"
    },
    {
      "commit": "8bcd54b98ad5d98d47364ff14e06910deadf9302",
      "tree": "31f3a2a8c6283acc7a6b70abf4125d9872a68381",
      "parents": [
        "6baed6c11090fe6eb0a612ca4acee590e904ca58"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 31 19:04:53 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 01 16:02:14 2012 -0800"
      },
      "message": "Use Choreographer for window manager animation timing.\n\nChange-Id: Ic34aff698c63d383ecd06af7da9957475683a1db\n"
    },
    {
      "commit": "f46723b41f723ebfc9ed18c7c409b319f4b5e539",
      "tree": "c422815c0dee0488d32045d82693ee825a3f1217",
      "parents": [
        "c97992b489161a47f156f03ba605273dfb5e5cc2"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jan 26 14:19:24 2012 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Feb 01 14:36:34 2012 -0800"
      },
      "message": "Implement background vs foreground broadcasts\n\nBefore now, receiving a broadcast would cause a process to be hoisted\nto foreground priority / cgroup.  This is no longer the case: broadcasts\nby default are handled in the background, with a suitably increased\ntimeout interval.  When a given broadcast needs to be dealt with in a\nmore timely manner, the issuer can set the new FLAG_BROADCAST_FOREGROUND\nflag on the Intent, which will produce the old foreground-priority\nbehavior.\n\nTo avoid priority inversions, foreground broadcasts are tracked on a\nseparate outgoing queue and can be in flight simultaneously with a\nbackground-priority broadcast.  If there is already a background-level\nbroadcast in flight to a given app and then a foreground-level one is\ndispatched to that app, the app [and its handling of both broadcasts]\nwill be properly hoisted to foreground priority.\n\nThis change is also essentially the first step towards refactoring the\nbroadcast-handling portions of the Activity Manager into a more\nindependent existence.  Making BroadcastQueue a top-level class and\nregularizing its operation viz the primary Activity Manager operation\nis the next step.\n\nChange-Id: If1be33156dc22dcce318edbb5846b08df8e7bed5\n"
    },
    {
      "commit": "2eecea3b48ece6f45b30fef9b41dc20075ccc94f",
      "tree": "c9956afbe7d4d379ab8577a2bd528f798d2dfb06",
      "parents": [
        "c5143d2af8babe3585b6a41b121ab15ef093355f",
        "79311c4af8b54d3cd47ab37a120c648bfc990511"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 01 13:45:24 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 01 13:45:24 2012 -0800"
      },
      "message": "Merge \"Speedup the accessibility window querying APIs and clean up.\""
    },
    {
      "commit": "e630f7b31bb1e77a2eb4ef3102a25f2927cfd5c3",
      "tree": "24fb27fbb828e08ce710d6ffa793a52f39b857c4",
      "parents": [
        "4d6da8649afc43022a156bffca6cd2c9127cefe1"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jan 31 17:12:53 2012 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jan 31 17:13:09 2012 -0800"
      },
      "message": "Clear identity when updating network stats.\n\nBug: 5945461\nChange-Id: Ie51ea3f107a705c395b65684f21bf4c28c7f4d33\n"
    },
    {
      "commit": "5e61331da59921413a8e2a144146a8451a054020",
      "tree": "b8526bf1c683e0910c69580560e16bdfc702781e",
      "parents": [
        "d53da8efa7a618562615df35ffc674620cbe2b26"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Jan 30 11:16:20 2012 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Jan 30 11:21:35 2012 -0800"
      },
      "message": "Move away from deprecated NetworkInfo extra.\n\nBecause the NetworkInfo included in CONNECTIVITY_ACTION broadcast\nextra does not reflect the state applicable to the calling UID, and\nthe last sticky broadcast may have stale state, transition to calling\nConnectivityManager.getActiveNetworkInfo() directly.\n\nChange-Id: I86b316fbedd0273585ad5f1248b091bc3a3a5520\n"
    },
    {
      "commit": "b675f516da196103597542d2c03f30f70359808e",
      "tree": "3d94ab6471eaa7f772fed00248592c07cfeeabb9",
      "parents": [
        "556f0dba10517c76b6f20e95e3f4510c0cfb5911",
        "c7d7eafb66f14766e9fa0013407862502dcdfb66"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Jan 25 14:04:59 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 25 14:04:59 2012 -0800"
      },
      "message": "Merge \"Add additional debug\""
    },
    {
      "commit": "c7d7eafb66f14766e9fa0013407862502dcdfb66",
      "tree": "863cec87437bd4c56314fd5c6cd368c4b356283d",
      "parents": [
        "e575005f7c7a2ec26662862631ca1d0d1959d6bc"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Jan 25 13:47:54 2012 -0800"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Jan 25 13:47:54 2012 -0800"
      },
      "message": "Add additional debug\n\nWhen ConnectivityService#startUsingNetworkFeature is called and the\nspecial network is not available output some additional information.\n\nChange-Id: I34b226a208596fa6418f1f37a0feec1d274d493c\n"
    },
    {
      "commit": "03d58bc656f64f98f36462ac18dca16107da5a57",
      "tree": "a11ef82283de783e62756b85a40f726b36798e3f",
      "parents": [
        "185c0ef7e4aaa4bb978a6eb5c93c569585a07f56"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon Dec 19 16:59:31 2011 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jan 24 16:44:50 2012 -0800"
      },
      "message": "Filter our v6 address from tethering dns.\n\nDon\u0027t support IPv6 yet, and the tools crash when they see one, so\nfilter them out.\n\nbug:5913888\nChange-Id: Id7096aa70da4e3cc8e4702b0b489c0228a100db9\n"
    },
    {
      "commit": "629c6765ca21b6ef23db893a35c62eef6a2a28b6",
      "tree": "f33e10f086275b851c53abdfd80682031d0cf21b",
      "parents": [
        "08cec4ee46f8b99a202b775c4eed8699be5165e8",
        "63abc37356728c0575d6a62a203102ae6d97953b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jan 24 11:49:51 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 24 11:49:51 2012 -0800"
      },
      "message": "Merge \"Move network stats to FileRotator pattern.\""
    },
    {
      "commit": "f449ea9e96162698f4ec6d62c70750eb50744da7",
      "tree": "cf7ef3cfd707477e23ee79937d295ed83afa8be1",
      "parents": [
        "47163685eb90f9520e7ae0ac0984b4e1535e8e5b",
        "7df80fa4e8a017243f26e287c23b7c9092a391fd"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jan 24 11:40:19 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 24 11:40:19 2012 -0800"
      },
      "message": "Merge \"Use the carrier-given dns addrs for tethering.\" into ics-mr1"
    },
    {
      "commit": "08cec4ee46f8b99a202b775c4eed8699be5165e8",
      "tree": "5eec0ede4ff737016771a46dff99ecf2c8a9746c",
      "parents": [
        "8c190f76fc92b6db9a1886b5de5b7cecdd656c4b",
        "a5853595165a6395ca41bbc17a3dd88e12259ad1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 24 11:39:49 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 24 11:39:49 2012 -0800"
      },
      "message": "am a5853595: am 47163685: Merge \"Another attempt at issue #5823276: home repaints after full-screen app is exited\" into ics-mr1\n\n* commit \u0027a5853595165a6395ca41bbc17a3dd88e12259ad1\u0027:\n  Another attempt at issue #5823276: home repaints after full-screen app is exited\n"
    },
    {
      "commit": "47163685eb90f9520e7ae0ac0984b4e1535e8e5b",
      "tree": "559bf70973aa1b8be1106d6243553893aa43b4f0",
      "parents": [
        "c986d6f01b00dd760ba1650918baadd24a6dc838",
        "b7ff51bde92b76757a002bb5b1889f5790986513"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 24 11:33:15 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 24 11:33:15 2012 -0800"
      },
      "message": "Merge \"Another attempt at issue #5823276: home repaints after full-screen app is exited\" into ics-mr1"
    }
  ],
  "next": "63abc37356728c0575d6a62a203102ae6d97953b"
}
