)]}'
{
  "log": [
    {
      "commit": "6787b7c597f24a522be4bf02e8b3797ff42336f3",
      "tree": "37926795c3245c09072fb3934f937e39ad0bbd7d",
      "parents": [
        "b83b556eadd73b0cbcd50664b1cc4fca51815cc2",
        "961aa8c8879e9f68c0eddcaf87565200a4347134"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Mar 23 08:07:47 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 23 08:07:47 2010 -0700"
      },
      "message": "Merge \"Compact when NativeDaemonConnector hits buffer limit\""
    },
    {
      "commit": "85f2c9ce5a0e074df2429a5d66e1754e368a0430",
      "tree": "ab3dc62cabf9fc1ace4ace8b4011f66f024734c2",
      "parents": [
        "1a26c9aa0b96d30fc99eeb10bfd41f966ceb003a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 22 11:12:48 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 22 22:20:26 2010 -0700"
      },
      "message": "Fix issue #2530103: ActivePassword data in Device Policy Manager needs to be persisted\n\nAlso fixes how the quality vs. mode is handled to be more consistent, which also\nrequired introducing a new \"alphabetic\" quality since it is possible for the user\nto enter such a password.\n\nThe current password quality and length is stored in the DPM, since at boot it\ncouldn\u0027t figure this out from the stored password.\n\nChange-Id: I519d9b76dd0b4431bcf42920c34dda38c9f1136e\n"
    },
    {
      "commit": "f657b63c1c20252e1b0eb0646efb479420c828be",
      "tree": "73f593e912e93743169fa2f325ff87f2a3d77d94",
      "parents": [
        "49de491379fc56960d00ff6c52472fe1a7d907a7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 22 18:08:07 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 22 18:08:07 2010 -0700"
      },
      "message": "Fix restoring of permissions after a reboot.\n\nIt turns out the whole loadedPermissions thing was pointless at this\npoint, and causing the problem: we would write out the granted\npermissions, then at boot load them into loaded permissions, and\nnever actually put them in granted.\n\nJust remove loadedPermissions.  The grantedPermissions (that is\nthe permissions the user has approved be granted to the app) are\nall we care about.\n\nChange-Id: I54d9dc418d6277ae0b35b8c1fc4b9c11f34f86f0\n"
    },
    {
      "commit": "961aa8c8879e9f68c0eddcaf87565200a4347134",
      "tree": "af43cfd433d00220ee1510154e60d6cf05e8d301",
      "parents": [
        "49de491379fc56960d00ff6c52472fe1a7d907a7"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Mar 22 18:02:45 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Mar 22 18:02:45 2010 -0700"
      },
      "message": "Compact when NativeDaemonConnector hits buffer limit\n\nIf NativeDaemonConnector hits its buffer limit, it would truncate the\ndata and lose some information. This change compacts the buffer and then\nretries to read the rest of the data.\n\nChange-Id: I0d5fee097bdd6808212ef3ad6fb4abbc6310fd4a\n"
    },
    {
      "commit": "92e77dd718cc1c378efa0cf3bef737e463225e82",
      "tree": "634a5b6c4e1ba8a4d39110e973db458076ba9cc8",
      "parents": [
        "38390b4592cfdceb6ed21e49e0f22af400acac26",
        "f5bd092b5099cf43f031c3f53ad01592dda57f4b"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Mar 22 14:28:35 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 22 14:28:36 2010 -0700"
      },
      "message": "Merge \"Improve wakelock debugging:\""
    },
    {
      "commit": "f5bd092b5099cf43f031c3f53ad01592dda57f4b",
      "tree": "b09181d9ab4168d839640d292965ce9c2e1f8e18",
      "parents": [
        "fb0de34a47a435b57075d7a72cbc40a2daf5ee6c"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Mar 22 17:10:15 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Mar 22 17:10:15 2010 -0400"
      },
      "message": "Improve wakelock debugging:\n\nThrow NullPointerException if tag is null in PowerManager.newWakelock()\nPrint wakelock owner\u0027s uid and pid in dumpsys power output.\n\nBUG: 2522675\n\nChange-Id: I462c7f8c49f9896b2f58cef5a678ebd2c062a8f7\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "f030462c83a91432b7cf2c699778b63b1e79de72",
      "tree": "4e46b130f6a1d6f620ae6186c6c56a0658948fdf",
      "parents": [
        "a990ef3abf91ef78ba43da48e0ba702aca293ecc"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Mar 19 19:20:42 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Mar 22 13:08:52 2010 -0700"
      },
      "message": "Make trying to remount an asec container non-fatal\n\nIf an asec container is already mounted for some reason, start tracking\nit in the MountService\u0027s internal state and tell the caller we had\nsuccess mounting the secure container.\n\nChange-Id: I5bb0f84b2bafc0cd2dba248c35a8d68fd53ef1b2\n"
    },
    {
      "commit": "85861c7a6f8b00143ae3b33ac98db20bb5c539e4",
      "tree": "4232c3812e81c2a7f422952f1a2fc4caf431a61c",
      "parents": [
        "e99bb5f10b90736d10cee9729b56cba156fc0921",
        "93a68398b661c02d6c417a2a04e64a6750a9a119"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Mar 22 11:14:25 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 22 11:14:25 2010 -0700"
      },
      "message": "Merge \"Unittests for EntropyService.  Make EntropyService more testable.\""
    },
    {
      "commit": "e99bb5f10b90736d10cee9729b56cba156fc0921",
      "tree": "2977919e3fb3e0fcfeb5954240a2ee37abb55617",
      "parents": [
        "cbf953ed09b036441d90e14b0723a2ea417b3f35"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Mar 19 14:36:49 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Mar 22 10:49:49 2010 -0700"
      },
      "message": "Add new method call back in MountService.\nPackageManager invokes this call back when its done handling\nthe media status update.\nAdd new uid check for updateExternalMediaStatus\nChange killPids method in ActivityManager.\nRemove mountsd command in Pm.java We cannot arbitrarily enable/disable\npackages in PackageManager now.\n\nChange-Id: I28dcba4afd2b4486f68abdaa1628a31b66544c91\n"
    },
    {
      "commit": "6a254403235196692b1769d2fe281b0852c0cc25",
      "tree": "a08ce02a7042f49096de168a5537d486d2202ed1",
      "parents": [
        "ac96fa575f17d4a65e65eddebe805c904fb29c19"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Mar 22 10:21:00 2010 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Mar 22 10:21:00 2010 -0700"
      },
      "message": "MountService: Handle volumes shared on startup\n\nChange-Id: I7c38607adee7c89f27c24285a7ace2b9c87e7f30\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "93a68398b661c02d6c417a2a04e64a6750a9a119",
      "tree": "f8a9d195781f95f682202e1cf979abcf0646095e",
      "parents": [
        "a0a59122ebb7f1c134e8b8f9c0c90b7d90b86279"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Mar 19 16:57:21 2010 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Mar 19 16:57:21 2010 -0700"
      },
      "message": "Unittests for EntropyService.  Make EntropyService more testable.\n\nI\u0027ve been meaning to write these tests for a long time...\n\nUse \"runtest frameworks-services\" to run these tests.\n\nChange-Id: I3a3cb7eda547f4a790f38be884b4a583426c7326\n"
    },
    {
      "commit": "15b487e4ead5b1af5f188606449e04bc707a3ee7",
      "tree": "6e285611cc669a9739d38340bf7bb6815198b175",
      "parents": [
        "57c7204c23636974cd1eb2fc01f2dc253a018d3d",
        "723f1097294396817bbe1ea0fc45cfea4a6430da"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Mar 19 16:17:00 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 19 16:17:00 2010 -0700"
      },
      "message": "Merge \"Allow space in SSID\""
    },
    {
      "commit": "723f1097294396817bbe1ea0fc45cfea4a6430da",
      "tree": "3670dedeed6b7e91068082505760e513023cbb6a",
      "parents": [
        "e5e63f492147b6d6dee2f5e7b85fe9a3110ff0ad"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Mar 19 15:55:58 2010 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Mar 19 15:55:58 2010 -0700"
      },
      "message": "Allow space in SSID\n\nBug: 2530930\nChange-Id: Iaa6c44014d889ad0d023148b091fc01c22524bf3\n"
    },
    {
      "commit": "4cee725b1fd3958d850fc83214797f76d5f6b468",
      "tree": "cdc534fbe0ed664d9d821a9402398f1b5586ae16",
      "parents": [
        "db129b886fedad1e57ff185ac680cdf3c34b1b99"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 19 14:50:40 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 19 15:28:43 2010 -0700"
      },
      "message": "Use atomic++ rather than lock/++/unlock in the input dispatch code path\n\nDecouples the input dispatch thread from the battery-stats object lock regime,\nto avoid the possibility of ever blocking the input dispatch thread on its\nbehalf.  The stats object is widely used and can sometimes be locked for a\nvery long time (on the order of seconds) during certain extensive dump\noperations.\n\nThis change does not alter the data format of the battery stats\u0027 externalized\nrepresentations.\n\nFixes bug #2530346\n\nChange-Id: Iee288be3bf4936641b532dceecb8f6de8f552bf0\n"
    },
    {
      "commit": "a0a59122ebb7f1c134e8b8f9c0c90b7d90b86279",
      "tree": "d57f85787382478fd63ecae48ec164547379ee15",
      "parents": [
        "379232c8f5c9faacfcb097b44930dde9a042b1bc",
        "80cb598599de1f867990d6070a5b0d663369bcbc"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Mar 19 14:08:01 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 19 14:08:01 2010 -0700"
      },
      "message": "Merge \"Fix wakelock\""
    },
    {
      "commit": "379232c8f5c9faacfcb097b44930dde9a042b1bc",
      "tree": "595e1f21f3fb4cc12a9da766c56a8ce3c52457ec",
      "parents": [
        "1afd1c90ebe789b8d3a137004127a50d2db7e3b5",
        "7d9af5ae762c59e879a86e77dcb330856774bc09"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 19 14:01:48 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 19 14:01:48 2010 -0700"
      },
      "message": "Merge \"Fix issue #2512131: Trackball goes up when moving\""
    },
    {
      "commit": "7d9af5ae762c59e879a86e77dcb330856774bc09",
      "tree": "aa53ca79b286e6a874a70540a3e92d620884ef91",
      "parents": [
        "b58fd82261efee1131eee7dcf3d66f98b11b5d24"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 18 23:40:21 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 19 14:01:17 2010 -0700"
      },
      "message": "Fix issue #2512131: Trackball goes up when moving\n\nChange-Id: Ib403de88f24bc1b6e5417732e3b69f89a5160bbc\n"
    },
    {
      "commit": "1afd1c90ebe789b8d3a137004127a50d2db7e3b5",
      "tree": "8ebbf7ee08b4aa0dab01a37a16b81c51af019d42",
      "parents": [
        "b58fd82261efee1131eee7dcf3d66f98b11b5d24"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 18 22:47:17 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 19 13:59:07 2010 -0700"
      },
      "message": "Maybe fix issue #2457218: Corrupt batterystats.bin file preventing phone boot - LIBtt68127\n\nNo steps to repro, but makes the code more robust by using the standard\nJournaledFile class and doing sanity checks on the input it reads.\n\nThis required moving the JournaledFile class in to the framework (and\nwe really should get rid of either it or AtomicFile, but they have\ndifferent recovery semantics so that is tough).  Also went through and\ncleaned up the file management in various places.\n\nChange-Id: Ieb7268d8435e77dff66b6e67bb63b62e5dea572e\n"
    },
    {
      "commit": "ebb83ade1eefb8a92990cc7b676d829b111cb7bf",
      "tree": "fe75d94c11947bd51dab73a4bdc17d30232e981a",
      "parents": [
        "b05ec11868463fef0322689f5c0b0408a6a0e540"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Mar 19 11:55:29 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Mar 19 13:23:14 2010 -0700"
      },
      "message": "Grant permissions to apps on sd when enabling/disabling packages.\n\nChange-Id: I0f011bd4a3348ccd46fd7ae9765edf8933b94142\n"
    },
    {
      "commit": "80cb598599de1f867990d6070a5b0d663369bcbc",
      "tree": "23c570ff0c7f3e55fb6ac5dc3c89f56559fbdc8d",
      "parents": [
        "e5e63f492147b6d6dee2f5e7b85fe9a3110ff0ad"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Mar 19 10:40:18 2010 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Mar 19 12:59:11 2010 -0700"
      },
      "message": "Fix wakelock\n\nBug: 2413908\nChange-Id: Ic7f2efa94b0ad1c561db0ffab8c531d19e6c235e\n"
    },
    {
      "commit": "951749ba2e014566553d17c512e947472951a060",
      "tree": "0b927d18a5a5b3c74cd8a384e6003e71c7b99def",
      "parents": [
        "b18af656f01f465baf1ab5a9b6eb246101372b04"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Fri Mar 19 09:03:13 2010 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Fri Mar 19 09:09:12 2010 -0700"
      },
      "message": "Use the new HSM capability that allows transitionTo in enter methods.\n\nChange-Id: If87a30257111d4a2b0506428c75eae81a7ccf77b\n"
    },
    {
      "commit": "ad17d11c7495b1fdb5ca6faba74a741b17cf19f9",
      "tree": "eb8e89e4732e4c2ffa32b24298382689dfd4ae67",
      "parents": [
        "d12b232575faa44163157c2d4aa988e7a5974a3e",
        "db3fe9edd4cb638d3dd20b23456f6cdb0a414ed1"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Mar 19 09:02:00 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 19 09:02:00 2010 -0700"
      },
      "message": "Merge \"Fix Tethering Notifications for multiple ifaces\""
    },
    {
      "commit": "db3fe9edd4cb638d3dd20b23456f6cdb0a414ed1",
      "tree": "1aa4418bb2c7cd53e4e338a37e182012fc5a0f2d",
      "parents": [
        "2fbc10f3559b85f6550dd34b8779e9ee94e4c73c"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Mar 18 16:28:30 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Mar 19 08:59:20 2010 -0700"
      },
      "message": "Fix Tethering Notifications for multiple ifaces\n\nUsed to see multiple notifications if usb tethering and wifi tethering were both used.\n\nbug:2527862\nChange-Id: Idc6299c0a70564dd7c8d8d7fe13bde83723134ae\n"
    },
    {
      "commit": "806da1d46c94c71728b94dec75dec6519c962b5c",
      "tree": "09662b2cd1ce939d04557a0e33b4f25ebd963f01",
      "parents": [
        "078fd47e91d495175927d1a4a8b9aad039a7ba4e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 18 16:50:07 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 18 19:25:19 2010 -0700"
      },
      "message": "Fix issue #2512507: Shortcuts and Widgets lost on upgrading from Eclair to FRE70D\n\nApps on the system partition are now allowed to change their certs, as\nlong as they are not using a shared user id.\n\nChange-Id: I02ff7ac874dc649b7f8cbb705ae8d7ed31e1d125\n"
    },
    {
      "commit": "7942b33e8905bbc177ff3c92596404530c860bcd",
      "tree": "d777108d324235bbc493326b3a86327a7a6b1e49",
      "parents": [
        "e5bdecea289a09070f0ea2a1067ae2a8f498098a",
        "90d8ee650be988d8479f4f14ae8e541bb4cb034b"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Mar 18 18:07:54 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 18 18:07:54 2010 -0700"
      },
      "message": "Merge \"Switch default install location to unspecified. Add a new install location unspecified for backward compatibility. There is not much difference between policies auto and unspecified. But we dont have to make any code changes in PackageParser based on our preference for install location. Add tests\""
    },
    {
      "commit": "90d8ee650be988d8479f4f14ae8e541bb4cb034b",
      "tree": "5a7701a199c115ac5ecca6d981a5f8fd563ebc40",
      "parents": [
        "b82ac6bf374c14082f7142614eb7d8e545b9a18b"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Mar 18 11:38:35 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Mar 18 17:44:21 2010 -0700"
      },
      "message": "Switch default install location to unspecified.\nAdd a new install location unspecified for backward compatibility.\nThere is not much difference between policies auto and unspecified.\nBut we dont have to make any code changes in PackageParser based\non our preference for install location.\nAdd tests\n\nChange-Id: I563238133261d911d08fbc66344687b7dfc870b1\n"
    },
    {
      "commit": "6d33c5adde49eabeb2c31996700d4cd4cf9e3e05",
      "tree": "b16ad8978d4f2633138137b3944e15fff502a1f0",
      "parents": [
        "ca2c8e75019f1922c6250b70f99d1c8643bc7420",
        "c2f54c267b896cd1799d82be81e904a2b56c2f26"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Mar 18 16:42:48 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 18 16:42:48 2010 -0700"
      },
      "message": "Merge \"Clean up changing AP configuration\""
    },
    {
      "commit": "c2f54c267b896cd1799d82be81e904a2b56c2f26",
      "tree": "74dabdd448f21a5feb947e021471919e30f38997",
      "parents": [
        "099e3e7eedef0e4446b84ef169412a80244fc325"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Mar 18 14:02:22 2010 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Mar 18 16:02:56 2010 -0700"
      },
      "message": "Clean up changing AP configuration\n\nBug: 2527293\nChange-Id: I35e82e24e27349e2966f88189ebca4246ad1a354\n"
    },
    {
      "commit": "ef905c86eeaecb0a7e2eb1152ae757ccdc9a7b36",
      "tree": "df34838d1c270e424d8011fa0a61319736bf8c46",
      "parents": [
        "0c659fea07c97eb3797150a4510466270d5abe6a",
        "ee63e47940d5a3bf6f1001153750e885ac3a7dcd"
      ],
      "author": {
        "name": "jsh",
        "email": "jsh@google.com",
        "time": "Thu Mar 18 14:58:30 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 18 14:58:30 2010 -0700"
      },
      "message": "Merge \"Update signal strength mapping for GSM/UMTS.\""
    },
    {
      "commit": "ee63e47940d5a3bf6f1001153750e885ac3a7dcd",
      "tree": "da3650ef3bee60a99e6f66b7ce52bf5514b4585c",
      "parents": [
        "b82ac6bf374c14082f7142614eb7d8e545b9a18b"
      ],
      "author": {
        "name": "jsh",
        "email": "jsh@google.com",
        "time": "Thu Mar 18 11:14:42 2010 -0700"
      },
      "committer": {
        "name": "jsh",
        "email": "jsh@google.com",
        "time": "Thu Mar 18 12:05:19 2010 -0700"
      },
      "message": "Update signal strength mapping for GSM/UMTS.\n\nb/2480975\n\nNew mapping:\n4 bars: \u003e\u003d 12 asu\n3 bars: \u003e\u003d 8 asu\n2 bars: \u003e\u003d 5 asu\n1 bar:  \u003e\u003d 3 asu\n0 bars: \u003c\u003d 2 asu\n\nChange-Id: I73dcc8e490d039ec392f027fc96f95dc951ca793\n"
    },
    {
      "commit": "1a543010e5cdcd35d67dadd2ab98b60fa02d5de2",
      "tree": "81c833b95f1ad69d3b525ba31aa5ac17aa1018e1",
      "parents": [
        "cc17ed29e0ff184afd1bce750f4f80aa917cfcaf"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Mar 17 19:46:32 2010 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Mar 18 11:44:48 2010 -0700"
      },
      "message": "Dont disable AP for tether failures\n\nBug: 2524514\nChange-Id: I8a59e717c5b36b83adbed43184fd45d7cbfedd9a\n"
    },
    {
      "commit": "d4310ac944e5f3063bb23558ba25ccf76fec0968",
      "tree": "479404f1e969d125775e01ce930cdd01bb9f968e",
      "parents": [
        "694f79b5d1196640d1beb680b7d1fc68e6e77cbd"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 16 22:55:08 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 18 02:02:17 2010 -0700"
      },
      "message": "Rework permissions to be retained when an app is temporarily uninstalled.\n\nThis allows us to keep the assigned permissions when apps are temporarily\nremoved due to the SD card being unmounted, and also if you use the\nfacility to uninstall an app but keep its data.\n\nAlso fixes issue #2515189: Potential permission spoofing attack in\nAndroid (external bug 7166)\n\nChange-Id: I2a120ec938552028c989f9e0e890c32773957738\n"
    },
    {
      "commit": "694f79b5d1196640d1beb680b7d1fc68e6e77cbd",
      "tree": "355894924374fb42cc6f8c664f34b413a90ecd7f",
      "parents": [
        "e4eb5bf243cb51b75b0717ebcd8c317a5b8fae8a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 17 19:44:59 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 18 01:12:20 2010 -0700"
      },
      "message": "Fix issue #2519590: Lock screen stuck in landscape mode\n\nWell, mostly.  There is still a problem here where the first time\nyou show the lock screen it just doesn\u0027t draw itself.  I assume\nthis is something breaking in the view hierarchy as it floounders\naround removing and adding new views as it is first being shown...\nbut no idea at this point what is the actual case.\n\nChange-Id: Iba99ae3242931c8673b17b106c86fc99e2c52abe\n"
    },
    {
      "commit": "e4eb5bf243cb51b75b0717ebcd8c317a5b8fae8a",
      "tree": "b8334b389935c7d8f9f1f7d05017508094e4af3f",
      "parents": [
        "8419c2fa9405d0c4c7caa7dc9b0662abda37492e",
        "6a1967c9088b9f05665462efa9d98210143500bd"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Mar 17 22:55:25 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 17 22:55:25 2010 -0700"
      },
      "message": "Merge \"Make Tethering not disconnect on every net change.\""
    },
    {
      "commit": "b8d806d034ed16279884e5a4b719d56115e66aa6",
      "tree": "7d16db5831a42733778b455a24e34958324be3b1",
      "parents": [
        "cc83c868b6a34c52060698ef441745ba9e4537a2",
        "c5e56ddedffa21f06b0249afda0ae1fa14586009"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Mar 17 22:33:30 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 17 22:33:30 2010 -0700"
      },
      "message": "Merge \"Fix for deadlock between StatusBarService and NotificationManagerService\""
    },
    {
      "commit": "6a1967c9088b9f05665462efa9d98210143500bd",
      "tree": "e92a356ec3881c8eafab2b34e19988ce211f7813",
      "parents": [
        "6c261f327a58ebf1393ef94c9228d11771fe65cc"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Mar 17 11:19:57 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Mar 17 22:06:43 2010 -0700"
      },
      "message": "Make Tethering not disconnect on every net change.\n\nTethering will now persist to on (until turned off) through upstream net drops,\ntunnels, switches to wifi or 2G, mms sends, etc.  It will also strive to use\nthe most natural connection and only go to HiPri/Dun APNs when needed.\n\nbug:2519915\nbug:2501837\nChange-Id: Iedf6647daad8df507d7c87d1130b204b0a0acc7b\n"
    },
    {
      "commit": "d3dd518baf87f06a571e56d9a127b043cf719e23",
      "tree": "a268fe0a59afe5c4615423d9dd27ea13280cfb8f",
      "parents": [
        "f43eab142df7d3096f299d34c9e5713200332392",
        "14b6abda1309631d49d4bebbb0317a7e1dfc0a50"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 17 18:50:29 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 17 18:50:29 2010 -0700"
      },
      "message": "Merge \"Add new install flag to install on internal flash only Change default install location policy for new flag. New error code for media unavailable.\""
    },
    {
      "commit": "14b6abda1309631d49d4bebbb0317a7e1dfc0a50",
      "tree": "bee361e635743a09bb7253fef333d6fb94df6322",
      "parents": [
        "d246ca811575eee9122070648e93b7484f6edd81"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 17 08:37:04 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 17 18:43:31 2010 -0700"
      },
      "message": "Add new install flag to install on internal flash only\nChange default install location policy for new flag.\nNew error code for media unavailable.\n\nChange-Id: I5a5d0828b067692b2b94a15a2bcc7534f796c1a2\n"
    },
    {
      "commit": "8cf1bcd1d26ddbb471e4968b70e32ecabe4f7a20",
      "tree": "fb17c808df3236d8daeaa4b4d9e6108e93e8529c",
      "parents": [
        "aa773543c4b93e0396eac39d31bdb85f8465688e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 16 13:06:10 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 17 18:08:39 2010 -0700"
      },
      "message": "Fix issue #2325621: Runtime restart after launching Android keyboard setting.\n\nAgain.\n\nChange-Id: Icc36029767fbfea19e474aa0731e8271da1329db\n"
    },
    {
      "commit": "c5e56ddedffa21f06b0249afda0ae1fa14586009",
      "tree": "182fb8e19d204fc15c59325652a9791fa745f4a6",
      "parents": [
        "aa773543c4b93e0396eac39d31bdb85f8465688e"
      ],
      "author": {
        "name": "Obi Okafor",
        "email": "obi.okafor@sonyericsson.com",
        "time": "Thu Mar 11 01:00:02 2010 +0100"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Mar 17 17:46:23 2010 -0700"
      },
      "message": "Fix for deadlock between StatusBarService and NotificationManagerService\n\nA ServerThread holding a lock on mQueue in StatusBarService invoked a\ncallback in NotificationManagerService which required a lock on\nmNotificationList. At  the same time, a BinderThread holding a lock on\nmNotificationList was attempting to post a message to StatusBarService\nwhich requires lock on mQueue. The fix is to release the lock on mQueue\nin handleMessage() before running the actions at the end of the method.\n"
    },
    {
      "commit": "09bc8d8c125ff0ba745b3d0ebf5b0236fa865deb",
      "tree": "04fbf3722cfaf4f0cf018d391dd520b0e256a762",
      "parents": [
        "4f43ae09d2cb0cce2b9e794f1b80f7198333c94b",
        "c8b7b9f45e0f51138101c509b6d176d35bbf2c78"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Wed Mar 17 10:53:11 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 17 10:53:11 2010 -0700"
      },
      "message": "Merge \"Add progress indicator to USB mass storage screen.\""
    },
    {
      "commit": "c008e0a5b74de92f3fb3c704a55973f2d9d6c4fd",
      "tree": "0eee08c7f39828613da18168094802a1cb4bd3b6",
      "parents": [
        "9ab518ad793385f8405edf19363fe825fb64f5f8"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Tue Mar 16 18:10:50 2010 +0100"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Wed Mar 17 09:16:41 2010 +0100"
      },
      "message": "Fix 2514479: Putting phone in car dock ignores security pattern\n\nDon\u0027t disable the keylock pattern when the device is in car mode.\nInstead it should be possible to show the lock pattern at least once\nand after valid authentication it should be disabled in the system.\nSince this requires additional discussion it will be moved to the\nnext Android release.\n\nChange-Id: I28cddcfb6640e44a29c716b59a3d6e37e8003dca\n"
    },
    {
      "commit": "9ab518ad793385f8405edf19363fe825fb64f5f8",
      "tree": "c6eb39b19b1b36888e904b1194c5055a97479dfd",
      "parents": [
        "9c041bbd81789c209e2369ba958306979b67614f"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Mar 12 15:48:17 2010 -0800"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue Mar 16 19:54:17 2010 -0700"
      },
      "message": "softAp framework changes\n\nRemove AP persist settings\nAdd new netd interface\nHandle errors\nHandle AP config change\nBug: 2413908\nChange-Id: I31a1221ef5479da8d4a2620f0f0ee0b62539bc69\n"
    },
    {
      "commit": "057f5c3127fc998396185c2ad655e33f5942c0b9",
      "tree": "ee3140b52d8bd9a47da47d9f34ed413061feb444",
      "parents": [
        "8a9ab24a5c9b595ac0268fcade4b5bbfe7c45c2d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Mar 16 16:42:39 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Mar 16 16:42:53 2010 -0700"
      },
      "message": "make the statusbar viewtracker opaque\n\nChange-Id: I3fc69b5a8b600e23fccc88e9d80eb3495fad16d4\n"
    },
    {
      "commit": "8a9ab24a5c9b595ac0268fcade4b5bbfe7c45c2d",
      "tree": "f445dbf1504f02783b550a80a01ee06d45fbcb4a",
      "parents": [
        "50fdbef2fbcd390035517090bc54220c265f5c75"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Mar 11 16:49:16 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Mar 16 16:36:26 2010 -0700"
      },
      "message": "Do storage checks before initiating a move.\nAdd new remote method to check for insufficient error conditions.\nSome fixes in MountService when updating media status on PackageManagerService\nFix size calculation condition in installd.\n\nAdd new error code if media is unavailable.\nNew tests for testing error codes.\nSome additional debugging statements in MountService.\n\nChange-Id: Ibfe90d5ed6c71d57f9c1c67806f38b5ae9ecdfbf\n"
    },
    {
      "commit": "44113ba31a77027a56885080fdbbda67b48c46fe",
      "tree": "7311c59a5b8968185a8168b0a9296d58a083efa4",
      "parents": [
        "247c065aec3c7b5e63cc7ddb28951cb25227236d"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue Mar 16 14:54:07 2010 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue Mar 16 15:57:09 2010 -0700"
      },
      "message": "Remove reload config for priority change\n\nBug: 2467689\nChange-Id: Icd3bb17f5b794282219dd410cb56888d10130281\n"
    },
    {
      "commit": "c8b7b9f45e0f51138101c509b6d176d35bbf2c78",
      "tree": "527ab227a520d93b329f1b5e9582fecd2f110e91",
      "parents": [
        "0794cd33dd8c3019183cecb44119c56eee3c06f0"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Tue Mar 16 16:01:29 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Tue Mar 16 16:38:04 2010 -0400"
      },
      "message": "Add progress indicator to USB mass storage screen.\n\nWhen the user taps on the enable button, it\u0027s hidden and\nreplaced with an indeterminate ProgressBar; this is in turn\nhidden and replaced with the disable button in response to\nbroadcasts from the MountService. (Disabling UMS is\nanalogous.)\n\n(Requires change Ic53cb370, which moves MountService\u0027s\noperations out of the UI thread.)\n\nBug: 2483340\nChange-Id: Ia25d99cd9709ee5a05316e8f05f66ca9da20aa25\n"
    },
    {
      "commit": "5f27ef4968ac8c331157524c60a4511fcc3731b1",
      "tree": "f0b2ebc3a7c5c55e718674aaebb1a30d6780a886",
      "parents": [
        "e118d6fbdef7e97e229351c2c76c5c7245ecd521"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Tue Mar 16 15:42:02 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Tue Mar 16 15:44:38 2010 -0400"
      },
      "message": "Move MountService\u0027s Handler to a different thread.\n\nThis should help avoid blocking the system UI during storage\noperations.\n\nChange-Id: Ic53cb370baf47e8b00476706ac8df45645a2d814\n"
    },
    {
      "commit": "780b2603041a56800ff6e49fb14535c1b1ca8907",
      "tree": "4029c518d204d04b79f2cb0227983de1b6f22ee0",
      "parents": [
        "24217d8e4dad2a99d7db6f51e89945421a6e7da8"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Mon Mar 15 12:54:45 2010 +0100"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Mon Mar 15 13:07:18 2010 +0100"
      },
      "message": "Fix issue 2512221: Car Dock Notification doesn\u0027t go away\n\nBug description:\n1) Start Car Dock app.\n2) Drop phone into Desk Dock\n3) Press back to quit Desk Dock app.\n\nCar Dock Notification doesn\u0027t go away if I select it from the shade.\n\nChange-Id: I9d3ad4dbbe8f886fc8d523d104676194c3943473\n"
    },
    {
      "commit": "38af4c36fc2636d7dfe6ec3cfe91f406dd1b2803",
      "tree": "c8ec53b030de722464af21190ba466b5b872357d",
      "parents": [
        "3e5a5826c65044edc813bd6d3cff6a43db28d74e",
        "3de55bcd34afd5871816526294f9514d1adf3fe5"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 12 18:34:53 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 12 18:34:53 2010 -0800"
      },
      "message": "Merge \"API CHANGE: expose the backup-related ApplicationInfo flag masks\""
    },
    {
      "commit": "3de55bcd34afd5871816526294f9514d1adf3fe5",
      "tree": "447dbe7ee4ba3ff437b91995495d62c29c41fe14",
      "parents": [
        "842f9df2c7944d5d7144b241763c65b497ba9312"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 12 17:28:08 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 12 18:11:00 2010 -0800"
      },
      "message": "API CHANGE: expose the backup-related ApplicationInfo flag masks\n\nFixes bug #2507582 by doing the following:\n\n- Un-@hide the FLAG_ALLOW_BACKUP, FLAG_KILL_AFTER_RESTORE, and\n  FLAG_RESTORE_ANY_VERSION mask constants in ApplicationInfo.  These\n  correspond, respectively, to the \u003capplication\u003e manifest tag\u0027s\n  android:allowBackup, android:killAfterRestore, and\n  android:restoreAnyVersion attributes.\n\n- Remove the android:restoreNeedsApplication attribute and the\n  corresponding FLAG_RESTORE_NEEDS_APPLICATION constant [which was still\n  marked @hide].  We now always use the application\u0027s own Application\n  class when performing a normal restore.  In the future when we support\n  an externalized full-filesystem backup/restore operation, we will use\n  an OS-defined agent class with a base-class Application instance, but\n  this will not happen until a future release.\n\nAlso expands real documentation on the above ApplicationInfo constants;\nthat work is part of bug #2465360\n\nChange-Id: I735d07a963ae80a01343637d83bef84e4c23fdcc\n"
    },
    {
      "commit": "5c83a5f2cc3793819d0d3568b1f3a19333afdd13",
      "tree": "0237073f35a6038a954b66cbdb54b94f09b364a3",
      "parents": [
        "061d58a10122b2ef56d4c2ed46090add16fb5b17",
        "2ecce34f2f05447bed6d798a4fe906fed4cbd7d9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 12 16:46:46 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 12 16:46:46 2010 -0800"
      },
      "message": "resolved conflicts for merge of 2ecce34f to master\n\nChange-Id: Ic4e38199beaf8c16f9d28ac5296e8aaa61788b36\n"
    },
    {
      "commit": "061d58a10122b2ef56d4c2ed46090add16fb5b17",
      "tree": "4710990b41fad7f5fd047786cb8c4e5247547bb1",
      "parents": [
        "069b3cfcd477a07aafdfd343ce06353553e39082"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 12 15:07:06 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 12 15:41:24 2010 -0800"
      },
      "message": "Fix problem with starting a translucent activity in onCreate().\n\nFixes issue #2437252: Starting activity by means of startActivityForResult\ncauses 5 seconds delay if \"android:windowIsTranslucent\" is true\n\nThe optimization to avoid showing an activity window when a new\nactivity is being started was a little too aggressive.  Now it\navoids doing this if there is not actually a fullscreen activity\non top to cover it.\n\nChange-Id: I630e37a1f1d3b874b5a25572cbf887cebc2e3e91\n"
    },
    {
      "commit": "7b00978dc739ed2213ed8e511c69cfb412798109",
      "tree": "456bd8a3f276ade7d202165267b7fbb3b04c276b",
      "parents": [
        "a455d194863d6c09f0388b03271880d7f21e77d6"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Mar 11 16:37:45 2010 -0800"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Mar 12 13:16:47 2010 -0800"
      },
      "message": "Run WifiWatchdogServiceThread only on wifi enable\n\nBug: 2508997\nChange-Id: Ib79ee25fcc8e39e9a1d6c5b9ef9681bc00b6d006\n"
    },
    {
      "commit": "a455d194863d6c09f0388b03271880d7f21e77d6",
      "tree": "4963132ece1e05c65e965e4892e5c19cfd32174d",
      "parents": [
        "e25bf5dc6357c4cc441846c389b86add3f8489cc"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Fri Mar 12 08:52:28 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Fri Mar 12 13:01:45 2010 -0800"
      },
      "message": "Record some logcat output with crashes, ANRs, etc..\n\nShelling out to logcat from the system server makes me queasy,\nso this is turned off by default -- it must be enabled individually\nfor each error type (system_app_anr, etc) via a secure settings\nvalue (which I plan to poke into from gservices for internal use).\n\nEven when enabled, it happens in a side thread, unless the system\nserver is about to die anyway (system server restart).\n\nChange-Id: Id6d88bcd78d3625f0364a5fe9c771046601a5a14\n"
    },
    {
      "commit": "bb51d9feea260e1527628b878319c0cf76adadeb",
      "tree": "9d806daab2a03ce7d47b55ddb0fd6b37672e848e",
      "parents": [
        "10362ab9d67d87c0c3217e804e64d3e7038211df"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Mar 12 10:23:35 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Mar 12 11:42:09 2010 -0800"
      },
      "message": "Fix UMS broadcasts in Tethering.\n\nNow Tethering gets notified of UMS changes.  Turns out UMS Broadcasts\nhave attached data with a file scheme and the filter had to be set\ncorrectly.\n\nbug:2504908\nChange-Id: I67d979000196c90068fe59846b4fa2bbf6ea00d8\n"
    },
    {
      "commit": "9b3a4536b3b726aff3b72494e0519b2d0552a3c2",
      "tree": "d7a172bdf75ba88aa75e7e87eec4b66004a1b593",
      "parents": [
        "34ec95de2f96a5f85d5e4e0f99252b99c0aca14f",
        "ba9ab183186cb2ef704759485a8481d5b8c8a650"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 12 10:54:44 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 12 10:54:44 2010 -0800"
      },
      "message": "Merge \"Fix: Retrieval of location to caclulate twilight\""
    },
    {
      "commit": "b62f959430afa80e616675fe15cec5392e8178de",
      "tree": "28051125ef1f7a0af40106912fdd1a031ff37ec8",
      "parents": [
        "a91e972752211d6731fb6784f3f9b653add58aa8"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Mar 12 07:55:23 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Mar 12 12:35:24 2010 -0500"
      },
      "message": "Fix problems with new PowerManager.reboot() implementation.\n\nShutdownThread.reboot() does return so we need to block after calling it\nto prevent PowerManager.reboot() from returning.\n\nSince PowerManager.reboot() can now take significantly longer than before,\nwe now ignore ANRs during shutdown.\n\nChange-Id: Ibceeb265ae382567215f6a399108d8be3a7bbc95\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "34e8e47b83b2f1af19d7ffa6c23638b7d7ffce6e",
      "tree": "02677a232f2d942f925a71ae65fed43983c21e96",
      "parents": [
        "e1748c67143f3bd2187cdafa8788790c8e33dbe5",
        "4bded0744a07152c1e7ae4cb8110c74ec89a67b1"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Fri Mar 12 08:50:12 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 12 08:50:12 2010 -0800"
      },
      "message": "Merge \"Dump the phone process stack (as well as the system process) on watchdog reset.\""
    },
    {
      "commit": "ba9ab183186cb2ef704759485a8481d5b8c8a650",
      "tree": "d4e6c91fcaa4676d5552719e2651345bc2d47c91",
      "parents": [
        "a028a4b5e89bc4648b44c4f3ccbceb5a0ce13409"
      ],
      "author": {
        "name": "Bernd Holzhey",
        "email": "holzhey@google.com",
        "time": "Fri Mar 12 09:30:29 2010 +0100"
      },
      "committer": {
        "name": "Bernd Holzhey",
        "email": "holzhey@google.com",
        "time": "Fri Mar 12 14:58:42 2010 +0100"
      },
      "message": "Fix: Retrieval of location to caclulate twilight\n\nThe provider determined by getBestProvider may not have a LastKnownLocation and\ntherefore the system might use a fake location, even if one provider will have\na location.\n\nChange-Id: Iec4a377b141b0260af5611f51affa5f0c4a84ed2\n"
    },
    {
      "commit": "a028a4b5e89bc4648b44c4f3ccbceb5a0ce13409",
      "tree": "66a8a408b8ee0f1b7021076de1168c09319950ec",
      "parents": [
        "a2fd9d1786fec65dc4199e29c78dd43e1e31bb58",
        "223e84d7336db189060f3f766a66037af8690496"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Mar 12 05:30:35 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 12 05:30:35 2010 -0800"
      },
      "message": "Merge \"Fix LocationManager.getProvider() API breakage.\""
    },
    {
      "commit": "223e84d7336db189060f3f766a66037af8690496",
      "tree": "10ff50eb97ff732b7355c7270b25fd7e2b97d140",
      "parents": [
        "80362d4ac80c4635dd9dac6481522d9af2f167b2"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Mar 12 07:51:06 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Mar 12 07:51:06 2010 -0500"
      },
      "message": "Fix LocationManager.getProvider() API breakage.\n\ngetProvider() needs to work for providers that are disabled.\nIt should only return null if the provider does not exist.\n\nChange-Id: Ieb9fbd8965a10329377bc8ac9d8061cebe519ab5\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "a2fd9d1786fec65dc4199e29c78dd43e1e31bb58",
      "tree": "f2a9c6415bca8cb43602fe07331c517773034267",
      "parents": [
        "c9421ba1f46d9f9aeee833e1fde2cc263b058411"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 11 23:40:24 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 11 23:40:24 2010 -0800"
      },
      "message": "Fix NPE when clearing preferred packages.\n\nFixes issue #2507124:\ncts.PackageManagerRequiringPermissionsTest:testClearPackagePreferredActivities\nis failing with NPE\n\nAlso introduce some compatibility code to simple ignore calls to set\npreferred packages from old applications, and changes some package manager\nlogs to Slog.\n\nChange-Id: Id3f98ac8e106da526ba4c12879a9ddaabf28f462\n"
    },
    {
      "commit": "4bded0744a07152c1e7ae4cb8110c74ec89a67b1",
      "tree": "937c929df132c3295d0636554137a15cab593927",
      "parents": [
        "4ea833d9a24aa1c2e92522150c89b37753a9aee8"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu Mar 11 22:00:47 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu Mar 11 22:27:59 2010 -0800"
      },
      "message": "Dump the phone process stack (as well as the system process) on watchdog reset.\n\nChange-Id: I3c47086f9cc010f524da7de539942ea30d0338e3\n"
    },
    {
      "commit": "c9421ba1f46d9f9aeee833e1fde2cc263b058411",
      "tree": "2023c51c1afdde559d23b9baf255b493596613cb",
      "parents": [
        "d0dfab21a34dc3a5f1cc0d4678f5cd1499088292"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 11 22:23:46 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 11 22:23:46 2010 -0800"
      },
      "message": "Fix issue #2492387: system server crash in WallpaperManagerService\n\nAlso move some of the important framework error logs over to Slog.\n\nChange-Id: If6697c3e4f18498612ebd7b0e4e4f042fd713372\n"
    },
    {
      "commit": "15a4d2ffd04dc6c70f2cd17dae12ac6bc14c69ab",
      "tree": "2dbbf0c31082373354fb17308de3681e22c66169",
      "parents": [
        "8abb26ee6c77e01a23d26c305a65b25a33710024"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 11 18:20:12 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 11 18:22:10 2010 -0800"
      },
      "message": "Add correct copyright headers to multiple files\n\nFormat for the list of changes shows the origin commit reference followed\nby the file name.\n\n33931-p9 awt/org/apache/harmony/awt/gl/font/AndroidGlyphVector.java\n33931-p9 awt/org/apache/harmony/awt/gl/image/PngDecoderJava.java\n133776-p9 core/java/android/app/IntentService.java\n127013-p9 core/java/android/appwidget/AppWidgetHost.java\n27863-p9 core/java/android/bluetooth/BluetoothAudioGateway.java\n60765-p9 core/java/android/content/SyncResult.java\n43920-p9 core/java/android/content/pm/ActivityInfo.java\n43920-p9 core/java/android/content/pm/ApplicationInfo.java\n43920-p9 core/java/android/content/pm/InstrumentationInfo.java\n43920-p9 core/java/android/content/pm/PackageInfo.java\n44103-p9 core/java/android/content/pm/PackageItemInfo.java\n68960-p9 core/java/android/content/pm/PackageStats.java\n43920-p9 core/java/android/content/pm/ResolveInfo.java\n43920-p9 core/java/android/content/pm/ServiceInfo.java\n60641-p9 core/java/android/content/res/Configuration.java\n60734-p9 core/java/android/content/res/TypedArray.java\n137672-p9 core/java/android/inputmethodservice/ExtractButton.java\n123112-p9 core/java/android/inputmethodservice/ExtractEditText.java\n119291-p9 core/java/android/inputmethodservice/IInputMethodSessionWrapper.java\n112946-p9 core/java/android/inputmethodservice/IInputMethodWrapper.java\n115078-p9 core/java/android/os/BatteryStats.java\n124790-p9 core/java/android/text/style/UpdateAppearance.java\n45083-p9 core/java/android/view/RawInputEvent.java\n101491-p9 core/java/android/view/inputmethod/EditorInfo.java\n114701-p9 core/java/android/view/inputmethod/ExtractedText.java\n123112-p9 core/java/android/view/inputmethod/ExtractedTextRequest.java\n119291-p9 core/java/com/android/internal/os/HandlerCaller.java\n129279-p9 core/java/com/android/internal/os/PkgUsageStats.java\n114701-p9 core/java/com/android/internal/view/IInputConnectionWrapper.java\n114701-p9 core/java/com/android/internal/view/InputConnectionWrapper.java\n84364-p9 opengl/java/android/opengl/EGLLogWrapper.java\n11355-p9 opengl/tools/glgen/src/CFunc.java\n11355-p9 opengl/tools/glgen/src/CType.java\n11355-p9 opengl/tools/glgen/src/CodeEmitter.java\n11355-p9 opengl/tools/glgen/src/GenerateGL.java\n11355-p9 opengl/tools/glgen/src/JFunc.java\n11355-p9 opengl/tools/glgen/src/JType.java\n11355-p9 opengl/tools/glgen/src/JniCodeEmitter.java\n11355-p9 opengl/tools/glgen/src/ParameterChecker.java\n57236-p9 services/java/com/android/server/status/AnimatedImageView.java\n66754-p9 services/java/com/android/server/status/CloseDragHandle.java\n57188-p9 services/java/com/android/server/status/DateView.java\n46928-p9 services/java/com/android/server/status/ExpandedView.java\n70590-p9 services/java/com/android/server/status/FixedSizeDrawable.java\n45968-p9 services/java/com/android/server/status/IconData.java\n57470-p9 services/java/com/android/server/status/IconMerger.java\n82719-p9 services/java/com/android/server/status/LatestItemView.java\n45968-p9 services/java/com/android/server/status/NotificationData.java\n66754-p9 services/java/com/android/server/status/NotificationLinearLayout.java\n57458-p9 services/java/com/android/server/status/NotificationViewList.java\n45968-p9 services/java/com/android/server/status/StatusBarException.java\n45968-p9 services/java/com/android/server/status/StatusBarIcon.java\n46130-p9 services/java/com/android/server/status/StatusBarNotification.java\n45968-p9 services/java/com/android/server/status/StatusBarView.java\n46199-p9 services/java/com/android/server/status/Ticker.java\n62286-p9 services/java/com/android/server/status/TickerView.java\n57188-p9 services/java/com/android/server/status/TrackingView.java\n86041-p9 telephony/java/android/telephony/PhoneStateListener.java\n87020-p9 telephony/java/com/android/internal/telephony/TelephonyIntents.java\n136269-p9 telephony/java/com/android/internal/telephony/gsm/SpnOverride.java\n34409-p9 tests/FrameworkTest/src/com/android/frameworktest/FrameworkTestApplication.java\n55717-p9 tests/FrameworkTest/src/com/android/frameworktest/performance/InvalidateCycle.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityLandscape.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityPortrait.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScan.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResize.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScan.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollableResize.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityPanScan.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityResize.java\n127341-p9 tests/ImfTest/src/com/android/imftest/samples/ButtonActivity.java\n129347-p9 tests/ImfTest/src/com/android/imftest/samples/DialogActivity.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/EditTextActivityDialog.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScan.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScan.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollResize.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivityNotSelected.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivitySelected.java\n25959-p9 tests/framework-tests/src/android/test/FrameworkTests.java\n46162-p9 tests/framework-tests/src/com/android/internal/http/multipart/MultipartTest.java\n77101-p9 tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/NinePatchTest.java\n9788976b1465ce982b5ae7c741345edd0ecd9322 core/java/android/accounts/AuthenticatorDescription.java\n53332883543868fb83e111a07306368b7772b340 core/java/android/app/UiModeManager.java\n93e7e22ec91dbc641d10ca6d70423e1357a95bba core/java/android/app/FullBackupAgent.java\n328c0e7986aa6bb7752ec6de3da9c999920bb55f core/java/android/content/CursorEntityIterator.java\n307da1a46b4c9b711bafe8fbaaa6b98e8868c18e core/java/android/content/SyncQueue.java\n307da1a46b4c9b711bafe8fbaaa6b98e8868c18e core/java/android/content/SyncOperation.java\neb034652c2037a47ebfd99779e8383bb8bb528af core/java/android/content/pm/LabeledIntent.java\n49237345d83e62fdb9eb8d50b13ad086636a04fa core/java/android/content/pm/FeatureInfo.java\na2b6c3775ed6b8924232d6a01bae4a19740a15f8 core/java/android/content/pm/PackageInfoLite.java\n3ecd5f437580e49d80beecd29489d5fb1f7a7db0 core/java/android/content/pm/RegisteredServicesCacheListener.java\n5ebbb4a6b3e16f711735ae0615b9a9ea64faad38 core/java/android/content/pm/XmlSerializerAndParser.java\nc4516a7b62de525e3d6d5e76851bdfaf12c11f05 core/java/android/database/sqlite/SQLiteTransactionListener.java\n9bbc21a773cbdfbef2876a75c32bda5839647751 core/java/com/android/internal/backup/LocalTransport.java\n21f1bd17b2dfe361acbb28453b3f3b1a110932fa core/java/com/android/internal/content/PackageMonitor.java\n4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 core/java/com/android/internal/view/BaseSurfaceHolder.java\n4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 core/java/com/android/internal/view/BaseIWindow.java\ne540833fdff4d58e37c9ba859388e24e2945ed45 core/java/com/android/internal/os/SamplingProfilerIntegration.java\n192ab903887bbb8e7c7b6da5c581573850e30f46 core/tests/coretests/src/android/widget/expandablelistview/PositionTesterContextMenuListener.java\n1619367ab823150fa8856d419abe02ceb75886f1 media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaProfileReader.java\n27f8002e591b5c579f75b2580183b5d1c4219cd4 opengl/tools/glgen/stubs/gles11/glGetString.java\n560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glGetProgramInfoLog.java\n560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glGetShaderInfoLog.java\n560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glShaderSource.java\n1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/GenerateGLES.java\n1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/Jsr239CodeEmitter.java\n1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/GLESCodeEmitter.java\n69e21f5f6e0d04539cd92848ea009dd615d88c2c opengl/tests/gldual/src/com/android/gldual/TriangleRenderer.java\nc028be4f3b8c7476b46859f66c3f33d528adf181 packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java\n7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerMeasurement.java\n7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerTestActivity.java\n7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerTestRunner.java\ndf8a3f31d871db25e952972c2eb346a71186e9e3 tests/BrowserTestPlugin/src/com/android/testplugin/TestPlugin.java\ncfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/ActivityManagerPermissionTests.java\ncfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/ServiceManagerPermissionTests.java\ncfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java\n\nCopyright header moved to top in following file:\n\ncore/tests/coretests/src/android/widget/ListViewTest.java\n\nChange-Id: I3c3198be5a0ba36e18679ed834170432bf0b8418\n"
    },
    {
      "commit": "8abb26ee6c77e01a23d26c305a65b25a33710024",
      "tree": "22c60f32d5f7ab29ea2b089766a97be5e16aa344",
      "parents": [
        "cea6ac367114ecaf7125685859baf3678fac35bb",
        "d2671e1fcf1d7f1b8e25a2615d514cf3c26b6a9c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Thu Mar 11 18:14:23 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 11 18:14:23 2010 -0800"
      },
      "message": "Merge \"Preserve widgets on upgrade. Bug #2464545\""
    },
    {
      "commit": "d2671e1fcf1d7f1b8e25a2615d514cf3c26b6a9c",
      "tree": "3250b0e86435f79ba7b2e4402a4adb9f00ca1c85",
      "parents": [
        "476c2323d5834cbc26ff8e5838003be2404cc497"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Thu Mar 11 18:06:42 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Thu Mar 11 18:06:42 2010 -0800"
      },
      "message": "Preserve widgets on upgrade.\nBug #2464545\n\nChange-Id: I802878af49dc4d98210fb8049df0bbdc49268d99\n"
    },
    {
      "commit": "ce8efead60282bedf0383bee83c7583b7332791d",
      "tree": "8a36632e25895fb4afdb6dfc480ba1a1d7ba4995",
      "parents": [
        "458e8062c322a614d470e544b725adb04fdd8770",
        "dfadaeac088cabce854d8f476405cd412f82593a"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Mar 11 17:21:12 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 11 17:21:12 2010 -0800"
      },
      "message": "Merge \"Stop creating threads for tethering.\""
    },
    {
      "commit": "4ea833d9a24aa1c2e92522150c89b37753a9aee8",
      "tree": "824e96445424bcf014084ff1a7e9a2cb95255922",
      "parents": [
        "80362d4ac80c4635dd9dac6481522d9af2f167b2",
        "4b450410065d77d56a56f0835871f8bc7c2d5994"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 11 17:12:48 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 11 17:12:48 2010 -0800"
      },
      "message": "Merge \"Need to keep new package\u0027s cert when using original-package.\""
    },
    {
      "commit": "4b450410065d77d56a56f0835871f8bc7c2d5994",
      "tree": "7f087e5fbc73ca071418258e37f040cb6440f9ad",
      "parents": [
        "26b1ef95833665fb83195caad010566c8a9e0199"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 11 16:20:08 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 11 16:20:08 2010 -0800"
      },
      "message": "Need to keep new package\u0027s cert when using original-package.\n\nFixes bug #2504353: Lost all widgets and shortcuts after upgrading form FRE68 to FRE69\n\nChange-Id: I62bab66bbd90bf0956d1716bae1b6073d01e2d8a\n"
    },
    {
      "commit": "05e552a6efd86e43d4404667d316e3e5e2806543",
      "tree": "f97f6d03ce50e6de72755d7b06d07a7ac283fe7d",
      "parents": [
        "26b1ef95833665fb83195caad010566c8a9e0199",
        "ff3e61c6d5de339300d26227b69bfd9ee0827103"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Thu Mar 11 15:41:22 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 11 15:41:22 2010 -0800"
      },
      "message": "Merge \"Support old/new package names for widgets.\""
    },
    {
      "commit": "dfadaeac088cabce854d8f476405cd412f82593a",
      "tree": "a6287b4546a7f8b60ea8a328cef45b40dd430a08",
      "parents": [
        "c1bcc9989cffa86780bdf1d797b080eea27e7194"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Mar 11 15:03:08 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Mar 11 15:39:30 2010 -0800"
      },
      "message": "Stop creating threads for tethering.\n\nUse the passed in looper and save threads.\n\nChange-Id: I6db04ef64e339a5fb2b71e9fb1da32e2d600447c\n"
    },
    {
      "commit": "ff3e61c6d5de339300d26227b69bfd9ee0827103",
      "tree": "63398503885803b1ef6cf4edc195dc0ca507acc8",
      "parents": [
        "b51132cb4f262e48c35f012d0aa45237a2f97f13"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Thu Mar 11 15:30:02 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Thu Mar 11 15:30:02 2010 -0800"
      },
      "message": "Support old/new package names for widgets.\n\nChange-Id: I134c4e694e66aaea47ad7da83d37b6621f4a527a\n"
    },
    {
      "commit": "26b1ef95833665fb83195caad010566c8a9e0199",
      "tree": "27d68b5abd60d7bc7d6bfb74fdc3f9593ee3bcbe",
      "parents": [
        "092ae5a78b7bd0cc429c94a39cee409481200347",
        "ac3587d7ced544091264a35249dbd3f9531a3cab"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 11 15:13:15 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 11 15:13:15 2010 -0800"
      },
      "message": "Merge \"Fix issue #2461567: Home screen redraw messed up\""
    },
    {
      "commit": "ac3587d7ced544091264a35249dbd3f9531a3cab",
      "tree": "bd74c8d2c79fd75e43919eecbb1decf9b87916eb",
      "parents": [
        "b51132cb4f262e48c35f012d0aa45237a2f97f13"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 11 11:12:11 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 11 14:52:34 2010 -0800"
      },
      "message": "Fix issue #2461567: Home screen redraw messed up\n\nMake sure that we have a window redraw itself after resizing its\nsurface.\n\nAlso includes a little optimization to avoid having an extra thread\nfor the ImageWallpaper.\n\nChange-Id: I88d1eb66e3116077f48e6f9086a5b6459505ef69\n"
    },
    {
      "commit": "c95142d4a0ab7bebb899167da17c70c3196abbe4",
      "tree": "f0df376999aab755d94ac7c69dc75634a86b7cde",
      "parents": [
        "015b59756eecdbec46f9aeda620ad0de1c8c9a23"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu Mar 11 12:31:23 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu Mar 11 13:16:04 2010 -0800"
      },
      "message": "Move boot log file writing into a background thread to avoid ANR.\n\nBug: 2507228\nChange-Id: I35695f89f1d62b907f04511e3e6b71722008949b\n"
    },
    {
      "commit": "6fc4fe98ab72c5852b87f1f8699b9808c0dbecc5",
      "tree": "f9a9c6127acfc7ce33de0ccb102ca0727cfadbe5",
      "parents": [
        "4bfe7879a459f8addf4ffcaa9181217192bd7071",
        "2fe718a87b9ebc9679ff2abf38b6c30274267bea"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Mar 11 12:23:50 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 11 12:23:50 2010 -0800"
      },
      "message": "Merge \"MountService: If USB cable is unplugged while UMS is active, clean up and remount\""
    },
    {
      "commit": "2fe718a87b9ebc9679ff2abf38b6c30274267bea",
      "tree": "34f4b2d5f1e9b5f8ea1c489f1c37b723100da2d9",
      "parents": [
        "df2d3cdca77edc309fccf8097a1682b1ef72443a"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Mar 11 12:01:49 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Mar 11 12:01:49 2010 -0800"
      },
      "message": "MountService: If USB cable is unplugged while UMS is active, clean up and remount\n\nChange-Id: I9c20e7bfc215549cd8a6e14625e5d005bb53f8fa\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "e96ffb18c11b119c6c62ba15e36de8b61d8c1e34",
      "tree": "48c126e8fcdc6421abec5ab7642ba594779fc719",
      "parents": [
        "aa27045a2c754f861b0540d7ca39a62cdc56f92f"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Mar 11 13:38:06 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Mar 11 13:38:06 2010 -0500"
      },
      "message": "Turn off pulsing jogball while on a call.\n\nBug: 2336573\nChange-Id: If0f0151cbead4eb8acf9e1ce2f6dbca088814694\n"
    },
    {
      "commit": "2ecce34f2f05447bed6d798a4fe906fed4cbd7d9",
      "tree": "2e1277f4f3efd2add0ba1648f18e6098f781f1d9",
      "parents": [
        "7f2087435edf475bc4e18c422a5baec7d7898d4c"
      ],
      "author": {
        "name": "Josh Bartel",
        "email": "josh.bartel@garmin.com",
        "time": "Thu Feb 25 10:55:48 2010 -0600"
      },
      "committer": {
        "name": "Garmin Android technology group",
        "email": "android@garmin.com",
        "time": "Thu Mar 11 08:30:16 2010 -0600"
      },
      "message": "Synchronize access to *Locked() functions\n\nSeveral places were calling *Locked() functions without properly\nsynchronizing.\n\nChange-Id: Ie39b6592da8bb5f4a5a1e738c45f228256116ec4\n"
    },
    {
      "commit": "409578fcb1d8ecfee0ae07b1a34a6e6cb184a0ce",
      "tree": "eafcfe2fbe6542c265f86ca840ced3ae11134da4",
      "parents": [
        "bfb5d4b93bb739a012ecec604473838c1343c88a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 10 17:23:43 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 10 23:23:11 2010 -0800"
      },
      "message": "Don\u0027t remove alarms for packages that are being updated.\n\nChange-Id: I296e6587aa1bb391e748ff4bb5649dcfa6ebbc24\n"
    },
    {
      "commit": "2ee89ea2887252053c31541c54126a8b084c9bca",
      "tree": "69be707136b1cde8ccfcb7bbb129e74ef2a64429",
      "parents": [
        "d8929fa76881b4b0f12d66dfc118dec291a59177"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 10 18:27:09 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 10 21:26:23 2010 -0800"
      },
      "message": "Applications should -not- be able to set preferred activities.\n\nI can\u0027t believe I let this slip through.  And in the SDK no less. :(\n\nThe APIs for setting preferred activities will now throw a security\nexception when used.  This may break some apps, we\u0027ll see how it\ngoes.  If it is too bad we can just make these log and not throw\nanything, but I would much prefer they throw an exception.\n\nChange-Id: I3aed434750eef8b202aa9d5bd774a0121be521c6\n"
    },
    {
      "commit": "94d4b034adff90f681b0937bde8f7657b855929b",
      "tree": "43ad401d9058075028e905d1180abf97a48c03b7",
      "parents": [
        "6c604690acbdb2c0717e85ae0d91718e1410d3e8",
        "030f5e18dfa71673708deb75e8aa1f196bebbd99"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Mar 10 17:24:46 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 10 17:24:46 2010 -0800"
      },
      "message": "Merge \"Disable USB Tethering when UMS is active\""
    },
    {
      "commit": "ff34fc2b45dce0774a15d1afdacd5b00e3191a3c",
      "tree": "2c6a92bd747bc8d93e229e435ab0e035e267db45",
      "parents": [
        "b9e1ed2b8051fb75da4622198231b95103724dec",
        "f283e3621026b0e3703b750d7b95d706e4bff050"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Mar 10 16:53:15 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 10 16:53:15 2010 -0800"
      },
      "message": "Merge \"Fix rare NPE in DropBoxManagerService\""
    },
    {
      "commit": "b9e1ed2b8051fb75da4622198231b95103724dec",
      "tree": "f272fe073e4222e56a26e395f02db4c634fae226",
      "parents": [
        "c3243e242d05f1f7b45964bf36aa4a56ed6ee66b",
        "78a640af951377d9749d0dbfd027687cbb92dc72"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Mar 10 16:52:27 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 10 16:52:27 2010 -0800"
      },
      "message": "Merge \"Make HiPri work when already connected.\""
    },
    {
      "commit": "030f5e18dfa71673708deb75e8aa1f196bebbd99",
      "tree": "d286a19635154234a3e0861cce4980d89bd31c8e",
      "parents": [
        "78a640af951377d9749d0dbfd027687cbb92dc72"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Mar 10 16:41:03 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Mar 10 16:51:35 2010 -0800"
      },
      "message": "Disable USB Tethering when UMS is active\n\nMake the tethering module aware of UMS.\n\nbug:2469818\nChange-Id: I29995812db41bf01a17c303f31fd1707a8d55328\n"
    },
    {
      "commit": "c3243e242d05f1f7b45964bf36aa4a56ed6ee66b",
      "tree": "065e0e14fdb86de8d71dc83644f97fce84010db9",
      "parents": [
        "0f344060096329f091af20a16d69547a47c1a9d5",
        "b8b11a0b1d82e24f7a79f2e1672e7f5cf1611a55"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 10 16:51:13 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 10 16:51:13 2010 -0800"
      },
      "message": "Merge \"Further improvements to window management!\""
    },
    {
      "commit": "f283e3621026b0e3703b750d7b95d706e4bff050",
      "tree": "f4a67380deefd9ec3d8c71dbe44e48be6fa0b7b1",
      "parents": [
        "c357df126183df4a3ea9bf58a08e4813e992585d"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Mar 10 16:49:55 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Mar 10 16:49:55 2010 -0800"
      },
      "message": "Fix rare NPE in DropBoxManagerService\n\nChange-Id: I2e9713802c59feb539d5d4c1ab1dfa21ec88d9f6\n"
    },
    {
      "commit": "b8b11a0b1d82e24f7a79f2e1672e7f5cf1611a55",
      "tree": "27359a5923982cf33cd13b457a71ada7504ef978",
      "parents": [
        "191bbafacc48e5abfc6f393e0664e2d183740c4a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 10 15:53:11 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 10 16:47:57 2010 -0800"
      },
      "message": "Further improvements to window management!\n\nFix issue #2493497: Stuck in the Emergency dialer - Home/Back keys doesn\u0027t work\nThis was another case of not updating the window focus when needed, this time\nwhen the lock screen was hidden.\n\nAlso re-arrange the layout/animate flow to address issues where you would see\na flicker of whatever was behind the lock screen when showing a new activity that\nhides the lock screen.  This was because we were deciding to hide the lock screen\nduring the layout phase, which meant we had to do it without considering whether\nit had drawn.  So we could hide the lock screen before the window is shown for the\nfirst time after being drawn.  Now we can do this in the policy during animate, so\nwe can wait until the window is drawn and actually being shown.\n\nThe flow in perform layout is thus significantly changed, where the layout and\nanimate loops are both under the same repeating loop.  The actual flow from this\nshould be the same, but it now allows the policy to request a new layout after\nthe animation loop is done.  This actually cleans up a number of things in this\ncode as the complexity has increased.\n\nFinally this includes a change to the ui mode manager when switching modes, to do\nthe resource configuration switch at a different time.  This makes transitions\nbetween modes much cleaner (though not yet perfect).\n\nChange-Id: I5d9e75c1e79df1106108dd522f8ffed6058ef82b\n"
    },
    {
      "commit": "0f344060096329f091af20a16d69547a47c1a9d5",
      "tree": "c5a6359061e0963a1e0289f7ed416e2c36b1ba2b",
      "parents": [
        "191bbafacc48e5abfc6f393e0664e2d183740c4a"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Mar 10 10:05:51 2010 -0800"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Mar 10 16:42:23 2010 -0800"
      },
      "message": "Clean up native access from framework\n\nDriver commands should be issued when driver has started.\nSupplicant commands should be issued when Wi-Fi is enabled\nBug: 2339709\nBug: 2371609\nChange-Id: I9ba6ddfa0cf4c4b8ca049b0eb7eaaa8edb42bad1\n"
    },
    {
      "commit": "78a640af951377d9749d0dbfd027687cbb92dc72",
      "tree": "d25f42c50b37810178f4b38b97695adc166f42ad",
      "parents": [
        "180403ac103e8ee1eeb07c5e3377748ee6a03917"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Mar 10 16:10:43 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Mar 10 16:19:18 2010 -0800"
      },
      "message": "Make HiPri work when already connected.\n\nA recent change made the HiPri MobileDataStateTracker listen for notifications\nabout the default connection (which HiPri shadows).  Local code was sending\nitself a notification using the old HiPri badging instead of the new Default\nbadging and those notifications where therefore ignored.\n\nManifested itself on HiPri connections when we were already on 3g.\n\nSee change 42422 on master platform/frameworks/base for the change this is completing.\n\nChange-Id: I375026048724d0035297287c61c6c2f58d4e0294\n"
    },
    {
      "commit": "7f2087435edf475bc4e18c422a5baec7d7898d4c",
      "tree": "3310b48c8be53f49d4accea937aed1da1c7aeba3",
      "parents": [
        "e3491b6b5f1d3fb871074766597b275d9f682faa"
      ],
      "author": {
        "name": "Josh Bartel",
        "email": "josh.bartel@garmin.com",
        "time": "Thu Feb 25 11:01:44 2010 -0600"
      },
      "committer": {
        "name": "Garmin Android technology group",
        "email": "android@garmin.com",
        "time": "Wed Mar 10 17:27:48 2010 -0600"
      },
      "message": "Rename functions which ought to be named *Locked()\n\nSeveral functions operate on variables to which access needs to be\nsynchronized.  However, it happens that the functions in question\nare only ever called from places which have already synchronized.\nTherefore, nothing is really wrong, but the functions ought to\nhave \u0027Locked\u0027 appended to their names, to indicate that it is the\ncaller\u0027s responsibility to synchronize before calling them.\n\nChange-Id: I44e7dc0dff6da9436677cb10908dce41ffeba195\n"
    },
    {
      "commit": "6069beb2dfed6da837bf7faa3db3f6119edc017a",
      "tree": "59b7d3e108b6e1dcfebc0a897db335b9c9f37407",
      "parents": [
        "a8fbe1fb74d3bd40b73c90c85ac25e5176475ca5"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 10 09:46:49 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 10 09:46:49 2010 -0800"
      },
      "message": "    Rename ApplicationInfo.FLAG_ON_SDCARD to ApplicationInfo.FLAG_EXTERNAL_STORAGE\n\n    Change-Id: Iadef9f9bb2851c38b6d79be1bafbf932abce4210\n\nChange-Id: I2e412bace3d8005db5057a3497bd836d0038b90c\n"
    },
    {
      "commit": "a8fbe1fb74d3bd40b73c90c85ac25e5176475ca5",
      "tree": "ee5fb37a1e91521611a58c6abe0446d49a4fb080",
      "parents": [
        "746f666029f67cbb3d9e274d718ab7d88e8455cd"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue Mar 09 09:13:58 2010 -0800"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Mar 10 08:28:08 2010 -0800"
      },
      "message": "Re-organize access to native interface through WifiStateTracker\n\nBug: 2339709\nChange-Id: Ibb2eeb09b83dc24897116ea15a9016f81a08d442\n"
    },
    {
      "commit": "aa3780b6f7749c4f4d0a8258d8505da4681cfbfa",
      "tree": "20e9bfb591b16c86fa1310d675236efa31cb154c",
      "parents": [
        "d274979739ff6b8d3d6f552724f8a85f5de44fb0",
        "f0fa39ed7496ae43369fac306d765d7d86fa23d7"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Mar 09 15:42:34 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 09 15:42:34 2010 -0800"
      },
      "message": "Merge \"Fix NO_CONNECTIVITY flag in some cases.\""
    },
    {
      "commit": "4acdcb721727dd32134d2e53376e4c3583c7f95a",
      "tree": "e323fe730133484f180f495454c4d0bb5665b0ba",
      "parents": [
        "17bc415ded862bc0a5f70ee2f7259f34d3491a17",
        "46af6a8b1f270b86f4e4a53b2c80fd20d8981af8"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Mar 09 14:57:41 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 09 14:57:42 2010 -0800"
      },
      "message": "Merge \"Don\u0027t let hidden keyguard interfere with button and screen brightness overrides\""
    },
    {
      "commit": "f0fa39ed7496ae43369fac306d765d7d86fa23d7",
      "tree": "73a1c9614d24bf6ad25f2361d9d81555c573938b",
      "parents": [
        "e8df25a9c6f9118e0136904883a777052c522cb0"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Mar 09 14:55:08 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Mar 09 14:55:08 2010 -0800"
      },
      "message": "Fix NO_CONNECTIVITY flag in some cases.\n\nAirplane mode seemed to hit this bug.\n\nbug:2498268\nChange-Id: I5af9266fbbad3e2323d30d7471058f0f4ec3f544\n"
    },
    {
      "commit": "17bc415ded862bc0a5f70ee2f7259f34d3491a17",
      "tree": "bf22df846408b396d662ec90844d03bb0b2cba8a",
      "parents": [
        "1596136562e9bc5d0c808bb8c33816ea1303df40",
        "6ffce2e9a3c57634bb73f8ff133ca680f8070d5d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Tue Mar 09 14:50:18 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 09 14:50:18 2010 -0800"
      },
      "message": "Merge \"Add new shutdown observer for MountService. Use new observer before rebooting and shutting down. Add some unit tests for unmount and shutdown code paths Fix registering/unregistering part in MountService Use ShutdownThread in PowerManager.reboot() Add reboot support to ShutdownThread. Remove MountService code from PowerManagerService.java and Power.java. Clean shutdown/reboot is handled exclusively by ShutdownThread now.\""
    },
    {
      "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"
    }
  ],
  "next": "a599fe7c0d8b4d4bdf4accb099cb17bebcb9088b"
}
