)]}'
{
  "log": [
    {
      "commit": "7d608423b721e0153f37bfd5eba78fcd2489562d",
      "tree": "1844ef30b7a4e467a39858ab5ffc7575c4f536d3",
      "parents": [
        "8868f9797c39e5fc7c9612fbb69d53f34f03f6a2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Aug 07 16:24:18 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Aug 07 20:20:56 2011 -0700"
      },
      "message": "Move OOM kernel settings to activity manager.\n\nThe activity manager now take care of plugging the correct settings\ninto the OOM killer in the kernel.  This is a lot cleaner because\nit is really central to how the activity manager works, and nobody\nelse cares about them.\n\nTaking advantage of this, the activity manager computes what it\nthinks are appropriate OOM levels based on the RAM and display\nsize of the device.\n\nAlso a small optization to the package manager to keep a binding\nto the package install helper for a bit after done using it, to\navoid thrashing on it.\n\nAnd some new APIs that are now needed by Settings.\n\nChange-Id: I2b2d379194445d8305bde331c19bde91c8f24751\n"
    },
    {
      "commit": "dfee59afb3e4cdcde38f6338f9360655de76da92",
      "tree": "9581ba1b0c6d7c0034e7ff69fcf85071a9244a1c",
      "parents": [
        "5d4967884132647a75d05bcc2ca1f9ce490b372f"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Aug 05 20:48:30 2011 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Sun Aug 07 14:17:30 2011 -0700"
      },
      "message": "Fix bug 5011824 - New Holo overflow menu for physical menu key devices\n\nThe new Holo-style overflow menu now appears from the edge of the screen\nwhere the device\u0027s physical menu key can be found. The policy determining\nthis lives in getPreferredOptionsPanelGravity() in WindowManagerService.\n\nChange-Id: I8851a2265547156591e82044e50b5cfc58d3eefa\n"
    },
    {
      "commit": "ffbf1756f64844c9f0c916a4d3fb6766a191d459",
      "tree": "a528c86958bc0b18314b58d4bf6ab729a20c05f0",
      "parents": [
        "8dc6a1b2823f374a176fb21b8a174664a5f825fa",
        "aac0eb08bb2fdb32b2f2e045d74343abe6ae6bf8"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Sun Aug 07 13:37:59 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Aug 07 13:37:59 2011 -0700"
      },
      "message": "Merge \"Remove notifications when an app is disabled.\""
    },
    {
      "commit": "aac0eb08bb2fdb32b2f2e045d74343abe6ae6bf8",
      "tree": "014dd09efa6e3d491d3e03577170b02f36593080",
      "parents": [
        "fb87cf606a22ab1056fd7caf9bf1f6d9f9190f51"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Sat Aug 06 22:51:56 2011 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Sat Aug 06 22:51:56 2011 -0400"
      },
      "message": "Remove notifications when an app is disabled.\n\nBug: 4998840\nChange-Id: Ic0c14105924d815aed78da1f5510c98a2fe1dd77\n"
    },
    {
      "commit": "8dc6a1b2823f374a176fb21b8a174664a5f825fa",
      "tree": "eeb04170d38361b192670d2740ee9509e2283a2c",
      "parents": [
        "9ea31639738e8d2c90dc3a4fcd535d09a0b7209a"
      ],
      "author": {
        "name": "Isaac Levy",
        "email": "ilevy@google.com",
        "time": "Wed Jul 27 08:00:03 2011 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Aug 05 20:45:08 2011 -0700"
      },
      "message": "Watchdog notify on explicit connect\n\nNotifies when user explicitly clicks on wifi dialog.\n\nChange-Id: I5eee37d68b422d748d41e9384d5006482a223dc5\n"
    },
    {
      "commit": "9ea31639738e8d2c90dc3a4fcd535d09a0b7209a",
      "tree": "d989269169af06601154db67e91a6660d32ca0c6",
      "parents": [
        "9c181ffbda73beb0a6d14529693896945af30591"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 05 14:43:50 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 05 19:22:25 2011 -0700"
      },
      "message": "Fix issue #5108980 Wallpaper is not restored after upgrade from IRK32B to IRK33B\n\nTake care of updating from old component name, and don\u0027t let this happen\nagain.\n\nAlso tweak how we switch between static wallpapers to avoid introducing\na 4MB allocation in the system UI process when this happens -- we now\nstop the current wallpaper service and start a new one, so we get a\nbrand new surface that we can draw only one time in to.\n\nChange-Id: I6fc8a42b8a46bba79759bd68fb7d0684b5d897b7\n"
    },
    {
      "commit": "9c181ffbda73beb0a6d14529693896945af30591",
      "tree": "a09d85f2ff87ddf29a6f2f343a7d9aa5771b4147",
      "parents": [
        "2adf53c758388c764878835631e43b90bd1302e9",
        "b437e090ec03a2bab10bdfcb9484577a7f34e157"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 05 18:18:52 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 05 18:18:52 2011 -0700"
      },
      "message": "Merge \"Improved memory use reporting.\""
    },
    {
      "commit": "b437e090ec03a2bab10bdfcb9484577a7f34e157",
      "tree": "86424e259db63fb8c7780a433b2eb808950fbc49",
      "parents": [
        "284585aa835096111c7129b330f458b75ed27a8d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 05 17:50:29 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 05 18:18:05 2011 -0700"
      },
      "message": "Improved memory use reporting.\n\nChange-Id: I38e53e6228bba92a142bafeedb5af8df4e4e5724\n"
    },
    {
      "commit": "d37dbc7c96aa78ba297b46de04a4c565b8a2e71a",
      "tree": "9f308520560f115e3f4abd76dc308f93a0905e54",
      "parents": [
        "580dc389db5d0a5fbdebb7c77fb89214318f9ce3",
        "eef4ae44b308350e669b829da75610058ff4d328"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Aug 05 15:07:41 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 05 15:07:41 2011 -0700"
      },
      "message": "Merge \"Fix bug where sometimes the full backup pw would not be validated\""
    },
    {
      "commit": "fb87cf606a22ab1056fd7caf9bf1f6d9f9190f51",
      "tree": "d24a9d9f5d4faddb8652a8c35580b110151b29e9",
      "parents": [
        "8f019d63055ad76b94710b7b96e29625173584c4",
        "2b30afdbad5e79c5775ac9756f3b986268d90f1f"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Fri Aug 05 13:55:39 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 05 13:55:39 2011 -0700"
      },
      "message": "Merge \"resolved conflicts for merge of 7bb2d942 to master\""
    },
    {
      "commit": "eef4ae44b308350e669b829da75610058ff4d328",
      "tree": "da377126f2581fb7ae918a1cee056f55d31155cd",
      "parents": [
        "e83af902c4ed1f0f1afb1b4f6f26a8003aca4954"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Aug 05 13:15:53 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Aug 05 13:15:53 2011 -0700"
      },
      "message": "Fix bug where sometimes the full backup pw would not be validated\n\nThere was a hole where if no backup pw was supplied and the current\npw authentication field was also left blank, it wound up not verifying\nand just proceeding with the backup.\n\nChange-Id: I857d8e83cbb2b3bf6b6b04848c5696ef0cf393a1\n"
    },
    {
      "commit": "2b30afdbad5e79c5775ac9756f3b986268d90f1f",
      "tree": "e4a5ea1d6b4c77310a21d937fd6d405424d2b6dc",
      "parents": [
        "b51b844dc892ed98b73541afc6931377857bea2d",
        "7bb2d942498dea702f2020d7b81f0e13c2623500"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Fri Aug 05 11:40:22 2011 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Fri Aug 05 11:40:22 2011 -0700"
      },
      "message": "resolved conflicts for merge of 7bb2d942 to master\n\nChange-Id: I026b01805c81d8b26d22e4a195e5e38655a34d32\n"
    },
    {
      "commit": "d0c3f7e770d776808ea78fded3e0fb44e1b9d898",
      "tree": "f1597860afdd36fbc342e0edce78c29968e8d3d2",
      "parents": [
        "b51b844dc892ed98b73541afc6931377857bea2d",
        "fdd5f95a817820c8e3e240718c6ef2f0d0d96613"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Aug 05 10:21:51 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 05 10:21:51 2011 -0700"
      },
      "message": "Merge \"Update scanresult capability check\""
    },
    {
      "commit": "9fbceea01da9d802f2f03b559f78989d2ae50881",
      "tree": "b00b1dc6179f5756ce4293085486189b619acbde",
      "parents": [
        "755edceadbd07084b694bfe29dc516436a6362d2",
        "47e02711d78ecac9112aa7f66e5664cdc46fb3d1"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Aug 05 04:59:04 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 05 04:59:04 2011 -0700"
      },
      "message": "Merge \"ACTION_HOVER_EXIT sometimes not delivered during touch exploration.\""
    },
    {
      "commit": "0dc8bb25d21963528bfd0fc05ccbc01663b9fc5a",
      "tree": "e780344a249f885f330809f459d12ed17117d453",
      "parents": [
        "bd391ba1f24409d889d3fb84651f8c81edcd659e",
        "5357806980269d846a15c845a6fcc0384fb18860"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Aug 05 03:59:06 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 05 03:59:06 2011 -0700"
      },
      "message": "Merge \"API cleanup for the spell checker framework\""
    },
    {
      "commit": "fdd5f95a817820c8e3e240718c6ef2f0d0d96613",
      "tree": "99250c56abe7d5f43c5aeec42e6cd39205f8e450",
      "parents": [
        "b491877331cab95b8d2f9191a674476f826f92a5"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Aug 04 16:55:54 2011 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Aug 04 16:58:33 2011 -0700"
      },
      "message": "Update scanresult capability check\n\nScan results now have [ESS], [IBSS] \u0026 [P2P] to represent an\naccess point, ad-hoc network \u0026 p2p network.\n\nFix open network check.\n\nBug: 4998496\nChange-Id: I0bf3f168677b0cd8cb27297427b539e768210995\n"
    },
    {
      "commit": "7bb2d942498dea702f2020d7b81f0e13c2623500",
      "tree": "bd65d99b95f6f47c99a50a5dfbb928f35806ab32",
      "parents": [
        "03f8fcb8b017556df08d9926f8ca41b383c5ad08",
        "090df1dc4188e5b9ef10a0aca5081a196085ff56"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Aug 04 16:11:41 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 04 16:11:41 2011 -0700"
      },
      "message": "am 090df1dc: Merge \"Delay connectivity change notifications.\" into honeycomb-LTE\n\n* commit \u0027090df1dc4188e5b9ef10a0aca5081a196085ff56\u0027:\n  Delay connectivity change notifications.\n"
    },
    {
      "commit": "fe313490fb64746d4042934f77ac19d8d00d6a25",
      "tree": "883ff082f4a67b0305a3d69dd9f724045cb7bfea",
      "parents": [
        "d6a89b48c9395338cbeb230ccde5006ac6a9729f",
        "63d27a9233fed934340231f438493746084a681d"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Aug 04 15:39:24 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 04 15:39:24 2011 -0700"
      },
      "message": "Merge \"Network stats with varint, omit parcel fields.\""
    },
    {
      "commit": "628b08530a50bddbe3d65088a8b621c0950e0c19",
      "tree": "1ee2906125ba0c642216ad65a8577f9874ff63c6",
      "parents": [
        "1a230885b356256e91b3bf006ec72213ba6f8f76"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Aug 04 15:01:58 2011 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Aug 04 15:01:58 2011 -0700"
      },
      "message": "Delay connectivity change notifications.\n\nBecause changes to the route tables take time to propagate\nwe add a delay when sending out change notifications. This allows\napplications, such as GTalk, to create sockets without encountering\na 3 minute timeout.\n\nBug: 5008488\nChange-Id: I0eefb03a5d6358a58ea6ae5b4f697ff302b5511d\n"
    },
    {
      "commit": "b234636105317942bdf2daf4f5581c2218847084",
      "tree": "f80552a34cb6830843569916b99faa1849ff2e44",
      "parents": [
        "e30d6f1588a47fa4ad57a1de7bb28a7a0c58dedf",
        "fcc1b41b663c1a0cb551344c4a16a5ad9ce36d60"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Aug 04 13:04:51 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 04 13:04:51 2011 -0700"
      },
      "message": "Merge \"VPN: move away from the VPN permission.\""
    },
    {
      "commit": "aead35a850ea7246aa93d40026fd8120dd1582f6",
      "tree": "3a6259faef0f981a3592dbac44fa87a91fef78c0",
      "parents": [
        "e0511bf055c522f1fa6391c5987675eef0791053",
        "f6d09845be2d58b1de7af9f6edc8b9ee216520a5"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Aug 04 10:29:23 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 04 10:29:23 2011 -0700"
      },
      "message": "Merge \"Fix p2p package paths\""
    },
    {
      "commit": "2b15cb21b313f83f7cccdc6f9116ba31ddc190ad",
      "tree": "68405f8f6a26b7b410e6d491273224953fc64955",
      "parents": [
        "7abaecc3dbb610b24e22685e6aa749c7011be1eb",
        "75f1fdec3e95e9c8b5add02ba6e9b14913058f22"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Aug 04 11:40:25 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Aug 04 11:40:25 2011 -0400"
      },
      "message": "Resolve merge conflict for \u002775f1fdec\u0027:\n\n    GPS Provider Service changes\n\n    GPS engine needs to receive network state changes from Android fw.\n\n    Added db query for the current APN, also added a new parameter\n    between JNI / HAL to the new method in AGpsRilInterface struct\n    for gps engine to receive APN from GPSLocationService\n\nConflicts:\n\tservices/java/com/android/server/location/GpsLocationProvider.java\n\nChange-Id: I33c45027f1571493d3525324f62d199517c4960c\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "75f1fdec3e95e9c8b5add02ba6e9b14913058f22",
      "tree": "1df88c7138d14fe9ca9ad3cc87048658deab7300",
      "parents": [
        "a598d144e8c9722ff83e38cd8a70bc15a00bcdf3",
        "0b3af353dcf61177158934a11404cf2914038696"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood%android.com@gtempaccount.com",
        "time": "Thu Aug 04 07:53:53 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 04 07:53:53 2011 -0700"
      },
      "message": "am 0b3af353: am a82ee49a: am 8f5dd9ad: Merge \"GPS Provider Service changes\"\n\n* commit \u00270b3af353dcf61177158934a11404cf2914038696\u0027:\n  GPS Provider Service changes\n"
    },
    {
      "commit": "a5fe6b2efee02ab11c35e80ec50fec62be227273",
      "tree": "0441ee5839e58c068b025f486f6d8a326e5bad6e",
      "parents": [
        "9b0c6beed2cd5463655712ad80ed160c08611ff8"
      ],
      "author": {
        "name": "Kevin Tang",
        "email": "zhikait@codeaurora.org",
        "time": "Sun Jun 05 14:25:16 2011 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Aug 04 10:33:35 2011 -0400"
      },
      "message": "GPS Provider Service changes\n\nGPS engine needs to receive network state changes from Android fw.\n\nAdded db query for the current APN, also added a new parameter\nbetween JNI / HAL to the new method in AGpsRilInterface struct\nfor gps engine to receive APN from GPSLocationService\n\nChange-Id: I62e35c948d2ac1961771d1a10581a3b8e695c05a\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "47e02711d78ecac9112aa7f66e5664cdc46fb3d1",
      "tree": "df9d4e522b375c7a094dddea6e9e3573f1fd1f79",
      "parents": [
        "7abaecc3dbb610b24e22685e6aa749c7011be1eb"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun Jul 31 20:23:48 2011 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Aug 04 06:34:37 2011 -0700"
      },
      "message": "ACTION_HOVER_EXIT sometimes not delivered during touch exploration.\n\n1. The code for detecting the end of a touch exploration gesture\n   was not injecting the hover exit event upon detection of the\n   gesture end.\n\nbug:5091758:\n\nChange-Id: I468164617d6677cd2a2a2815e1756c826d49f3a9\n"
    },
    {
      "commit": "f6d09845be2d58b1de7af9f6edc8b9ee216520a5",
      "tree": "b7397f4d5b2123606645bf811ac1c26a72b03532",
      "parents": [
        "eba69ac07085089194b4a1403f6b698605adf417"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Aug 03 15:37:08 2011 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Aug 03 23:21:02 2011 -0700"
      },
      "message": "Fix p2p package paths\n\nSplit change Iba3beb8c which will not go in master to fix package paths\n\nBug: 5002384\nChange-Id: I15072b65422fcdfe17c3f130d169258d60748012\n"
    },
    {
      "commit": "5357806980269d846a15c845a6fcc0384fb18860",
      "tree": "4f6f4f976347d59d92bec50072fe7f5dd5c25d4d",
      "parents": [
        "cf27a3ecc6782b6c86f720b1df2459a160fde81a"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Wed Aug 03 16:08:59 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu Aug 04 12:53:56 2011 +0900"
      },
      "message": "API cleanup for the spell checker framework\n\nBug: 5110151\n\n- Add a bundle to an argment of newSpellCheckerSession\n- Expose SpellCheckerSessionImpl in SpellCheckerService\n- Fix function names\n- etc\n\nChange-Id: Ia8ec783b7b4d5fcd18389854b445fc10fc502297\n"
    },
    {
      "commit": "5564334aa5401e22fb1afc8fe5e55d4d3e7f53c3",
      "tree": "fb757ca586e838d6eb1007a5487f71243c9a2104",
      "parents": [
        "e2e7b1e2dc31f9e3be0bc44b999227937282f935",
        "1984e79d1593b80adf46b16666862f5787157aed"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Aug 03 18:35:33 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 03 18:35:33 2011 -0700"
      },
      "message": "Merge \"UsbDeviceManager: Fix typo that broke adb on/off setting persistence\""
    },
    {
      "commit": "63d27a9233fed934340231f438493746084a681d",
      "tree": "921466d4cb779162a92683b9e5e740b713d2215b",
      "parents": [
        "b389bdfba291382f9b306dd0e1bf7ba42fd94a4a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 03 17:04:22 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 03 17:21:07 2011 -0700"
      },
      "message": "Network stats with varint, omit parcel fields.\n\nPersist NetworkStatsHistory using variable-length encoding; since\nmost buckets have small numbers, we can encode them tighter. Initial\ntest showed 44% space savings. Also persist packet and operation\ncounters.\n\nLet NetworkStatsHistory consumers request which fields they actually\nneed to reduce parcel overhead.\n\nTests for verify varint and history field requests, also verify end-\nto-end by persisting history into byte[] and restoring. Expose\nbandwidth control enabled state. Extend random generation to create\npacket and operation counts. Moved operation counts to long.\n\nFix bug that miscalculated bytes since last persist, which would\ncause partial stats loss when battery pulled.\n\nBug: 4581977, 5023706, 5023635, 5096903\nChange-Id: If61e89f681ffa11fe5711471fd9f7c238d3d37b0\n"
    },
    {
      "commit": "01704e76fa52805f6e739fc0d8e63f403e74bfa8",
      "tree": "8df3609c25cbdd80b0e239540d52522b545b9e75",
      "parents": [
        "a841e524013c4bff360f2280cb5d2fbb1895d043",
        "1ebd74acf9977daa42133507e970dab88e08f0ef"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 03 17:09:38 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 03 17:09:38 2011 -0700"
      },
      "message": "Merge \"Better error codes for missing files\""
    },
    {
      "commit": "a841e524013c4bff360f2280cb5d2fbb1895d043",
      "tree": "9d5b4f899cfab8b0b329d20cecae52ee3d570cd4",
      "parents": [
        "1824a62bc1250fce5b575d19d4f4f8a32bc9ec05",
        "f0ceede8fff5df24e5c98701d81c2b71eb138aa9"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 03 17:05:21 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 03 17:05:21 2011 -0700"
      },
      "message": "Merge \"Expose quota status for active network.\""
    },
    {
      "commit": "1ebd74acf9977daa42133507e970dab88e08f0ef",
      "tree": "c95bde1090f19e78201f15b54866ada88ab7cbf2",
      "parents": [
        "62c7b37590b1a692384a55949d3b9eba221a3652"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 03 15:09:44 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 03 16:03:42 2011 -0700"
      },
      "message": "Better error codes for missing files\n\nMake sure that files that don\u0027t exist aren\u0027t returning bogus \u0027out of\nspace\u0027 error codes.\n\nAdd some Javadoc so I can remember what each thing does in an IDE.\n\nAdd copyright header to NativeLibraryHelper\n\nBug: 3375299\nChange-Id: Iac46019160921daca65b21d38897e5165063316e\n"
    },
    {
      "commit": "fcc1b41b663c1a0cb551344c4a16a5ad9ce36d60",
      "tree": "348f18a4ff0f2c2dccb84b3ea486aed0764d49ab",
      "parents": [
        "e5750a344a9c1a83a63d5119d39d2ea4897bc312"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed Aug 03 15:39:59 2011 -0700"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed Aug 03 15:52:12 2011 -0700"
      },
      "message": "VPN: move away from the VPN permission.\n\nVpnBuilder will be replaced by VpnService in the next change.\n\nChange-Id: I2dea67a1616b74d17b372f7b214d207f1617198e\n"
    },
    {
      "commit": "e5750a344a9c1a83a63d5119d39d2ea4897bc312",
      "tree": "bf3ecb8cb4db437f320b2f80c3be0aaf554e5b1b",
      "parents": [
        "85de77a1c7d8393dfe349567f818a94e83720040"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed Aug 03 14:42:11 2011 -0700"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed Aug 03 14:42:11 2011 -0700"
      },
      "message": "NativeDaemonConnector: offload callbacks to another thread.\n\nNow callbacks can communicate to the same daemon without causing a\ndeadlock. This also improves the latency of calls because they no\nlonger need to wait for the callbacks for the pending events.\n\nChange-Id: I153fcf16bd64de79ee1c1a57d3cfdb12b354cf47\n"
    },
    {
      "commit": "1984e79d1593b80adf46b16666862f5787157aed",
      "tree": "fe2b49e046ab3e6a0880b60832a2e4aa2b887610",
      "parents": [
        "62c7b37590b1a692384a55949d3b9eba221a3652"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Aug 03 17:10:43 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Aug 03 17:10:43 2011 -0400"
      },
      "message": "UsbDeviceManager: Fix typo that broke adb on/off setting persistence\n\nBug: 5108784\n\nChange-Id: I68ed4d442ce4d3f4651cb618902fb226ac5a3673\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "f0ceede8fff5df24e5c98701d81c2b71eb138aa9",
      "tree": "67dc2c9f7a5eaf3b6f5cb5a5fe4dbfb8854dac0b",
      "parents": [
        "34e1fb1ee229a7e033dcd42f4efd194e1614d5ce"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Aug 02 17:22:34 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Aug 02 18:19:54 2011 -0700"
      },
      "message": "Expose quota status for active network.\n\nCreate API to expose quota status derived from underlying network\npolicy.  This is designed to support applications making informed\ndecisions when performing network requests.\n\nFix bug with random stats generation, and write policy when changing\nrestrict background data flag.  Deprecate EXTRA_NETWORK_INFO, since\nit varies based on UID.\n\nBug: 4517283, 5088603\nChange-Id: Ic6893a8967f69937e466be226ba7bb86ef5a5d2d\n"
    },
    {
      "commit": "baef393241c7adfbb731cd3d29d3b984fba10a85",
      "tree": "4700f769144af392c970fdb8bcd8f5cba3f77a87",
      "parents": [
        "9ebf4ebbb9611f2aafef7d4d22b74015a7b4c8c4",
        "58d4c595818de0d1b7edf382fee6ed1a4bd70e7f"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Aug 02 17:32:05 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 02 17:32:05 2011 -0700"
      },
      "message": "Merge \"Reduce ConnectivityService logging\""
    },
    {
      "commit": "58d4c595818de0d1b7edf382fee6ed1a4bd70e7f",
      "tree": "be2f8caa5f2abd67cdbbd70e43e302858ce69c6f",
      "parents": [
        "666742c7cff73a48ac9e0f1ae355f3a815edb5c9"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Aug 02 17:18:41 2011 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Aug 02 17:18:41 2011 -0700"
      },
      "message": "Reduce ConnectivityService logging\n\nbug:5106520\nChange-Id: I4a7a5cac51c09e9e2275b30b7b2c053f94b9088d\n"
    },
    {
      "commit": "f5348d82117f8d2a1b73d0e7f9b44de2b705f4d6",
      "tree": "47e48a1e2e33c8d84a93bc221d8d18ef6f3dfc65",
      "parents": [
        "04ee7956ea5009098f9a4c02436b91c18c60d225",
        "5832ead89a6cfab83d4ed07e7ca20bc52eea923c"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Aug 02 17:05:06 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 02 17:05:06 2011 -0700"
      },
      "message": "Merge \"Parent\u0027s canonical path; not parent of canonical\""
    },
    {
      "commit": "5857bceaeae70aa93f2a428a6d1c6ec8851c1b9b",
      "tree": "aab02b729c2261c5b920470f6f9810fdd5509a8a",
      "parents": [
        "e10bcdb37cad965ea60da3f9d413d7645b3ae75a",
        "6311d0a079702b29984c0d31937345be105e1a5e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 02 16:57:50 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 02 16:57:50 2011 -0700"
      },
      "message": "Merge \"Clear the bitmap from the canvas in a lot of places.\""
    },
    {
      "commit": "6311d0a079702b29984c0d31937345be105e1a5e",
      "tree": "c9d5ebf9e2d1f6685220fe2e31ad8a4e21366a11",
      "parents": [
        "7374d9728bd0e8847bab723608ebab3542e8157e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 02 16:37:58 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 02 16:37:58 2011 -0700"
      },
      "message": "Clear the bitmap from the canvas in a lot of places.\n\nChange-Id: I6b2071ac7b348c473b9bdd1b972d095aebbb4fb3\n"
    },
    {
      "commit": "5832ead89a6cfab83d4ed07e7ca20bc52eea923c",
      "tree": "42549ffac985b7fac65f0442161a940273a63e9e",
      "parents": [
        "c8909501b1ec52e7f2e7e052b277f83d8693dbeb"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Aug 02 15:47:08 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Aug 02 15:49:39 2011 -0700"
      },
      "message": "Parent\u0027s canonical path; not parent of canonical\n\nWhen moving from SD card to internal, the PackageManager should check if\nthe native library directory parent\u0027s canonical path matches the\ncanonical data directory.\n\nHowever, it was checking the canonical native library directory\u0027s\nparent matches the data directory which makes tests concerning moving\nfrom SD card to internal storage fail.\n\nChange-Id: I16420efbb6f52fd6877a8f62ad060f8a1b8b0033\n"
    },
    {
      "commit": "8a32c6333ab44c79a55ffa4ad9de93a7e6df2bda",
      "tree": "78083ee0d5f6b0d8e4cbf29d3828adb64a637cac",
      "parents": [
        "147200b2c47fc36e7cba32b6e318643f25be3baf",
        "8b4d36e8661e25fcb893e00be15ba02da0950055"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 02 15:31:34 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 02 15:31:34 2011 -0700"
      },
      "message": "Merge \"USB: Fix NPE that occurred when restoring default function in UsbManager.setEnabledFunctions\""
    },
    {
      "commit": "8b4d36e8661e25fcb893e00be15ba02da0950055",
      "tree": "ae394424716968d267be7060ad193ffccda5c912",
      "parents": [
        "ff7fffab23357cf81eb5f7ad50615f276510ae61"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 02 18:16:26 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 02 18:18:09 2011 -0400"
      },
      "message": "USB: Fix NPE that occurred when restoring default function in UsbManager.setEnabledFunctions\n\nBug: 5110020\n\nChange-Id: I5e4b5c27e4675fa6830823832ae51411dc448191\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "7374d9728bd0e8847bab723608ebab3542e8157e",
      "tree": "5ceb97aa6ad1e1f66d27023884d634c2ca52a00a",
      "parents": [
        "c8909501b1ec52e7f2e7e052b277f83d8693dbeb",
        "8935696a19822283212591917f04e4b91b5b9219"
      ],
      "author": {
        "name": "repo sync",
        "email": "isheriff@google.com",
        "time": "Tue Aug 02 14:48:43 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 02 14:48:43 2011 -0700"
      },
      "message": "Merge \"Fix networktype on per process DNS setting\""
    },
    {
      "commit": "8935696a19822283212591917f04e4b91b5b9219",
      "tree": "f867c268e11be87dce64a6c0d7844c69317cf6e4",
      "parents": [
        "e8f1cbae4400e8b046b405f205dffe0417826fb3"
      ],
      "author": {
        "name": "repo sync",
        "email": "isheriff@google.com",
        "time": "Tue Aug 02 13:39:06 2011 -0700"
      },
      "committer": {
        "name": "repo sync",
        "email": "isheriff@google.com",
        "time": "Tue Aug 02 13:40:58 2011 -0700"
      },
      "message": "Fix networktype on per process DNS setting\n\nThis potentially has no impact on mobile due to DNS settings being the same. Seperate this change out of the p2p change\n\nChange-Id: I70fff9b1e13015956793b19732785037adb0af24\n"
    },
    {
      "commit": "94761d396d2308bfd93ed03d86c55e7a2b46a59e",
      "tree": "285f12a0b6591633f683050de44a21d88e1095d3",
      "parents": [
        "b0a20e47dd773fc5ceac51d4158c7500e0bba268",
        "c58efa6052ea6274c93b760e05dc8158e4834a8c"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Aug 02 12:18:40 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 02 12:18:40 2011 -0700"
      },
      "message": "Merge \"Reduce backup manager logspew\""
    },
    {
      "commit": "5b9b5a9553a0276dc6b7f1f458c8d4ed03227988",
      "tree": "ba993d2c6706b121b21094149032248c81c8a5c5",
      "parents": [
        "1164d776c612a33bc5e54262589490fb1d2c257d"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Tue Aug 02 12:24:44 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Tue Aug 02 14:04:43 2011 +0900"
      },
      "message": "Change SpellCheckerInfo IPC inputs to String\n\nChange-Id: I4c3f3c7aa7587e3f2582b43702108fa78f37ec54\n"
    },
    {
      "commit": "c58efa6052ea6274c93b760e05dc8158e4834a8c",
      "tree": "2597c69fc0149db2c492b02be9c2f83f983b9c74",
      "parents": [
        "b1eaf8f5527a7d587cf1e3feedd9638ea8370d18"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Aug 01 19:20:14 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Aug 01 19:25:18 2011 -0700"
      },
      "message": "Reduce backup manager logspew\n\n...with particular attention to boot-time logging.  In particular, the\nfollowing kinds of messages are now cut unless someone turns on the new\nMORE_DEBUG flag in their local build:\n\n08-01 11:25:32.203   155   223 V BackupManagerService: starting timeout: token\u003d4f52ccd1 interval\u003d30000\n08-01 11:25:32.211   155   223 V BackupManagerService: opComplete: 4f52ccd1\n08-01 11:25:32.211   155   223 V BackupManagerService: operation 4f52ccd1 complete: finalState\u003d1\n08-01 11:25:32.211   155   223 V PerformBackupThread: doBackup() success\n\nand\n\n01-01 00:00:19.710   148   162 V BackupManagerService: Adding 9 backup participants:\n01-01 00:00:19.710   148   162 V BackupManagerService:     PackageInfo{41af0380 android} agent\u003dcom.android.server.SystemBackupAgent uid\u003d1000 killAfterRestore\u003dfalse\n01-01 00:00:19.710   148   162 V BackupManagerService:     PackageInfo{41aa5068 com.android.browser} agent\u003dcom.android.browser.BrowserBackupAgent uid\u003d10005 killAfterRestore\u003dtrue\n01-01 00:00:19.710   148   162 V BackupManagerService:     PackageInfo{4199ce28 com.android.nfc3} agent\u003dcom.android.nfc.NfcBackupAgent uid\u003d1025 killAfterRestore\u003dtrue\n01-01 00:00:19.710   148   162 V BackupManagerService:     PackageInfo{41a6e170 com.android.providers.settings} agent\u003dcom.android.providers.settings.SettingsBackupAgent uid\u003d1000 killAfterRestore\u003dfalse\n01-01 00:00:19.710   148   162 V BackupManagerService:     PackageInfo{4198ba90 com.android.providers.userdictionary} agent\u003dcom.android.providers.userdictionary.DictionaryBackupAgent uid\u003d10000 killAfterRestore\u003dfalse\n01-01 00:00:19.710   148   162 V BackupManagerService:     PackageInfo{41a80190 com.android.vending} agent\u003dcom.android.vending.VendingBackupAgent uid\u003d10042 killAfterRestore\u003dfalse\n01-01 00:00:19.710   148   162 V BackupManagerService:     PackageInfo{41ac2980 com.google.android.calendar} agent\u003dcom.android.calendar.CalendarBackupAgent uid\u003d10007 killAfterRestore\u003dtrue\n01-01 00:00:19.710   148   162 V BackupManagerService:     PackageInfo{41b14fb8 com.google.android.gm} agent\u003dcom.google.android.gm.persistence.GmailBackupAgent uid\u003d10020 killAfterRestore\u003dtrue\n01-01 00:00:19.710   148   162 V BackupManagerService:     PackageInfo{41af89b8 com.google.android.inputmethod.latin} agent\u003dcom.android.inputmethod.latin.BackupAgent uid\u003d10028 killAfterRestore\u003dfalse\n\nand\n\n01-01 00:00:20.000   148   162 D BackupManagerService: Now awaiting backup for 1 participants:\n01-01 00:00:20.000   148   162 D BackupManagerService:     + BackupRequest{app\u003dApplicationInfo{41b15110 android}} agent\u003dcom.android.server.SystemBackupAgent\n01-01 00:00:20.000   148   162 I BackupManagerService: New app com.android.browser never backed up; scheduling\n01-01 00:00:20.015   148   162 D BackupManagerService: Now awaiting backup for 2 participants:\n01-01 00:00:20.015   148   162 D BackupManagerService:     + BackupRequest{app\u003dApplicationInfo{41b15110 android}} agent\u003dcom.android.server.SystemBackupAgent\n01-01 00:00:20.015   148   162 D BackupManagerService:     + BackupRequest{app\u003dApplicationInfo{41ae5cf8 com.android.browser}} agent\u003dcom.android.browser.BrowserBackupAgent\n01-01 00:00:20.015   148   162 I BackupManagerService: New app com.android.nfc3 never backed up; scheduling\n01-01 00:00:20.031   148   162 D BackupManagerService: Now awaiting backup for 3 participants:\n01-01 00:00:20.031   148   162 D BackupManagerService:     + BackupRequest{app\u003dApplicationInfo{41b15110 android}} agent\u003dcom.android.server.SystemBackupAgent\n01-01 00:00:20.031   148   162 D BackupManagerService:     + BackupRequest{app\u003dApplicationInfo{41ae5cf8 com.android.browser}} agent\u003dcom.android.browser.BrowserBackupAgent\n01-01 00:00:20.031   148   162 D BackupManagerService:     + BackupRequest{app\u003dApplicationInfo{41a47d88 com.android.nfc3}} agent\u003dcom.android.nfc.NfcBackupAgent\n... [N times]\n\nand various other overly-chatty messages that aren\u0027t useful for the midrange\ndebugging needs of early testing.\n\nBug 5104300\n\nChange-Id: I2b2afb5ba68059cb1f4cccc07f2833e43cd6fe94\n"
    },
    {
      "commit": "ba39839444532af0ed3766f736582413f6d7a40b",
      "tree": "38f89252a63a327f9c9861ceea2b4e3849af28d2",
      "parents": [
        "2a2ec87b55d423ae91385d4e9f51725154b7a272"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 01 16:11:57 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 01 17:55:54 2011 -0700"
      },
      "message": "Move ImageWallpaper to SystemUI process.\n\nNice to not load 4MB bitmaps in the system process.\n\nAlso, hey, with how we are now scrolling the surface instead of\nthe bitmap, there is no reason to keep that 4MB bitmap loaded in\nto memory.  So don\u0027t.\n\nUnfortunately it looks like for some reason the VM is still\nholding on to the bitmap.  I\u0027ll need to figure out why.  Later.\n\nChange-Id: Ib3503756144502fc5c8d5e294248c2417c4fe8c8\n"
    },
    {
      "commit": "d20482de2f8fb0045c69c7065221923a72d13303",
      "tree": "fdb7603fa7d35f4472b88fbd34cd63c58e29a674",
      "parents": [
        "de7c93948fd3d31b7cfbe6c32f3fcd6986484445",
        "a63ba59260cd1bb3f5c16e395ace45a61f1d4461"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Aug 01 16:33:50 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 01 16:33:50 2011 -0700"
      },
      "message": "Merge \"Add operation counts to network statistics.\""
    },
    {
      "commit": "a63ba59260cd1bb3f5c16e395ace45a61f1d4461",
      "tree": "f70f8270c45744686c1c6741f39340c0cb644dd3",
      "parents": [
        "1e833b31ee04c35b5a3494db1acb0068350d8391"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jul 19 23:47:12 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Jul 29 22:24:01 2011 -0700"
      },
      "message": "Add operation counts to network statistics.\n\nProvide API to increment \"operation counts\" for a UID and tag, used\nto eventually derive bytes/operation stats.  Internally is stored at\nnetwork layer, but should belong at data layer.  Switch profiling\nto use data layer stats, which are emulated by summarizing network\nlayer details.\n\nRead packet counts from new /proc/ columns and collect them into\nNetworkStatsHistory.  Prevent double-counting by ignoring values from\nfirst snapshot.  Watch for duplicate /proc/ entries.  Update tests\nto verify packet and operation counters.\n\nBug: 5052136, 5097392\nChange-Id: I1832f65a2b8a9188f8088f253474a667c21a2f09\n"
    },
    {
      "commit": "5c5db7c0f082d3d4ebd71f5a8f3cea08dfe33bac",
      "tree": "94ba63ac69c960082eecd85307aeac8c2d10f9c2",
      "parents": [
        "9ba79560bf99e9048929e2c58ebc8d4d4d0fa3b7",
        "68736cbf938935f7d7e1eb2b3f9ec911fcb0da72"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jul 29 12:13:04 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 29 12:13:04 2011 -0700"
      },
      "message": "Merge \"Clean up USB configuration switching logic and beef up error handling\""
    },
    {
      "commit": "68736cbf938935f7d7e1eb2b3f9ec911fcb0da72",
      "tree": "8b22987c204b777775c41dc3009e0cea03040904",
      "parents": [
        "f9665221aaa229dc8a7cac6fbd1d9ea165c42068"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jul 29 11:32:28 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jul 29 14:41:14 2011 -0400"
      },
      "message": "Clean up USB configuration switching logic and beef up error handling\n\nBug: 5050853\n\nChange-Id: Ia00698e2adbb8a7d7698e2ae306413f6c715fbdb\n"
    },
    {
      "commit": "b07dbeb57273291204fcabe700e1d1464c7958ea",
      "tree": "fe5e53079a94b8546bc7e506b6a3ca8e726c5dbb",
      "parents": [
        "e0fe39387aa8f591b196bcb42b027012b655af04",
        "a31f5e63743f3fc788acbd85474ec80eaf5c8b4d"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Jul 29 11:22:42 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 29 11:22:42 2011 -0700"
      },
      "message": "Merge \"InputFilter not updated on global accessibility change.\""
    },
    {
      "commit": "e0fe39387aa8f591b196bcb42b027012b655af04",
      "tree": "b83b50f2eba2b9855204281fe05226c9915c25de",
      "parents": [
        "f9665221aaa229dc8a7cac6fbd1d9ea165c42068",
        "728a1c4d5ed3b808172013a7f5bb5065d1e964f6"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jul 29 11:20:45 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 29 11:20:45 2011 -0700"
      },
      "message": "Merge \"Require the current backup pw in all backup/restore operations\""
    },
    {
      "commit": "f9665221aaa229dc8a7cac6fbd1d9ea165c42068",
      "tree": "b3a4d430182803915b92b20d082bb92f0980e64d",
      "parents": [
        "bd176f36ca9ab357cfa6fa330c4955b1a0ef8d35",
        "a128f5f8c952d7f519f64882792e832a4e75e2c8"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Jul 29 10:55:58 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 29 10:55:58 2011 -0700"
      },
      "message": "am a128f5f8: am 1a230885: Merge \"Fix NPE when going from proxy to no proxy.\" into honeycomb-LTE\n\n* commit \u0027a128f5f8c952d7f519f64882792e832a4e75e2c8\u0027:\n  Fix NPE when going from proxy to no proxy.\n"
    },
    {
      "commit": "a128f5f8c952d7f519f64882792e832a4e75e2c8",
      "tree": "fcd83ee6912b63fd156fb5e47a49eca804e4e205",
      "parents": [
        "86574d66dacc09c9b5a0a0ab2623ec01704b6fc8",
        "1a230885b356256e91b3bf006ec72213ba6f8f76"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Jul 29 10:53:16 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 29 10:53:16 2011 -0700"
      },
      "message": "am 1a230885: Merge \"Fix NPE when going from proxy to no proxy.\" into honeycomb-LTE\n\n* commit \u00271a230885b356256e91b3bf006ec72213ba6f8f76\u0027:\n  Fix NPE when going from proxy to no proxy.\n"
    },
    {
      "commit": "bb96bf6e479e00064b287c952a72362a2ee4cb4e",
      "tree": "7b7ae7de38cedd83044ff622b1661f59a6e83e53",
      "parents": [
        "f4fd53b381d794af77dc887454032ed5f299a22e",
        "c68c913d357e2955d4bd7ca52829071e531c7825"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 29 10:43:26 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 29 10:43:26 2011 -0700"
      },
      "message": "Merge \"Various work on out of memory managment.\""
    },
    {
      "commit": "fde1eb7cf88e488d619d3168f83fb2e740d39296",
      "tree": "613e990648bc9f0c204e19679a9490e81afc1985",
      "parents": [
        "d20f60c8a71ca0aa853bc433f74b32dcfc98f984"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Jul 29 10:03:37 2011 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Jul 29 10:03:37 2011 -0700"
      },
      "message": "Fix NPE when going from proxy to no proxy.\n\nbug:5081431\nChange-Id: I68a8cca94e4612bd9ee2faf1123e0b63dc25b833\n"
    },
    {
      "commit": "53f2531ba7bc72489d03fd17b6ce29c811fad8b5",
      "tree": "0883feda546ae55f3a303b57d3b17f3a7b718aaa",
      "parents": [
        "cdbb950afe76020d28b4d94f82f6236438925278",
        "60ee25643e0a7b8841063a4e97b0f18c51807e91"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Fri Jul 29 05:45:55 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 29 05:45:55 2011 -0700"
      },
      "message": "Merge \"The fullest of fullscreen modes.\""
    },
    {
      "commit": "6d9a14c08398c58305e831d394280830bb798ee4",
      "tree": "668ae6ff6f85f1a83ce7d429fdd2d656fafa9689",
      "parents": [
        "3970f6833d3c19f96cc7b6831327c8488932fa57",
        "df5659d3d317b5cf351baffe3e0d4876e89678bf"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Jul 29 03:29:46 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 29 03:29:46 2011 -0700"
      },
      "message": "Merge \"Fix issues in TextServicesManagerService\""
    },
    {
      "commit": "df5659d3d317b5cf351baffe3e0d4876e89678bf",
      "tree": "8d8f441eaf836db0dd5728bd112ab8fd5f48fee5",
      "parents": [
        "6be6d7548fb7c29a4d46dc985318ab2adf69f95f"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Jul 29 18:38:21 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Jul 29 19:09:14 2011 +0900"
      },
      "message": "Fix issues in TextServicesManagerService\n\nChange-Id: I48c81226d824e8aad42e01e87fcf9a5b466d2321\n"
    },
    {
      "commit": "c68c913d357e2955d4bd7ca52829071e531c7825",
      "tree": "764dddf699a1db5e44d74e94e3f354b9ed61ff71",
      "parents": [
        "3970f6833d3c19f96cc7b6831327c8488932fa57"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 29 01:25:18 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 29 02:06:46 2011 -0700"
      },
      "message": "Various work on out of memory managment.\n\n- Improve how we handle processes that have shown UI, to take care\n  of more cases where we want to push them into the background LRU\n  list.\n- New trim memory level for when an application that has done UI\n  is no longer visible to the user.\n- Add APIs to get new trim memory callback.\n- Add a host of new bind flags to tweak how the system will adjust\n  the OOM level of the target process.\n\nChange-Id: I23ba354112f411a9f8773a67426b4dff85fa2439\n"
    },
    {
      "commit": "a31f5e63743f3fc788acbd85474ec80eaf5c8b4d",
      "tree": "19b249e58ab11e1fc63bf0ab64ed115ca85e64a0",
      "parents": [
        "3970f6833d3c19f96cc7b6831327c8488932fa57"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Jul 28 12:00:59 2011 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Jul 28 20:18:10 2011 -0700"
      },
      "message": "InputFilter not updated on global accessibility change.\n\nChange-Id: I35fd5fa078840abf62a3d5eac66b2eae1a79d01d\n"
    },
    {
      "commit": "f7be31ee1062722855602c6b0227f01bdb7c0b80",
      "tree": "d955d90c959dde5af587291a283bf0f8732645b3",
      "parents": [
        "ae5a9d4a92f18b1e2888c4ae4585f9480311c8bc",
        "6be6d7548fb7c29a4d46dc985318ab2adf69f95f"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu Jul 28 18:09:59 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 28 18:09:59 2011 -0700"
      },
      "message": "Merge \"Handle the existing binds to spell checkers correctly.\""
    },
    {
      "commit": "728a1c4d5ed3b808172013a7f5bb5065d1e964f6",
      "tree": "eb16210cfa98555355889022de17568effac8c2f",
      "parents": [
        "80df829e35d0a97f92e599d36b0b16dcc956130b"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 28 18:03:03 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 28 18:04:07 2011 -0700"
      },
      "message": "Require the current backup pw in all backup/restore operations\n\nSpecifically, we now also require the current password to confirm any\nrestore operation.\n\nBug 4901637\n\nChange-Id: I39ecce7837f70cd05778cb7e0e6390ad8f6fe3f3\n"
    },
    {
      "commit": "6be6d7548fb7c29a4d46dc985318ab2adf69f95f",
      "tree": "5997d25d03c50eb01ec81955ce33ea76356a7fa3",
      "parents": [
        "2043b01b207aae3458da395bc6d501d76e59425c"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu Jul 28 20:40:38 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Jul 29 09:57:07 2011 +0900"
      },
      "message": "Handle the existing binds to spell checkers correctly.\n\nChange-Id: I32efce9f8c09b5a829b0431e8c444fc54b03b440\n"
    },
    {
      "commit": "2efd2dbbac9eac89620683696c6076463c3a1cd6",
      "tree": "ca48adf4208daee43a4444a0fdb61fcb939858c5",
      "parents": [
        "b7d95a46dfacf04896d5b084f13bcbe6eab33633"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jul 19 16:32:49 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 28 16:01:20 2011 -0700"
      },
      "message": "Support full-backup encryption and global backup password\n\nIf the user has supplied a backup password in Settings, that password\nis validated during the full backup process and is used as an encryption\nkey for encoding the backed-up data itself.  This is the fundamental\nmechanism whereby users can secure their data even against malicious\nparties getting physical unlocked access to their device.\n\nTechnically the user-supplied password is not used as the encryption\nkey for the backed-up data itself.  What is actually done is that a\nrandom key is generated to use as the raw encryption key.  THAT key,\nin turn, is encrypted with the user-supplied password (after random\nsalting and key expansion with PBKDF2).  The encrypted master key\nand a checksum are stored in the backup header.  At restore time,\nthe user supplies their password, which allows the system to decrypt\nthe master key, which in turn allows the decryption of the backup\ndata itself.\n\nThe checksum is part of the archive in order to permit validation\nof the user-supplied password.  The checksum is the result of running\nthe user-supplied password through PBKDF2 with a randomly selected\nsalt.  At restore time, the proposed password is run through PBKDF2\nwith the salt described by the archive header.  If the result does\nnot match the archive\u0027s stated checksum, then the user has supplied\nthe wrong decryption password.\n\nAlso, suppress backup consideration for a few packages whose\ndata is either nonexistent or inapplicable across devices or\nfactory reset operations.\n\nBug 4901637\n\nChange-Id: Id0cc9d0fdfc046602b129f273d48e23b7a14df36\n"
    },
    {
      "commit": "b7d95a46dfacf04896d5b084f13bcbe6eab33633",
      "tree": "c69bb45e727299675d8799f64285bc99dd50023d",
      "parents": [
        "fbaaeb96f29c8e4a563a6b3cc85fb446400fd506",
        "21700fedfe29f6a0a752d2bea46142038e69136c"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood%android.com@gtempaccount.com",
        "time": "Thu Jul 28 14:06:07 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 28 14:06:07 2011 -0700"
      },
      "message": "am 21700fed: am 5f7203eb: am 5a27a754: am bd1dee94: Merge \"gps: Adding ip address for AGps\"\n\n* commit \u002721700fedfe29f6a0a752d2bea46142038e69136c\u0027:\n  gps: Adding ip address for AGps\n"
    },
    {
      "commit": "21700fedfe29f6a0a752d2bea46142038e69136c",
      "tree": "3aa43b410f433d10fb23147f5b43c78b6dce3091",
      "parents": [
        "f8d13e535c3e6166c2386adac3b3a2f115d2b79d",
        "5f7203eb258503bc5d2ba29176bdf483a68a93b8"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood%android.com@gtempaccount.com",
        "time": "Thu Jul 28 14:04:13 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 28 14:04:13 2011 -0700"
      },
      "message": "am 5f7203eb: am 5a27a754: am bd1dee94: Merge \"gps: Adding ip address for AGps\"\n\n* commit \u00275f7203eb258503bc5d2ba29176bdf483a68a93b8\u0027:\n  gps: Adding ip address for AGps\n"
    },
    {
      "commit": "036fc921cab766fd674aed260d5c87273ad6da55",
      "tree": "756d99bd22e8bd604191cd3905b8b54775ef4862",
      "parents": [
        "3885228457bc61a86fe4e91ff18fb331fc3ee777",
        "98c79e53c0f24e98910a1ab130ec77d2ae707ed4"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Jul 28 14:00:48 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 28 14:00:48 2011 -0700"
      },
      "message": "Merge \"Stop sending tethering broadcasts during boot.\""
    },
    {
      "commit": "8efd74dbedb65f69734318d9d6be70767f30b57a",
      "tree": "74ca8726784a2348023dda04ec9318df27f28f4c",
      "parents": [
        "0ff79e88e2d90f80d0346e0485abe773ca85c44d"
      ],
      "author": {
        "name": "Stephen Li",
        "email": "stephenl@codeaurora.org",
        "time": "Tue Mar 01 20:56:00 2011 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jul 28 16:50:45 2011 -0400"
      },
      "message": "gps: Adding ip address for AGps\n\nChange-Id: Ic590187d159853de2f1bd2912e159f0a00d8fb10\n"
    },
    {
      "commit": "3885228457bc61a86fe4e91ff18fb331fc3ee777",
      "tree": "c45e60967e4b5a641c0cf31fd4cbf43519ebd3ea",
      "parents": [
        "265bfede6bf8a4b2d0e2271f1cefab816bbf7420",
        "f8d13e535c3e6166c2386adac3b3a2f115d2b79d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood%android.com@gtempaccount.com",
        "time": "Thu Jul 28 13:30:24 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 28 13:30:24 2011 -0700"
      },
      "message": "am f8d13e53: am bf676d46: am 7083ed44: am 0ff79e88: Merge \"GPS: Changes to enable on-demand data call flow for CDMA connections\"\n\n* commit \u0027f8d13e535c3e6166c2386adac3b3a2f115d2b79d\u0027:\n  GPS: Changes to enable on-demand data call flow for CDMA connections\n"
    },
    {
      "commit": "f8d13e535c3e6166c2386adac3b3a2f115d2b79d",
      "tree": "03bc3df9ac8f2868546146ca336f04e25f333164",
      "parents": [
        "5ad5c9e3efd26155ae7b5d0f3e9e2094e1f65dfe",
        "bf676d460d1d1fc8923982006c38d0f6785daea8"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood%android.com@gtempaccount.com",
        "time": "Thu Jul 28 13:27:27 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 28 13:27:27 2011 -0700"
      },
      "message": "am bf676d46: am 7083ed44: am 0ff79e88: Merge \"GPS: Changes to enable on-demand data call flow for CDMA connections\"\n\n* commit \u0027bf676d460d1d1fc8923982006c38d0f6785daea8\u0027:\n  GPS: Changes to enable on-demand data call flow for CDMA connections\n"
    },
    {
      "commit": "0ff79e88e2d90f80d0346e0485abe773ca85c44d",
      "tree": "919ea4db0e58a6790237aa0028271d51d8c54a4f",
      "parents": [
        "20339b24394be06c5bfe5157a4b35adc48f665eb",
        "83b69713f2dbeee7ff5e07836673a9a477be236f"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood%android.com@gtempaccount.com",
        "time": "Thu Jul 28 13:13:35 2011 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Thu Jul 28 13:13:35 2011 -0700"
      },
      "message": "Merge \"GPS: Changes to enable on-demand data call flow for CDMA connections\""
    },
    {
      "commit": "60ee25643e0a7b8841063a4e97b0f18c51807e91",
      "tree": "f950442b0657ea89b9e4fb93361a612dd36dab29",
      "parents": [
        "2043b01b207aae3458da395bc6d501d76e59425c"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Fri Jul 22 12:34:33 2011 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Jul 28 15:18:32 2011 -0400"
      },
      "message": "The fullest of fullscreen modes.\n\nView.setSystemUiVisibility() now properly accepts a\nbitfield, including:\n\n  * SYSTEM_UI_FLAG_LOW_PROFILE: \"lights out mode\"\n    (previously known, erroneously, as STATUS_BAR_HIDDEN)\n\n  * SYSTEM_UI_FLAG_HIDE_NAVIGATION: for when you need every\n    single pixel on a device that also has a navigation bar\n\nThese flags are painstakingly aggregated across the entire\nview hierarchy and carefully delivered to the status bar\nservice, which in turn gently passes them along to the bar\nimplementation.\n\nTo really get access to the whole screen, you need to use\nHIDE_NAVIGATION in conjunction with FLAG_FULLSCREEN and\nFLAG_LAYOUT_IN_SCREEN. See development/samples/Overscan for\nan example of how to do this.\n\nChange-Id: I5fbfe009d9ceebbbf71db73f14a7008ea7c1d4da\n"
    },
    {
      "commit": "98c79e53c0f24e98910a1ab130ec77d2ae707ed4",
      "tree": "a3afdc2632ae800c3665968e18aa80214c9fad6a",
      "parents": [
        "06a2895b58d6d8ecc3fc5dffa8c5d8c4f95216a5"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Jul 28 11:51:11 2011 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Jul 28 11:51:11 2011 -0700"
      },
      "message": "Stop sending tethering broadcasts during boot.\n\nWell, actually they do go out, but they won\u0027t try to start anybody now\nuntil after boot.\n\nbug:5088272\nChange-Id: Iaaf7a1e4b300e0afc3901ecfd225a77084bd0954\n"
    },
    {
      "commit": "2043b01b207aae3458da395bc6d501d76e59425c",
      "tree": "8b8660a6dd748c3cd03462e812e70afa54a23d75",
      "parents": [
        "35a9c52791882bc58d3a6716e0fd8544889d90c3",
        "4664500de0c1b270bce4991a400ab439ff2ef77b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jul 27 22:08:02 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 27 22:08:02 2011 -0700"
      },
      "message": "Merge \"Maintain separate \"restrict background data\" flag.\""
    },
    {
      "commit": "4664500de0c1b270bce4991a400ab439ff2ef77b",
      "tree": "625234999eba80326ce152d903c0882462365e77",
      "parents": [
        "e5168930975618a2b2b3f556c6c162a8cf6c9e34"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jul 27 21:11:21 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jul 27 21:11:32 2011 -0700"
      },
      "message": "Maintain separate \"restrict background data\" flag.\n\nSince \"restrict background\" depends on active networks, separate its\ndefinition from setBackgroundDataSetting().\n\nBug: 4979025\nChange-Id: I12bfe3a2e606375b39c67706270caa7a1bb0214e\n"
    },
    {
      "commit": "4f35092af55d569975e6931ee6e8c0343f749d1e",
      "tree": "c15077eab86d9e3da6cee3c63fc07b69d8898479",
      "parents": [
        "3d5a703db83265f7914eed8580de986106abfad2",
        "66269ea6f68f2f25888ce1080c94ac782742fafc"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Jul 27 15:54:51 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 27 15:54:51 2011 -0700"
      },
      "message": "Merge \"Move extract native libraries to JNI code\""
    },
    {
      "commit": "3d5a703db83265f7914eed8580de986106abfad2",
      "tree": "3ef1e72cf1335a1bb9d36ac1b6f86f0a1b84c302",
      "parents": [
        "be922d6006879692d100894dc924d947b50aed34",
        "bc68a59c024bdb745dac8e2ec7408a9f30595f1a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 27 15:54:50 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 27 15:54:50 2011 -0700"
      },
      "message": "Merge \"Report the external display size to the input reader.\""
    },
    {
      "commit": "d02fa35e8c80a7171c7556743b09dda2fbcc96b2",
      "tree": "3dc6bfa9d6d83f4453116cc0ed84317f193fde8c",
      "parents": [
        "ccc83629f993eec7844ad7f6b214666e9410a610",
        "41ff7ec82422a5b6d00892afdb3232bc0e53d851"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jul 27 15:52:24 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 27 15:52:24 2011 -0700"
      },
      "message": "Merge \"Revise data limit notifs, watch kernel alerts.\""
    },
    {
      "commit": "ccc83629f993eec7844ad7f6b214666e9410a610",
      "tree": "c05896bf7dc826e74748bc3b96185766fa977c8a",
      "parents": [
        "257466d4e24bd405204cb21a1663eb1cc99f6137",
        "a5010431bfcdff88ac9d96e68d8308071c13472b"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jul 27 15:49:05 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 27 15:49:05 2011 -0700"
      },
      "message": "Merge \"UsbDeviceManager: Don\u0027t show USB notification for RNDIS\""
    },
    {
      "commit": "e1b925919096b27a1592665ed09fb8ac874273e3",
      "tree": "86b6e2606215d9f1288905e3dfe42f4358bdfea4",
      "parents": [
        "43a5d6e541fef5983e967d9b67792c0a088418ea",
        "4e2a762eae1f6981d32e6098a95498865ad7f795"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jul 27 15:24:10 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 27 15:24:10 2011 -0700"
      },
      "message": "Merge \"Not user generated accessibility events can change the interrogation allowing window.\""
    },
    {
      "commit": "3c6c3ddb6a53ebffb00987ae6b7fdcdbfdb36dad",
      "tree": "8a91a2142555945e17dfeca314587b93ed6c069b",
      "parents": [
        "88409f84bf44ee07e2ad6fdf0dca6ee7e8f6fe1f",
        "064d842ead23c53f1ec639a73966fe9bd9827c40"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jul 27 12:41:42 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 27 12:41:42 2011 -0700"
      },
      "message": "Merge \"Don\u0027t actually try to stop processes marked \u0027persistent\u0027\""
    },
    {
      "commit": "f2fa907e1f815f2fe1add2cb8fb0e159d0f38edb",
      "tree": "4f5496392a53f37e31092ae86147e39a7250584b",
      "parents": [
        "ffcbe48d06ec7ae96f0f48bd37bdd141ebf80703",
        "130b0d2b2629bdd8fc415e0f3da947f965a3f29d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 27 12:19:40 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 27 12:19:40 2011 -0700"
      },
      "message": "Merge \"Fix issue #4466531: onServiceConnected() not called after...\""
    },
    {
      "commit": "636250028d2e88718220fb180eb2afecb27f5911",
      "tree": "24176db59d9654062b7f16f33f281f5afae8ed4e",
      "parents": [
        "84935dc2c00bcc7f6a05370f8fbbd0232a6eb40b",
        "485861c409f9aaca2dac97ea82a66c2cb380ebad"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jul 27 11:05:10 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 27 11:05:10 2011 -0700"
      },
      "message": "Merge \"Fix USB tethering again\""
    },
    {
      "commit": "485861c409f9aaca2dac97ea82a66c2cb380ebad",
      "tree": "8b1e12a0670759eee0f82030d53601f01bb50e69",
      "parents": [
        "83e32904eb0b65fa6d0c13f3d576a46031fefda0"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jul 27 13:52:32 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jul 27 13:54:29 2011 -0400"
      },
      "message": "Fix USB tethering again\n\nThe kernel sends an interface down event for usb0 when RNDIS is enabled.\nIgnore this and only remove USB interfaces when we receive the\ninterface removed event.\n\nChange-Id: I1458f259b96c9fab4d3a69a5692e630123fad136\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "c59c6da9ae14097c77eee69285c6eacc8130936c",
      "tree": "14a8c34506438ebccbfa9fee4b74af45fb7d2181",
      "parents": [
        "804b3d76c39eca09cbbd8b7c3fa1718e7ad094cc",
        "af75fdb16566c3011284afaa7d12bcf6126dd4f3"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed Jul 27 10:00:36 2011 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed Jul 27 10:00:36 2011 -0700"
      },
      "message": "resolved conflicts for merge of af75fdb1 to master\n\nChange-Id: Ib7f3521b0af6df9346cf940d69f2988b1c87e129\n"
    },
    {
      "commit": "41ff7ec82422a5b6d00892afdb3232bc0e53d851",
      "tree": "9085ebb6bcc39a20f98eeb71860f2dad01f604ed",
      "parents": [
        "a94b9ad23ac1f281c9d2dac02d01aa07ca5e1682"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Jul 25 15:21:22 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jul 27 09:31:39 2011 -0700"
      },
      "message": "Revise data limit notifs, watch kernel alerts.\n\nTeach NetworkPolicy limits to \"snooze\" when requested by user, and\nnotify with both dialog and notification.  Register for network alerts\nthrough NMS to trigger updates immediately instead of waiting for\nnext stats update.\n\nEnforce that all NetworkPolicy are unique on a template basis, and\nmove SCREEN_ON/OFF broadcasts to background thread.  Launch SystemUI\nand Settings directly instead of using actions, and include full\nNetworkTemplate in extras.\n\nTests to verify notification and snooze behavior.\n\nBug: 5057979, 5023579, 4723336, 5045721\nChange-Id: I03724beff94a7c0547cb5220431ba8d4cd44d077\n"
    },
    {
      "commit": "af75fdb16566c3011284afaa7d12bcf6126dd4f3",
      "tree": "cb2545e1c51caf9314b4e092484a75e6db60142f",
      "parents": [
        "fada80df08dd0b608eeb9737af413f8df1eb5252",
        "41394a361020e9f58524f23d6831bb8e63063856"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed Jul 27 09:27:00 2011 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed Jul 27 09:27:00 2011 -0700"
      },
      "message": "resolved conflicts for merge of 41394a36 to honeycomb-plus-aosp\n\nChange-Id: Ic839eb7bd8081b94802dbbf9140b9d1fa0cf7df3\n"
    },
    {
      "commit": "a5010431bfcdff88ac9d96e68d8308071c13472b",
      "tree": "926949085a1bc7687883fef0b55fd44acb6c8167",
      "parents": [
        "83e32904eb0b65fa6d0c13f3d576a46031fefda0"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jul 27 09:50:06 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jul 27 09:56:06 2011 -0400"
      },
      "message": "UsbDeviceManager: Don\u0027t show USB notification for RNDIS\n\nsince USB tethering already has a notification.\n\nBug: 4988511\n\nChange-Id: I928cb1e1d191c77340f7f05edfa80a74cdabe6ed\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "130b0d2b2629bdd8fc415e0f3da947f965a3f29d",
      "tree": "3965ebc0cff949b9e261b51c19fa128abeca2a4e",
      "parents": [
        "47a7c68ac862ecfc68f35a63b330cbda7131cd66"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 26 22:07:48 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 26 22:07:48 2011 -0700"
      },
      "message": "Fix issue #4466531: onServiceConnected() not called after...\n\n...apk reinstall; affects user privacy\n\nDisconnecting a ServiceConnection after an app is torn down could\nimpact the bookkeeping of the same service if it has been started\nfor the app.\n\nAlso address issue #5073927: GSF process can\u0027t be killed\n\nA new flag allows the systems location manager service to tell\nthe activity manager to not pull bound services up forever into\nthe visible adj level.\n\nChange-Id: I2557eca0e4bd48f3b10007c40ec878e769fd96a8\n"
    },
    {
      "commit": "4e2a762eae1f6981d32e6098a95498865ad7f795",
      "tree": "cf29595dbaec0694e9293c9c8fd6962fa522a615",
      "parents": [
        "176f3e1b77d74b3b00cac98792f5d9564b935990"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jul 26 20:08:46 2011 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jul 26 20:08:50 2011 -0700"
      },
      "message": "Not user generated accessibility events can change the interrogation allowing window.\n\n1. Events not generated by the user can change the interrogation allowing window\n   unpredicatably. For example when a ListView lays out its children it fires an\n   accessibility events and changes the currently active window while the user\n   interaction may be happening in another window say a dialog. Now the interrogation\n   allowing window is changed when a new window is shown or the user has touch\n   explored it.\n\nbug:5074116\n\nChange-Id: I8dde12bbec807d32445a781eedced9b95312b3e2\n"
    },
    {
      "commit": "064d842ead23c53f1ec639a73966fe9bd9827c40",
      "tree": "5d601e58afe9bc33eb151d15eef277e3cae70c97",
      "parents": [
        "b243d5bc7db88396f0da304553687e7a0bccfa3d"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jul 26 15:38:07 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jul 26 15:42:05 2011 -0700"
      },
      "message": "Don\u0027t actually try to stop processes marked \u0027persistent\u0027\n\nA later CL will introduce an API for querying whether a given package\nruns in a persistent process; UIs such as Settings will be able to use\nthat to determine whether to disable the \u0027force stop\u0027 action.\n\nChange-Id: Iab47c2300fdce285da7d83e02263c9a5f69edd70\n"
    },
    {
      "commit": "22d93a0d71d965970f581cd9aa1cbf2efbb5998f",
      "tree": "f5b0d0a82c59d398fe2185ac047f532fba71724d",
      "parents": [
        "bce8effe75c5477eb42d4e1c4df609da962285a2",
        "41394a361020e9f58524f23d6831bb8e63063856"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jul 26 15:26:02 2011 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jul 26 15:26:02 2011 -0700"
      },
      "message": "resolved conflicts for merge of 41394a36 to honeycomb-plus-aosp\n\nChange-Id: If4dc99c558dc45c9a7ff8d3ea5be69578b4ee793\n"
    },
    {
      "commit": "41394a361020e9f58524f23d6831bb8e63063856",
      "tree": "29a9c842f03d748df6c3718bd5bee4aa60604e42",
      "parents": [
        "ac74551bb42eb2d6775d994357481113375574e7",
        "572b7048a6ed6cf6c5f6bc6c9d542dc377d601ff"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jul 26 13:21:09 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 26 13:21:09 2011 -0700"
      },
      "message": "Merge \"Use dns proxy a bit.\" into honeycomb-LTE"
    },
    {
      "commit": "66269ea6f68f2f25888ce1080c94ac782742fafc",
      "tree": "0ecbefcdbecf98cbacd428a422e6a2a846ac726e",
      "parents": [
        "e432a0005180ba9ac2c1d7822c4761b475fddc51"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Jul 12 14:14:01 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Jul 26 10:14:58 2011 -0700"
      },
      "message": "Move extract native libraries to JNI code\n\nThe built-in ZipFile class was quite a long time to find an unpack\nlibraries. Move everything to using the libutils ZipFileRO class that\ngoes quite a bit faster. Initial measurements are 6 times faster than\nthe Java code.\n\nAlso, read files off the disk and compare their CRC against the APK\u0027s\nCRC to see if we need to write the new file to disk. This also cuts down\nthe bootup time by up to a second per APK that has native files.\n\nChange-Id: Ic464a7969a17368fb6a6b81d026888c4136c7603\n"
    },
    {
      "commit": "bc68a59c024bdb745dac8e2ec7408a9f30595f1a",
      "tree": "9b3cfa4dc30eb787cbd828e97f7d816d5a91e68d",
      "parents": [
        "49754db5a304d995c1cc108ff6f19e4ba4265572"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 25 12:58:12 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 25 20:10:12 2011 -0700"
      },
      "message": "Report the external display size to the input reader.\n\nThe input reader needs this information so that it knows how to\ninterpolate touches on an external touch screen.\n\nChanged Display so that it asks the WindowManager what the real\ndisplay size is (as opposed to the raw display size).  This means\nit now takes into the forced display size set by\nadb shell am display-size.\n\nReplaced all calls to getRealWidth() / getRealHeight() /\ngetRealMetrics() in the WindowManager and replaced them with direct\nusages of the mCurDisplayWidth / mCurDisplayHeight so that the WM\ndoesn\u0027t end up making a reentrant Binder call into itself.\n\nFixed the table status bar HeightReceiver so that it updates the\nheight on all configuration changes since it is possible that the\ndisplay size changed independently of an external HDMI display\nbeing plugged / unplugged.\n\nImproved the Display class documentation to make the distinctions\nbetweeen the various sizes clearer.\n\nChange-Id: I3f75de559d3ebffed532ab46c4ae52c5e7f1da2b\n"
    }
  ],
  "next": "6c454c3225fd47422024af915fa28d5210d1e82e"
}
