)]}'
{
  "log": [
    {
      "commit": "f39daef102f2dff7517e257eb25c2e3677247e83",
      "tree": "c27517de9e46ad1b3c8a443a0032eb816769a576",
      "parents": [
        "ca6d29da777cffd40d9f3e38f95663ba1a2002c5"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Aug 26 19:54:27 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Aug 26 19:54:27 2011 +0900"
      },
      "message": "Reset subtype when the current spell checker was changed.\n\nChange-Id: I79099695337dbc5577871458b24c6710fc0ecca7\n"
    },
    {
      "commit": "ca6d29da777cffd40d9f3e38f95663ba1a2002c5",
      "tree": "c8e1949e4d6231f23ec623b14596e0e866dd4be8",
      "parents": [
        "bc81b692d51a9cd6f9d61584aacd8308ac3366ea",
        "b387954a92eb6f15b7f49d5b946745f492a26363"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Aug 26 02:55:06 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 26 02:55:06 2011 -0700"
      },
      "message": "Merge \"Support system locale as the locale of the spell checkers\""
    },
    {
      "commit": "b387954a92eb6f15b7f49d5b946745f492a26363",
      "tree": "777c53e4966cab0bbe730d07162d94c728a25edf",
      "parents": [
        "fbedf1a3978d5dfc4a886e4c7107d4bc1923f740"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Aug 26 17:35:27 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Aug 26 18:35:58 2011 +0900"
      },
      "message": "Support system locale as the locale of the spell checkers\n\nBug: 5212035\n\nChange-Id: I18d27e54b936cc7f4d6cc3c7100bce57f77f8f9f\n"
    },
    {
      "commit": "bc81b692d51a9cd6f9d61584aacd8308ac3366ea",
      "tree": "684bb09ed79c435b89905c3b94cadc884ded251e",
      "parents": [
        "fbedf1a3978d5dfc4a886e4c7107d4bc1923f740"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Aug 26 16:22:22 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Aug 26 16:22:22 2011 +0900"
      },
      "message": "Do not show auxiliary subtypes on the lock screen\n\nChange-Id: Id7cf5d122968790ba6d75d3b047d45ea99e4d0f6\n"
    },
    {
      "commit": "fbedf1a3978d5dfc4a886e4c7107d4bc1923f740",
      "tree": "177a9b25b72c94b976d15cd6d1da0f622215d91f",
      "parents": [
        "2388a7ba6218f44400ee78016282cb96c02dfc54"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Aug 26 15:48:50 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Aug 26 16:00:23 2011 +0900"
      },
      "message": "Fix NPE in setCurrentSpellCheckerSubtype\n\nChange-Id: I9fce999f91dcccd2f877a0326c4f2e3ac9024f85\n"
    },
    {
      "commit": "4bc554b37165dbee8d805a6f73ac5e946f2769ae",
      "tree": "224b7bec2339ce1f959d60b8248be77e4eb4fd1e",
      "parents": [
        "3efc794f8563558b9792cc8ffa1ab9e81a0129ea",
        "3cb5b39a0e63d98c4e7b47e9a5b5758e9d4024bd"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu Aug 25 21:34:44 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 25 21:34:44 2011 -0700"
      },
      "message": "Merge \"Fix setCurrentSpellCheckerSubtype\""
    },
    {
      "commit": "3cb5b39a0e63d98c4e7b47e9a5b5758e9d4024bd",
      "tree": "670892893fc08f5ba8ee0b55fb80b8236cf9a9e9",
      "parents": [
        "1e3fac8bc62a2495eb9bb79cc208573b5782cedc"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Aug 26 11:55:21 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Aug 26 12:39:42 2011 +0900"
      },
      "message": "Fix setCurrentSpellCheckerSubtype\n\nChange-Id: Ib42a3b4377b8700ceaf4b7e13150848464d073c1\n"
    },
    {
      "commit": "97c46181c7089cb937cfe3fab536049d2d99ad72",
      "tree": "df0f21a90dbfde8ef3e5377c120fc6377e90c6eb",
      "parents": [
        "6683eb2d8d4323ac21ad42b3f7646c761968c75f",
        "cf2317ef13e35cf1bcd5ba27be686c7f2609ac38"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 25 17:13:59 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 25 17:13:59 2011 -0700"
      },
      "message": "Merge \"put the watchdog values back to what they should be\""
    },
    {
      "commit": "cf2317ef13e35cf1bcd5ba27be686c7f2609ac38",
      "tree": "a9420825b9152c8f1cc1e865661b9fe6e7db7c54",
      "parents": [
        "2370d0a14f09d4fb5133ff48e28459ce8343bf80"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 25 17:12:37 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 25 17:12:37 2011 -0700"
      },
      "message": "put the watchdog values back to what they should be\n\nChange-Id: I4f394248c2f4c514f74b66fde3cb69bbed9ec796\n"
    },
    {
      "commit": "6683eb2d8d4323ac21ad42b3f7646c761968c75f",
      "tree": "55b18ee30c9abfab30806a37509d553082fca0fc",
      "parents": [
        "8228e68becda68bee31c85796f08396b58370f6f",
        "51608a53040cd4bc3694dac2bf67dc18a4b5b235"
      ],
      "author": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Thu Aug 25 17:07:06 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 25 17:07:06 2011 -0700"
      },
      "message": "Merge \"Use ELAPSE_REALTIME alarm for tick event\""
    },
    {
      "commit": "8228e68becda68bee31c85796f08396b58370f6f",
      "tree": "741be50c95d2fdb745a675471fa422e6313f5452",
      "parents": [
        "359ef7985316397564a6a999d77f6cc1edab7373",
        "2370d0a14f09d4fb5133ff48e28459ce8343bf80"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 25 17:05:33 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 25 17:05:33 2011 -0700"
      },
      "message": "Merge changes I083c4133,If904634e\n\n* changes:\n  make sure to re-initialize SurfaceTexture to its default state on disconnect\n  Fix screenshots\n"
    },
    {
      "commit": "2370d0a14f09d4fb5133ff48e28459ce8343bf80",
      "tree": "fb010e500044a409b8b9c0107c3bf0c6c64f89b2",
      "parents": [
        "ec49d8970125b3da422f93bf6f6b32ac62230a83"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 25 17:03:30 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 25 17:03:30 2011 -0700"
      },
      "message": "make sure to re-initialize SurfaceTexture to its default state on disconnect\n\nthis caused problems where the NavigationBar would disapear or be\ndrawn in the wrong orientation.\n\nChange-Id: I083c41338db83a4afd14f427caec2f31c180d734\n"
    },
    {
      "commit": "f60ac6307e07b409faea9f2506aa8c7162d11a4f",
      "tree": "520d2f0a34be684414b48a94c8e57655063c63e9",
      "parents": [
        "7b0e5af540089007b2b6fb2d982d33d5ef9fb2b6",
        "e6fa120275d9f6715783cf608b4fed742fd7161b"
      ],
      "author": {
        "name": "John Huang",
        "email": "jsh@google.com",
        "time": "Thu Aug 25 15:56:55 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 25 15:56:55 2011 -0700"
      },
      "message": "Merge \"Notify overall state instead of current changed state\""
    },
    {
      "commit": "e6fa120275d9f6715783cf608b4fed742fd7161b",
      "tree": "a637538e0417b7499d799e25ff6ca986b9489711",
      "parents": [
        "6ff0037792619c4441d9d3caa4f9ab4f45c11236"
      ],
      "author": {
        "name": "yoonsung.nam",
        "email": "yoonsung.nam@samsung.com",
        "time": "Sat Aug 20 21:39:12 2011 -0700"
      },
      "committer": {
        "name": "John Huang",
        "email": "jsh@google.com",
        "time": "Thu Aug 25 14:12:33 2011 -0700"
      },
      "message": "Notify overall state instead of current changed state\n\nTelephonyRegistry notifies wrong state thourgh onDataConnectionStateChanged().\nAs a result, browser works even though there is no data icon in status bar.\nThe issue is reproducible as following senario:\n1. There are two connections.\n2. Network type is changed and one of the connections is disconnected\nat the same time.\n3. TelephonyRegisitry notifies disconnect state to apps which are listening\nPhoneStateLinstener.\n\nChange-Id: Iac1e2b14e41715a63ea0d842cb44d232447e814a\nSigned-off-by: yoonsung.nam \u003cyoonsung.nam@samsung.com\u003e\n"
    },
    {
      "commit": "7b2a582a277494643e123c71683cff47156b303c",
      "tree": "7d939461064195c4efd17be986f4ed2f1d5b41f2",
      "parents": [
        "123adee398361809beaeddf2f3c073c0283b1e62",
        "8795b60dfc2a9baba9776777f62e5fd1ba48e8d7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 25 13:33:50 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 25 13:33:50 2011 -0700"
      },
      "message": "Merge \"Whoops, remove this.\""
    },
    {
      "commit": "51608a53040cd4bc3694dac2bf67dc18a4b5b235",
      "tree": "2082e4eaa4230a04e0e402d5986f9d82b4d36885",
      "parents": [
        "123adee398361809beaeddf2f3c073c0283b1e62"
      ],
      "author": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Thu Aug 25 13:18:54 2011 -0700"
      },
      "committer": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Thu Aug 25 13:32:49 2011 -0700"
      },
      "message": "Use ELAPSE_REALTIME alarm for tick event\n\nChange to use a real item alarm for scheduling ACTION_TIME_TICK\nintents for the case where time goes backwards after the tick intent\nis schedule, and where the time change is not noticed from the call\nto waitForAlarm().\n\nBug: 5166877\nChange-Id: I46b9a1c80146d27becedc341c4af977fcdf47352\n"
    },
    {
      "commit": "8795b60dfc2a9baba9776777f62e5fd1ba48e8d7",
      "tree": "77a24dd077cdf15a2f65d948579edac3eab22a33",
      "parents": [
        "295e3c27e4e3762a002382fc1657f5f0070a3410"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 25 13:30:53 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 25 13:31:41 2011 -0700"
      },
      "message": "Whoops, remove this.\n\nChange-Id: I863d4739e918de1b4177ec8bb17063597f1ff3dc\n"
    },
    {
      "commit": "123adee398361809beaeddf2f3c073c0283b1e62",
      "tree": "ad372e2cabe238920c82de60e8ebf58941893ee7",
      "parents": [
        "df7332aad594bfbf4f788d5c737cfcb870dd3f66",
        "295e3c27e4e3762a002382fc1657f5f0070a3410"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 25 13:26:19 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 25 13:26:19 2011 -0700"
      },
      "message": "Merge \"Fix issue #5214105 and work on issue #5109947.\""
    },
    {
      "commit": "295e3c27e4e3762a002382fc1657f5f0070a3410",
      "tree": "223d206abb4cfa67e2c46d3d43a354a8fd80e24e",
      "parents": [
        "12bde60b39affbfdcb7ef6317e0a5f99c3f41b10"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 25 13:19:08 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 25 13:19:08 2011 -0700"
      },
      "message": "Fix issue #5214105 and work on issue #5109947.\n\nChange-Id: Iff2cfec5280a314989d915aa830c16124f921611\n5214105: taking a screenshot while \"Android is upgrading...\" crashes device\n5109947: Race condition between retrieving a content provider and updating its oom adj\n"
    },
    {
      "commit": "ed191e1fae0f860323f6ed76ea982287c42ec83e",
      "tree": "584738551e9a43e285d1bd9dd4913f41ad36c40f",
      "parents": [
        "235c47ff3edc9228609e82d2201275e70889921f",
        "558a23200697d306b75750cf4612cf0717e73537"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Aug 25 11:13:38 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 25 11:13:38 2011 -0700"
      },
      "message": "Merge \"Data usage buckets active time, parsing ISE.\""
    },
    {
      "commit": "235c47ff3edc9228609e82d2201275e70889921f",
      "tree": "fd1c5402aed7509027a866d9ccff6164ed74ee36",
      "parents": [
        "53ad53a4a3279dc19e93c254ec387d222ce18656",
        "8e9992ae5053a3ac52d28a5a892aed0a0798c7ab"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Aug 25 11:13:32 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 25 11:13:32 2011 -0700"
      },
      "message": "Merge \"Register for kernel global data usage alerts.\""
    },
    {
      "commit": "12bde60b39affbfdcb7ef6317e0a5f99c3f41b10",
      "tree": "ebcb48da50b2271f67cd75917d3573c72d8ef2bc",
      "parents": [
        "8799b4bf673a90afca4e83fa6cfd528ad27076c9",
        "8bd69610aafc6995126965d1d23b771fe02a9084"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Aug 25 08:54:29 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 25 08:54:29 2011 -0700"
      },
      "message": "Merge \"Intra-process view hierarchy interrogation does not work.\""
    },
    {
      "commit": "1e3fac8bc62a2495eb9bb79cc208573b5782cedc",
      "tree": "7036e62cbe4f4a64cb61306709bc5b8a2fbc421a",
      "parents": [
        "7420f1339446cd76723d57b3c5c1bbc92f15f4f0",
        "a33c4fc5bed76727f1e06e522e0136101a2304cd"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu Aug 25 01:21:05 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 25 01:21:05 2011 -0700"
      },
      "message": "Merge \"Add functions to enable / disable spell checker\""
    },
    {
      "commit": "a33c4fc5bed76727f1e06e522e0136101a2304cd",
      "tree": "fee8144085f9ea04eabca2152375288161982ebf",
      "parents": [
        "1fc756da434441708eb557a22363eea7f41f3f73"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu Aug 25 16:50:11 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu Aug 25 17:08:19 2011 +0900"
      },
      "message": "Add functions to enable / disable spell checker\n\nBug: 5057977\n\nChange-Id: I2b27bd5f55feb305368034d7e95f83257ac4b3e6\n"
    },
    {
      "commit": "47d0e48197c566be5d4c11534ceabc8a38a18cec",
      "tree": "adf1486d2440163ffe488173f9a3598e1bdef541",
      "parents": [
        "b944c2186de0d57d5331421f9744f2854d7c0983",
        "dbf2950781ab0c4c0fc4ad9bd71b13c55ae6f471"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu Aug 25 00:36:35 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 25 00:36:35 2011 -0700"
      },
      "message": "Merge \"Dismiss the ime switch notification properly\""
    },
    {
      "commit": "dbf2950781ab0c4c0fc4ad9bd71b13c55ae6f471",
      "tree": "cc5b1fa5b600ee7cd5e7637c8a00ba9b34bcbd7a",
      "parents": [
        "1fc756da434441708eb557a22363eea7f41f3f73"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu Aug 25 15:28:23 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu Aug 25 15:29:48 2011 +0900"
      },
      "message": "Dismiss the ime switch notification properly\n\nBug: 5159818\n\nChange-Id: I606294dd453d3cc105714c62b945fcf1fa11164d\n"
    },
    {
      "commit": "6ff0037792619c4441d9d3caa4f9ab4f45c11236",
      "tree": "79494a767588fff0f92eb587b9ae109c64f2e033",
      "parents": [
        "1fc756da434441708eb557a22363eea7f41f3f73",
        "07213e6d8895af10951851435adf96a779863f6c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 24 20:56:05 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 24 20:56:05 2011 -0700"
      },
      "message": "Merge \"Fix to show the correct HW accel background in the preview window.\""
    },
    {
      "commit": "07213e6d8895af10951851435adf96a779863f6c",
      "tree": "d620425033889ce1ec9cee6c21d40938020d45ba",
      "parents": [
        "2da59ffbda80594e6312f400341810f91e1d333a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 24 20:05:39 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 24 20:05:39 2011 -0700"
      },
      "message": "Fix to show the correct HW accel background in the preview window.\n\nAlso tweak wallpaper service to do a cleaner transition to a\nstatic wallpaper.\n\nChange-Id: I876a32091f92dd5a529d7fd809d3b8e730bb7d2a\n"
    },
    {
      "commit": "b26db260ae91a335fcee4f67df9341d002fbe1b0",
      "tree": "1f3894f9e3f43d764018885e0ff656521a854623",
      "parents": [
        "e9816475a6a3caadb7934fcde7b608b4a4fa8a1f",
        "ae05e8655d173d61169d9659ef1e9818d2cfc36b"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Wed Aug 24 19:45:51 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 24 19:45:51 2011 -0700"
      },
      "message": "Merge \"Disable package verification by default.\""
    },
    {
      "commit": "ae05e8655d173d61169d9659ef1e9818d2cfc36b",
      "tree": "04b225a1b6b42c1783de56e3fa5a1414c6cb94e2",
      "parents": [
        "0806d5183278e3a5e7f5904c1bbd07ca2a1b35fd"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Wed Aug 24 18:38:26 2011 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Wed Aug 24 18:38:26 2011 -0700"
      },
      "message": "Disable package verification by default.\n\nChange-Id: I0e02cd177dbb99fc97e964ac87251a900d915b95\n"
    },
    {
      "commit": "c39e8e89eb370ed66f552da3be258e57f1aabeb9",
      "tree": "345c03fe7b130d2dbc8277998c603ca8079bb94b",
      "parents": [
        "19bc995e9ae4ec9ea48c183758759e2b68ec964b",
        "407ec78b828173257b0c5dae221649a4ccd8b058"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Aug 24 17:09:30 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 24 17:09:30 2011 -0700"
      },
      "message": "Merge \"Add OpenGL backend to ImageWallpaper Bug #5204874\""
    },
    {
      "commit": "19bc995e9ae4ec9ea48c183758759e2b68ec964b",
      "tree": "de9347ac0dd43682bd323a9874f7017c17a05782",
      "parents": [
        "28853aaf896d391dd67d45efb351450aa6b1bbde",
        "a4bacb8b74adf7908ac382024dc9183144793217"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 24 17:07:51 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 24 17:07:51 2011 -0700"
      },
      "message": "Merge \"Fix animation scale to also scale start offset.\""
    },
    {
      "commit": "407ec78b828173257b0c5dae221649a4ccd8b058",
      "tree": "3890ba718151c345ce5c87a8d252e0445d790dc3",
      "parents": [
        "631582f7f7a3c879a5fba81f2bc082e4826758aa"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Aug 24 17:06:58 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Aug 24 17:06:58 2011 -0700"
      },
      "message": "Add OpenGL backend to ImageWallpaper\nBug #5204874\n\nCurrently disabled.\n\nChange-Id: I5e7b35dce2981b0691f107e39c6394b260466543\n"
    },
    {
      "commit": "8bd69610aafc6995126965d1d23b771fe02a9084",
      "tree": "13d160fbe865f3febd084c9935e38b1f5360ee84",
      "parents": [
        "69314e72941c86734c12476d1e61459811159b74"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Aug 23 13:40:30 2011 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Aug 24 16:26:43 2011 -0700"
      },
      "message": "Intra-process view hierarchy interrogation does not work.\n\nThe content retrieval APIs are synchronous from a client\u0027s\nperspective but internally they are asynchronous. The client thread\ncalls into the system requesting an action and providing a callback\nto receive the result after which it waits up to a timeout for that\nresult. The system enforces security and then delegates the request\nto a given view hierarchy where a message is posted (from a binder\nthread) describing what to be performed by the main UI thread the\nresult of which it delivered via the mentioned callback. However,\nthe blocked client thread and the main UI thread of the target view\nhierarchy can be the same one, for example an accessibility service\nand an activity run in the same process, thus they are executed on the\nsame main thread. In such a case the retrieval will fail since the UI\nthread that has to process the message describing the work to be done\nis blocked waiting for a result is has to compute! To avoid this scenario\nwhen making a call the client also passes its process and thread ids so\nthe accessed view hierarchy can detect if the client making the request\nis running in its main UI thread. In such a case the view hierarchy,\nspecifically the binder thread performing the IPC to it, does not post a\nmessage to be run on the UI thread but passes it to the singleton\ninteraction client through which all interactions occur and the latter is\nresponsible to execute the message before starting to wait for the\nasynchronous result delivered via the callback. In this case the expected\nresult is already received so no waiting is performed.\n\nbug:5138933\n\nChange-Id: I382e2d8689f5189110226613c2387f553df98bd3\n"
    },
    {
      "commit": "558a23200697d306b75750cf4612cf0717e73537",
      "tree": "fcca61c834311ebc7f347df787b2fc269cef059c",
      "parents": [
        "8e9992ae5053a3ac52d28a5a892aed0a0798c7ab"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 24 15:42:09 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 24 16:00:39 2011 -0700"
      },
      "message": "Data usage buckets active time, parsing ISE.\n\nWhen recording data usage, measure the actual active time, since\nbuckets can be quite long.  Offer incrementOperationCount() version\nthat reads thread stats tag for caller.  Rethrow any NPE as ISE\nduring stats parsing, which callers already handle.\n\nBug: 5171812, 5184508, 5180659\nChange-Id: I6da80ccc0162be68bee279529e3a23b6f98ebd87\n"
    },
    {
      "commit": "a4bacb8b74adf7908ac382024dc9183144793217",
      "tree": "402eda796b73824c8933aba544ab6f653df8deba",
      "parents": [
        "2da59ffbda80594e6312f400341810f91e1d333a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 24 15:12:38 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 24 15:12:38 2011 -0700"
      },
      "message": "Fix animation scale to also scale start offset.\n\nAlso more better info in meminfo dump.\n\nChange-Id: I45ab41821cd8dd81b61605de6a0cf7074e76c71a\n"
    },
    {
      "commit": "1c424f86c634a8c27ef1bbb82938ae64b4f3a385",
      "tree": "3f38d58f28abde97cfba3b75d3fed7c9065a2115",
      "parents": [
        "c7015c745027174590ae0844eb268d57acd8d92c",
        "765f97d5e608031bc1de4156c6e681e4d178c7ee"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Aug 24 14:12:18 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 24 14:12:18 2011 -0700"
      },
      "message": "Merge \"Make sure to go to the right Settings panel when tapping a notification\""
    },
    {
      "commit": "765f97d5e608031bc1de4156c6e681e4d178c7ee",
      "tree": "d9fc8d00877be25ec61dc388e227964cfb34ae89",
      "parents": [
        "5b56f7d6f662a543d0432a46047a55f1ee900994"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Aug 23 20:14:33 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Aug 24 14:06:00 2011 -0700"
      },
      "message": "Make sure to go to the right Settings panel when tapping a notification\n\nWe now use Intent.makeRestartActivityTask() to build the notification\nPendingIntent objects, so that when tapped they restart the activity\nin the desired state.\n\nFixes bug 5011926\n\nChange-Id: Ie1ec3543cc0f49d1bd407622a617316cf53a078c\n"
    },
    {
      "commit": "42577560fb0a1aead62a378caa267734e9d91207",
      "tree": "91a967c88cfdac5b2c6c3027768bae75c2987dcc",
      "parents": [
        "2da59ffbda80594e6312f400341810f91e1d333a",
        "5317f034bacaab19af3181da8e9752cbb5b09a08"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed Aug 24 13:03:50 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 24 13:03:50 2011 -0700"
      },
      "message": "Merge \"VPN: stop daemons by closing the control sockets.\""
    },
    {
      "commit": "2da59ffbda80594e6312f400341810f91e1d333a",
      "tree": "82433cfeea222be65ffea7e46ba2c000d4371199",
      "parents": [
        "192df696d3499258d6d3ae383a5ab05a5021d875",
        "cfb9f2bca39772aecd072e2a30342a67b6319bbb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 24 12:07:10 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 24 12:07:10 2011 -0700"
      },
      "message": "Merge \"Fix issue #5192141: systemui asplodes after enough tapping on the windowlist button\""
    },
    {
      "commit": "cfb9f2bca39772aecd072e2a30342a67b6319bbb",
      "tree": "ba0b3036b8227c56ea7580955c353ee7be16ebe7",
      "parents": [
        "332645960c60e79fd903d8c547a16a1140274339"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 24 10:51:49 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 24 12:06:15 2011 -0700"
      },
      "message": "Fix issue #5192141: systemui asplodes after enough tapping on the windowlist button\n\nChange-Id: I5afb2d54b531d9eac9435660616579324f239812\n"
    },
    {
      "commit": "d0bf536fd6618414bb9c84424a931865e62e6876",
      "tree": "15c7465b3ae48be73d2a0cc0b8b569a82e57c545",
      "parents": [
        "de48515a86b4fc308bcb08f9c038f0519ee29a73",
        "b0626b53adceb3de0b85c1865655e74e7e964e08"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Aug 24 11:03:23 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 24 11:03:23 2011 -0700"
      },
      "message": "Merge \"No longer disable notification lights when screen turns on\""
    },
    {
      "commit": "cfc0f2c206af24350245f83b36e0032a7d4de49a",
      "tree": "a5bea73dff0e6622330433f05e12a697a4cf578a",
      "parents": [
        "bc714a357d79c2315cc665eb706b465334cb9716",
        "ada8c4e6a3da96a795f39a1028d448eb7aebfab3"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Wed Aug 24 00:26:01 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 24 00:26:01 2011 -0700"
      },
      "message": "Merge \"Add functions to set / get SpellCheckerSubtype\""
    },
    {
      "commit": "ada8c4e6a3da96a795f39a1028d448eb7aebfab3",
      "tree": "d1b0b3d75a5ff4ca2ec80f8fb78739f5f2ea007f",
      "parents": [
        "96daa0ef4088b0e123a7dce20f572238ec42575b"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Tue Aug 23 14:56:56 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Wed Aug 24 16:00:55 2011 +0900"
      },
      "message": "Add functions to set / get SpellCheckerSubtype\n\nChange-Id: I977326879fe201c4dee4a87da361217175eb6041\n"
    },
    {
      "commit": "006efb24706378293a2faa137c7c7ca34a2e15cd",
      "tree": "287eaa365c75af4216e4f6b8b64a6f8411fd0f1d",
      "parents": [
        "96daa0ef4088b0e123a7dce20f572238ec42575b",
        "8e28b7d78232f6cf08739ca0d129cc7f9e650801"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Aug 23 21:26:51 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 23 21:26:51 2011 -0700"
      },
      "message": "Merge \"Proactively disable data when over policy limit.\""
    },
    {
      "commit": "8e9992ae5053a3ac52d28a5a892aed0a0798c7ab",
      "tree": "ae707ea76c1f9eb218ba3d71c67e757df19d205d",
      "parents": [
        "8e28b7d78232f6cf08739ca0d129cc7f9e650801"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Aug 23 18:37:23 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Aug 23 18:46:14 2011 -0700"
      },
      "message": "Register for kernel global data usage alerts.\n\nInstead of polling every 15 minutes, register for alerts that trigger\nwhen system-wide traffic passes a threshold.  Still mixed with polling\nto persist UID stats, but relaxed to 30 minutes.  Currently watches\nfor every 512kB.\n\nMake persistence decision separately for network versus UID, and use\ntotal delta bytes when making decision.  Use light bootstrap during\nsystemReady() instead of heavy poll, which had been force-loading all\nUID data unnecessarily.\n\nBug: 5023631\nChange-Id: I04b723d6c4bf872fb1028071122dba66a8e1b576\n"
    },
    {
      "commit": "8e28b7d78232f6cf08739ca0d129cc7f9e650801",
      "tree": "c72bf1bcc07e1dd02764a4f4738a56735e5f4252",
      "parents": [
        "7a12d6ba14a35276fd3afb314d6c95055da4c6f0"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 19 02:24:24 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Aug 23 18:45:44 2011 -0700"
      },
      "message": "Proactively disable data when over policy limit.\n\nAdd policy controls to NetworkStateTracker which are combined with\nother user preference and internal flags to decide if data connection\nshould be established.  Better locking around enabled flags.\n\nWhen data network would be over limit, proactively disable data on\nthat network.  Enable when policy is snoozed or when cycle resets.\n\nTrack and dismiss notifications from now-stale policies.\n\nBug: 4587023, 5178147\nChange-Id: Ibfcc9f73cda7c369209af701b46eddd3d1943f2d\n"
    },
    {
      "commit": "b0626b53adceb3de0b85c1865655e74e7e964e08",
      "tree": "167d820d411b19daf533b3d51b131f0b68b55542",
      "parents": [
        "a77858066843182c91272c3e25c7eec10579eb93"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 23 15:11:04 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 23 21:06:45 2011 -0400"
      },
      "message": "No longer disable notification lights when screen turns on\n\nThe new specification calls for LED to continue blinking until the user\npulls down the notification shade in the status bar.\n\nBug: 5143247\n\nChange-Id: Id004cc3d1d9d76108329e57c6fbd8a8100068e0a\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "29aae6f36e565b8f2a99f2193597b964bb800ee8",
      "tree": "72d0d0798fe9549ebc82e1766464d1fe3ea5233f",
      "parents": [
        "5b56f7d6f662a543d0432a46047a55f1ee900994"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 18 18:30:09 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 23 17:44:52 2011 -0700"
      },
      "message": "Fix issue #4279860: previous UI flashes before showing lock screen...\n\n...(when turning display on after recently turning it off)\n\nAlso clean up when we decide to turn the screen on to improve that\ntransition.  There are still problems here with turning it on\nbefore the wallpaper gets dispayed.\n\nChange-Id: I2bc56c12e5ad75a1ce5a0546f43a845bf0823e66\n"
    },
    {
      "commit": "661cd52e0e1d527132eb1cae604d3e64da7ec0cb",
      "tree": "3b9f7d3c75c9e28b96e8a8d961ef8fbee1fdae7b",
      "parents": [
        "5e82bc038385edcb669b44659401fb83dab9c880"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 22 00:26:20 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 22 13:42:05 2011 -0700"
      },
      "message": "Add progress dialog for booting after an upgrade.\n\nThis introduces a new facility for code during the boot process\nto display messages to the user through a progress dialog.  This\nis only for use when performing longer-than-usual post-upgrade\noperations such as running dexopt on applications or upgrading\ndatabases.\n\nChange-Id: I0e78439ccec3850fb67872c22f235bf12a158dae\n"
    },
    {
      "commit": "5317f034bacaab19af3181da8e9752cbb5b09a08",
      "tree": "cc498387446d2ee763f887f874584d968f2c6738",
      "parents": [
        "583b163feb9266d3b2080810a30ac68c7bd4760e"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Aug 22 13:09:49 2011 -0700"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Aug 22 13:09:49 2011 -0700"
      },
      "message": "VPN: stop daemons by closing the control sockets.\n\nAs init now uses SIGKILL to stop daemons, performing graceful shutdown\nbecomes impossible. Here we implement our own solution by asking daemons\nto monitor the control socket and terminate when it is closed.\n\nChange-Id: I07a28807173a81b7f95e70f4193e974317acf88a\n"
    },
    {
      "commit": "0191bba17cf78285aa38e0a91acbce112774d348",
      "tree": "d4143124a1a1f9f9f964197cf2680b20d25631f3",
      "parents": [
        "86c471db06e35f0cd96e5505f8eae56294d0272f"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Sun Aug 21 14:47:59 2011 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Sun Aug 21 14:47:59 2011 -0700"
      },
      "message": "Fix 4993068: Don\u0027t check password history when dpm sets the password\n\nThis fixes a crash caused by permission problems when we try to update\nthe password history and discover there\u0027s no password salt.  The code\nattempts to create the salt, which triggers the exception.\n\nThis could be fixed by wrapping the call with a clearCallingIdentity()/\nrestoreCallingIdentity(ident).  However, while looking at it, it occurred to me\nthat this can cause unexpected failures if the DPM tries to set the\npassword twice or happens to set it to something in the password history.\n\nInstead, we should *always* allow the DPM to reset the password to whatever it wants,\nprovided it passes the minimum password criteria.\n\nChange-Id: I1505b24f9c097ee5c2c44e4bf378ba90095b113b\n"
    },
    {
      "commit": "d6a2be3ef75892d223bddc82db8a4b4f22d0ec20",
      "tree": "9bf3a8c1822c23aba3395f1622e1f49ea2a96b2c",
      "parents": [
        "c0a2222552f48a2543a64a4cbe913d0b9ffc3cbf",
        "3dacd8470a55804fe267a901c6b9f243431e39e2"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Aug 19 15:21:43 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 19 15:21:43 2011 -0700"
      },
      "message": "Merge \"Allow Instrumentation to kill even persistent processes\""
    },
    {
      "commit": "3dacd8470a55804fe267a901c6b9f243431e39e2",
      "tree": "f5549b34f31dc399c9424b55d0c3e105c11ccc6a",
      "parents": [
        "eeb22142137d8309f6f010b10f504e23161190f4"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Aug 19 14:56:15 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Aug 19 14:57:57 2011 -0700"
      },
      "message": "Allow Instrumentation to kill even persistent processes\n\nFixes bug 5117630\n\nChange-Id: Iff40145fbbdc1d81a60cf2ecc5b24321162f7897\n"
    },
    {
      "commit": "1c9b260cf5af68ef06288eadc3b7d31dd05b28f7",
      "tree": "513fedf78769c2ff4c0578b7d6151b34b607cfd5",
      "parents": [
        "b9784398e60978d68da3e0e4566a66ed3a2fe297"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 19 14:08:43 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 19 14:08:43 2011 -0700"
      },
      "message": "Fix issue #5187844: Query is misrouted to wrong content provider\n\nChange-Id: I56834f41844990d67edc8af83273036b3d755e37\n"
    },
    {
      "commit": "937ffc174c742c56d33f64c6f1129403445193fd",
      "tree": "5ffda24ec2d91fbec5cd85f2ffcc0343ec11a7d3",
      "parents": [
        "53bd70301d0a41847d45f8e1ea4e0886ee469a75",
        "d99b293d5f11b784d7406f5398bc654920b42482"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 18 18:05:19 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 18 18:05:19 2011 -0700"
      },
      "message": "Merge \"Fix issue #5180553: permission RECEIVE_BOOT_COMPLETED is not checked\""
    },
    {
      "commit": "d99b293d5f11b784d7406f5398bc654920b42482",
      "tree": "bbe1ae46fa3227e470b3a7f607ee39cd257466cf",
      "parents": [
        "0197d825f15844e51b91a0006d411ecb06350641"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 18 14:39:58 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 18 16:02:41 2011 -0700"
      },
      "message": "Fix issue #5180553: permission RECEIVE_BOOT_COMPLETED is not checked\n\nChange-Id: I069673f2fbdf05e409c5e9ed99ccd1e15b4fe3ed\n"
    },
    {
      "commit": "9a20fa54c9ba4bd19f2afd6e8cc6e9954e7cb739",
      "tree": "8191feeabfa1cb16f2e1567e2d9b4652bb439e8e",
      "parents": [
        "1797d6086f9acbea582cac6d484e749abafa1868",
        "3a844fcf5a0e70a19c38dc500306b9ebe4e1413b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Aug 18 15:01:10 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 18 15:01:10 2011 -0700"
      },
      "message": "Merge \"Background data notification, API clean up.\""
    },
    {
      "commit": "d1106fc9bff66ac4f93f9d6291f0d0136bb544e7",
      "tree": "973449d8d7156f83e4649efe6316d979609788e7",
      "parents": [
        "797a0b0145211e219fcb441a963a103679249aa7",
        "07714d41e57ef9d8e2e6b40d8764e42053cce1bd"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Aug 18 09:20:47 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 18 09:20:47 2011 -0700"
      },
      "message": "Merge \"Default disable watchdog for vold connection\""
    },
    {
      "commit": "e8c88e6f764a77d94b0051ea169a82a61fcc0d0e",
      "tree": "4f4a2b3843b539bb8a7691affb4fd43c584b3fc3",
      "parents": [
        "9f550e91f4d82313135a37a426d563f855a4f6a5"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 17 19:09:09 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 17 19:09:23 2011 -0700"
      },
      "message": "Fix issue #5163456: logspam/tight loop in BatteryStatsImpl\n\nNo longer use the old history code.\n\nChange-Id: I878ffe16e0014453c46db6a4f7228a81468d8cb9\n"
    },
    {
      "commit": "07714d41e57ef9d8e2e6b40d8764e42053cce1bd",
      "tree": "9532cf2e15a574170b3ee269db890dfff3a09256",
      "parents": [
        "4a8d9ad8acfd675a7f4d532c6564d3985ff67138"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 17 17:49:28 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 17 17:49:30 2011 -0700"
      },
      "message": "Default disable watchdog for vold connection\n\ncryptfs has long-running operations that cause the Watchdog to fire\nreliably when encrypting the filesystem. Disable Watchdog on\nMountService for this reason.\n\nChange-Id: Id03f5f60c704dcd74a8696ad9f32b5fba5381731\n"
    },
    {
      "commit": "3a844fcf5a0e70a19c38dc500306b9ebe4e1413b",
      "tree": "c835cc97cc3051ee80f29b693d26edd5986b5aa2",
      "parents": [
        "b51645ee2c7608f0b1a50d09f203cf5323b0b02d"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Aug 16 14:37:57 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 17 14:12:42 2011 -0700"
      },
      "message": "Background data notification, API clean up.\n\nWhen restricting background data, show ongoing notification to give\neasy access to re-enable. Deprecate getBackgroundDataSetting() API\nto always return true, since NetworkInfo.isConnected() is new source\nof truth. Handle upgrade path by reading from existing secure value,\nand kick one last broadcast when changing value. Remove background\ndata code from ConnectivityService.\n\nRemove warning alerts, since they push ifaces into restricted list;\nshould only happen when iface has limit.\n\nBug: 5163559, 5129421\nChange-Id: I0064d9d643656a4d32aaae51d4a58bce49fe295f\n"
    },
    {
      "commit": "842d9de74f9eaaf8a7b89dbe8475faf014ddafb8",
      "tree": "542da79ed346782aabd5cfbf6862bbd043ef47af",
      "parents": [
        "e117d0bda12f02e39b58b6460bee0aaf8ead9cf9",
        "bac26a1205883ad30343f1d1f64a039dcdda9f63"
      ],
      "author": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Wed Aug 17 11:39:32 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 17 11:39:32 2011 -0700"
      },
      "message": "Merge \"Getting rid of the (hidden) oldName parameter for widgets\""
    },
    {
      "commit": "bac26a1205883ad30343f1d1f64a039dcdda9f63",
      "tree": "266eca9e693499da737e02b6443c5ecd60a7b456",
      "parents": [
        "13ed7435030a43c30616a179a3ac2c81d2b297c8"
      ],
      "author": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Tue Aug 16 20:42:30 2011 -0700"
      },
      "committer": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Wed Aug 17 11:37:58 2011 -0700"
      },
      "message": "Getting rid of the (hidden) oldName parameter for widgets\n\nChange-Id: I191cf64ed045fd7cb53e106f337cbeab5a914336\n"
    },
    {
      "commit": "e518be3085c7457f3451a64fbea3f9499ae39bf5",
      "tree": "f07952be9e8f0db7435838cf7a42b6f9ed9d743a",
      "parents": [
        "c5f9a42c50d79abec219870bd19009c260b062d6",
        "51beb81a8e901020293b7a30a68b405bca71d258"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@android.com",
        "time": "Tue Aug 16 20:47:39 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 16 20:47:39 2011 -0700"
      },
      "message": "am 51beb81a: am ee93fd5c: am 7a0d746b: am baaf3ce6: Merge \"Handle stopping of services with still bound applications.\"\n\n* commit \u002751beb81a8e901020293b7a30a68b405bca71d258\u0027:\n  Handle stopping of services with still bound applications.\n"
    },
    {
      "commit": "51beb81a8e901020293b7a30a68b405bca71d258",
      "tree": "67825fa4fad3289df97efa714ff343cc5b39894e",
      "parents": [
        "e5cb629f3761b272ea52104c1093e0007f5c41b5",
        "ee93fd5c0d7b0296fca17363ec00dc2ee63a0841"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@android.com",
        "time": "Tue Aug 16 20:45:19 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 16 20:45:19 2011 -0700"
      },
      "message": "am ee93fd5c: am 7a0d746b: am baaf3ce6: Merge \"Handle stopping of services with still bound applications.\"\n\n* commit \u0027ee93fd5c0d7b0296fca17363ec00dc2ee63a0841\u0027:\n  Handle stopping of services with still bound applications.\n"
    },
    {
      "commit": "baaf3ce6385da0f9f5ff6e2195e26c339ee9949e",
      "tree": "3a182785671172c9300a1bed0eb676799c20eaa7",
      "parents": [
        "d144748d4767b2ccfb13857e23f78bc944e9531d",
        "78f9fffca4cbfad50bdb73569bc4f484d84215ab"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@android.com",
        "time": "Tue Aug 16 19:29:25 2011 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Tue Aug 16 19:29:25 2011 -0700"
      },
      "message": "Merge \"Handle stopping of services with still bound applications.\""
    },
    {
      "commit": "755bd67a5081727ae1bbee2d39863b464a8b4f35",
      "tree": "b5ef3bdea69aabb912d7b00aa6986b7784586cec",
      "parents": [
        "751b85e8c3b5ff07eaaa6bdbd32517dcdc8f27aa",
        "d9be36c897680361da2daadba9bbc9da3c16329b"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Aug 16 17:03:24 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 16 17:03:24 2011 -0700"
      },
      "message": "Merge \"Don\u0027t crash if a drag recipient throws an uncaught exception\""
    },
    {
      "commit": "d9be36c897680361da2daadba9bbc9da3c16329b",
      "tree": "097fbf3074d35133c91c7a95890c6eb8deb37166",
      "parents": [
        "154aa355f0ed0374a4b4db222419639ec1a385fe"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Aug 16 16:09:33 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Aug 16 16:09:33 2011 -0700"
      },
      "message": "Don\u0027t crash if a drag recipient throws an uncaught exception\n\nThere turn out to be two distinct bugs leading to runtime restarts.\n\nThe first, dating from at least Android 3.1, is that following certain kinds\nof app crashes we properly clean up the drag-state bookkeeping, but aren\u0027t\nprepared in the case of the drag-target timeout clock firing with a now-\nnull drag state in effect.  We now catch that edge condition and don\u0027t NPE\n(and note that there was already similar code around the separate timeout\nwhen an app is *starting* the drag process).\n\nThe second bug is that some new-in-ICS code in the input channel management\nwasn\u0027t prepared for certain cases where the current touch window could have\nbecome unusable and its input channel torn down summarily in the case of the\naforesaid app crash during drag.  The code now makes sure that there really\nis an input channel that needs to be flushed / cancelled prior to attempting\nthat operation.\n\nFixes bug 5173534\n\nChange-Id: Idaae158ecfb4b93456ab1425769b669962893c00\n"
    },
    {
      "commit": "4a56c437b6fd02dce06fa8565953964b01d21b5d",
      "tree": "f162cf5b64cb04c6f6a5e046fb04aba0f35af50a",
      "parents": [
        "3b2d54a0e71526ed23b0cd385137b93f2572d09c",
        "aea743aaa43a833fd8ff3dc56205197583152d5f"
      ],
      "author": {
        "name": "repo sync",
        "email": "isheriff@google.com",
        "time": "Tue Aug 16 14:50:56 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 16 14:50:56 2011 -0700"
      },
      "message": "Merge \"P2p enhancements\""
    },
    {
      "commit": "1db7f7940e24ad359a02aac07eb6b8b03f3f9804",
      "tree": "7b19634946ecb70e28ac59a01a72d09be6856ebe",
      "parents": [
        "f01e16a0ff1e4df10d177a47eae741e1a3ead9ce",
        "0c074e68437f1a705a8e73ac32e8e4dec370ec43"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Aug 16 14:25:30 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 16 14:25:30 2011 -0700"
      },
      "message": "Merge \"VPN: reset legacy VPN when resetting IPv4 addresses.\""
    },
    {
      "commit": "fadd2b8e0ffea0d5b4bf3ca16af4d5cea001b561",
      "tree": "634b7a1122f0be9b68241ae73c765c1a78cfc8a5",
      "parents": [
        "e81740442f94aefe7dd3f061dfbd20a6fdeb667d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 16 13:34:34 2011 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 16 13:45:51 2011 -0700"
      },
      "message": "UsbManager: Use resource IDs for notification IDs\n\nto avoid ID collisions with other system services.\n\nBug: 5161005\n\nChange-Id: I069fbc40a8764bc85cceeacd04264abd32b62668\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "e81740442f94aefe7dd3f061dfbd20a6fdeb667d",
      "tree": "0eefa7347fdc959994f369c118e190598f70a3db",
      "parents": [
        "8e99d183345391cddec70e18d3c41cf21f9f67cb"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 16 12:53:43 2011 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 16 12:53:43 2011 -0700"
      },
      "message": "dumpsys: fix problems with -a option in battery and batteryinfo services\n\nNow the dumpsys battery output will show up in bugreports again.\n\nChange-Id: Id36e87d27e9d3c06dcc17671c81aa1d3fe260d1e\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "0c074e68437f1a705a8e73ac32e8e4dec370ec43",
      "tree": "9ed1af1c2c391dabe8a239803f1d168a9202ce05",
      "parents": [
        "8e99d183345391cddec70e18d3c41cf21f9f67cb"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Aug 15 15:19:40 2011 -0700"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Aug 16 10:08:33 2011 -0700"
      },
      "message": "VPN: reset legacy VPN when resetting IPv4 addresses.\n\nCurrently legacy VPN only works on IPv4, and it should always\nturn down when the addresses are changed. It assumed that the\ninterface will be brought down and up, so the event can be\ndetected via interfaceStatusChanged(). However, the assumption\nwas incorrect and the event is actually driver-dependent. To\nfix this issue, ConnectivityService now tells VPN that the\ninterface is down when resetting IPv4 addresses.\n\nChange-Id: I76d15e56552d86635c5b274ca980be5da905a6fb\n"
    },
    {
      "commit": "8e99d183345391cddec70e18d3c41cf21f9f67cb",
      "tree": "af48f504e223f41a296fb0435cd80c613f54829b",
      "parents": [
        "7a9effebcf84dcbd820cafe6886a5562cb3d8e22",
        "f125a093636ef22c81a9d90397407f9ef05a6e9a"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Aug 16 09:41:54 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 16 09:41:54 2011 -0700"
      },
      "message": "Merge \"Flush central DNS cache when things change.\""
    },
    {
      "commit": "46d2545db48e6b8565ef7beedf6486ef5d7f4507",
      "tree": "efae1b841c9c13637cc740a64eae5ae01e2edec1",
      "parents": [
        "bcc2d40a11432736e94c1dd3c64abd1aac476c20",
        "5ab2157bf1f105b02d3e2913cd3a33f9765b74ca"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Aug 16 08:35:53 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 16 08:35:53 2011 -0700"
      },
      "message": "Merge \"Infrastructure to support package verifier\""
    },
    {
      "commit": "bcc2d40a11432736e94c1dd3c64abd1aac476c20",
      "tree": "cf82d9ce1c7dfbb91fb5d45a9881d55a93c87d22",
      "parents": [
        "d15ab6dce87d0eb7c929cac14832856476cd41e6",
        "1137341885d8dc451dddc2e01319fb0fab00bbc3"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Aug 16 08:34:22 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 16 08:34:22 2011 -0700"
      },
      "message": "Merge \"Throw exception on odd length Signatures\""
    },
    {
      "commit": "34c788096f0f7c8f2b4b19c15fef65d0c4aef61d",
      "tree": "1b5fc2ec44bae98b7393d52aa0b587badab1f119",
      "parents": [
        "612cb6eeed15aa7e52eeb18550f205b63e88e00f",
        "62f20ecf492d2b29881bba307c79ff55e68760e6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 15 18:57:57 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 15 18:57:57 2011 -0700"
      },
      "message": "Merge \"Add new am option to profile the launching of an activity.\""
    },
    {
      "commit": "b51645ee2c7608f0b1a50d09f203cf5323b0b02d",
      "tree": "f655dc9b69121be1c4c55c5b64b03c82ca76fd84",
      "parents": [
        "a06cb342836d02fe1e176c16f83c4d0a55e00f8b",
        "b5d55e302d2253e4bfb233ea705caf258cdc4cb9"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Aug 15 18:44:15 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 15 18:44:15 2011 -0700"
      },
      "message": "Merge \"Foreground/background network stats using sets.\""
    },
    {
      "commit": "a06cb342836d02fe1e176c16f83c4d0a55e00f8b",
      "tree": "71cb57400ebf9bdc98ad2d3186d6a9a3170c580e",
      "parents": [
        "3365275aa2a253bcdfa7c62ead22587da198d5f2",
        "fa23c5ae226c1a1d39f89c5c87d4f340e91d90e0"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Aug 15 18:43:54 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 15 18:43:54 2011 -0700"
      },
      "message": "Merge \"Add NativeDaemonConnector users to watchdog.\""
    },
    {
      "commit": "62f20ecf492d2b29881bba307c79ff55e68760e6",
      "tree": "58ea602138a28fb3555368900acbad6219ae2de2",
      "parents": [
        "0f2da17a9523fc40bceb5209cabd044df648e98e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 15 17:40:28 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 15 17:55:57 2011 -0700"
      },
      "message": "Add new am option to profile the launching of an activity.\n\nChange-Id: Ie71a8043eafe41f53a0b3dbb5170276d87acbc9b\n"
    },
    {
      "commit": "b5d55e302d2253e4bfb233ea705caf258cdc4cb9",
      "tree": "7acd6751833ddeae0a6dbc97c8608cd986643018",
      "parents": [
        "11f4a48c54f3006778c874662ff04a4d9d157f25"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 10 17:53:27 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Aug 15 17:30:25 2011 -0700"
      },
      "message": "Foreground/background network stats using sets.\n\nTeach NetworkStats about \"counter sets\" coming from kernel, and use\nthem to track usage in foreground/background.  Add AID_NET_BW_ACCT to\nsystem_server so it can control counter sets.\n\nMove to composite key of NetworkIdentitySet, UID, set, and tag when\nrecording historical usage.  Persisting still clusters by identity,\nsince that is heaviest object.\n\nRequest async stats poll during systemReady() to bootstrap later\ndelta calculations. Reset kernel counters when UID removed. Update\nvarious tests.\n\nBug: 5105592, 5146067\nChange-Id: Idabec9e3ffcaf212879821515602ecde0a03de8c\n"
    },
    {
      "commit": "5ab2157bf1f105b02d3e2913cd3a33f9765b74ca",
      "tree": "5c2241ddca3526545b73472ed0006eaba0439da1",
      "parents": [
        "dd7bc9f457204e60feeea53b0b12ba706d6964df"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Jul 27 11:11:19 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Aug 15 17:26:31 2011 -0700"
      },
      "message": "Infrastructure to support package verifier\n\nAllow a package verifier to approve or disapprove of a package being\ninstalled.\n\nChange-Id: Ibfea0f2b1aaa4ab1589a4e59f96144702b9bf94b\n"
    },
    {
      "commit": "f125a093636ef22c81a9d90397407f9ef05a6e9a",
      "tree": "430e31479c5178b3e36e5710861d479a0c3223d1",
      "parents": [
        "154aa355f0ed0374a4b4db222419639ec1a385fe"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon Aug 15 12:31:55 2011 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon Aug 15 14:26:53 2011 -0700"
      },
      "message": "Flush central DNS cache when things change.\n\nFlushes the cache for an interface when\neither routes or DNS servers change.\n\nChange-Id: I021305f781be669aaa12074dc1cc21511f49eac4\n"
    },
    {
      "commit": "8b65c902ee25e9c38f64eef9f7af0cf9e86491e3",
      "tree": "25443a1cca2a8ac849d3074362b085d839bd1547",
      "parents": [
        "cb04a1f3a31c252a0e3fda5e7eaa16f3257c9397",
        "0a0ab128a65900a23f1018a14f5cbecec6443dd3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Aug 14 20:13:19 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Aug 14 20:13:19 2011 -0700"
      },
      "message": "Merge \"Use PARCELABLE_WIRTE_RETURN_VALUE flag in InputChannel. Bug: 5161290\""
    },
    {
      "commit": "40a9784d48211048fa3731a3ffdccda475750090",
      "tree": "9484d201ede92323d00a05ffd60296330d486f82",
      "parents": [
        "52727fc38aaf6821bac6adf33235f154139638d0"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Sun Aug 14 17:12:10 2011 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Sun Aug 14 17:13:10 2011 -0700"
      },
      "message": "Fix bug 5154361 - New force close dialog text breaks button order rules\n\nReorder the force close/ANR dialog buttons to better match the new\nrules/intent from UX.\n\nChange-Id: I30fed56aabd0cc91d07852807347057176d82aaa\n"
    },
    {
      "commit": "0a0ab128a65900a23f1018a14f5cbecec6443dd3",
      "tree": "c7dddb0df25d105be2579c81d2838317a2d8496a",
      "parents": [
        "c74a02873a0981e3db2417af70ee7be3168ed1ba"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Aug 12 18:08:08 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Aug 12 18:08:08 2011 -0700"
      },
      "message": "Use PARCELABLE_WIRTE_RETURN_VALUE flag in InputChannel.\nBug: 5161290\n\nReplace mDisposeAfterWriteToParcel with code that takes advantage\nof the standard Parcel API support for releasing resources after\nwriting a Binder reply.\n\nThis change makes it less likely that InputChannels will leak\naccidentally when passed across a Binder.\n\nChange-Id: Id37706e7b88d074e8e4ac687c88f0db8963200f2\n"
    },
    {
      "commit": "7c0d8472d003334fafd14f7c1e7d95dbd213088b",
      "tree": "f4f64ec128ce06e98b3bd5d292d261ed5a20366a",
      "parents": [
        "585f727b385b5f2d41a1628f64297bd11db95bd0",
        "8e8d65ff5fdef12c6af3d003dfef19aadc39bea9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 12 15:22:32 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 12 15:22:32 2011 -0700"
      },
      "message": "Merge \"Fix some crashes that are happening in the system process.\""
    },
    {
      "commit": "8e8d65ff5fdef12c6af3d003dfef19aadc39bea9",
      "tree": "caae5adb7a77cee7617e4533620075a6afb4c0ae",
      "parents": [
        "8a5c6617d513bd0a47c733520facb3ba543b70b0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 11 19:36:18 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 12 14:20:59 2011 -0700"
      },
      "message": "Fix some crashes that are happening in the system process.\n\n- When shutting down, if the screen goes to sleep there is code\n  that tries to do a notifyAll without holding the lock:\n\njava.lang.IllegalMonitorStateException: object not locked by thread before notifyAll()\n\tat java.lang.Object.notifyAll(Native Method)\n\tat com.android.server.am.ActivityStack.checkReadyForSleepLocked(ActivityStack.java:776)\n\tat com.android.server.am.ActivityStack$1.handleMessage(ActivityStack.java:282)\n\tat android.os.Handler.dispatchMessage(Handler.java:99)\n\tat android.os.Looper.loop(Looper.java:137)\n\tat com.android.server.ServerThread.run(SystemServer.java:603)\n\n- If an invalid Uri object is sent to the system process it can crash because\n  the Uri class throws an assertion while unmarshalling.  Change this to an\n  IllegalArgumentException so it gets sent back to the caller:\n\njava.lang.AssertionError\n\tat android.net.Uri$PathPart.readFrom(Uri.java:2224)\n\tat android.net.Uri$HierarchicalUri.readFrom(Uri.java:1106)\n\tat android.net.Uri$1.createFromParcel(Uri.java:1689)\n\tat android.net.Uri$1.createFromParcel(Uri.java:1681)\n\tat android.content.IContentService$Stub.onTransact(IContentService.java:53)\n\tat android.content.ContentService.onTransact(ContentService.java:120)\n\tat android.os.Binder.execTransact(Binder.java:338)\n\tat dalvik.system.NativeStart.run(Native Method)\n\n- StrictMode can try to access the first index in the stack crawl of a stack crawl\n  array of length 0.  Not sure why this happens, but make the code more robust:\n\njava.lang.ArrayIndexOutOfBoundsException: length\u003d0; index\u003d0\n\tat android.app.ApplicationErrorReport$CrashInfo.\u003cinit\u003e(ApplicationErrorReport.java:341)\n\tat android.os.StrictMode$ViolationInfo.\u003cinit\u003e(StrictMode.java:1978)\n\tat android.os.StrictMode$AndroidBlockGuardPolicy.startHandlingViolationException(StrictMode.java:1097)\n\tat android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1068)\n\tat libcore.io.BlockGuardOs.read(BlockGuardOs.java:137)\n\tat libcore.io.IoBridge.read(IoBridge.java:426)\n\tat java.io.FileInputStream.read(FileInputStream.java:179)\n\tat java.io.InputStream.read(InputStream.java:148)\n\tat com.android.internal.os.ProcessStats.readFile(ProcessStats.java:804)\n\tat com.android.internal.os.ProcessStats.getCpuSpeedTimes(ProcessStats.java:564)\n\tat com.android.internal.os.ProcessStats.getLastCpuSpeedTimes(ProcessStats.java:545)\n\tat com.android.server.am.ActivityManagerService.updateCpuStatsNow(ActivityManagerService.java:1470)\n\tat com.android.server.am.ActivityManagerService.batteryNeedsCpuUpdate(ActivityManagerService.java:1522)\n\tat com.android.internal.os.BatteryStatsImpl$MyHandler.handleMessage(BatteryStatsImpl.java:110)\n\tat android.os.Handler.dispatchMessage(Handler.java:99)\n\tat android.os.Looper.loop(Looper.java:137)\n\tat com.android.server.am.ActivityManagerService$AThread.run(ActivityManagerService.java:1302)\n\n(Also fix this code to not cause strict mode to trigger at all, because there is\nno need, because this is just reading stuff from /proc.)\n\n- The system seems to crash during boot if it thinks it needs to rotate\n  the screen, when it is trying to take the freeze snapshot way too early.\n  There is no need to freeze the screen during boot or if the screen is off:\n\njava.lang.NullPointerException\n\tat android.view.Surface.init(Native Method)\n\tat android.view.Surface.\u003cinit\u003e(Surface.java:256)\n\tat com.android.server.wm.ScreenRotationAnimation.\u003cinit\u003e(ScreenRotationAnimation.java:91)\n\tat com.android.server.wm.WindowManagerService.startFreezingDisplayLocked(WindowManagerService.java:8758)\n\tat com.android.server.wm.WindowManagerService.startAppFreezingScreenLocked(WindowManagerService.java:3971)\n\tat com.android.server.wm.WindowManagerService.startAppFreezingScreen(WindowManagerService.java:4003)\n\tat com.android.server.am.ActivityRecord.startFreezingScreenLocked(ActivityRecord.java:515)\n\tat com.android.server.am.ActivityStack.ensureActivityConfigurationLocked(ActivityStack.java:3997)\n\tat com.android.server.am.ActivityManagerService.updateConfigurationLocked(ActivityManagerService.java:12535)\n\tat com.android.server.am.ActivityManagerService.updateConfiguration(ActivityManagerService.java:12439)\n\tat com.android.server.wm.WindowManagerService.systemReady(WindowManagerService.java:6161)\n\tat com.android.server.ServerThread.run(SystemServer.java:521)\n\nChange-Id: I85062bb5f6b0909a0f52feedaa75e7611d9d7fbd\n"
    },
    {
      "commit": "b858ec559e8c6a13f6d2212a11f3f952e43259f6",
      "tree": "b7011278d461ad0e09cb96fe4cc055e0423dbf52",
      "parents": [
        "61bb11cfa03abc345f27ec14f63929b6f600edff",
        "e99adc70c8e0a64cb8d13a2ec4c125adaf18904d"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Thu Aug 11 19:49:15 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 11 19:49:15 2011 -0700"
      },
      "message": "Merge \"On device startup, be in touch mode\""
    },
    {
      "commit": "e99adc70c8e0a64cb8d13a2ec4c125adaf18904d",
      "tree": "ba225363d76c21a03aca7913eccb513a52e1b768",
      "parents": [
        "1060dd20dc27533311198c335a0cd94053a867e7"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Thu Aug 11 18:28:01 2011 -0700"
      },
      "committer": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Thu Aug 11 18:28:01 2011 -0700"
      },
      "message": "On device startup, be in touch mode\n\n- Solves bug where an icon showed focus state on startup in Launcher. Once the keyboard arrows are used, Launcher enters non-touch mode as usual\n\nChange-Id: I0080f3b72f6c22833c600a1026af0abc35024510\n"
    },
    {
      "commit": "7bc4827e364c49c5d516d5b50ad59c842be6b0bf",
      "tree": "37576fd14c2d03beec3d60d0e6d901f834c7059b",
      "parents": [
        "9cc07c3939581909bf7de42df0215a65fab7b472",
        "6853fcf53f119d82cddc4742a0c34e7a2f43431c"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Aug 11 15:07:25 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 11 15:07:25 2011 -0700"
      },
      "message": "Merge \"Fix partial-read handling during restore\""
    },
    {
      "commit": "e342551e56e422a4409caaa51d225e750eb7c7b0",
      "tree": "01ea13838f43745f8bee19a0096292b90ee4ef3c",
      "parents": [
        "9092b6d52256ccf30580f50304ceaf0dc181951f",
        "f5121a9b802c6ddd3661ed5cae602380dbe67090"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Aug 11 13:27:10 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 11 13:27:10 2011 -0700"
      },
      "message": "Merge \"Better errors from copyResource\""
    },
    {
      "commit": "e09cd7914c117e84bf78676d0e760c51aa147eb8",
      "tree": "c1fed3807d19183ea4208c99519ef4c41f89eede",
      "parents": [
        "1060dd20dc27533311198c335a0cd94053a867e7",
        "f9abb405903cab1fcd379388a96925524840c607"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 11 11:35:07 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 11 11:35:07 2011 -0700"
      },
      "message": "Merge \"New broadcast telling when an app is fully removed.\""
    },
    {
      "commit": "bde7a61a06beca0966f60c909c98ecc0979d3130",
      "tree": "81edbbe96cad3af7dacf6636200d9574f1f6c686",
      "parents": [
        "08633c79164c8ab7362d6af1cf9ab576916fa7e0",
        "e6b2429cf719f30259a3eae61b94524b5cff4fab"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Aug 11 09:55:08 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 11 09:55:08 2011 -0700"
      },
      "message": "Merge \"Remove default routes for non-default networks.\""
    },
    {
      "commit": "6853fcf53f119d82cddc4742a0c34e7a2f43431c",
      "tree": "a471eb7eaebe3016d79192edd62528d0e334ef67",
      "parents": [
        "734b14d6b89685c9da013cba3175b05ba6363d1b"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Aug 10 17:52:21 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Aug 10 17:55:15 2011 -0700"
      },
      "message": "Fix partial-read handling during restore\n\n...by once and for all making all of the code deal appropriately with\nexpected partial reads.  We also now produce a properly conformant\nunderlying \u0027tar\u0027 EOF sequence [which will be compressed to almost\nnothing] to doubly bulletproof the end-of-archive logic.\n\nFixes bug 5133658\n\nChange-Id: I24a785574861d64ef10fc727b9f6b235575696b0\n"
    },
    {
      "commit": "c269dc55f160762c78e6360472630ef33b5061cf",
      "tree": "85ab378da829c40c9dc86ff09fee30e408fa2528",
      "parents": [
        "7034e4e66568cf4e5294a18ae4fc7a6636c62fa8",
        "89ef0720ee8e0ac6ae1758faa917e4d6c9606fb4"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 10 17:28:15 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 10 17:28:15 2011 -0700"
      },
      "message": "Merge \"Add input system to Watchdog. Bug: 5094994\""
    },
    {
      "commit": "f9abb405903cab1fcd379388a96925524840c607",
      "tree": "4c6caa42e95b0da5462f948f1380bba1c905a30a",
      "parents": [
        "458a57210930dd3d95fdcb2ab7dffdfd434a12cf"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 10 15:00:59 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 10 17:15:17 2011 -0700"
      },
      "message": "New broadcast telling when an app is fully removed.\n\nChange-Id: Ia516d826f302a01881fa92d9ffdc0adfbf669a4b\n"
    },
    {
      "commit": "f5121a9b802c6ddd3661ed5cae602380dbe67090",
      "tree": "a1a10eddf61e5e159f0d71a17e2cc47a09856752",
      "parents": [
        "260e9105d7fc7b11c26a6843658df89b98d65971"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 10 16:23:32 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 10 17:00:30 2011 -0700"
      },
      "message": "Better errors from copyResource\n\nCopy resource would fail without a good error code when the file\ncouldn\u0027t be found during copy.\n\nAlso destroy the target container ID during move operations since it\nmight exist. If the copy failed due to it existing, it would get\ndestroyed anyway. This way the user has a chance to have a good outcome\nthe first time.\n\nBug: 3375299\nBug: 5113898\nChange-Id: I00559833f0801bc50e7cc031b462495e37a6b4ab\n"
    },
    {
      "commit": "89ef0720ee8e0ac6ae1758faa917e4d6c9606fb4",
      "tree": "2c239993b3d2702dd8becc03a738f1b151a4c4f1",
      "parents": [
        "ba421dddfd558b34726df5dfbf8a3bf748e285b1"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 10 16:25:21 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 10 16:25:21 2011 -0700"
      },
      "message": "Add input system to Watchdog.\nBug: 5094994\n\nChange-Id: I153866958efc64ac19bda8b997c1c9f6ad425ec4\n"
    }
  ],
  "next": "aea743aaa43a833fd8ff3dc56205197583152d5f"
}
