)]}'
{
  "log": [
    {
      "commit": "df2e2eff9446c0220515fa7aab7857135e04e12e",
      "tree": "dd1c383a329395a203d88da23618778ddce30c6c",
      "parents": [
        "5474902fe9fe72c825855c4a77f99a581a9f6594",
        "ecaa7b41ca49154ceaa9a7504eb0a86b89a96026"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jun 04 18:06:07 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 04 18:06:07 2010 -0700"
      },
      "message": "Merge \"Watchdog now records kernel stacks when it fires\" into froyo"
    },
    {
      "commit": "f9610b3842e030138c1dc327a3a467aaea02c227",
      "tree": "e1ca2b33bff382420400705efe493a4ab0f697e9",
      "parents": [
        "4b3309211ed6f3532b44481945a4725143d50b8a",
        "77b32ddbbeeb13a07b16f23af705567c75a8e3df"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Jun 04 15:55:09 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 04 15:55:09 2010 -0700"
      },
      "message": "Merge \"Make the DUN apn data secure.\" into froyo"
    },
    {
      "commit": "ecaa7b41ca49154ceaa9a7504eb0a86b89a96026",
      "tree": "a598349af5efb1e2a57e92862cf4a9b68d33f284",
      "parents": [
        "de56c27dab020bf85187c8bcfc6842cb31006c59"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jun 04 14:55:02 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jun 04 14:55:02 2010 -0700"
      },
      "message": "Watchdog now records kernel stacks when it fires\n\nThe kernel threads are appended to the usual /data/anr/traces.txt file\nand dropboxed along with the usual Dalvik stack dumps.\n\nChange-Id: I120f1f5ee54c965efe9ac0c7f40fdef56385f1fa\nNOTE: this change depends on the kernel publishing /proc/$PID/stack\n"
    },
    {
      "commit": "4b3309211ed6f3532b44481945a4725143d50b8a",
      "tree": "e6601c2badc671e722549a0e871d929bba6c9dff",
      "parents": [
        "2e3761ba43f634e97ac493f4b79e5e53954a1491"
      ],
      "author": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Fri Jun 04 15:16:06 2010 -0500"
      },
      "committer": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Fri Jun 04 15:16:06 2010 -0500"
      },
      "message": "Don\u0027t crash when low storage is encountered pre-boot completion.\n\nBug: 2741633\nChange-Id: Ic073ead64ff43b2e2c32b439756cd71c2b6550b8\n"
    },
    {
      "commit": "77b32ddbbeeb13a07b16f23af705567c75a8e3df",
      "tree": "6a284450b6ea308c982d7adcc89bc86c8d59947c",
      "parents": [
        "6a297118724f31b1063b74f52295d459ec4f58dc"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Jun 03 18:57:26 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Jun 04 11:13:34 2010 -0700"
      },
      "message": "Make the DUN apn data secure.\n\nRather than come out of the user-modifiable APN DB, the DUN APN data will\ncome first from a built-in resource and then potentially overriden by a secure\nsetting (which is gservices upgradable).\n\nAlso made the \"require-dun\" setting secure-setting overridable.\nbug:2736390\n\nChange-Id: I1e4644c3839f06c977b83797641f3948785146a2\n"
    },
    {
      "commit": "6ee412d51d8b601580cfb4b7be4f676b7ec76afd",
      "tree": "df79e15607aac042f19f2e2507f955447c9b1a6a",
      "parents": [
        "94f1751cb0c6ea4004ff86b3af89e06e00a66641"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri May 28 12:01:56 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri May 28 12:23:16 2010 -0700"
      },
      "message": "Also dump system process threads halfway through the watchdog interval\n\nThis gives us a snapshot of what the system process was doing after 30 seconds\nof apparent inactivity as well as after 1 minute, to help distinguishing actual\ndeadlocks from too-slow progress, livelock, etc.\n\nChange-Id: I19758861d1b25f298e88788e8f1c7ec7bf828823\n"
    },
    {
      "commit": "dc46f6f6cc44954c23229019270b54b8912be825",
      "tree": "af4357c659a77dd73c7d16be2ee052987cb38594",
      "parents": [
        "b3f3caef38326be2b4aea309237f718e6e2d2b8a",
        "acf8474b6843215c6ee5da5e58630de0afa2be60"
      ],
      "author": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Thu May 27 09:39:19 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 27 09:39:19 2010 -0700"
      },
      "message": "Merge \"Don\u0027t enforce broadcast timeouts for PRE_BOOT_COMPLETED broadcasts.\" into froyo"
    },
    {
      "commit": "7baec0fe4ef66ac308ebc132d6c08865db653b30",
      "tree": "6fd9dd4f8e2d5e659b53beb5df7bcfbd822383cd",
      "parents": [
        "fa499e46203dba2db2bb40f71e5af1650315c67c"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed May 26 17:16:47 2010 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed May 26 17:16:47 2010 -0700"
      },
      "message": "Fix null pointer exception\n\nBug: 2718857\nChange-Id: I4b04284fd5b3a4881297fe15555e9f1ca91d73cb\n"
    },
    {
      "commit": "9ecca85f0613032590c6840cae48b54f3d626181",
      "tree": "7f87eb53f5e435718954937b2fa8786fd4a13e18",
      "parents": [
        "b0016e2b2162c916289d022f1572c0bc95158543",
        "a6e559edb73886c626e0e5a95085d0ead767ceb7"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed May 26 13:02:06 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 26 13:02:06 2010 -0700"
      },
      "message": "Merge \"Fix escaping of characters\" into froyo"
    },
    {
      "commit": "acf8474b6843215c6ee5da5e58630de0afa2be60",
      "tree": "7201a8431e664a6fb4070daf00e18aef2035bdcf",
      "parents": [
        "7e5e3745cf0103219a13071fbd488c3c01da85d9"
      ],
      "author": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Tue May 25 22:10:18 2010 -0500"
      },
      "committer": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Wed May 26 14:02:56 2010 -0500"
      },
      "message": "Don\u0027t enforce broadcast timeouts for PRE_BOOT_COMPLETED broadcasts.\n\nThey\u0027re designed to handle one time upgrade code, which may\ntake a significant amount of time. Third party code cannot\nreceive this broadcast so the timing should be able to be\nkept under control.\n\nBug: 2713849\nChange-Id: I3733b6530198bebd9b8c2ba6f9f27a7999336b8d\n"
    },
    {
      "commit": "d1055a250c00b0c2516ec406a8cf9a5ab1c0b7ae",
      "tree": "7bd3c3deb88f79867f6d63e94830cde79592c3b9",
      "parents": [
        "7e5e3745cf0103219a13071fbd488c3c01da85d9"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue May 25 15:54:52 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue May 25 15:54:52 2010 -0700"
      },
      "message": "Make the NTP Cache max-age gservices-settable\n\nTrying to make Throttle polling more energy efficient.\n\nbug:2708119\nChange-Id: I2b75639e202dcbcee11047c43407a22de04ce350\n"
    },
    {
      "commit": "a6e559edb73886c626e0e5a95085d0ead767ceb7",
      "tree": "3a94d3306d39e27585f1d3ee217b03ba4d895584",
      "parents": [
        "c7c7afd7a1af36e787266815487f4600196406b8"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Mon May 24 14:55:42 2010 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Mon May 24 14:55:42 2010 -0700"
      },
      "message": "Fix escaping of characters\n\n\\ and \" in SSID and password cause issues\nwith netd parsing. Fix it.\n\nBug: 2708960\nChange-Id: I278ca21c0bbfd9dc430a2f9ae02828274a0d2376\n"
    },
    {
      "commit": "9a212adcffbc4b32d51f512889b33ba584647aa9",
      "tree": "e9975dc03c5dd352b9bf384699cfe492f009e78b",
      "parents": [
        "5f1d100298dfafbd996b6deff457e6d1de4008a0"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue May 18 11:06:53 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue May 18 11:31:50 2010 -0700"
      },
      "message": "Fix 2641875\nInitialize the cache path only if the container exists.\nThis did exist before but was somehow removed.\nFix a known test failure as well.\n\nChange-Id: I63219369b0e7abca4919fbde2a04035a0fea9e35\n"
    },
    {
      "commit": "eb9cbb8fdddf4c887004b20b504083035d57a15f",
      "tree": "6dd338fbe9142e4d39f052e80ae92565ee43416b",
      "parents": [
        "cfa2de303e58b971e334363356d29601e61d11c8"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 17 17:27:30 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 17 17:47:20 2010 -0400"
      },
      "message": "Resurrect flashlight support in obsolete IHardwareService Binder API.\n\nThis is to avoid flashlight apps that had been using reflection to access\nthis API after this class was removed after eclair.\n\nChange-Id: I26ed929abad93345468eb33d4a15977a31ebea7e\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "5f1beda18fc7709c2e61ace33607513770faf115",
      "tree": "331be02352ef8e20792dd1fa8fde411364ebfcdc",
      "parents": [
        "aa77de1348cbda3d5348b15734ab141cb9c7759c",
        "047076d170c5a94415b5abc9c9a220840639c283"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Fri May 14 23:15:04 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 14 23:15:04 2010 -0700"
      },
      "message": "Merge \"Make the SSID field of WifiConfiguration consistent with API description.\" into froyo"
    },
    {
      "commit": "aa77de1348cbda3d5348b15734ab141cb9c7759c",
      "tree": "081bdad2696ec700927f902289ebdeaae18624e2",
      "parents": [
        "d1e9d590941303c004459f3d798b26f1bf091535"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 14 22:33:54 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 14 22:33:54 2010 -0700"
      },
      "message": "Fix issue #2686193: Can\u0027t move apps to SD card\n\nChange-Id: Icd84d8080d33fb8ce5103a0e726d50f0ec70092e\n"
    },
    {
      "commit": "047076d170c5a94415b5abc9c9a220840639c283",
      "tree": "6bbdc88390d0ce2a9dbc628a095e0911c7ba7811",
      "parents": [
        "eb9128f9b0ee660504621381fd96f82d5bf8a3fd"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Sat May 15 11:03:30 2010 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Sat May 15 11:03:30 2010 +0800"
      },
      "message": "Make the SSID field of WifiConfiguration consistent with API description.\n\nBug id http://b/issue?id\u003d2684571\n\nChange-Id: I809478991ba606252d69ef007339754ab2856416\n"
    },
    {
      "commit": "1ace5bc070b7271a3f5835b13e326875785f718c",
      "tree": "8eece8ed8afee9b9c789a5d1c9a642ba838827f6",
      "parents": [
        "3c78a1b58957e31d2991fb6a609abecbb1987b3b"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu May 13 12:05:53 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu May 13 15:48:39 2010 -0700"
      },
      "message": "Fix 2672155\nCheck the code path when enabling disabling packages.\n\nAdd unit test\n\nChange-Id: I0f0f482a3735234eab3f63ba1f6462574b70144e\n"
    },
    {
      "commit": "6f86c0e64bcca300f650871c0a84456a7813432d",
      "tree": "8047179fe69addfb0e1356a1cf25a7f1cf8485c9",
      "parents": [
        "e1d7dca608ced72c75bf906c7267a1ef30349826"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 11 14:20:52 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 11 14:20:52 2010 -0700"
      },
      "message": "Fix issue #2676378: Activity Manager Crash on FRF40\n\nD\u0027oh!\n\nChange-Id: If1b43ff5f230f9bf0de0887deb1b25dcf6aa6e66\n"
    },
    {
      "commit": "f19a785e15d9ffa1c1e56c254af082fc87aa1f3c",
      "tree": "1b1eb1cd01de3a16e780d41ad5b2cafdf420690d",
      "parents": [
        "aaa01b181c0eea4ff6496d446e25e499b12ca14c"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 11 15:35:09 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 11 15:35:09 2010 -0400"
      },
      "message": "LocationManagerService: Call updateNetworkState on providers that are disabled.\n\nFixes a problem with Network Location not working after SetupWizard until the\nnetwork state changes.\n\nChange-Id: Ief81b76beb5cc90b2ca7d8aa2d4c99221898f01d\nBUG: 2671347\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "392a2bbb52688ebd25768a7784d9edca7f498110",
      "tree": "5ad454ac9523fbfc4f8e6f0b9509f415cf44f406",
      "parents": [
        "f78acacb0d7a8e4d9e85a1cd6eed0f6bb38d6776"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon May 10 20:02:46 2010 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue May 11 09:20:49 2010 -0700"
      },
      "message": "    Fix bug 2670395 and 2599698\n    When the user selects a \"Silent\" notification sound, the Uri encoded\n    path is an empty string. Setting this Uri as the data source of the\n    MediaPlayer used to play notifications caused the completion listener\n    to not be called, which with the AudioFocus logic causes the Music\n    app to pause and never resume. The NotificationPlayer modifications\n    cause the MediaPlayer for the notification to only request audio\n    focus when the data source is not empty.\n    The audio focus code in AudioService is defensively synchronized\n    against a unique lock, and the exception observed in bug 2670395\n    is explicitely caught in case another edge case wasn\u0027t caught by\n    this fix.\n    The AudioFocus handling in AudioManager is modified so only the\n    requestAudioFocus and abandonAudioFocus methods are meant to be\n    used, as registerAudioFocusListener and unregisterAudioFocusListener\n    provided no additional functionality over the request/abandon\n    methods. abandonAudioFocus() also removes the listener from the\n    map in AudioManager since after abandonning focus, the listener\n    would no longer be called.\n\nChange-Id: I3b553ee8a8163c25e01117d7e5479dd5fdfa7c6b\n"
    },
    {
      "commit": "6d00151c519d5c131cc1480978fe4417cc7bcc79",
      "tree": "78e489c6a334e598aa55c2b0b917ebfe6980a1f3",
      "parents": [
        "1926c471a3acde38931f2cbd55415decc9879d2d",
        "906497c574d45d8dfd295b16dece0d0bc32c0895"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 10 17:27:14 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 10 17:27:14 2010 -0700"
      },
      "message": "Merge \"Hopefully fix issue #2662536: Why is launcher being killed?\" into froyo"
    },
    {
      "commit": "906497c574d45d8dfd295b16dece0d0bc32c0895",
      "tree": "636cafd0184ebc44cc8dfa7cec9dda125bb8d8ec",
      "parents": [
        "639a7fc2c2d0bda12fef0c822bb2e3c002d5c5b4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 10 15:57:38 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 10 17:19:58 2010 -0700"
      },
      "message": "Hopefully fix issue #2662536: Why is launcher being killed?\n\nIt looks like there was a subtle bug where Process.setOomAdj() could\nreturn false just because the given process doesn\u0027t exist, even though\nit is documented to only return false if OOM killing is not supported\nat all.  This would cause the activity manager to fall into its code\npath of trying to clean up processes itself, which it does a much\npoorer problem at.  I am thinking we may be seeing this problem more\nnow that the activity manager is killing background processes itself\nwhen there are too many of them.\n\nIn addition, this change cleans up and reduces some of the logging\naround killing processes.\n\nFinally, try to improve process LRU management a bit by taking\ninto account process dependencies.  Any dependent processes are\npulled up in the LRU list with the processes that is actually\nmoving.  Also, we bring a process up if someone accesses its content\nprovider.\n\nChange-Id: I34ea161f839679345578ffe681e8d9c5d26ab948\n"
    },
    {
      "commit": "fee4683f47b43626af98ed9aade27917d4da2d8a",
      "tree": "18287ab3ef63e574cfb8d7b63798d9502db71758",
      "parents": [
        "5305627d5b78b8d63ce344c4eb5d1a28ef44d3d0"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu May 06 12:25:13 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu May 06 16:45:43 2010 -0700"
      },
      "message": "Fix ThrottleService wifi interaction\n\nWhen we switch to another network (or even just lose mobile data) the mobile\ninterface is either brought down or destroyed altogether.  That means any\nthrottling rules we\u0027ve told the kernel about get lost.\n\nThis change notices when our interface comes up and reinstates throttling\nif needed.\n\nbug:2660287\nChange-Id: I4c6ebf78acc59ed66b95984a1e8b7c2ffbc22dcb\n"
    },
    {
      "commit": "c1d07d9bebe487f8881f51f989a299b3c3c6d4fa",
      "tree": "47487a61f6d7920fcce1387cbca48c7c38aa332a",
      "parents": [
        "a69e10db2fb58deb5e27aa67c46d267af928374b"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed May 05 13:37:12 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed May 05 14:06:17 2010 -0700"
      },
      "message": "Fix 2656989. Clean up update to updated system applications.\n\nChange-Id: Ic66b00926c45fac43396f1f8f23d0865ba77faba\n"
    },
    {
      "commit": "4416c3d6e4becd9ed39b89a03db0239c8225a135",
      "tree": "ee83724da376bd99e2a35880c87522a20e2572da",
      "parents": [
        "5e5202bd6f9e7687fc6399762529b0ef5625e515"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 04 17:22:49 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 04 17:22:49 2010 -0700"
      },
      "message": "Fix issue #2643754: Launcher is caching widget layouts for too long\n\nWith the .apk file names now changing during an update, we need\nto make sure to flush all caches related to a package when the\npackage is removed.  Otherwise we can continue to use the old\npackage, since its old file may still exist if we try to load it\ntoo soon.\n\nChange-Id: I15f08dffca3feac999dbca4f24bef12a30ca0a66\n"
    },
    {
      "commit": "c956f37567593a71271bae107eafec47575f7dcc",
      "tree": "25d46e198934b1ae0d1a2fdadf82a5389883113b",
      "parents": [
        "b40c42f1ffa124cfbd5152007491c1d0b065592d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 29 11:56:40 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 29 11:56:40 2010 -0700"
      },
      "message": "Fix issue #2641875: Apps on sdcard not accesible after update\n\nChange-Id: I541aa040939e6a872f0b7e8e82e44f96de49d97a\n"
    },
    {
      "commit": "6e4895b63aa64a8df64dd69c49a414b7566932d3",
      "tree": "e311a5a8e54096abe1bf1bda693f0b97b2b9c50b",
      "parents": [
        "9aaf24f2a46eacd1e342f8c0300c3093646e2814",
        "c4938fd6190e04a454e8a10d4cba95ab6b805e71"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Apr 28 15:18:15 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 28 15:18:15 2010 -0700"
      },
      "message": "Merge \"Make timezone changes apply to status bar time in 24hr mode. Bug: 2632681\" into froyo"
    },
    {
      "commit": "c4938fd6190e04a454e8a10d4cba95ab6b805e71",
      "tree": "b7cee0dd0c3b8280e1282fefa4cc237a0434d54e",
      "parents": [
        "19681af44b7c7494ae8de28dab8aacc3e9d92390"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Apr 28 13:20:43 2010 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Apr 28 13:20:43 2010 -0700"
      },
      "message": "Make timezone changes apply to status bar time in 24hr mode. Bug: 2632681\n\nThe SimpleDateFormat was being cached and new timezone not being applied. Make sure\nto apply the new timezone to the format object as soon as it changes.\n\nChange-Id: I72abfef2e14cf5db5a6e8cb71b053380b695495c\n"
    },
    {
      "commit": "92cfa105f97b538eaca5f19bfbfd2c5ab9a5f89b",
      "tree": "99120d3ff5e7175d2cc8ad812bf8b06d470bb798",
      "parents": [
        "2e4b98dcd88f14fdb35e46236ec916493c570f28"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 28 11:00:44 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 28 11:00:44 2010 -0700"
      },
      "message": "Fix issue #2569139: Sapphire user cannot login to last.fm...\n\n...after upgrade from Donut to FRF01B\n\nFor realz this time.\n\nChange-Id: I92bd12451b19a6006cf487a9dfa0b7c696a21122\n"
    },
    {
      "commit": "cd24dae9ca6550b24333f889935e1de068759ce5",
      "tree": "c3bd6b7e83c46c7ed3e7b81df650cb4de9b0084a",
      "parents": [
        "3202d380226043fa665df3c92252f791f8c52d55",
        "6cf3d096363c62212870fb71bda8f55eb8d3823c"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 26 18:02:35 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 26 18:02:35 2010 -0700"
      },
      "message": "Merge \"Fix bug 2605504 Don\u0027t leak a metric ton of NotificationPlayer threads The Looper on the thread created in order to be notified of the playback completion of notification sounds, was never stopped, causing the threads to stay around in wait state. The fix consists in quitting the Looper used for the previous sound when a new sound is started.\" into froyo"
    },
    {
      "commit": "6cf3d096363c62212870fb71bda8f55eb8d3823c",
      "tree": "e6a2bd5031045a4d699ded5666cfc3163fb98947",
      "parents": [
        "19681af44b7c7494ae8de28dab8aacc3e9d92390"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 26 17:21:40 2010 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 26 17:21:40 2010 -0700"
      },
      "message": "Fix bug 2605504 Don\u0027t leak a metric ton of NotificationPlayer threads\nThe Looper on the thread created in order to be notified of the\nplayback completion of notification sounds, was never stopped, causing\nthe threads to stay around in wait state.\nThe fix consists in quitting the Looper used for the previous sound\nwhen a new sound is started.\n\nChange-Id: Ia4b3d16b5447ffafacc093db3a7fe05574089935\n"
    },
    {
      "commit": "27fba6797b07583ef6c280bc287bf327e47f5e66",
      "tree": "2f807c4c33eb2bed92f509577080c8e7fde2d88e",
      "parents": [
        "19681af44b7c7494ae8de28dab8aacc3e9d92390"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Apr 26 12:29:14 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Apr 26 12:29:14 2010 -0700"
      },
      "message": "Fix Throttle reset.\n\nThe start and end times were precisely the same so, a \"\u003e\" check needed to be \"\u003e\u003d\".\nAlso removed useless code and removed the potential problem where continuous gradual\nadvancement of your start and end times would prevent resets.\n\nbug:2629717\nChange-Id: Ieced1965a5611a9b555e92bcf924ec350f2a80db\n"
    },
    {
      "commit": "19681af44b7c7494ae8de28dab8aacc3e9d92390",
      "tree": "872bd1596584616548b571227f908e255dfafe02",
      "parents": [
        "374aee6888edddc5bcac9a644ad3de812404d3bc",
        "cce83379ef5ddd122ffe6fcce431cb86d059a74b"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Apr 26 11:13:11 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 26 11:13:11 2010 -0700"
      },
      "message": "Merge \"Handle throttling being disabled via policy change\" into froyo"
    },
    {
      "commit": "cce83379ef5ddd122ffe6fcce431cb86d059a74b",
      "tree": "84cb71f9de2f1e7a26b82ebd8e91e5fc65be1cc0",
      "parents": [
        "0b2ebe9b45172b9147f86fd69eedb2a200982b68"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Apr 23 17:35:29 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Apr 23 17:35:29 2010 -0700"
      },
      "message": "Handle throttling being disabled via policy change\n\nbug:2622543\nChange-Id: Ic0c169094cdb4f80af9cfcbed116f59fda46a421\n"
    },
    {
      "commit": "2131a3caa8e3ce24d14093f5ce247482f675e7da",
      "tree": "21a5aca125c50c9ab0ad128be23305e782a6d947",
      "parents": [
        "2adec762fbb61c73f612acb7463ba765de1296ad"
      ],
      "author": {
        "name": "Bryan Mawhinney",
        "email": "bryanmawhinney@google.com",
        "time": "Fri Apr 23 14:38:31 2010 +0100"
      },
      "committer": {
        "name": "Bryan Mawhinney",
        "email": "bryanmawhinney@google.com",
        "time": "Fri Apr 23 22:42:17 2010 +0100"
      },
      "message": "Fix typo when parsing external platform version from Settings.\n\nMay fix http://b/2569139\n\nChange-Id: I437f614fd25512bd461812feddb091edcd12ccb7\n"
    },
    {
      "commit": "2adec762fbb61c73f612acb7463ba765de1296ad",
      "tree": "ec9316c9fbf2ec17d382f2315ef52d03dc20313d",
      "parents": [
        "5fa65082f16741394dcfbe756e3880d5c018dace",
        "149427cd903f2100e3cc39bda41b831cd68bc553"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 23 14:23:39 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 23 14:23:39 2010 -0700"
      },
      "message": "Merge \"Fix issue #2621809: Kill! Kill! Kill!\" into froyo"
    },
    {
      "commit": "149427cd903f2100e3cc39bda41b831cd68bc553",
      "tree": "276cd6696da2ce3e4c5c54b38614fb57b52c56e8",
      "parents": [
        "bf73bbffc18f5abb5350fa3a410830c05ad10206"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 23 14:20:03 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 23 14:20:03 2010 -0700"
      },
      "message": "Fix issue #2621809: Kill! Kill! Kill!\n\nStop! Stop! Stop!  Spamming the log.\n\nChange-Id: I13f432b49d8c85165873566d58e2fb2714b1263e\n"
    },
    {
      "commit": "5bf16d6e8c0afae4e60590ffbdbed1bd6e73ff8b",
      "tree": "12442732ee0ab3331d61d7ad4bcb86f6eb71c95e",
      "parents": [
        "251ccef0445d4456809bfc41a6344e2dae24f2c3"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Apr 23 13:15:44 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Apr 23 13:15:44 2010 -0700"
      },
      "message": "Respond to changes in throttle policy.\n\nWe were updating limits and such before, but we were not applying them\nto the current situation if we were already throttled.  Now it can result in\nus throttling or changing our throttle rate or unthrottling or even making\nthe ui come or go (disabling/enable throttling)\n\nbug:2622543\nbug:2619879\nChange-Id: I64a62634d54f4768ab8625f8d72f9f66a239cb19\n"
    },
    {
      "commit": "251ccef0445d4456809bfc41a6344e2dae24f2c3",
      "tree": "79884b8ae6cf6aeea8d1bc169e6f939bbc30dda1",
      "parents": [
        "7b88af679a9a3b5737343bb996ef392b76d19e73",
        "fb9896b5cdb149594fa1b36ac77038d90091a957"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Apr 23 10:17:14 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 23 10:17:14 2010 -0700"
      },
      "message": "Merge \"Add a Throttle check shortly after boot.\" into froyo"
    },
    {
      "commit": "90c6aec10f969acf9b171b82920480fb6aeb007f",
      "tree": "09a149c85481338b9623002c6f3596568f350bda",
      "parents": [
        "9bc0a572d8459e0b6209e8a68cb680389c1f8b73",
        "8633e68ebdf215f721834f7aa16c2f3cef1bae86"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 22 16:23:44 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 22 16:23:44 2010 -0700"
      },
      "message": "Merge \"Fix issue #2619247: Music sometimes stops playing when navigation talks\" into froyo"
    },
    {
      "commit": "8633e68ebdf215f721834f7aa16c2f3cef1bae86",
      "tree": "6a6fa8d07528b608129a99cfbc8dcfdbe8a27fe3",
      "parents": [
        "05fa2144e458dc8f024235ea01b8682055d828bf"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 22 16:03:41 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 22 16:11:18 2010 -0700"
      },
      "message": "Fix issue #2619247: Music sometimes stops playing when navigation talks\n\nWhen a service transitions from foreground to background, we now push it\nto the top of the LRU list.  Also fix the activity manager to take care\nof killing processes if we go beyond a reasonable number of background\nprocess to keep around.\n\nChange-Id: Ic9f44c02af7a111ee6f1d06142386b301948bafe\n"
    },
    {
      "commit": "f09c1a247af4688729a85af8fba4ba1e404a63d5",
      "tree": "d7e8e4ca825afd24f1b93cef352c3d8512c3732f",
      "parents": [
        "05fa2144e458dc8f024235ea01b8682055d828bf"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 22 15:59:21 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 22 15:59:21 2010 -0700"
      },
      "message": "Fix issue #2608292: Fails to launch the video camera preview\n\nNeed to clear the attached hidden flag on the window, even if it does\nnot yet have an actual surface.\n\nChange-Id: I0a90f6b03cd8e347a3eae4d6bea3ab93f7128bf4\n"
    },
    {
      "commit": "fb9896b5cdb149594fa1b36ac77038d90091a957",
      "tree": "d228c1a0908aab6ce5365b483dc733072afe25db",
      "parents": [
        "a6ece18d95a35acc4fb3f9648403ce42d0d6b2d7"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Apr 22 15:39:38 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Apr 22 15:39:38 2010 -0700"
      },
      "message": "Add a Throttle check shortly after boot.\n\nThrottle is useless when ntp and imsi are not yet ready.  In the real world\nthe second check won\u0027t happen for 10 minutes letting people do what they want\nfor 10 minutes each boot.  Trim this down with a quicker first check.\n\nbug:2614247\nChange-Id: I84ec33f31e8fed37b3933482fbc187b8e9e94e79\n"
    },
    {
      "commit": "05fa2144e458dc8f024235ea01b8682055d828bf",
      "tree": "465dff9a35538796913a1b29b3c3fd606692f9c2",
      "parents": [
        "2fba6d1c1b445b2d26ccd32eb4084e759f513c5d",
        "bf7de397279519e0144ceb7264003bc2accbb092"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Apr 22 09:08:25 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 22 09:08:25 2010 -0700"
      },
      "message": "Merge \"Trim throttle logs.\" into froyo"
    },
    {
      "commit": "bf7de397279519e0144ceb7264003bc2accbb092",
      "tree": "b62c067ad99d869082eb36223ffe1282c6828140",
      "parents": [
        "83512d4dfc06137bc2d9db0cb62644c54f41a771"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Apr 21 17:09:38 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Apr 22 09:04:27 2010 -0700"
      },
      "message": "Trim throttle logs.\n\nRemoving unwanted sntp logging and throttle logging.\n\nbug:2614927\nChange-Id: Ic0b1c3502ebbc1f04130d09d715591af6513f439\n"
    },
    {
      "commit": "36fa47139d4621dc4bf8d89caa8650495d901b00",
      "tree": "3f919622ab8530ccb91a66ce117a67b34338f874",
      "parents": [
        "23c0b2eb5a610030ad5afe406987cb09c858ccfb",
        "a32504fce826fb66b53991d04819ece3e6bf105e"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Apr 21 18:10:20 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 21 18:10:20 2010 -0700"
      },
      "message": "Merge \"Fix security hole in Google backup transport registration\" into froyo"
    },
    {
      "commit": "a32504fce826fb66b53991d04819ece3e6bf105e",
      "tree": "b51c9b09c4c071e5d90adac6ad766388676c873d",
      "parents": [
        "0dde41fbe0e36bfe059399c839604267ad0318c1"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Apr 21 17:58:07 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Apr 21 18:02:56 2010 -0700"
      },
      "message": "Fix security hole in Google backup transport registration\n\nPreviously, it was conceivable that a 3rd party application on a non-GED\ndevice could publish a service that supported the (hidden) IBackupTransport\ninterface and spoofed the Google backup transport\u0027s package and component\nname.  This could allow it to secretly intercept all data moved through the\nbackup mechanism.\n\nFix by ensuring that the package in question exists and is part of the\nOS itself (FLAG_SYSTEM in its ApplicationInfo description) before binding\nto it.\n\nFixes bug #2457063\n\nChange-Id: I3487572be45c2014fa209beacfe3ac6f8270f872\n"
    },
    {
      "commit": "22caecda8a24c971972d78a112279c48f242d529",
      "tree": "a178b05a87f79c3dd1f55cd228fa02bd54d12df3",
      "parents": [
        "be34896457bb37b4e263efa87316d2e2420adab3",
        "8c8bb8b3c4eba500d64b75c344518fa1cda35e92"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 20 17:53:00 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 20 17:53:00 2010 -0700"
      },
      "message": "Merge \"Fix PM crash due to bad array bookkeeping logic.\" into froyo"
    },
    {
      "commit": "be34896457bb37b4e263efa87316d2e2420adab3",
      "tree": "cd26f31ddde2fe12ee14b0846d3a03a6ea05577c",
      "parents": [
        "9e609b0dfa155fbe8ba3b5abd4faa188e2270dde",
        "7eae25021d3aa71c7616ea766f9a4d5af3b1772b"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Apr 20 17:37:22 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 20 17:37:22 2010 -0700"
      },
      "message": "Merge \"Move Tethering off the ServerThread.\" into froyo"
    },
    {
      "commit": "8c8bb8b3c4eba500d64b75c344518fa1cda35e92",
      "tree": "ca666806895ac29e39eeb0511a0f47a04f7da034",
      "parents": [
        "0a4ab1b9b4c7b891c1ecb67eed99e9c9b30c93aa"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 20 17:21:47 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 20 17:21:47 2010 -0700"
      },
      "message": "Fix PM crash due to bad array bookkeeping logic.\n\nBug: 2586093\nChange-Id: I320deeef65a434060e608015dc2dd97b8200e025\n"
    },
    {
      "commit": "7eae25021d3aa71c7616ea766f9a4d5af3b1772b",
      "tree": "17eea07c1a61d9c7b277f8a72c089f655664f992",
      "parents": [
        "19275cb5b028c18228674f87ba4cbc98d8520c5e"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Apr 20 15:51:20 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Apr 20 15:51:20 2010 -0700"
      },
      "message": "Move Tethering off the ServerThread.\n\nAn ANR has been reported because somebody else was hogging the Netd\nlink.  We can\u0027t pause the server thread for that, so make a new thread.\n\nbug:2609904\nChange-Id: I0430a08621da1cda0a0010ce15826cceee59a529\n"
    },
    {
      "commit": "c96307efd2829cdd0fa7c835484f2f89edf7d883",
      "tree": "a6b3b5a88cd2d58e3b22c2f9ce283ca7eab97558",
      "parents": [
        "19275cb5b028c18228674f87ba4cbc98d8520c5e",
        "c210b65cd2619ef462bd860c7197ddcb1c39c75c"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Apr 20 12:57:54 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 20 12:57:54 2010 -0700"
      },
      "message": "Merge \"Make the silent/vibrate status icon reflect overall device state. (DO NOT MERGE)\" into froyo"
    },
    {
      "commit": "f06f2eb2d646789d723d4a08d0681cae5b40b768",
      "tree": "0ac421065079f45755ebc5d50e636e33a6ef867c",
      "parents": [
        "2dc784988aa1660d02b50ed4e7d7679ba14b25b4",
        "05d0673bfc5231f6dea4bc99627bbf44edf3a8d0"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Apr 19 13:21:01 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 19 13:21:01 2010 -0700"
      },
      "message": "Merge \"Misc fixes for throttling.\" into froyo"
    },
    {
      "commit": "05d0673bfc5231f6dea4bc99627bbf44edf3a8d0",
      "tree": "879aa4f4961af822195d5f9e3437beb2be81bfb1",
      "parents": [
        "7171ea8179e09270e4d6ab825a2320816eee39c5"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Apr 19 11:10:38 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Apr 19 12:29:29 2010 -0700"
      },
      "message": "Misc fixes for throttling.\n\nCleanup of duplicate code\nCaching Ntp data so we don\u0027t hit the network as often\nClearing out of MRU data when we switch to a new sim\nSending notification after we reset byte counts\n\nbug:2605277\nbug:2605272\nbug:2597530\nbug:2576057\nChange-Id: I3df526bae6374f6ae56fed67b0defad2b4fabefd\n"
    },
    {
      "commit": "b213d103d34a5f2ebbdafef6a7510fce2cc1e337",
      "tree": "bd06643d734f43923ae3df9f72a06c775b4f00c4",
      "parents": [
        "afbf9f8d6d66a0c1ba8c44a87b120bcad89ad8b5"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Apr 19 11:58:52 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Apr 19 11:58:52 2010 -0700"
      },
      "message": "Reduce lock contention, removing unnecessary synchronization.\n\nThe value returned is purely a function of what\u0027s passed in, all\nfollowing final members.\n\nBUG\u003d2606839\n\nChange-Id: I506fb9b1f3be965576c2b3317a30ff1f990ccda3\n"
    },
    {
      "commit": "afbf9f8d6d66a0c1ba8c44a87b120bcad89ad8b5",
      "tree": "24a6422524eb18a2e5a5c1a2c5d9f8365e1a20c6",
      "parents": [
        "1892013643537f5fc330f5b0a02a0e9cb08b1134",
        "01fad4a52666974dbc53eaf4f7a857dd65c22eed"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Apr 19 11:50:53 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 19 11:50:53 2010 -0700"
      },
      "message": "Merge \"Ease contention on the mProcessStatsThread mutex in updateCpuStats.\" into froyo"
    },
    {
      "commit": "c210b65cd2619ef462bd860c7197ddcb1c39c75c",
      "tree": "273d523ba52caad18a97456f4321ee9c843dc281",
      "parents": [
        "3110bf6df1cb6d548e678cdcbb8c7349b2ac0d8a"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Apr 19 14:29:05 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Apr 19 14:36:57 2010 -0400"
      },
      "message": "Make the silent/vibrate status icon reflect overall device state. (DO NOT MERGE)\n\nPreviously, this status icon reflected just the incoming\ncall behavior:\n - gone for audible (with or without vibrate),\n - wiggling phone for vibrate,\n - silent (speaker + X) for no audible ring or vibrate.\n\nNow that silent mode has changed (see VIBRATE_IN_SILENT),\nyou can easily get into a state where this icon is\nconfusing by setting the incoming call ringer to *never*\nvibrate but setting the overall device silent state to allow\nvibration (VIBRATE_IN_SILENT\u003dtrue).  In this case, rocking\nthe volume all the way down would show a wiggling phone\n(because the device is in vibrate-only mode) but the status\nbar would show speaker+X (because the incoming call would\nneither ring nor vibrate).\n\nNow these two icons are consistent. This means, however,\nthat if this special condition is set by the user (device\nvibrates in silent mode, but incoming calls should never\nvibrate) and the device is in silent mode, the status bar\nwill show a wiggling phone even though incoming calls will\nnot vibrate the device. This puts the ringer on a more even\nfooting with other apps on the device, which may elect not\nto vibrate even if VIBRATE_IN_SILENT\u003dtrue overall.\n\nBug: 2598014\nChange-Id: Ib942f68738d77ab0d9b9da4fac718ae5957c133c\n"
    },
    {
      "commit": "01fad4a52666974dbc53eaf4f7a857dd65c22eed",
      "tree": "99b4d5b84c5d6ac2301bd80a08a700fe82e76676",
      "parents": [
        "975d86dfc6407314491a18bc715c8c95a8f8f0b1"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Apr 19 10:47:40 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Apr 19 10:47:40 2010 -0700"
      },
      "message": "Ease contention on the mProcessStatsThread mutex in updateCpuStats.\n\nBUG\u003d2606839\n\nChange-Id: I444af0bb4a7b0be7ebf9ee5887805f2f09a426d0\n"
    },
    {
      "commit": "04152f98ffbd17f54a6b771636ff7f440f0edc78",
      "tree": "dfad89e4ea2fff1649a593b521dacef350330406",
      "parents": [
        "3110bf6df1cb6d548e678cdcbb8c7349b2ac0d8a",
        "a99f5f43cdb24f60fd1adc3fdfcb8d6ff101a0fd"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 19 09:41:19 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 19 09:41:19 2010 -0700"
      },
      "message": "Merge \"Fix bug 2599698 Music paused by itself The NotificationPlayer sets an OnCompletionListener on the MediaPlayer it\u0027s using to play the notification. NotificationPlayer relies on the completion event to abandon audio focus.  The player was started before the listener was set. The theory about the bug is that the player finished playing before the listener was called. Therefore the audio focus was never abandonned, and the music didn\u0027t resume.\" into froyo"
    },
    {
      "commit": "3110bf6df1cb6d548e678cdcbb8c7349b2ac0d8a",
      "tree": "90e85fd60dc1f921f5bc630cb0899be64a7f132b",
      "parents": [
        "7171ea8179e09270e4d6ab825a2320816eee39c5",
        "48358bd5c1a35c153c024608b4a302b90f62abfd"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Apr 19 08:18:58 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 19 08:18:58 2010 -0700"
      },
      "message": "Merge \"Fix inconsistency in how we handle light sensor when battery is low.\" into froyo"
    },
    {
      "commit": "7171ea8179e09270e4d6ab825a2320816eee39c5",
      "tree": "ee44e8832f8308434b8a6d01b411d3b6c6a20a9e",
      "parents": [
        "975d86dfc6407314491a18bc715c8c95a8f8f0b1"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Apr 14 22:37:12 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Sun Apr 18 10:21:20 2010 -0700"
      },
      "message": "Make ThrottleService more tamper resistant.\n\nUse elapsed time not wall time for alarms so users can\u0027t play with the\nsystem time to get around things.\n\nAlso using NTP servers to pull in an authoritative time - if we the build\nis configured with an NTP server we will not advance to the next cycle\nwithout it, but we also will not trottle - rather not throttle users\non an error.\n\nNote that the poll alarm is just relative to the last poll time and real\ntime doesn\u0027t matter.\n\nDefining the time-fetching API\u0027s as returning time in the system wallclock\nrange (correcting if we are using NTP time internally).\n\nbug:2597530\nChange-Id: I1c0ac0923314c2f8a04edd0b36c4845352eae99a\n"
    },
    {
      "commit": "48358bd5c1a35c153c024608b4a302b90f62abfd",
      "tree": "c86f41d1c5c1a13e7080e510f636866b8e79c9ff",
      "parents": [
        "3c44db3f67c1f0bf82191ba77ca479c0e7fede34"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Apr 17 22:29:20 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Apr 17 22:29:20 2010 -0400"
      },
      "message": "Fix inconsistency in how we handle light sensor when battery is low.\n\nIn lightSensorChangedLocked we ignore the light sensor if the battery is low.\nBut in applyButtonState() and applyKeyboardState() we were still using the previous\nmLightSensorScreenBrightness value, which resulted in a race condition that could\nleave the button lights on after the screen turns off.\nNow we ignore the light sensor value and button brightness override if the battery\nis low so the low battery behavior is consistent.\n\nChange-Id: I4943f8904299883211a95596ee207df69d1eaea2\nBUG: 2570962\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "cf28236b3784e285632e272b99cf1f8fc01f016b",
      "tree": "3e7a2c993cdc46172504275d28c1ba1292d7e698",
      "parents": [
        "d5a873fbe8df67e86990969b6729db0079bbc278"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Apr 16 16:53:20 2010 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Apr 16 16:53:20 2010 -0700"
      },
      "message": "Dont check on interface value on API\n\nThe interface check in API could be used\nin future.\n\nBug: 2576057\nChange-Id: Icfb78a88be44d1e6a8350c4b65efe70970e658d8\n"
    },
    {
      "commit": "a99f5f43cdb24f60fd1adc3fdfcb8d6ff101a0fd",
      "tree": "9a543ea04b4ad970cd305375859d1b5517d9ffc7",
      "parents": [
        "e3094117a094d8ed2dbd2f4cac15e48b73ceadf4"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Apr 16 16:40:47 2010 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Apr 16 16:40:47 2010 -0700"
      },
      "message": "Fix bug 2599698 Music paused by itself\nThe NotificationPlayer sets an OnCompletionListener on the\nMediaPlayer it\u0027s using to play the notification.\nNotificationPlayer relies on the completion event to abandon\naudio focus.\n The player was started before the listener was set. The theory\nabout the bug is that the player finished playing before the listener\nwas called. Therefore the audio focus was never abandonned, and\nthe music didn\u0027t resume.\n\nChange-Id: Ic3baf359ea24de0d832a655dc47e745b25bc3dec\n"
    },
    {
      "commit": "e80c6f49d5055e299b7ada91b5967feab66e467b",
      "tree": "227d547fa8cabea33b7e879a94fafed6c1c12dce",
      "parents": [
        "e3094117a094d8ed2dbd2f4cac15e48b73ceadf4",
        "e6e98823412275d869ec15d71fd11bba98417c45"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Apr 15 17:37:55 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 15 17:37:55 2010 -0700"
      },
      "message": "Merge \"Add multi-sim support to ThrottleService.\" into froyo"
    },
    {
      "commit": "e6e98823412275d869ec15d71fd11bba98417c45",
      "tree": "1ff7789c04abc74bf7fd4c41feb9de484bb6e259",
      "parents": [
        "fa22de7993f94d338330a888bdc2aeaaf857c719"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Apr 15 08:27:14 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Apr 15 17:23:59 2010 -0700"
      },
      "message": "Add multi-sim support to ThrottleService.\n\nUses the last used data until the SIM is available (if ever).  Supports data from\nseveral SIMs for all the world travelers out there.\n\nbug: 2576057\nChange-Id: I70e34a51f1c2ccda41a480652b0233b68ff3f538\n"
    },
    {
      "commit": "4f99e3c28449833b10ee23c538246847fdb6a498",
      "tree": "4df99abb8a1ff4aa74bacb6b943b71b5a5ac3531",
      "parents": [
        "fa22de7993f94d338330a888bdc2aeaaf857c719"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Apr 12 16:11:15 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Apr 15 10:35:25 2010 -0700"
      },
      "message": "Remove native binaries when an updated system application is upgraded through OTA.\n\nThe point of this patch is to deal with the following case:\n\n- A system application exists in the system partition. As such its\n  native code lies under /system/lib\n\n- An upgrade for it is installed through Market and overrides the\n  version on the system partition. This places its native libraries\n  under /data/data/\u003cpkgname\u003e/lib/\n\n- Finally, the system is upgraded through an OTA, with an even more\n  recent of the system application. We thus must remove the Market\n  package as well as the native libraries that are in \u003cdataDir\u003e/lib\n  since the new versions in /system/lib will be more recent.\n\nThe patch itself removes the files in \u003cdataDir\u003e/lib when such a\nsituation is detected. Note that this directory is created by the\nPackageManager service and owned by the \u0027system\u0027 userID. The application\ncannot create files there so simply erasing the content of the directory\nis enough (and avoids reparsing the market package file to list\nthe installed binaries).\n\nThe patch also fixes a different issue which can be reproduced with:\n\n- have system app installed on /system partition\n- install an update (e.g. adb install -r Term.apk)\n- uninstall the update (e.g. adb uninstall com.android.term)\n\nthe logcat shows that the PackageManager will unpack the native libraries\nfrom the original /system/app/Term.apk into \u003cdataDir\u003e/lib, while they\nalready are in /system/lib. The patch fixes that too.\n\nChange-Id: I5dfe27b91b6b31972e9cd4c196d15c3692732127\n"
    },
    {
      "commit": "93597ed1839de164c81f83832d4c2373ea32ac8f",
      "tree": "b906d7cee0c028846badf52579ad9025e589a870",
      "parents": [
        "90d3f458d99d9c0f35f9ee295997661c2493cb58",
        "9c90a37c6e8885dfc7848330755401209b605ecd"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Apr 15 05:45:21 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 15 05:45:21 2010 -0700"
      },
      "message": "Merge \"Fix wakelock leak in PowerManagerService.sendNotificationLocked()\" into froyo"
    },
    {
      "commit": "8090edae9ed1228e8cbaa14dd94c6ce885a0b729",
      "tree": "c72604b5aa1cc312da6d9a403e8a8ee99dbbe2f3",
      "parents": [
        "deb69370ef9a786940ae49411ba657410361b4f1",
        "8c7e609b530d5dcb34e02788958a84a99501c332"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Apr 14 20:23:45 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 14 20:23:45 2010 -0700"
      },
      "message": "Merge \"Sholes mobile iface comes/goes - handle the reset\" into froyo"
    },
    {
      "commit": "deb69370ef9a786940ae49411ba657410361b4f1",
      "tree": "ecd2c69a9239e3a56b711941c3a3e1d5d6e01bba",
      "parents": [
        "b0ef1442866ec52a772e6edfab732a2c987bbee0"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Apr 14 19:17:14 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Apr 14 19:58:22 2010 -0700"
      },
      "message": "Revert \"Add ordered broadcast when removing packages.\"\nCouple of cosmetic fixes as well.\n\nThis reverts commit 0c1285fa979e8b8c170f31d0ef1b4e5d9ddcf6b1.\n\nConflicts:\n\n\tservices/java/com/android/server/PackageManagerService.java\n\nChange-Id: Ife0f9f80525f4a41b1f8c12ffc2de62e061e7d5b\n"
    },
    {
      "commit": "b0ef1442866ec52a772e6edfab732a2c987bbee0",
      "tree": "f07b655e3c034e96f7e6a71d118ee2abb03d8a8d",
      "parents": [
        "5304d8fdc9064f2831ef16db9242f17110287997",
        "b67fa45c26d5e4fc4d19a15868af348994bd6287"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 14 19:02:00 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 14 19:02:00 2010 -0700"
      },
      "message": "Merge \"Fix issue #258640: Automatic propagation of FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET\" into froyo"
    },
    {
      "commit": "315a5fb91dbafe6073435a13d937cee9d26877f6",
      "tree": "3e5bdebfa89ae4e997a726e5e600751823cca580",
      "parents": [
        "40b6996a8fb7da131e8b91453b08e292723662be"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Apr 13 14:32:16 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Apr 14 18:24:06 2010 -0700"
      },
      "message": "Dont fall back to installing on sdcard when internal storage is filled up\nwhen the install location is set to internal only. Similary if install\nlocation is set to external only(via adb), dont fall back to installing on\ninternal storage if sdcard is filled up.\nIf nothing is specified ie install location is set to let system decide,\nwe just check on internal storage.\nFix tests\n\nChange-Id: I7400ccc131782d9c45284bd9ebd0dee43a3b412b\n"
    },
    {
      "commit": "b67fa45c26d5e4fc4d19a15868af348994bd6287",
      "tree": "b99fd4aa49cf975ce4f913fba8cd8f98fdb61eaf",
      "parents": [
        "8a878dde9d15f75446bb5ca3137fccef8426ddd7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 14 18:01:43 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 14 18:01:43 2010 -0700"
      },
      "message": "Fix issue #258640: Automatic propagation of FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET\n\nMake sure, if an activity is started with clear task when reset, if that\nactivity is finished in the middle of a stack that the behavior is retained\nby propagating it to the next activity.\n\nChange-Id: Ie31b8f968558b0e64e0ef7efa55950a722c6afa5\n"
    },
    {
      "commit": "8c7e609b530d5dcb34e02788958a84a99501c332",
      "tree": "e2c625e7001d72df1c830afe773c3b6c2a30610a",
      "parents": [
        "d3d445b1dca98728a37b5163e018ba890fd9cc50"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Apr 14 17:31:20 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Apr 14 17:31:20 2010 -0700"
      },
      "message": "Sholes mobile iface comes/goes - handle the reset\n\nThe byte counter for the iface goes to zero when it comes back.  Catch that and\ndo the complex math to correct.\n\nAlso add a log entry telling us our desired throttle index.\n\nLastly, reset the sec/msec part of our reset time so that one calc will \u003d\u003d another and not\nbe off by little bits.\n\nbug:25494925\nChange-Id: I99525b72a76316a8e601ceb457ca202fae040bae\n"
    },
    {
      "commit": "0c1285fa979e8b8c170f31d0ef1b4e5d9ddcf6b1",
      "tree": "6686f0324f9b2c1376e73927a9d1828a97346d53",
      "parents": [
        "8656145e2abe881caffa4181ee5c2e4e3dba1cee"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Apr 14 17:05:48 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Apr 14 17:13:50 2010 -0700"
      },
      "message": "Add ordered broadcast when removing packages.\n\nChange-Id: I30a84068fa8f2b15564b0a164d339ac95f40e801\n"
    },
    {
      "commit": "399cccb85749e02f6d3e12d1d2846310e7cbfdf1",
      "tree": "029d692a88e79c9679cee5a2d092b1370241d63e",
      "parents": [
        "22b3644ac2027d055a6b187c979ef492ee6fb082"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 13 22:57:49 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 14 09:54:21 2010 -0700"
      },
      "message": "Fix issue #593153: Broadcast time out when sending...\n\n...ordered broadcast for ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE\n\nTurns out this was because the broadcast receiver for ContextImpl was\nnot correctly being created, so when it received an ordered broadcast\nit would not tell the activity manager when it was done.\n\nThis is now fixed, along with a ton of superficial changes to debug\noutput to help track this down and a little cleanup of dealing with\nerror cases in dispatching broadcasts.  Also a fix for a NPE when\ndumping the broadcast state.\n\nFinally, a little fiddling with package manager to get rid of a lot\nof the noise when removing and re-adding packages on the SD card.\n\nChange-Id: I961c14836dc613d3ea8122b6e910ef866e7fcb25\n"
    },
    {
      "commit": "22b3644ac2027d055a6b187c979ef492ee6fb082",
      "tree": "bffc0f6a2fcb6ba0a00798b84ecef207252518d6",
      "parents": [
        "9cb66e89cd0c4bfa8d77591719023b7153fee9b9"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Apr 13 15:17:14 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Apr 14 09:13:53 2010 -0700"
      },
      "message": "Update the datause icons.\n\nbug:2576057\nChange-Id: Idf57d59aecb9bcff635dafa1e77d90a8737a0c08\n"
    },
    {
      "commit": "9cb66e89cd0c4bfa8d77591719023b7153fee9b9",
      "tree": "6a41ed147de3158e2fb56445f3c7f8289c9651db",
      "parents": [
        "b2212464a3bc4103a9e5e88602d1097c835d7949",
        "b8912f5481f79182184b628d7722e1a5b91b27f6"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Apr 14 09:07:25 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 14 09:07:25 2010 -0700"
      },
      "message": "Merge \"Perist Throttle data across reboots\" into froyo"
    },
    {
      "commit": "8e1f2f8804a1f63c7a03a3eeced9ffdf6e6c3293",
      "tree": "ef2e627ee57c43b0aa60e49f1bdab1964dfba66d",
      "parents": [
        "ce73c1e5bfd36154d21ee7b332cfdc6cea48812e",
        "53d9264de4f99a069dd7306f881d28ddd5956b35"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 13 18:07:27 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 13 18:07:27 2010 -0700"
      },
      "message": "Merge \"Fix issue #2555171: Switching to app immediately after unmounting...\" into froyo"
    },
    {
      "commit": "ce73c1e5bfd36154d21ee7b332cfdc6cea48812e",
      "tree": "4682462696a5a80c308c7be8f1e75f6e9ee94a37",
      "parents": [
        "ae8c2c71f7791ed0321e56f31f0c1276da4d8842"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 12 23:11:38 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 13 18:01:40 2010 -0700"
      },
      "message": "Framework change for #2583442: Navigation dies when night mode changes\n\nThe window manager doesn\u0027t retain its keep screen on lock while\nin the process of destroying and creating new activity windows during\na config change.  Now it does.\n\nUnfortunately, this doesn\u0027t help maps, since it doesn\u0027t use our\nlovely KEEP_SCREEN_ON flag. :p\n\nChange-Id: Ida4bc0fcfe132cdff2bd4eeb7ba0ce9731504d14\n"
    },
    {
      "commit": "ae8c2c71f7791ed0321e56f31f0c1276da4d8842",
      "tree": "a72083ae6bf148e4dd04adb3a84e55fda1d5d1bd",
      "parents": [
        "ba6339fe2ba2d7325a99201e82d951064efa31a2",
        "5943c200a4707fb8acd38c1709e30c400b65349e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 13 17:57:23 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 13 17:57:23 2010 -0700"
      },
      "message": "Merge \"Fix issue #2420340: if FLAG_SHOW_WHEN_LOCKED, do not show keyguard...\" into froyo"
    },
    {
      "commit": "53d9264de4f99a069dd7306f881d28ddd5956b35",
      "tree": "4d5e68203618529f03911a610052064826e25550",
      "parents": [
        "ba6339fe2ba2d7325a99201e82d951064efa31a2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 13 12:49:14 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 13 17:35:22 2010 -0700"
      },
      "message": "Fix issue #2555171: Switching to app immediately after unmounting...\n\n...SD card causes reboot.\n\nAdd option to not include temporarily unavailable recent tasks,\nfor the recent tasks UI to not display them.\n\nChange-Id: I1495ca217b4292fd56f537459b44c0624262c292\n"
    },
    {
      "commit": "b8912f5481f79182184b628d7722e1a5b91b27f6",
      "tree": "d85ec8d31ffcf59ade8d1f1c5fc5427c583e8f28",
      "parents": [
        "d3bb93f6870581eebbf08b5b7fb0a9c5eaad8b16"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Apr 09 17:27:26 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Apr 13 16:42:29 2010 -0700"
      },
      "message": "Perist Throttle data across reboots\n\nNever got SharedPreferences working for this system service.  Didn\u0027t really need it anyway.\nUsing a straight up file now.\n\nbug:2576057\nChange-Id: Idad926e8242a85e22718c25f3f6c03e5749badac\n"
    },
    {
      "commit": "d3bb93f6870581eebbf08b5b7fb0a9c5eaad8b16",
      "tree": "7f077d14254d8e6d904ba30ea5375ae79ae530ac",
      "parents": [
        "dd684af8c8fd5984d4d40b125bfac1ce268622ae"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Apr 12 19:20:55 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Apr 13 15:44:34 2010 -0700"
      },
      "message": "Add build config values for data use defaults\n\nDon\u0027t use hard coded defaults - use build configs instead.\n\nIface is now ONLY set by config so gservices doesn\u0027t need to.\n\nbug:2576057\nChange-Id: I8f9e3bc51af3b1cdf8bb4290a43197d9c01e2a14\n"
    },
    {
      "commit": "812b24fd9d254f37e34f2878f599253a1f3bffe9",
      "tree": "6a1f61249743f777b65ceaa13820b16a59d7d400",
      "parents": [
        "42843c3ceb8b17e860112f8f2718cda40de15839",
        "3d24425165aabfd2a8d5e5f973f085c6e6446341"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Apr 13 15:30:07 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 13 15:30:07 2010 -0700"
      },
      "message": "Merge \"Fix crashes related to unmounting when app on sdcard has an active notification in status bar. When unmounting sdcard, all the secure containers have to be unmounted first before invoking the MountService call back. We send a broadcast about disabled packages. Force a gc to clean up any stale asset references  and then unmount the containers before invoking the MountService call back.\" into froyo"
    },
    {
      "commit": "9c90a37c6e8885dfc7848330755401209b605ecd",
      "tree": "c76c332982ccea52eeb60b1d782a1c710af916ef",
      "parents": [
        "842d983cc3158a3de77a897d071b5b9c18dd2b55"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 13 15:40:27 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 13 15:40:27 2010 -0400"
      },
      "message": "Fix wakelock leak in PowerManagerService.sendNotificationLocked()\n\nChange-Id: Ia5f814fe81413dc5350faaf4c79cff47de62d0ed\nBUG: 2592894\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "3d24425165aabfd2a8d5e5f973f085c6e6446341",
      "tree": "c8f3c3a3f4448aa285bf6833aef9f361a181b830",
      "parents": [
        "bcac496076ef6f439147e7a2be71e8a2b76ddede"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Apr 08 14:37:05 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Apr 13 11:20:57 2010 -0700"
      },
      "message": "Fix crashes related to unmounting when app on sdcard has an active notification\nin status bar.\nWhen unmounting sdcard, all the secure containers have to be unmounted first\nbefore invoking the MountService call back. We send a broadcast\nabout disabled packages. Force a gc to clean up any stale asset references\n and then unmount the containers before invoking the MountService call back.\n\nChange-Id: I831da1ae54aeec89de3601b94a4a2fae5dc7e495\n"
    },
    {
      "commit": "5943c200a4707fb8acd38c1709e30c400b65349e",
      "tree": "0289dcb575b74802fb4a3e821bdbfbd92aeb5dea",
      "parents": [
        "290a48b365479eccd16023b5de0d92063bb68b4d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 12 21:36:49 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 12 21:36:49 2010 -0700"
      },
      "message": "Fix issue #2420340: if FLAG_SHOW_WHEN_LOCKED, do not show keyguard...\n\n...go directly to unlock screen\n\nFix a problem where, when we are moving windows due to a configuration\nchange, our wait to have the windows get redrawn would also\ninadvertently make us think their surfaces should be hidden, leading\nto nasty things like the lock screen thinking it should be shown\nagain (and thus forcing the orientation back to portrait).\n\nChange-Id: I79057cfbc93ff59fd3558da997d4f73796e6aabe\n"
    },
    {
      "commit": "2a7b730378a0c9d7c3dfbc47e9862169a149d347",
      "tree": "8ec5a3b5c8390c55553d8a210c91eca3d5547e56",
      "parents": [
        "290a48b365479eccd16023b5de0d92063bb68b4d"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Apr 12 14:56:31 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Apr 12 14:56:31 2010 -0700"
      },
      "message": "Fix Throttle Notification intents\n\nNow goes to the correct settings page.\n\nbug:2576057\nChange-Id: I21df0e53f7f56ae9bf71f983a3aed200c5ac217d\n"
    },
    {
      "commit": "17de1532a950f7ee961debab93a7977292b7f1f3",
      "tree": "1734e0a3b0d21ae1c44bb675f28ccaf6b4fb9323",
      "parents": [
        "5cc072522b51f796085a73545a3dd34a02877059",
        "f5c5d22c471f399f215662a8e471bf02b5b6bcfa"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 09 16:52:41 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 09 16:52:41 2010 -0700"
      },
      "message": "Merge \"Fix issue #2581524: Car home icon should always go to car home\" into froyo"
    },
    {
      "commit": "f5c5d22c471f399f215662a8e471bf02b5b6bcfa",
      "tree": "047720cef3b43e1dfe401cfe5c9df7cc5c1c5f82",
      "parents": [
        "4525c98114c1e570ecef84521f66095e866af77d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 09 13:14:48 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 09 16:49:08 2010 -0700"
      },
      "message": "Fix issue #2581524: Car home icon should always go to car home\n\nRework how switching between modes work so the caller can tell us\nwhether they want to go to home.  (So car home launcher can now\ntell us they always want to go home.)\n\nChange-Id: Id4a8129027d6d162b4bae6f983911f1f4bf2578f\n"
    },
    {
      "commit": "e2c0ce03631fc81651b8bde578e993c25e3291e9",
      "tree": "241b43589ecbdb15da238854b7f465e55beb803a",
      "parents": [
        "a18c824c029c14093b3d06d0a021c5397be667fb"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Apr 09 12:31:46 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Apr 09 16:07:08 2010 -0700"
      },
      "message": "Add warning magic to be a bit more reasonable.\n\nCurrently warns if you exceed more than 25% and 2*100%*timeUsed/(timeUsed+totalTime)\n\nThe formula means that imagining you\u0027ve got half of the remaining time that you really have,\nwe will warn you if you would exceed the quota given your rate so far.  It\u0027s generous during the\nearly to mid-life and converges back to the limit as your timeUsed approaches totalTime.\n\nbug:2576057\nChange-Id: Id189de5b026f927ef478fd212d61d9e4ab5239e6\n"
    },
    {
      "commit": "81aa0971d7a26ae16ed34fc7da97a55d97fb8e74",
      "tree": "e387bb78e16021e70e7cf6d52b6e391515be60eb",
      "parents": [
        "cb27041034343a6a15f0812d04f66fefbed30686"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Apr 09 09:36:09 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Apr 09 12:42:45 2010 -0700"
      },
      "message": "Make ThrottleService notice policy changes.\n\nAdded ContentObserver to watch relevant Secure Settings.\nAlso added new policy-change broadcast to let settings know.\nLastly reorged things a bit so that all of our broadcasts are sent at boot so the sticky ones\nare populated.\n\nbug:2576057\nChange-Id: Ie11ffb057de9c801a5088612cd464ea062f3a666\n"
    },
    {
      "commit": "5f996899b058f0eb6655d3fe3fd3a5d93256e6c5",
      "tree": "a9df67480f4d675e4430f7414af4b1846e886c1f",
      "parents": [
        "70c294b205f7b27308c45bf893270bef6081d39b"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Apr 08 16:19:24 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Apr 08 19:12:38 2010 -0700"
      },
      "message": "Roaming data doesn\u0027t count against limits\n\nbug:2576057\nChange-Id: I51a66e3b49a62e0186816ec0473814a216184e6b\n"
    },
    {
      "commit": "c9b6851af68bdc20c4903b16c344e9f116647219",
      "tree": "130ec1c124f3cd2c7ef6dbe98d18c6bae8de413a",
      "parents": [
        "267f0a6b683a2de75450afee59d2058b292c72c8"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Apr 08 14:12:33 2010 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Apr 08 16:53:32 2010 -0700"
      },
      "message": "Throttling framework addins\n\nAdd ThrottleManager in getSystemService\nAdd API for URL fetch\n\nBug: 2576057\nChange-Id: Icd25c8b91ea4beea15c74e8ad7292ab48c962253\n"
    },
    {
      "commit": "267f0a6b683a2de75450afee59d2058b292c72c8",
      "tree": "f3f3da357fda479482c61e551171347cf263fa9f",
      "parents": [
        "779a4ca84d62a6e4f18a723cfc18c5d035f60fed",
        "e684d9582cedf9bd5cc6c6fe47c600a79a13d816"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 08 16:41:47 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 08 16:41:47 2010 -0700"
      },
      "message": "Merge \"Workaround NPE caused by packages missing signatures.\" into froyo"
    },
    {
      "commit": "779a4ca84d62a6e4f18a723cfc18c5d035f60fed",
      "tree": "6163c7358863633784cae149617bf11cb87c08bf",
      "parents": [
        "185f1a96683f59e2ff617b688449fd490e364be7",
        "e760072a987192b421fef1697d3e90185a7b3b17"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 08 16:41:37 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 08 16:41:37 2010 -0700"
      },
      "message": "Merge \"Improve robustness of package manager certificate collection.\" into froyo"
    },
    {
      "commit": "c87dc6dc90d0953c10051dceb470ff05e2fb9300",
      "tree": "6945188be58714e5287c1762b8ba80b5fa612471",
      "parents": [
        "2b4b5738011f5ccb118ad15721fd757c85448966"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Apr 08 16:00:26 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Apr 08 16:00:26 2010 -0700"
      },
      "message": "Updating some notificiation UI for Throttling\n\nString update and make one an ongoing notification.\n\nbug:2576057\nChange-Id: I7980f110c7eed8e8bf305490eddaa58e2949e3be\n"
    },
    {
      "commit": "e684d9582cedf9bd5cc6c6fe47c600a79a13d816",
      "tree": "73541cc0fbe9dcb039cd6f66ad93b2c74a9d69fe",
      "parents": [
        "c62cdef4ec4d22893b184776a21e42e8ff2a7c72"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Apr 05 17:42:10 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 08 14:05:11 2010 -0700"
      },
      "message": "Workaround NPE caused by packages missing signatures.\n\nBug: b/2547993\nChange-Id: Idcd4fc3ee4c2560a00a952e1910a50b30b736114\n"
    }
  ],
  "next": "e760072a987192b421fef1697d3e90185a7b3b17"
}
