)]}'
{
  "log": [
    {
      "commit": "6ffce2e9a3c57634bb73f8ff133ca680f8070d5d",
      "tree": "39b0492ba064caf003c47db9bd41ac0860e36743",
      "parents": [
        "8e461c9add08ac8705c50aa0357304aea6a5dbe0"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Mar 08 14:48:40 2010 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Mar 09 17:00:18 2010 -0500"
      },
      "message": "Add new shutdown observer for MountService.\nUse new observer before rebooting and shutting down.\nAdd some unit tests for unmount and shutdown code paths\nFix registering/unregistering part in MountService\nUse ShutdownThread in PowerManager.reboot()\nAdd reboot support to ShutdownThread.\nRemove MountService code from PowerManagerService.java and Power.java.\nClean shutdown/reboot is handled exclusively by ShutdownThread now.\n\nChange-Id: Iefb157451d3d9c426cb431707b870a873c09123d\n"
    },
    {
      "commit": "239038094493b3b1ac262222d1f21254b48d4fc6",
      "tree": "ac47ff3a044a032f6eba45250adca494684c0e68",
      "parents": [
        "ad7dd48361d9d510e8c5b43acef2f43c2fccbb2c",
        "3c8fbdf5dd19fad0b3006557716ee1026d7d5899"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Mar 08 06:47:49 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 08 06:47:49 2010 -0800"
      },
      "message": "Merge \"location: dump LocationProvider internal state\""
    },
    {
      "commit": "9f93881f57e4627964311afbf4e0f6d9cb9d904e",
      "tree": "c56e8e6fffe010df6bf8d94284cc0e42b8f321d5",
      "parents": [
        "c6120193efebf426186b24520d70ec3e4a4aeadf"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Mon Mar 08 11:21:59 2010 +0100"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Mon Mar 08 11:30:38 2010 +0100"
      },
      "message": "Disable car mode should not require DISABLE_KEYGUARD permission\n\nOnly the system can enable the car mode and the system should\nalready have appropriate permissions.\nBut since we wanna allow all other apps to disable the car mode\nagain, we don\u0027t want to enforce them to specify the DISABLE_KEYGUARD\npermission in their manifest.\n\nChange-Id: I1ad244a98d65b7193ea9817bff8406cfc2bce6f3\n"
    },
    {
      "commit": "3c8fbdf5dd19fad0b3006557716ee1026d7d5899",
      "tree": "d80caab324d5b8addf49e6ee9ee6ecdd1e03fecc",
      "parents": [
        "83835359e51ddb8be37cea9bf4bb32f9390d82b7"
      ],
      "author": {
        "name": "Fred Fettinger",
        "email": "fred.fettinger@motorola.com",
        "time": "Mon Jan 04 15:38:13 2010 -0600"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Mar 07 09:29:15 2010 -0500"
      },
      "message": "location: dump LocationProvider internal state\n\nFor each location provider, call getInternalState() to see if it has any\nstate information to include in a bugreport. If the returned string is not\nnull, then print a header with the provided name followed by the returned\nstring.\n\nChange-Id: I0a388d7fba14ac8cadcb80eda0a0ceb95032410b\nSigned-off-by: Fred Fettinger \u003cfred.fettinger@motorola.com\u003e\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "4528186e0d65fc68ef0dd1941aa2ac8aefcd55a3",
      "tree": "3f1276aef1448aad75a0d44ad1abbbd1478a4937",
      "parents": [
        "931bf89d327ecf07301231fd86b17deac535feaa"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 05 15:46:30 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 05 16:27:15 2010 -0800"
      },
      "message": "Refactor android.backup \u003d\u003e android.app.backup\n\nChange-Id: I0b21316ff890d7f3c7d4b82837bb60670724c2e8\n"
    },
    {
      "commit": "43dcdb2ec5aaad592e16555f9b5ddc037fa71902",
      "tree": "eb41b15f55c12e18ae6f07900eda4cabc182380c",
      "parents": [
        "9277c6d97214c96548cdcf4c822c88d5d331b2aa",
        "9444bea903b37d6ac8cc5ee997efcac1c7fcc7ef"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Mar 05 13:24:06 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 05 13:24:06 2010 -0800"
      },
      "message": "Merge \"Add null checks for strings\""
    },
    {
      "commit": "e29db6a2d2ba8d9458c88fe6c6dbb2164462773e",
      "tree": "36d6e390465adfad4932734593f700843f3c7cd0",
      "parents": [
        "924e164a83056600642a3181f19094b3ecb5262d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Mar 05 13:45:51 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Mar 05 15:44:22 2010 -0500"
      },
      "message": "Keep screen on when in car mode and the device is powered.\n\nBUG: 2477103\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "924e164a83056600642a3181f19094b3ecb5262d",
      "tree": "452dcdf39a3e2155741c4b6b77a94cd7a3f82e55",
      "parents": [
        "bda5780d39d5483dea938f2b64f6b2e0fb383e22"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Mar 05 11:56:53 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Mar 05 15:05:47 2010 -0500"
      },
      "message": "Disable the keyguard when in car mode\n\nBUG: 2367912\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "9444bea903b37d6ac8cc5ee997efcac1c7fcc7ef",
      "tree": "ff49cfd08fe2deb4144dc078001e059d6f040a84",
      "parents": [
        "ee2b21dba2740dcb47a68b8d1ed671b425c96948"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Mar 05 10:46:11 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Mar 05 11:37:57 2010 -0800"
      },
      "message": "Add null checks for strings\n"
    },
    {
      "commit": "7299c41630935a2b106e73e5603579a7747f7535",
      "tree": "933c4bc5c991c8d9334b7b78fbc71ad73e93d077",
      "parents": [
        "6d141b0a9beb71e59ba850b7be13c4f0344ddc77"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 04 18:41:49 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 05 10:57:47 2010 -0800"
      },
      "message": "Refactor car mode.\n\nExtract all UI behavior from dock observer and ACTION_DOCK_EVENT.\n\nAlso introduce a desk type to go along with the car type all through\nthe resource system, since we now need to have corresponding high-level\nbroadcasts for desk dock mode.  As part of that I also reworked some\nof the logic for switching modes to all funnel through a single\nupdate() call that looks all of the current state to decide what to\ndo next, and fixed various locking issues.\n\nIn addition I found there were bugs in the configuration change\nhandling causing us to only switch into the car mode config and\nthen never get out of it.  Unfortunately now that we are actually\nchanging the configuration for each mode change, the transitions\nbetween them are really crummy as we restart all kinds of\nactivities. :(\n"
    },
    {
      "commit": "6d141b0a9beb71e59ba850b7be13c4f0344ddc77",
      "tree": "895217d915a22ec84df5305c6d10fb3b1a0cd062",
      "parents": [
        "f25269398e970f7c072893f71fdebe62afff785b",
        "d32c8020dd2b07eb4bb1cbcfbb3de2d96de08624"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Mar 05 10:36:15 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 05 10:36:15 2010 -0800"
      },
      "message": "Merge \"Fix persisting flags for apps with data only Force gc\u0027s before deleting containers.:\""
    },
    {
      "commit": "c44c6d038dae9dbe2e6dbc182372590cef18bcb7",
      "tree": "1d337c326fed578de4614ff6b7600e93c3375ebe",
      "parents": [
        "ff846009ecb6df669feeb5d5feecf4b304b8b9a5"
      ],
      "author": {
        "name": "Bernd Holzhey",
        "email": "holzhey@google.com",
        "time": "Fri Mar 05 14:13:29 2010 +0100"
      },
      "committer": {
        "name": "Bernd Holzhey",
        "email": "holzhey@google.com",
        "time": "Fri Mar 05 14:13:29 2010 +0100"
      },
      "message": "fix NullPointerException if location is not set.\n\nBug: http://b/issue?id\u003d2490154\n"
    },
    {
      "commit": "1533020321c3cb5a7c652ce602c04a0300d9ed10",
      "tree": "5bc42cbcca32fd93b783595845403bd2ea9c008a",
      "parents": [
        "ab2628c23dcddb0a954ae09d7fd8c4e3f77e9b9d",
        "e7085e909d0c7f58a160b2730ff06aca085dfd6b"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Mar 04 18:47:24 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 04 18:47:24 2010 -0800"
      },
      "message": "Merge \"Update framework tethering UI\""
    },
    {
      "commit": "ab2628c23dcddb0a954ae09d7fd8c4e3f77e9b9d",
      "tree": "3724b33948e17820976cd0372d376ed5dde1153a",
      "parents": [
        "51ced540994ca032d886288c204091073c3fd66d",
        "8fff6451476334fbef30a080f46f37d552257e9a"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Thu Mar 04 18:32:37 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 04 18:32:37 2010 -0800"
      },
      "message": "Merge \"Remove the ProximityAlerts update Receiver when the last ProximityAlert expires. Fixes issue 6900.\""
    },
    {
      "commit": "e7085e909d0c7f58a160b2730ff06aca085dfd6b",
      "tree": "23b2ff5f5313d646db9f545d75d581e3f039c205",
      "parents": [
        "50490adfdc38e7d8cc1d6619700d6a5b7a291e69"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Mar 04 13:33:13 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Mar 04 18:20:58 2010 -0800"
      },
      "message": "Update framework tethering UI\n\nGetting rid of notification dialog - maybe the entire TetherActivity.\nAlso getting rid of toasts - to ephemeral.\n"
    },
    {
      "commit": "d32c8020dd2b07eb4bb1cbcfbb3de2d96de08624",
      "tree": "8040ee1500750c14479471dd46c708ededf6b094",
      "parents": [
        "1a31ae34a073b9769775f9e6cf5818888173a8e8"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Mar 04 17:18:14 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Mar 04 18:16:17 2010 -0800"
      },
      "message": "Fix persisting flags for apps with data only\nForce gc\u0027s before deleting containers.:\n"
    },
    {
      "commit": "8fff6451476334fbef30a080f46f37d552257e9a",
      "tree": "069c2d014aa3a9cc8373473bebd1f7430fc3bc76",
      "parents": [
        "1a31ae34a073b9769775f9e6cf5818888173a8e8"
      ],
      "author": {
        "name": "Sean Foy",
        "email": "sean.foy@gmail.com",
        "time": "Thu Mar 04 12:17:54 2010 -0600"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Mar 04 21:05:51 2010 -0500"
      },
      "message": "Remove the ProximityAlerts update Receiver when the last ProximityAlert expires.\nFixes issue 6900.\n\nChange-Id: Ifcd3fa9c34cfca02ed5e7a94aded33984ac81c60\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "50490adfdc38e7d8cc1d6619700d6a5b7a291e69",
      "tree": "7604b36d2ecb082140b909622430b4891ca90eb8",
      "parents": [
        "bcfcafe18c331bef98ea3f15665bcc3bac2aa544",
        "9bdc94b7a42a07d7dafcdf2cbadbb9c736b979d2"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu Mar 04 17:37:16 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 04 17:37:16 2010 -0800"
      },
      "message": "Merge \"Improve watchdog diagnostics.\""
    },
    {
      "commit": "9bdc94b7a42a07d7dafcdf2cbadbb9c736b979d2",
      "tree": "5fab687280890e7e90c8f78ecbe0f44261ab5660",
      "parents": [
        "4736ff3534e55c4aabdf3a69508841c8b1f86dd7"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu Mar 04 14:20:31 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu Mar 04 17:31:27 2010 -0800"
      },
      "message": "Improve watchdog diagnostics.\n\nCapture stack traces from the system process using the same\nmechanism as ANRs (which will initialize traces.txt, etc).\nAlso record the watchdog reset in the dropbox for uploading.\n\nBug: 2475557\n"
    },
    {
      "commit": "5321aef4a22daef6ed01ed48d936cdd82f2e38b7",
      "tree": "7c34f1bac696c3dfa056ac9a72613592ae908770",
      "parents": [
        "23b7aa45fbb6397d6b1960cd8f1b832ef7d49fe5"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Feb 12 12:35:59 2010 -0800"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Mar 04 16:07:14 2010 -0800"
      },
      "message": "Wifi AP framework changes first pass\n\nBug: 2421638\nChange-Id: Ic5ea8f7560a7fe5e1b0769daa5d92cc33eefc692\n"
    },
    {
      "commit": "20cb56e26e91df91bd64d4251222e0d421cdbe47",
      "tree": "17f4e6b033d060bd4745fd6a2ac38ada2e35897f",
      "parents": [
        "89d6d00a8b015e97f6bf8ca9fa9203402c15aa00"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 04 00:58:29 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 04 11:52:14 2010 -0800"
      },
      "message": "Fix some bugs.\n\nBug #2376231: Apps lose window focus (and back key causes ANR) if the\nlock screen is dismissed while the phone is in landscape mode\n\nThis is another case where we weren\u0027t recomputing the focused window\nafter changing the visibility policy.\n\nbug #2479958: Investigate source of \"Resources don\u0027t contain package\nfor resource number 0x7f0a0000\"\n\nUm, okay, so it turns out there were bugs all over the place where\nwe would load an XML resource from a another application, but not\nuse the Resources for that application to retrieve its resources...!\nI think the only reason any of this stuff was working at all was\nbecause it typically only cared about retrieving the resource\nidentifiers of the items (it would look up the values later).\n\nBug #2401082: Passion ERE26 monkey crash - InputMethodManagerService\n\nAdd some null checks.\n"
    },
    {
      "commit": "c11f9d339e4d7dcd7f1c7577b72abf929c4dc2a0",
      "tree": "e640b31ad1b6abdc7ab105441cdf6bab62c2bf62",
      "parents": [
        "d2e45244f5db5df34e7219460f7c70c6c65f9eee",
        "6651a1321c1777b39e662d7f65a5a895f1053485"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Mar 04 10:22:44 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 04 10:22:44 2010 -0800"
      },
      "message": "Merge \"Fix epsilon calculation for jumpy touchscreen filtering\""
    },
    {
      "commit": "4a3c3b23d0aa87a68088976b4f397be116cd2338",
      "tree": "9576b9910ff13e64d71de5eefc476613036602b4",
      "parents": [
        "966641a8da5361681e14ffaa00f2b69301b7c629"
      ],
      "author": {
        "name": "Bernd Holzhey",
        "email": "holzhey@google.com",
        "time": "Wed Mar 03 10:00:10 2010 +0100"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Mar 04 09:15:37 2010 -0800"
      },
      "message": "Fixing automatic switching of night mode if network location is not enabled.\n\nThe current implementation does not take care of location changes in the case\nthe network location is not enabled. The fix will use the passive location provider\nto receive any location updates (gps and network) and using the network location\nprovider to trigger the passive provider.\n\nChange-Id: I851bb1ff90e9103712a0e741528a6dfa5d4353c8\n"
    },
    {
      "commit": "b42ab0f41cb9dc5988d152ba660d39b3910ae373",
      "tree": "188b8b0d57aad907acbd72b962857974bc264c1d",
      "parents": [
        "01f4385d86537cf656cfc70ea075177d50619206"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Mar 04 08:02:44 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Mar 04 08:02:44 2010 -0500"
      },
      "message": "Delay setting initial screen brightness until after the sensors are initialized.\n\nSome devices will not activate the light sensor properly on boot\nunless we do this.\n\nChange-Id: Ia27b6fc2d515c31eb8597e1d52127d70e2643bd7\nBUG: 2269307\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "6651a1321c1777b39e662d7f65a5a895f1053485",
      "tree": "93f13c4cac9f0a1150928a2cf0876ef49859a180",
      "parents": [
        "37f700a83cf885447e67053a87d4e30b2f44ae44"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Mar 03 20:43:16 2010 -0800"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Mar 03 20:43:16 2010 -0800"
      },
      "message": "Fix epsilon calculation for jumpy touchscreen filtering\n"
    },
    {
      "commit": "37f700a83cf885447e67053a87d4e30b2f44ae44",
      "tree": "0742bf3c0de1ffe41432811e44018cc41788b033",
      "parents": [
        "e58aa0d964f91597cf3eecf16ff72988e6c5f5a3",
        "f5bcc6addd9c1f8f6bb8b8626540d003b3f964fa"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Mar 03 17:22:15 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 03 17:22:15 2010 -0800"
      },
      "message": "Merge \"InputDevice filtering for jumpy screens. Updated ScaleGestureDetector for framework deprecations.\""
    },
    {
      "commit": "f5bcc6addd9c1f8f6bb8b8626540d003b3f964fa",
      "tree": "69332a76fdc7995b4298b56e81d7274ada12a6f1",
      "parents": [
        "9b10ef5fe85e9d29721ff0cd15161f960d38a8db"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Mar 02 10:42:16 2010 -0800"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Mar 03 17:12:55 2010 -0800"
      },
      "message": "InputDevice filtering for jumpy screens.\nUpdated ScaleGestureDetector for framework deprecations.\n"
    },
    {
      "commit": "351434bd17ae72ccf1a38ee34a807aefda0aa819",
      "tree": "8ffbf08ec3ee18eb42e7a9d90f2264eef71564bb",
      "parents": [
        "c1552397be706c243338389c628a44eee6011eae",
        "5a73506cdd466f2b96686ced3ff0f7ca224d1143"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Mar 03 16:35:23 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 03 16:35:23 2010 -0800"
      },
      "message": "Merge \"Add error reporting for Tethering.\""
    },
    {
      "commit": "c1552397be706c243338389c628a44eee6011eae",
      "tree": "a6854366e2a68e37400a22ab95c7d9496007a4fa",
      "parents": [
        "6be0fc100e46bc1cd4d9eda6c63a962d1c24dbd4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 03 16:19:01 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 03 16:26:26 2010 -0800"
      },
      "message": "Allow multiple original-package tags.\n\nAlso fix some issues with moving files from update commands.\n"
    },
    {
      "commit": "5a73506cdd466f2b96686ced3ff0f7ca224d1143",
      "tree": "9818d6ef9b3f3dd9658d9ea7eb6ccb9de65d38f5",
      "parents": [
        "9b10ef5fe85e9d29721ff0cd15161f960d38a8db"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Mar 02 17:25:02 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Mar 03 15:14:29 2010 -0800"
      },
      "message": "Add error reporting for Tethering.\n\nAlso make the usb interface configuration more robust so retries are possible.\n\nMakes all Tethering errors recoverable - no harm letting them try again anyway.  Worst case\nis they need to reboot.\n"
    },
    {
      "commit": "9b10ef5fe85e9d29721ff0cd15161f960d38a8db",
      "tree": "a6830aad34d62273b02f0e3dbaa054dd7ec7c270",
      "parents": [
        "a034cd3e15b6626be03e60f2d6a0f929dcb950d9"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 03 09:45:24 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 03 14:06:10 2010 -0800"
      },
      "message": "Rework the way PackageManager binds to default container service.\n\nClean up stale containers when enabling/disabling packages on sdcard.\nCheck the path of packages which are being enabled.\nMake sure gc\u0027s are done prior to destroying containers when moving applicati\nas well as enabling/disabling packages for sdcard mount status changes.\n\nSome miscellaneous issues\n   Remove hack to avoid renaming containers.\n   Fix test with forward locked apps\n   Remove adding container id to asec list when renaming\n   Some cosmetic changes to DefaultContainerService\n"
    },
    {
      "commit": "5f8a300a1207878a893d63b6eeb8968679308c68",
      "tree": "d49cebf9fbc461ecf0ccd8aed792a2bb090b7a07",
      "parents": [
        "4ac163f3cbf58fad3357bf8ac2e9883233facc1d",
        "51cb9d5d55a673f329c17a689f724af772257804"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Mar 03 12:15:35 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 03 12:15:35 2010 -0800"
      },
      "message": "Merge \"Fix off by one error in NetworkManagementService.isUsbRNDISStarted()\""
    },
    {
      "commit": "4ac163f3cbf58fad3357bf8ac2e9883233facc1d",
      "tree": "50081b6ad769310983a28b2b7ea99232d1bb5a4d",
      "parents": [
        "f3685afc5d30e07fc35a0a4724d0c5d0cfea112b",
        "bf2dd44a6f86d13efd55d1e690822fba11187bf8"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Mar 03 12:14:54 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 03 12:14:54 2010 -0800"
      },
      "message": "Merge \"MountService: Send ACTION_MEDIA_UNSHARED Intent a volume is no longer shared via UMS.\""
    },
    {
      "commit": "51cb9d5d55a673f329c17a689f724af772257804",
      "tree": "d4f9ca764b22272f3c84968a90b32e7e72348afa",
      "parents": [
        "687c44f2f02cecc4103c611ead225f990402d1af"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Mar 03 15:12:00 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Mar 03 15:13:58 2010 -0500"
      },
      "message": "Fix off by one error in NetworkManagementService.isUsbRNDISStarted()\n\nChange-Id: I74eea36464696d63ad072661704b410bfe40c1c8\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "d9894bc3b3d9db952988140613c1186e8990d7c0",
      "tree": "ceb6e240e74d1547108905181351d7218554764a",
      "parents": [
        "0b49ab5cae98d5f27b490b6de35d92e7a63a2e64"
      ],
      "author": {
        "name": "Tadashi G. Takaoka",
        "email": "takaoka@google.com",
        "time": "Wed Mar 03 16:15:13 2010 +0900"
      },
      "committer": {
        "name": "Tadashi G. Takaoka",
        "email": "takaoka@google.com",
        "time": "Wed Mar 03 20:47:47 2010 +0900"
      },
      "message": "Fixed NPE by guarding the reference of variable\n\nBug: 2395174\n"
    },
    {
      "commit": "bf2dd44a6f86d13efd55d1e690822fba11187bf8",
      "tree": "0a115cfda2765dbc558318b692fd1874305cd6ac",
      "parents": [
        "c018f3cfdd8a8277dbb3b61d4761974862876ab9"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Mar 03 06:16:52 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Mar 03 06:16:52 2010 -0500"
      },
      "message": "MountService: Send ACTION_MEDIA_UNSHARED Intent a volume is no longer shared via UMS.\n\nChange-Id: I21c887ae76eccabcc5d8449aa0a38e98758e8958\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "97106ab5af0fdba00d6dbda4767b953e0a5829f4",
      "tree": "90e85136dcf8479b3a6e21c05bbda0c70fb07b9a",
      "parents": [
        "ddb42a421fe110bfce8dab1cc241ca0fc1f5290e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 03 00:08:31 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 03 00:08:31 2010 -0800"
      },
      "message": "Fix issue #2325621 Runtime restart after launching Android keyboard setting .\n"
    },
    {
      "commit": "b5ccb59e06920317642a655bf1b9ed840cb05182",
      "tree": "d6cdc6a3d9c0d99d369822f7e0b5147780ed6720",
      "parents": [
        "25c374e83659e1a468fa110af92ef4b89144deef",
        "faa7e8363e71cb441bf1cf5f17cb1679d9ced99f"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Mar 02 18:06:30 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 02 18:06:30 2010 -0800"
      },
      "message": "Merge \"DockObserver: Watch for exceptions in LocationManger.isProviderEnabled().\""
    },
    {
      "commit": "faa7e8363e71cb441bf1cf5f17cb1679d9ced99f",
      "tree": "4dcf401805f566fe2d0e3efb063f4e5ce538c630",
      "parents": [
        "c018f3cfdd8a8277dbb3b61d4761974862876ab9"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Mar 02 20:49:47 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Mar 02 20:52:46 2010 -0500"
      },
      "message": "DockObserver: Watch for exceptions in LocationManger.isProviderEnabled().\n\nChange-Id: Ieb9f6b0c20a6ce2223cb4b4956580b8543094c2f\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "a2e92266b3f768f74ab7fcb42972a22d6c739b39",
      "tree": "ddbce0189e04e2ef3b196c9d71dd9dab03410d4b",
      "parents": [
        "c018f3cfdd8a8277dbb3b61d4761974862876ab9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 02 17:19:29 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 02 17:37:45 2010 -0800"
      },
      "message": "Maybe fix issue #2482201: Paired bluetooth device looks like a qwerty keyboard\n\nWe now only consider a device to be a default keyboard if its name\nhas \"-keypad\".  A hack, but whatever.\n\nAlso add some debug logging for the input state to help identify such\nissues in the future.\n"
    },
    {
      "commit": "b601ce14f9bee3ba6ee017729ea6f926586f2c8d",
      "tree": "2a8ef9ae8cad07a3c3adfd1a079fbff4398f1cac",
      "parents": [
        "00611034cacc2d22a2e875509e910a142e359ab6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 01 23:36:02 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 02 11:43:16 2010 -0800"
      },
      "message": "Fix issue #2468687: back and home keys don\u0027t work on InCallScreen\n\nMake sure we update the focus after hiding a window via the\npolicy visibility.\n"
    },
    {
      "commit": "3b9ef08bbbdc95a609fa7883d6fff4b4fd22e33c",
      "tree": "77da686577397148b7789a1409748a4485eef05d",
      "parents": [
        "0245e09fa7916d7902b1719bde7c71add9afe9c2"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Mar 02 10:33:55 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Mar 02 10:33:55 2010 -0500"
      },
      "message": "Don\u0027t eat IllegalArgumentExceptions in LocationManagerService.\n\nThe exeptions should be returned to the Binder client instead.\n\nChange-Id: I8ab36880622bf8b4fdf28407dec50652c48b6712\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "debecf2e4094f7a901632286d3f45ea2211e7494",
      "tree": "c5278de8e38dc69a090207029acacfadb03a4e4c",
      "parents": [
        "0ef3eeec405efe2585eae8e675869dafdf81698f",
        "84a893467307eb3178b99a7926dea9c8e21579f1"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Mar 02 04:29:04 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 02 04:29:04 2010 -0800"
      },
      "message": "Merge \"Don\u0027t poke user activity when unplugging unless screen is already on.\""
    },
    {
      "commit": "5d26c1e38dabb3ad8b4b6e1000375f3b1a6b7693",
      "tree": "6ba3c3a0a6a5de37d65c07690de84080a91db3b3",
      "parents": [
        "69f22feb8540576d2a2e9d32f9c86ebbbf309409"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 01 16:09:43 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 01 18:34:50 2010 -0800"
      },
      "message": "Added a name to Surface created by SurfaceFlinger\n\nUpdated the window manager to use this new facility.\nSurfaces name are now printed by \"dumpsys\".\n"
    },
    {
      "commit": "69f22feb8540576d2a2e9d32f9c86ebbbf309409",
      "tree": "3b2b0225dd8adbf10a1135cf13cc212face5eca2",
      "parents": [
        "42c79880b0c19dfbcd8589d89d35fcedb1a7c9da"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 01 14:37:50 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 01 18:31:16 2010 -0800"
      },
      "message": "fix [2476230] sensor battery stats could get out of sync if an error occurs\n\nFixed a few problems with the SensorService:\n- a race condition when talking to the BatteryStatService\n- only report changes to BatteryStatService when there are no errors\n(ie: when a change actually happens)\n- tell the BatteryStatService when a sensor is deactivated because its\nclient died\n- rewrite enableSensor() so it\u0027s readable\n- implement dump() so dumpsys will display some infos about active sensors\n- recompute the delay properly when sensors are added/removed\n"
    },
    {
      "commit": "84a893467307eb3178b99a7926dea9c8e21579f1",
      "tree": "2cc0f89c239e8f86d33cdab1869d5080dc132a41",
      "parents": [
        "42c79880b0c19dfbcd8589d89d35fcedb1a7c9da"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Mar 01 21:28:58 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Mar 01 21:28:58 2010 -0500"
      },
      "message": "Don\u0027t poke user activity when unplugging unless screen is already on.\n\nChange-Id: I5a5f233541e13b3a916ad0d8b3bf8d6fb49ab7fd\nBUG: 1317687\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "5d3bea6229c2ba71e87c750204662ee71a01c2dd",
      "tree": "bc1f8a145a665595b36cc81dbcf858abb9da4090",
      "parents": [
        "12f807091db10d30aee53b98a175668abf91f6e0"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Mar 01 13:44:29 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Mar 01 13:44:29 2010 -0800"
      },
      "message": "fix the build\n"
    },
    {
      "commit": "8a9b22056b13477f59df934928c00c58b5871c95",
      "tree": "ba3f00f16d2f0b744de34b49da37f4df2da7e95e",
      "parents": [
        "0ec40173b6875cf5ab0b95fb0b2e480f18bfcfbf"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri Feb 26 18:56:32 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Mar 01 13:06:50 2010 -0800"
      },
      "message": "Switch the services library to using the new Slog\n"
    },
    {
      "commit": "28a8c2bc140bf3efe732f01057ac280eb85706d0",
      "tree": "f41c9c3de45f300019418a0f97295e2034bb6c0d",
      "parents": [
        "1be40985283e77d3fc5d98268f9f6453bcc7223e",
        "4dcd2ee8cacc9b4c396b8611189595fd9bb7bcad"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 01 11:30:02 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 01 11:30:02 2010 -0800"
      },
      "message": "resolved conflicts for merge of 4dcd2ee8 to master\n"
    },
    {
      "commit": "4dcd2ee8cacc9b4c396b8611189595fd9bb7bcad",
      "tree": "18f73680e6345b765b659ea1bf390e003d5366ac",
      "parents": [
        "fc7028f1c68dcc8d59c8e4daf4a8917a3d9a7558",
        "7bb2581e6f404da0edba9ebb81b0d0593715eb40"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 01 09:30:21 2010 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 01 09:30:21 2010 -0800"
      },
      "message": "merge from open-source master\n"
    },
    {
      "commit": "7bb2581e6f404da0edba9ebb81b0d0593715eb40",
      "tree": "1ca3c4dc2d86df5df6a55db38fdd5804eef81cdd",
      "parents": [
        "853226b147fb7be7709ce55e7100ebfea6719435"
      ],
      "author": {
        "name": "Magnus Edlund",
        "email": "magnus.edlund.x@sonyericsson.com",
        "time": "Wed Feb 24 15:45:06 2010 +0100"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Mar 01 09:12:07 2010 -0800"
      },
      "message": "Fix problem with restarting an application process that recently has died.\n\nThere exists a race condition when starting a process that recently has died.\nIf the ActivityManager receives the death notification for the died process\nafter the new process has been started but before an application thread has\nbeen attached to the new process will the newly created process be removed\nduring the cleanup of the died process. If this happens when sending a broadcast\ncould it result in an ANR.\n\nThis is solved by doing the clean up before starting a new process that uses\nthe same process record.\n"
    },
    {
      "commit": "a33097d6d18415ce9cf68af1840d40cb94c2baac",
      "tree": "4f3e129e444afb31dbfd0204e224d8fa454c5082",
      "parents": [
        "b71c6164ef1b09521bc6e14f18de75be80381887",
        "ca44df86ac907fd147633955f6fda7a249625d50"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Feb 27 06:16:54 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 27 06:16:54 2010 -0800"
      },
      "message": "Merge \"Fix synchronization problem in PowerManagerService.dump()\""
    },
    {
      "commit": "87bba1ee14279bb14a28d42e27c4ef66d9967bf8",
      "tree": "915eb0be9f5fac21d24bacf76438cafb9f14bae0",
      "parents": [
        "8c49df4f36bee2878ab0ff7dc99dff60dc7354fb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 26 17:25:54 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 26 23:32:48 2010 -0800"
      },
      "message": "Move DeviceAdmin APIs to android.app.admin.\n\nAlso add ability for admins to hide themselves when not in use,\na facility for admins to not allow other admins to reset\ntheir password, and debug dumping.\n"
    },
    {
      "commit": "c9d5fb7c95f158d9a31d534895373afcfad77806",
      "tree": "43629cb3e1ba3fb11dc2beaa706b1a6ef21340df",
      "parents": [
        "8f7f35e0ccd91c964b9d3eeef81ff829622dfa74"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 25 12:29:30 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Feb 26 17:48:09 2010 -0800"
      },
      "message": "Add build options for tethering.\n\nDun-required bool and list of allowed upstream ifaces.\n"
    },
    {
      "commit": "8f7f35e0ccd91c964b9d3eeef81ff829622dfa74",
      "tree": "f00fafb472259f5b1cfa416b54cf62a2c3bef735",
      "parents": [
        "59dc9ecec6e4f53a1a2934b08c7f779d2b0a0d9a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 25 18:48:12 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 26 16:34:33 2010 -0800"
      },
      "message": "Add new -W option to Am to wait for the start to complete.\n"
    },
    {
      "commit": "d84aca7d3c5e51567e5ed25585d1b1d9629b2d93",
      "tree": "a554013824b293184fd6b6f1c58fb9ed3813451b",
      "parents": [
        "3f016cfd482721ded01109b8f5c07dfa214ccb05",
        "1cb3cb1a94342e03b54fabfaf361c9e2e26f23fe"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 26 15:19:10 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 26 15:19:10 2010 -0800"
      },
      "message": "Merge \"Tethering: Use battery changed broadcast instead of UMS broadcast to determine when USB is connected and disconnected.\""
    },
    {
      "commit": "1cb3cb1a94342e03b54fabfaf361c9e2e26f23fe",
      "tree": "e2464ec3ae18ca03a318822abe982ab5de8b1cda",
      "parents": [
        "eb6d13102331fb776e5ac586ebdc523ee69d2ddf"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Feb 26 17:22:27 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Feb 26 18:00:58 2010 -0500"
      },
      "message": "Tethering: Use battery changed broadcast instead of UMS broadcast to determine\nwhen USB is connected and disconnected.\n\nThis is needed because the UMS broadcasts will not be sent when UMSis disabled.\n\nChange-Id: I4488fee2c19ac9c901596d1430ea371df97e4325\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "1f9e1b4c37c135b75cf064cbb5675aa576e2942a",
      "tree": "1ca95439c91aaa52a74fcbf1833869c614602abe",
      "parents": [
        "eb6d13102331fb776e5ac586ebdc523ee69d2ddf"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 26 13:14:31 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 26 14:32:24 2010 -0800"
      },
      "message": "Remove public variables in PackageManager\nDont invoke getInstallLocation for forward locked apps.\nIf INSTALL_ON_SDCARD is selected as default, forward locked\napps are not being installed because of conflicting flags.\n"
    },
    {
      "commit": "f8219914f2269fb0932e140c966f24e47438f8fe",
      "tree": "a0a2a4f6070ff5700214308a1dc1d6b4e38e1afd",
      "parents": [
        "0eec21d97d9dc4eb4fdbad0e4c0fc53703452d02",
        "7d411a3b947ba82d1d57f73c0fa698c3b9c95892"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@android.com",
        "time": "Fri Feb 26 13:06:42 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 26 13:06:42 2010 -0800"
      },
      "message": "Merge \"Add single-package restore to Bmgr feature set\""
    },
    {
      "commit": "0eec21d97d9dc4eb4fdbad0e4c0fc53703452d02",
      "tree": "b18ff4aebe681cd501d79522ca3244e0b0720c9e",
      "parents": [
        "4c904a3bf3dbe98607b5e3f706ee8ef8887ee104"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Feb 25 17:07:14 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 26 12:48:21 2010 -0800"
      },
      "message": "Add dialog to display storage users when enabling/disabling ums\n\nSome error dialogs and related strings\nMountService changes to follow unmount path when enabling ums.\n\nPlease note that MountService api setUmsEnabled does not return\nerror codes for now. This is a known limitation.\n"
    },
    {
      "commit": "7d411a3b947ba82d1d57f73c0fa698c3b9c95892",
      "tree": "9fae7c4860733aaa126af64ab433c98665ff2819",
      "parents": [
        "4c904a3bf3dbe98607b5e3f706ee8ef8887ee104"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 26 11:27:08 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 26 12:45:22 2010 -0800"
      },
      "message": "Add single-package restore to Bmgr feature set\n\nAlso sanity-check the package name on the Backup Manager side, failing gracefully\nif the given package is not a backup/restore participant.\n\nBug: 2293977\n\nChange-Id: I3575046ffcaa3cf45c1c602824baeadd64082f70\n"
    },
    {
      "commit": "5035fdab3dbb60b226bc6bb2f03e9944bcb964cd",
      "tree": "84b85303b72926ed2b33253ba11553524a55d954",
      "parents": [
        "3f3e53bc30dbf0e47c90be5cf4bd4faabda9c601"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 25 18:01:14 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 25 18:01:14 2010 -0800"
      },
      "message": "Default the auto-restore setting to \"enabled.\"\n\nChange-Id: I7d8710466214a1b09aabdd71e77b9b34d3d62365\n"
    },
    {
      "commit": "ae06ed97382429f51075d257e3290cdd86f66326",
      "tree": "5198e27de4d596d55b57261c5e429fe53acb840c",
      "parents": [
        "50d89f961630e2d972013f20b8001d0aa0adedf4"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 25 17:13:28 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 25 17:13:28 2010 -0800"
      },
      "message": "Fix the build\n\nChange-Id: I41616afc75a3366ea7e9e79ac7ea4c46d1863d83\n"
    },
    {
      "commit": "f087272d56ff84157e2481b7ca34d4d077affa74",
      "tree": "84745a69d5a941d3e080fceb06b7a6348c616c0b",
      "parents": [
        "277903f8d853297a1d22ea07e27e04d6534bc430"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 25 15:22:48 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 25 15:28:38 2010 -0800"
      },
      "message": "Start respecting the auto-restore-at-install setting\n\nChange-Id: I420ff6b4ba72f87bee56f45d8906f086f7a2b114\n"
    },
    {
      "commit": "7964d1f7ac7ca1b1094e9894616cd2d41c2c26ca",
      "tree": "df11864fbb883c14bfede20d57fd960dde3bd3d2",
      "parents": [
        "018ff891a04b5849a1cfb15e5272330ee3f1810a",
        "35429599728793a6830a8ce32a62e98cabefc90e"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 25 12:18:26 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 25 12:18:26 2010 -0800"
      },
      "message": "Merge \"Fix no-mobile-data after wifi.\""
    },
    {
      "commit": "35429599728793a6830a8ce32a62e98cabefc90e",
      "tree": "5b3eb5d30207bf7eb356490bf6452f8e4f516942",
      "parents": [
        "e46145f7c114b9ac6d19c6a7886e9239463f91e1"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 25 12:04:29 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 25 12:04:29 2010 -0800"
      },
      "message": "Fix no-mobile-data after wifi.\n\nMissed a case - if you disabled mobile data and then cycled wifi, 3g would\nbe turned back on.\n\nbug:2251458\n"
    },
    {
      "commit": "2269d1572e5fcfb725ea55f5764d8c3280d69f6d",
      "tree": "7ce0788be6d85972d42ee7135cdce82aa323fcc7",
      "parents": [
        "e46145f7c114b9ac6d19c6a7886e9239463f91e1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 24 19:54:22 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 25 11:39:33 2010 -0800"
      },
      "message": "Re-arrange android-common so framework no longer links with it.\n\nThis is the framework part, moving classes around so the framework\nno longer needs to link to android-common.  Makes some APIs public,\nothers that didn\u0027t need to be public are private in the framework,\nsome small things are copied.\n"
    },
    {
      "commit": "ca44df86ac907fd147633955f6fda7a249625d50",
      "tree": "deab6397db5153b351beb0cf31825d7478e17eb6",
      "parents": [
        "2ec30697c6cc6812dfaeb9a2e7d1da0443aeb8e6"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Feb 25 13:48:49 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Feb 25 14:08:55 2010 -0500"
      },
      "message": "Fix synchronization problem in PowerManagerService.dump()\n\nFixes a race condition that resulted in an IndexOutOfBoundsException\ndue to a wakelock being released while dump() was iterating through the\nwakelock list.\n\nBUG: 2469910\n\nChange-Id: I10d7a65b9f397934942b290cb047c4ca81214297\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "a712dcec1cae2971dcc81b12bd894c98fcc65981",
      "tree": "014953789872dca2328a3dc0b8f02e9f100baba6",
      "parents": [
        "74f39d4c172398c96fa3d6dbdec740bc168e60f1"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Thu Feb 25 11:05:12 2010 +0100"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Thu Feb 25 11:14:21 2010 +0100"
      },
      "message": "Init car mode when phone is booted in a dock.\n\nWhen the device is booted in a car dock the car mode needs to be set\nas well, so that the status bar notification shows up and the system\nis initialized the same way as if the phone is placed into a car dock\nwhen it\u0027s booted already.\n"
    },
    {
      "commit": "c42e29e0a58d07a95d470780216cdf1d67476bd6",
      "tree": "bb2a39fe7ddaf416a3a67a98eb12b661c7070d6d",
      "parents": [
        "406b09bbd117446814a05aabc5971fd55c6afa5d"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Feb 22 16:03:53 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Feb 24 20:30:03 2010 -0800"
      },
      "message": "Add new handler mechanism in MountService to make unmount api asynchronous.\nMountService updates state on PackageManager and then tries to\nkill processes holding file references to media about to be unmounted by\ninvoking api on ACtivityManager. This is retried upto 4 times to make sure all\nprocesses holding file references are killed before unmounting the media\nat specified path.\n\nAlso changed PackageManger api to return boolean value to indicate if\nMountService is likely to receive broadcasts related to apps on sd.\n"
    },
    {
      "commit": "406b09bbd117446814a05aabc5971fd55c6afa5d",
      "tree": "bc3b08fe84878851d4d8743b682a0991596799ed",
      "parents": [
        "ba289966c644bf54a747ba9b003f86ea7f12bfed",
        "c03fa5014912684367174ff3cce664deb29f5e0e"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Feb 24 19:45:32 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 24 19:45:32 2010 -0800"
      },
      "message": "Merge \"Add mobile data on/off switch.\""
    },
    {
      "commit": "982bb24f5db4bfd9c52eb16adb876fea7c7e4a8b",
      "tree": "5737eef7b66397042638a2ca2a698c2ef7ab8400",
      "parents": [
        "694b787e197ab8ffe1a3bfbce051bf14eee1694a",
        "6a965af2d76f6cf3ec980c8ecfd257f49b3c97e3"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 24 19:04:48 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 24 19:04:48 2010 -0800"
      },
      "message": "Merge \"MountService: Send UMS_CONNECTED broadcast on boot if UMS connected.\""
    },
    {
      "commit": "6a965af2d76f6cf3ec980c8ecfd257f49b3c97e3",
      "tree": "3a8fcafe81350dce5a89370f52d82b9a8cd6144f",
      "parents": [
        "9b1e9edff5036745c14fb52553f8417a274ad9de"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 24 17:47:30 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 24 18:14:18 2010 -0800"
      },
      "message": "MountService: Send UMS_CONNECTED broadcast on boot if UMS connected.\n\nUMS detection is now done wayyyy before the system is booted, so set a flag\nto send our intent broadcast once we\u0027ve booted.\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "c03fa5014912684367174ff3cce664deb29f5e0e",
      "tree": "1f18a0a27c2f2fea7a1f73c84e88dcb98fe77f02",
      "parents": [
        "240becc68d2ffa967d79af9c0ef50e6113420e47"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Feb 23 18:58:05 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Feb 24 18:14:07 2010 -0800"
      },
      "message": "Add mobile data on/off switch.\n\nbug:2251458\n"
    },
    {
      "commit": "d70a3d4e2d356aab4cac313f1f9d8272a5e3e8d0",
      "tree": "61fa3391480c05cb507ad314e40065506309bfee",
      "parents": [
        "21a20a39aeb083335fabd1d1098a73977131ec3f"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Feb 23 18:15:29 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Feb 24 18:03:40 2010 -0800"
      },
      "message": "Tethering improvements.\n\nChanges due to comments.\nFixing Tether teardown.\n\nbug:2422545\n"
    },
    {
      "commit": "3dda518a4fd57cdded3afa50d8aa206501de7fc6",
      "tree": "4f94ac2f5cf057501c9cbd9f4f814432c701443b",
      "parents": [
        "27eb24148a935d10c2c490205174c59a47e76dc6"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Feb 24 16:06:18 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Feb 24 17:23:54 2010 -0800"
      },
      "message": "Add \u0027restoreAnyVersion\u0027 attr for apps that want to restore \"future\" data\n\nIf a backup-participating app sets android:restoreAnyVersion\u003d\"true\" in its\nmanifest \u003capplication\u003e tag, then its agent will be invoked for restore\neven if the available dataset was created by a later version of the app\nthan is currently installed on the device.  This will not typically be\na problem for third party applications, since for them the installation\nand initial data restore are tightly coupled, but it can cause serious\nproblems for applications which are both preinstalled on the system\npartition and overridden by later updates.  The primary difficulty\nthat this new attribute addresses is this:\n\n1. User buys a Nexus One, Market self-updates, and the user installs some apps.\nAt this point the backup data on the server may indicate that the version of\nMarket which originated its bookkeeping is newer than the stock N1 Market app.\n2. User loses their phone, and buys a replacement N1.  At setup time, Market\nhas not yet had a chance to self-update, so when the restore comes in, it\u0027s\ntagged as being from \"the future\" and so the restore is refused.  No apps get\nreinstalled.\n\nBug: 2442127\nChange-Id: I076a9553dc613e5c3189350e778315718ed1ed2b\n"
    },
    {
      "commit": "c3b91fd26a940f8cee54888f91b490cb1768b03c",
      "tree": "d00d38423c8dc6efc9d0ec2635259803555ac497",
      "parents": [
        "58cf334ff4cfb7cf41e0d3eea86f129e25101bbf"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 23 17:25:30 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 24 13:12:52 2010 -0800"
      },
      "message": "Fix crash in PendingIntentRecord debug output.\n\nAdd null checks to a few places to avoid crashes when dumping\ndebug data.\n\nAlso add some sanity checks for accessing content providers in\nthe activity manager.\n"
    },
    {
      "commit": "cf6eaeaae9e6745dd6e07540812c79821d7043c2",
      "tree": "fe1224c5b492a8ad09d00e167b66a45413fb3d73",
      "parents": [
        "2a399f066d4f3870385002cdcda8082a0eeeb770"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 23 19:37:45 2010 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 24 11:31:36 2010 -0800"
      },
      "message": "Some framework fixes for apps on sd\nchange hard coded path in installd\nfix tests\nWork around for renaming containers.\nDo forced unmount when destroying containers.\nForce a gc in default container service to release handle to parsed package\nand thus avoid getting killed by vold\nSome cosmetic changes to PackageManager api.\nUnit tests for renaming container for MountService\nRemove internal size limit on app to be installed.\n"
    },
    {
      "commit": "85451ee15fdf6cae371dc3005441988c7d426401",
      "tree": "ddf4f750bb3b73759f6268ed975bb385edf3322c",
      "parents": [
        "9ff1f96fdf1c88c55c45e0876b10a3a9686dc28a"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 24 08:54:18 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 24 08:54:18 2010 -0800"
      },
      "message": "MountService: Fix bug which would allow apps to try to rename a container whos dst is mounted\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "0e93b562f41759f05a449f68da5c4c14fb461a8f",
      "tree": "f98b2474f82906828ba205298ddaab85095d58e8",
      "parents": [
        "a439e52725c0dcd52cbd1673df37c76fa5c7d349",
        "f0fda925e6e82a7ceaf580718c1f8de2c2b8dadc"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Tue Feb 23 19:20:22 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 23 19:20:22 2010 -0800"
      },
      "message": "Merge \"Make the notification windowshade work properly with overscroll.\""
    },
    {
      "commit": "f0fda925e6e82a7ceaf580718c1f8de2c2b8dadc",
      "tree": "28bedece15cca73b11e8dc90f1b47365d5827542",
      "parents": [
        "33285c37abee6d95d0ac55cd7e9889cdc8d96d14"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Feb 23 19:18:54 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Feb 23 19:18:54 2010 -0800"
      },
      "message": "Make the notification windowshade work properly with overscroll.\n\nBug: 2432590\n"
    },
    {
      "commit": "6142a0b68fffb2d9595c364ebf4f8be996f37f77",
      "tree": "2fd41740966c89152d4682c7cd129673ddf44777",
      "parents": [
        "2854419072ec2cc109f4e6af1bf96ff9396563cf"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Feb 23 18:15:29 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Feb 23 18:15:29 2010 -0800"
      },
      "message": "Fix build.\n\nclicked \"submit\" on I65ae29bd when I shouldn\u0027t have.\n\nFixing according to comments and a build error change.\n"
    },
    {
      "commit": "5cde63a60d3c70e613642ad8a3910bcd3475e9cb",
      "tree": "11d99e43f45960d4ecd4587312f1b0e61aadf30e",
      "parents": [
        "2e1818a4d16c3309660f27286c77d8d1eee95a25",
        "65ae29bd852ff468ad003af241d5177fe016c74a"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Feb 23 18:08:04 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 23 18:08:04 2010 -0800"
      },
      "message": "Merge \"Add USB RNDIS enable/disable control\""
    },
    {
      "commit": "65ae29bd852ff468ad003af241d5177fe016c74a",
      "tree": "e60cea5f80ac7ea250dcba3f477d452e9a5c8be0",
      "parents": [
        "33285c37abee6d95d0ac55cd7e9889cdc8d96d14"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 18 11:25:54 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Feb 23 16:04:41 2010 -0800"
      },
      "message": "Add USB RNDIS enable/disable control\n\nAlso adding interface configuration to the tethering machine.\nAlso fixing netd bug that didn\u0027t send up/down portion of iface config command.\n"
    },
    {
      "commit": "6fd5e0ac51021d55beb2c1f6f184469311301711",
      "tree": "eb5128ca64addfe3939c855125756a9d2abb1260",
      "parents": [
        "e5a1d4a21eb35abe75f60cd0416ee469e8c2471b"
      ],
      "author": {
        "name": "Bernd Holzhey",
        "email": "holzhey@google.com",
        "time": "Thu Feb 18 11:19:56 2010 +0100"
      },
      "committer": {
        "name": "Bernd Holzhey",
        "email": "holzhey@google.com",
        "time": "Tue Feb 23 06:04:33 2010 +0100"
      },
      "message": "Fix calculation of the next twilight update for locations where the day or night never ends.\n"
    },
    {
      "commit": "f13f60127ec570590ef5acf3690d8eba4a3d7ea4",
      "tree": "59d710ab994c4543543f3ca74b68f552d0a53dc7",
      "parents": [
        "90c79c4fe6d207356fbdbd1b1a8b3dbea2540194",
        "9e0f5d9a63ba88c2bf69df0557f8c9696db370c4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 22 20:48:01 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 20:48:01 2010 -0800"
      },
      "message": "Merge \"Fix some random bugs.\""
    },
    {
      "commit": "9e0f5d9a63ba88c2bf69df0557f8c9696db370c4",
      "tree": "f1ae5c2aac298756a0db18fdb13a73f0a052728b",
      "parents": [
        "0f70868c835011a44d110fd48d00f49f60f38507"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 22 15:05:42 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 22 20:45:58 2010 -0800"
      },
      "message": "Fix some random bugs.\n\n2185256: After open \u0026close of device keyboard shortcut does not added to Home desktop.\n\nActivityThread was losing the last saved state when restarting or launching into\na paused state.\n\n2366174: defaults not cleared when they should be\n\nPackageManagerService now removes any preferred activity records for a package\nwhen it is uninstalled.\n\n2154556: Battery stats can have an unbounded number of wake locks\n\nWe now start combining wake locks into one shared record when we hit a\nmaximum limit (currently 20).\n\n2442519: Foreground services can have no notification by providing a bogus one.\n\nIf the notification manager rejects our notification, the service is forced to\nno longer be in the foreground.\n\n2442383: Finalization issues in com.android.server.am.PendingIntentRecord.java\n\nCleaned up finalization to call super class and avoid the big activity manager\nlock (we still need to use the locks inside of the message system, but these\nare much less likely to be a problem).\n\n2284190: Cannot call a phone number using adb\n\nWe weren\u0027t getting the calling uid/pid in startActivity() if the caller did not\nsupply an application record.\n"
    },
    {
      "commit": "46db504de583d7d644a28a4e7adae43eed5df1ba",
      "tree": "0d0a3f18eedf790f3f85ada26875d3211c2aa8c6",
      "parents": [
        "2f6a01858bea6c669039b0b1e10aa65fc73c7256"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Feb 22 16:36:44 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Feb 22 20:42:27 2010 -0500"
      },
      "message": "Don\u0027t start location providers until the system is ready.\n\nChange-Id: Id545e95705e59ffbaaab8a679a1b7df488813101\nBUG: 2461320\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "6fb7cbf12ad6c423a84e815c314f917c88234ae6",
      "tree": "ae3b201245f47f23fbfac6768b3ca2ce616dc2c9",
      "parents": [
        "42122b6aa6957722326a36d8f00078f22a333cc6",
        "c07907e0389f20f83fdfe01319023b8c7d5e4bbd"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Feb 22 16:46:08 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 16:46:08 2010 -0800"
      },
      "message": "Merge \"Show the USB mass storage UI as soon as USB is connected.\""
    },
    {
      "commit": "c07907e0389f20f83fdfe01319023b8c7d5e4bbd",
      "tree": "efc40c20eed0eb1c74d055e6b2ea3736802683f1",
      "parents": [
        "ec2c88d835dac156be0d14bd2b73cf3825e2e164"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Mon Feb 22 15:08:41 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Mon Feb 22 16:39:47 2010 -0500"
      },
      "message": "Show the USB mass storage UI as soon as USB is connected.\n\nThis is a huge usability win for average users who are\ntrying to transfer files: it coaches them through the\nprocess while at the same time saving a number of steps.\n\nIf the user is just charging via USB, they\u0027re most likely\nnot actively using the device, in which case they won\u0027t\nnotice the difference.\n\nUsers with ADB turned on will see the old behavior (just the\nongoing notification, which pops the UsbStorageActivity if\ntapped).\n\nBug: 2299129\n\nChange-Id: Ib63a0a973dfdeb28741268fcf0e0fbc1b7be2922\n"
    },
    {
      "commit": "b09cc2cde25d02f668b8bc2115a9479425f48703",
      "tree": "9dc9497ee2500afe2b67d0c909261169cb585d92",
      "parents": [
        "93ed831c9010588a4cf5100462a558c15d2128b4",
        "3d4881067a16c7f65f2aeb06f58eb3f106b05c45"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Feb 22 13:21:58 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 13:21:58 2010 -0800"
      },
      "message": "Merge \"MountService: Force unmount when enabling ums\""
    },
    {
      "commit": "3d4881067a16c7f65f2aeb06f58eb3f106b05c45",
      "tree": "86788c1fd5af269e98b7adb72d3891e117226ea8",
      "parents": [
        "9a56aaf12b462a064e81e02386eca8a1e77fe737"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Feb 22 11:39:16 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Feb 22 13:08:44 2010 -0800"
      },
      "message": "MountService: Force unmount when enabling ums\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "7e31e0c351a3b2bb70ee5507b34f1c72d62b56d7",
      "tree": "5b177c59b9ab317e3951b6369a5676080afd9788",
      "parents": [
        "ec2c88d835dac156be0d14bd2b73cf3825e2e164",
        "21f1bd17b2dfe361acbb28453b3f3b1a110932fa"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 22 12:18:01 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 12:18:01 2010 -0800"
      },
      "message": "Merge \"Fix issue #2438980: Implement package watcher for voice recognizer service setting\""
    },
    {
      "commit": "ec2c88d835dac156be0d14bd2b73cf3825e2e164",
      "tree": "dd1a7805c6951214ebb60fde3a2f7c28d358cc5a",
      "parents": [
        "9a56aaf12b462a064e81e02386eca8a1e77fe737"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Sat Feb 20 01:04:57 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Mon Feb 22 15:10:38 2010 -0500"
      },
      "message": "Move new sound effects to the system stream.\n\nChange-Id: I11cfa6495abeb0193b1a3929ec54f0386cfe9ed2\n"
    },
    {
      "commit": "21f1bd17b2dfe361acbb28453b3f3b1a110932fa",
      "tree": "531c362903a1c327db99630996948da85cdedaf7",
      "parents": [
        "9a56aaf12b462a064e81e02386eca8a1e77fe737"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 19 17:02:21 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 22 11:27:52 2010 -0800"
      },
      "message": "Fix issue #2438980: Implement package watcher for voice recognizer service setting\n\nI am getting tired of writing package monitor code, realized this is missing in\na number of places, and at this point it has gotten complicated enough that I\ndon\u0027t think anyone actually does it 100% right so:\n\nIntroducing PackageMonitor.\n\nYes there are no Java docs.  I am still playing around with just what this\nthing is to figure out what makes sense and how people will use it.  It is\nbeing used to fix this bug for monitoring voice recognizers (integrating the\ncode from the settings provider for setting an initial value), to replace\nthe existing code for monitoring input methods (and fix the bug where we\nwouldn\u0027t remove an input method from the enabled list when it got\nuninstalled), to now monitor live wallpaper package changes (now allowing\nus to avoid reverting back to the default live wallpaper when the current\none is updated!), and to monitor device admin changes.\n\nAlso includes a fix so you can\u0027t uninstall an .apk that is currently enabled\nas a device admin.\n\nAlso includes a fix where the default time zone was not initialized early\nenough which should fix issue #2455507 (Observed Google services frame work crash).\n\nIn addition, this finally introduces a mechanism to determine if the\n\"force stop\" button should be enabled, with convenience in PackageMonitor\nfor system services to handle it.  All services have been updated to support\nthis.  There is also new infrastructure for reporting battery usage as an\napplicatin error report.\n"
    },
    {
      "commit": "679dd12fa1edb7b5600e84671e06dc957fa8f784",
      "tree": "e1c3e108fd4e0af85d788573fceb21212ef15899",
      "parents": [
        "7edf7388b81eb7e3d3ed1e717f69896c3d95ecfa"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Feb 22 10:52:11 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Feb 22 10:52:11 2010 -0800"
      },
      "message": "Ignore touch down events near the edge of the screen for the purposes of pulling down the\nwindowshade.\n\nThis makes it happen less often when you pick up the device or push open the keyboard.\n"
    },
    {
      "commit": "59eac4b535adad485bffcfb07ae4b734168fc2e6",
      "tree": "b29a765e94fa7ab81b0fa52e8791557c35d90cc9",
      "parents": [
        "232f24e9c12a19cbbef304fb6ffc108d1334a800"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 19 19:25:45 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 19 19:25:45 2010 -0800"
      },
      "message": "Fix crash: check for install failure cleanly\n\nDon\u0027t go looking at attributes of a package struct without first verifying\nthat the struct pointer is non-null:  in the failed-install case, of course\nthere will be no package info.\n\nChange-Id: I3b2cafca2f1e3891a6592825ce5bcc977e7f3483\n"
    },
    {
      "commit": "1bb6906c7a903ee6427c8ff37bdc5896c386ff73",
      "tree": "bdb540e8ba002ae648456c0d1af905ac7edd3676",
      "parents": [
        "6ad5a7a7c78799ecb306cb97d979bdb98cc52d15"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 19 17:02:12 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 19 17:24:07 2010 -0800"
      },
      "message": "Automatically restore app data at install time\n\nWhen an application being installed defines a backupAgent in its manifest, we\nnow automatically perform a restore of the latest-known-good data for that app.\nThis is defined as \"data backed up by this app from this handset, if available;\notherwise data for this app as it existed when the device was initially\nprovisioned.\"  If neither option exists for the app, no restore action is\ntaken.\n\nThe CL involves major changes in the Backup and Package Managers...\n\n* The Package Manager\u0027s act of installing an application has now been split\ninto two separate phases, with a data-restore phase optionally occurring\nbetween these two PM actions.  First, the details of the install are performed\nas usual.  Instead of immediately notifying install observers and issuing the\ninstall-related broadcasts, the in-process install state is snapshotted and\nthe backup manager notified that a restore operation should be attempted.  It\ndoes this by calling a new API on IBackupManager, passing a token by which it\nidentifies its in-progress install state.\n\nThe backup manager then downloads [if possible] the data for the newly-installed\napplication and invokes the app\u0027s backupAgent to do the restore.  After this\nstep, regardless of failure, it then calls back into the Package Manager to\nindicate that the restore phase has been completed, supplying the token that\nwas passed in the original notification from the Package Manager.\n\nThe Package Manager then runs the final post-install actions: notifying install\nobservers and sending out all the appropriate broadcasts.  It\u0027s only at this\npoint that the app becomes visible to the Launcher and the rest of the OS.\n\n... and a few other bits and pieces...\n\n* The ApplicationInfo.backupAgentName field has been exposed to the SDK.  This\ncan be reverted if there\u0027s a reason to do so, but it wasn\u0027t clear that this\ninfo needs to be hidden from 3rd party apps.\n\n* Debug logging of restore set IDs and operation timeout tokens [used during\nany asynchronous Backup Manager operation] are now consistently in hex for\nreadability.\n\n* We now properly reset our binder identity before calling into the transport\nduring restore-set operations.  This fixes a permissions failure when a\nsingle-app restore was attempted.\n\n* The \u0027BackupTest\u0027 test app is no longer lumped onto the system partition\nby default.\n\nChange-Id: If3addefb846791f327e2a221de97c8d5d20ee7b3\n"
    },
    {
      "commit": "6c81defa3d1111c36f8b0c9c4e84e8b2c342620f",
      "tree": "135f77c35a105adfb00782f991112a61a8c57b34",
      "parents": [
        "8afbc53578a55cb39f97f959a0b444bf24f317ee",
        "8946dd3355fc1dcbad872c0546e356474d4cc5de"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 14:27:29 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 19 14:27:29 2010 -0800"
      },
      "message": "Merge \"Move package from internal to external and vice versa.\""
    },
    {
      "commit": "8946dd3355fc1dcbad872c0546e356474d4cc5de",
      "tree": "8b614c938152df8ad809fd9bf03c6876c8a7a58e",
      "parents": [
        "eac461cf7c246df737d2b0e7bd30be176a34c36e"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 09:19:34 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 14:20:54 2010 -0800"
      },
      "message": "Move package from internal to external and vice versa.\n"
    }
  ],
  "next": "fafb041b47c1c5f6a4c253768295ed3aeb7ad412"
}
