)]}'
{
  "log": [
    {
      "commit": "dc0299fb2373faddd547d433ffa049fb40d64fac",
      "tree": "e48b25eef99c35425d3ab642741ea131acee39ae",
      "parents": [
        "c3ab03a9f2c0bc2c4ce8ade6957bcfc30fe2f9ee",
        "4b749ef5f2d510b84b99aa269d5c77af22457d04"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Mar 21 22:01:59 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 21 22:01:59 2013 +0000"
      },
      "message": "Merge \"Allow whitelisted non-system packages to listen for notifications.\" into jb-mr2-dev"
    },
    {
      "commit": "c3ab03a9f2c0bc2c4ce8ade6957bcfc30fe2f9ee",
      "tree": "871e78dfde998f503a64b5005fbf187df9397271",
      "parents": [
        "ad5b0eb7a7571389b0ec1f5195a60e16797920f5",
        "2ced96c54445efca6522afd1878f79c9ee2780ba"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 21 21:55:53 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 21 21:55:53 2013 +0000"
      },
      "message": "Merge \"Fix issue #8436951 JB-MR2: Compatibility: Audible, Pandora, ...\" into jb-mr2-dev"
    },
    {
      "commit": "2ced96c54445efca6522afd1878f79c9ee2780ba",
      "tree": "d29031e6ebe972b81e04fd2fc57e89f62ebf1a6d",
      "parents": [
        "fd81f91052d54c0354834fcd4f423025f2d8c93e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 21 14:23:46 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 21 14:23:46 2013 -0700"
      },
      "message": "Fix issue #8436951 JB-MR2: Compatibility: Audible, Pandora, ...\n\n...Tune-In does not work since JWQ77\n\nInstead of crashing the app for it being bad, just go ahead and\nshow a notification for it anyway that we make up.\n\nYou get what you deserve. :p\n\nChange-Id: I92e32b9ff8835dabde63f8e08e991f72de0d0a92\n"
    },
    {
      "commit": "7b7beb7952440ee2e255694b7b19e60abae93dc0",
      "tree": "9583b84ed81d5930ed67393b90b259a2c99145fe",
      "parents": [
        "71b0017759b825f8bddcdda7425afc802e8918c9"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Mar 21 12:06:27 2013 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Mar 21 12:27:20 2013 -0700"
      },
      "message": "Notify user when wi-fi is toggled about scans\n\nWe let the user know when he turns off Wi-Fi that scans will continue to\nbe available.\n\nUser has the option to turn off the dialog and not receive this in the future.\n\nBug: 8141918\nChange-Id: I115ce2ac57125b8ffbb34245dc25effd4b3bebb0\n"
    },
    {
      "commit": "4b749ef5f2d510b84b99aa269d5c77af22457d04",
      "tree": "1490af32d5ed7a79549b9c87d78c5b49de8985c9",
      "parents": [
        "ab7409e6376708cf8958f3cfb8f6fce2e7bfc69c"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Mar 18 21:53:04 2013 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Mar 21 01:41:20 2013 -0700"
      },
      "message": "Allow whitelisted non-system packages to listen for notifications.\n\nThe allowed packages are listed in\nSettings.Secure.ENABLED_NOTIFICATION_LISTENERS. (Don\u0027t let\nthe plural fool you: only one listener will be supported in\nthe UI.)\n\nChange-Id: Ia69f2ba05d8e555fd4d40b0cc89c62ed14af3cac\n"
    },
    {
      "commit": "d4f8800801cf5c9ca44c2b6977d8db2e0bac5809",
      "tree": "0eb0b6ce11954d985230ee2a4cb9d83c2401158c",
      "parents": [
        "4deaf8934b734dae21253c57c0017cab45736375",
        "df2e92a535e19c00edd37318d974dab992ccc2c1"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Mar 21 06:12:38 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 21 06:12:38 2013 +0000"
      },
      "message": "Merge \"Application restrictions API\" into jb-mr2-dev"
    },
    {
      "commit": "4deaf8934b734dae21253c57c0017cab45736375",
      "tree": "61f1384304f0c79edf8ac3554f9de3c0470c64cd",
      "parents": [
        "9eac52698b18d089e73c7ec2bf73a64a39504733",
        "6837f4a44235f96d410190806448ddf43d2fe696"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Mar 20 22:42:19 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 20 22:42:19 2013 -0700"
      },
      "message": "am 6837f4a4: am e4679750: Merge \"Fix Watchdog HeartbeatHandler to run on correct thread\"\n\n* commit \u00276837f4a44235f96d410190806448ddf43d2fe696\u0027:\n  Fix Watchdog HeartbeatHandler to run on correct thread\n"
    },
    {
      "commit": "df2e92a535e19c00edd37318d974dab992ccc2c1",
      "tree": "8f7232982c05f769fa2e4a4bbe526e48ad949979",
      "parents": [
        "9eac52698b18d089e73c7ec2bf73a64a39504733"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Mar 01 17:04:38 2013 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Mar 20 22:29:59 2013 -0700"
      },
      "message": "Application restrictions API\n\nAdds the ability for apps to export some restrictions. The restrictions\nare presented in Settings based on the restriction type. The user\u0027s\nselections are stored by UserManagerService and provided to the\ntarget user\u0027s application as a list of RestrictionEntry objects which\ncontain the key, value(s).\n\nAlso introduce a manifest entry for system apps to request that the\napp be automatically installed in all users, so that they cannot be\ndeselected by the owner user.\n\nShared account filtering for non-whitelisted apps.\n\nChange-Id: I15b741e3c0f3448883cb364c130783f1f6ea7ce6\n"
    },
    {
      "commit": "63f1e2fb6b7102490b11523589b82c2101d3c079",
      "tree": "06e6d2b718a882043cef77cbd29ca32431d16c19",
      "parents": [
        "ec3928bf0993e13fb82c65ac26a4d70f5bc6c5e4",
        "1ef840cdc785d0e8a07e317cc1d7af42a0d0185d"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Mar 20 15:49:20 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 20 15:49:20 2013 +0000"
      },
      "message": "Merge \"Add API to control scan always mode\" into jb-mr2-dev"
    },
    {
      "commit": "9f3d55056f315f7fc351e46ab1fac188d97c8277",
      "tree": "c7fcc1536f02d81e1b2e5178e790c5cb9095cc5d",
      "parents": [
        "4e43d76e822dbc8d328fe0600b5fb9489f8ab75c",
        "9f2e83135c046ab475a101ae7c020d94db8f53d9"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue Mar 19 22:48:13 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 19 22:48:13 2013 +0000"
      },
      "message": "Merge \"Fix reading sleep policy\" into jb-mr2-dev"
    },
    {
      "commit": "9f2e83135c046ab475a101ae7c020d94db8f53d9",
      "tree": "9e80215fa82074f8fe30027d8d4d9b12ce5b95b7",
      "parents": [
        "338b18844434379de54050ff582d36ff6da3ba11"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue Mar 19 14:32:11 2013 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue Mar 19 14:32:11 2013 -0700"
      },
      "message": "Fix reading sleep policy\n\nBug: 8418823\nChange-Id: I432b0a1a7a13dcdd834f6a1c943b06937444f406\n"
    },
    {
      "commit": "116415271b952ab9e842f3850faa1a44cb70bf6a",
      "tree": "1ce5439168e51fe0a28dd9cdd37942a9c77dc7a5",
      "parents": [
        "ebebb80b4a629756128b5a4fcf483133f01dbfd7"
      ],
      "author": {
        "name": "John Michelau",
        "email": "w14107@motorola.com",
        "time": "Mon Mar 18 18:28:23 2013 -0500"
      },
      "committer": {
        "name": "John Michelau",
        "email": "w14107@motorola.com",
        "time": "Tue Mar 19 14:39:33 2013 -0500"
      },
      "message": "Fix Watchdog HeartbeatHandler to run on correct thread\n\nThe HeartbeatHandler for the System Server Watchdog has been running\non the wrong thread due to a race condition in initialization.  It\u0027s\ndesigned to run on ServerThread, so that it can catch lockups in the\nmain looper of the System Server.  It has been running on\nActivityManagerThread instead, so it does not detect lockups on the\nServerThread as it should.\n\nActivityManagerService is calling Watchdog.getInstance() before\nServerThread calls Watchdog.getInstance().init(), so the handler is\nbeing bound to the ActivityManagerThread instead of the ServerThread.\n\nExplicitly bind HeartbeatHandler to ServerThread, so that the Watchdog\ncatches lockups on this critical thread.\n\nChange-Id: Iccb184ac3adb817feb86ed4ee0e50e443bf74636\n"
    },
    {
      "commit": "6d3b13384e5ac4261eff264e7f8855610815e728",
      "tree": "56b3af73ad7f535c029059ba79879ab1b944df01",
      "parents": [
        "b5482b2f8ac82143ae246794d237f35a471142d6",
        "c9fe40ead549ff18393c0cc5c6e3bd67548f9da6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 19 10:13:34 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 19 10:13:34 2013 -0700"
      },
      "message": "am c9fe40ea: am 71558f1f: Merge \"Fix times in debugging output to use H rather than k.\"\n\n* commit \u0027c9fe40ead549ff18393c0cc5c6e3bd67548f9da6\u0027:\n  Fix times in debugging output to use H rather than k.\n"
    },
    {
      "commit": "515c20beb1cc291a4c4a63016c7bc7286e47670c",
      "tree": "80a6fb0caf11655d3e27c51edce7d4d216a7f594",
      "parents": [
        "f4071065b88d5b4acbe8ef102275244636ba9959",
        "1cd6c6ecdf24ad5f567ef9ed23aecc4d024d6650"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Mar 19 15:45:23 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 19 15:45:23 2013 +0000"
      },
      "message": "Merge \"PackageManagerService: honor requestedPermissionsRequired\" into jb-mr2-dev"
    },
    {
      "commit": "1ef840cdc785d0e8a07e317cc1d7af42a0d0185d",
      "tree": "aa19e65cd5339434e13a1e60f9a0f6a5ce11d50a",
      "parents": [
        "b630b7e426aba74bb6064afe5837472efee32363"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue Mar 12 17:09:27 2013 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue Mar 19 07:44:47 2013 -0700"
      },
      "message": "Add API to control scan always mode\n\nBug: 8141918\nChange-Id: I1e5e45e514726c2cbfd86e747123e477e00fd7ed\n"
    },
    {
      "commit": "aea8b0e571d9fe6b99b001df73d86d6e67bc276a",
      "tree": "042f7a4882ac1d08836a913f889e8053deefbd5a",
      "parents": [
        "4ad2f93cff101ffcaea0a9532dc9b17840cd791b",
        "7f7ac5b4a86be479bdede226fd4a2bddcd8a9a2b"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Mar 18 17:50:32 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 18 17:50:32 2013 -0700"
      },
      "message": "am 7f7ac5b4: am fda1bff8: Merge \"Correct the target app token for input method window\"\n\n* commit \u00277f7ac5b4a86be479bdede226fd4a2bddcd8a9a2b\u0027:\n  Correct the target app token for input method window\n"
    },
    {
      "commit": "64a277d83778827b451b5ed6634eec6ac86bceeb",
      "tree": "c922671c3bcf6f0d5bd0eccb95f29e3558188ee6",
      "parents": [
        "a8974d3f0a799a5d76e226649c878a71b3b5e953"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 18 17:47:22 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 18 17:47:22 2013 -0700"
      },
      "message": "Fix times in debugging output to use H rather than k.\n\nBug: 8359981\nChange-Id: I4fccf3ed7e469b77f6e755dacbcd025005390505\n"
    },
    {
      "commit": "1cd6c6ecdf24ad5f567ef9ed23aecc4d024d6650",
      "tree": "a0cf2ce4d545f4878af0d4db1507c968123cd89b",
      "parents": [
        "952e4805f72c0835bbd158051fc56dc64d1d660d"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Mar 18 12:56:33 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Mar 18 13:59:04 2013 -0700"
      },
      "message": "PackageManagerService: honor requestedPermissionsRequired\n\nDon\u0027t automatically grant all normal/dangerous permissions. Instead,\ncheck the value of requestedPermissionsRequired to see if it\u0027s required.\n\nIf the permission is not required, then only grant it if the permission\nwas previously granted to the application.\n\nChange-Id: I86b1fae530c006d353f9fa22137598bc88253805\n"
    },
    {
      "commit": "2fc8ad1fe68cc819a337e1c48dc27389a823c304",
      "tree": "08a296c115a60b1fffb077b700511d7e20ea52ab",
      "parents": [
        "338b18844434379de54050ff582d36ff6da3ba11",
        "e50d7fcd9796329bded8c39f2666b6c3ee021ff3"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Mar 18 20:57:26 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 18 20:57:26 2013 +0000"
      },
      "message": "Merge \"Properly close Surface when done.\" into jb-mr2-dev"
    },
    {
      "commit": "e50d7fcd9796329bded8c39f2666b6c3ee021ff3",
      "tree": "a3ebcd16c39a999fa36c43455d816fecb48fc5fb",
      "parents": [
        "cba45c0eeff6e8f57bec54fbdb89951b5387d14c"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Mar 18 10:06:21 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Mar 18 10:06:21 2013 -0700"
      },
      "message": "Properly close Surface when done.\n\nSurface.destroy was not being called. Leading to warning from\nStrictMode.\n\nFixes bug 8388527.\n\nChange-Id: I472fb57ed2c3f6389e53d8f020f3b22b2d0740c8\n"
    },
    {
      "commit": "952e4805f72c0835bbd158051fc56dc64d1d660d",
      "tree": "e0f490e56f18d26f8bb9347f90a49f55018b4539",
      "parents": [
        "14f9fac204a04f74605c79ef38f5345425eea561",
        "13c9fdefdec907aaa339ffd67c0ded116cccba01"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Mar 18 16:41:57 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 18 16:41:58 2013 +0000"
      },
      "message": "Merge \"Framework changes for 464xlat.\" into jb-mr2-dev"
    },
    {
      "commit": "5c97184c3a92dd2a608fd031ab5c01574030777a",
      "tree": "7f5d809f080536ab483eac9845fded60fef9b328",
      "parents": [
        "519ba7b10c4e0da3586aeeaa9696349f28313898"
      ],
      "author": {
        "name": "Carrie Xu",
        "email": "carrie.xu@sonymobile.com",
        "time": "Tue Oct 30 17:28:39 2012 +0800"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "takeshi.aimi@sonymobile.com",
        "time": "Mon Mar 18 11:45:14 2013 +0900"
      },
      "message": "Correct the target app token for input method window\n\nThe root cause is:\nThere is a defect in window manager service: When a new\nactivity that can be ime target is added into window manager\nbut the Z order of input method window don\u0027t need to be\nchanged, then the target app token of input method window\nwould not be updated to new one. This defect may cause that\nthe layer of input method window is calculated incorrectly.\n\nThe solution:\nCorrect the target app token for input method window.\n\nChange-Id: I008311e3c9b1cf5fc320b614d8675c183c506d50\n"
    },
    {
      "commit": "d9b3d55152ca6184caf64667b0d03c08eff02263",
      "tree": "79f995232e74bec2ca4fd02cd2fd7c4bbd670e27",
      "parents": [
        "c8a9fdff4b229b129920aecb1d048d1ff36729b4"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Sun Mar 17 03:21:35 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Sun Mar 17 03:21:35 2013 +0900"
      },
      "message": "Catch RuntimeException in NMService notifications\n\nCurrently, NetworkManagementService only catches RemoteExceptions\nwhen calling the BaseNetworkObserver notification methods (e.g.,\ninterfaceStatusChanged). However, if the observer is in the same\nprocess, unchecked exceptions can occur as well.\n\nWhen this happens, finishBroadcast does not get called, and no\nfurther notifications can be sent, because any attempt to do so\nfails with a \"beginBroadcast() called while already in a\nbroadcast\" exception.\n\nFix this by catching RuntimeException as well.\n\nBug: 8397534\nBug: 8276725\nChange-Id: Icd6f32128707244978943c48a9ea3a2b952a2957\n"
    },
    {
      "commit": "bb131f52daf0792c3f1566df992024d5d7640f25",
      "tree": "de73eea594a7d08aa73916e31df3c1775165fa87",
      "parents": [
        "2e6ce4f737dcdeb748f467836dd12490c0cdfd22",
        "282add7bc3e80825c73244f527857aefa74093a9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Mar 16 01:59:29 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 16 01:59:29 2013 +0000"
      },
      "message": "Merge \"Fix issue #8401553: It\u0027s possible to startForeground()...\" into jb-mr2-dev"
    },
    {
      "commit": "282add7bc3e80825c73244f527857aefa74093a9",
      "tree": "0b6b126bf0ec25a767b50f8e4b1104aec600c9d5",
      "parents": [
        "5d122d96a5bf3bbaccaca2765b45716efe7ee2ef"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 15 18:48:04 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 15 18:48:04 2013 -0700"
      },
      "message": "Fix issue #8401553: It\u0027s possible to startForeground()...\n\n...with no visible Notification\n\nDon\u0027t allow a 0 icon resource.\n\nChange-Id: I52e93533e6c45c6027ff3c185060cd54d087d077\n"
    },
    {
      "commit": "8dfe99ce20f2f7c08dd8d3cefcd18eb2d4fb10d8",
      "tree": "83d9c880b4671e5968ad26b855fb0dd08e9d0ec2",
      "parents": [
        "faf0e89ce3bdb2c50eb5da671bc4fc2a618ebf89",
        "e4bbb1cc451c7ebdad9f92968732fc4f6c21a70c"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 15 18:59:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 15 18:59:51 2013 +0000"
      },
      "message": "Merge \"Catch BadTokenException and continue.\" into jb-mr2-dev"
    },
    {
      "commit": "e4bbb1cc451c7ebdad9f92968732fc4f6c21a70c",
      "tree": "16173d2d812b1ff818d008739ce3f411f603839d",
      "parents": [
        "b38258f357a7857ce5d53caad0af9c38053ab071"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 15 11:38:44 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 15 11:38:44 2013 -0700"
      },
      "message": "Catch BadTokenException and continue.\n\nBadTokenException is a normal consequence of swapping IMEs while there\nis a DO_SHOW_SOFT_INPUT message in the IIMethodWrapper queue. This\nrace condition cannot be avoided without an unacceptable lock down of\nInputMethodManagerService.\n\nFixes bug 8387663.\nFixes bug 8263462.\n\nChange-Id: I2c21573cf972145ab08e66604cdb9344139a3f31\n"
    },
    {
      "commit": "e78aa8964766e5e2a9684de13176b08b7bd09e06",
      "tree": "d80bd67987bb61cdc9a757ae6d3ba5a17b919e93",
      "parents": [
        "827ef6e0bd696b2cd0ff8d2bf28e4564b913c345",
        "f83d90c6671371c9fb95c7946461795efe5a1da3"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Mar 15 17:14:42 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 15 17:14:43 2013 +0000"
      },
      "message": "Merge \"Set routes from stacked links as well.\" into jb-mr2-dev"
    },
    {
      "commit": "13c9fdefdec907aaa339ffd67c0ded116cccba01",
      "tree": "2e89b0c6576b0629db92d7ff1c0653b56e06ebe4",
      "parents": [
        "f83d90c6671371c9fb95c7946461795efe5a1da3"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Mar 15 04:22:37 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Mar 15 14:41:55 2013 +0900"
      },
      "message": "Framework changes for 464xlat.\n\n1. Add a Nat464Xlat service that ConnectivityService can use\n   to start and stop clat. When clat is started, the service\n   waits for the clat interface to come up and then calls\n   ConnectivityService to add the appropriate routes.\n2. Make ConnectivityService start clat when an IPv6-only mobile\n   interface is connected. We only support clat on mobile for\n   now.\n3. Make tethering use the interface that has the IPv4 default\n   route insted of using the base interface of the\n   LinkProperties. This allows us to tether to a stacked\n   interface, which is needed for tethering with 464xlat.\n\nBug: 8276725\nChange-Id: I24480af69ee280f504399062638af0836a56268e\n"
    },
    {
      "commit": "f83d90c6671371c9fb95c7946461795efe5a1da3",
      "tree": "ff58354c89f34c36670db780a921422184ee07d4",
      "parents": [
        "69edd64d9bf839428ce0a7723cd0f1deda98dc0d"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Mar 15 13:58:38 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Mar 15 14:35:38 2013 +0900"
      },
      "message": "Set routes from stacked links as well.\n\nCurrently, ConnectivityService adds and removes routes to/from\nthe routing table only based on the LinkProperties\u0027s routes.\nMake it update routes based on the stacked links as well.\n\nBug: 8276725\nChange-Id: I9a2adf537af5a04de0aaab3780afbcc3bb5c6acb\n"
    },
    {
      "commit": "33c5857c54a67de62917beae6c2dfd8b5ca3dce8",
      "tree": "e1b1a044c9f734f7343d8e8ef65f0878c0d80fc9",
      "parents": [
        "d6bbe3b2ed82ac78415a06596b807b33f0cbe66d",
        "7b5fd05d4e41c91386974970e3da5dcbfc2b2132"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Fri Mar 15 05:07:40 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 15 05:07:41 2013 +0000"
      },
      "message": "Merge \"Revert \"Fail fast if somebody is adding default routes\"\" into jb-mr2-dev"
    },
    {
      "commit": "7b5fd05d4e41c91386974970e3da5dcbfc2b2132",
      "tree": "40067c144e082b26ff6943b26721c57fe04b2c99",
      "parents": [
        "6f210bd0191e1936bbc1f036912c6efc4ea69475"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Fri Mar 15 05:07:04 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 15 05:07:04 2013 +0000"
      },
      "message": "Revert \"Fail fast if somebody is adding default routes\"\n\nThis reverts commit 6f210bd0191e1936bbc1f036912c6efc4ea69475\n\nMako wouldn\u0027t boot for me, reverting for now.\n\nChange-Id: Ie92d6bf77811e7257e86d65e1e15e1973c027cd7\n"
    },
    {
      "commit": "bb5b7a264969a961291e0cce9b16678f78151b48",
      "tree": "fe0099ab5e05d9e1fc8bec425e1dbcbd4c7014a8",
      "parents": [
        "debbeec575b031660390e21274c66a093010ccb0",
        "6f210bd0191e1936bbc1f036912c6efc4ea69475"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Mar 14 23:02:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 14 23:02:28 2013 +0000"
      },
      "message": "Merge \"Fail fast if somebody is adding default routes\" into jb-mr2-dev"
    },
    {
      "commit": "11aefad94de6569c4c7394e7bc5fdeb0ae60d5bb",
      "tree": "4df4926fa0f9b8bf577b182fd52078a6b0ea8eb1",
      "parents": [
        "1c80a05176c9a6cdef2975cc655f34588275194e"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Mar 06 07:57:41 2013 -0800"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Mar 14 13:55:56 2013 -0700"
      },
      "message": "Add support for scan always available mode\n\nModify WifiService to add a controller to track the various\ndesired states and let the WifiStatemachine actually control\nthe bring up.\n\nBug: 8141918\n\nChange-Id: I6e98fd5a29b43c3c50c315eff5255cd0a3eaebcd\n"
    },
    {
      "commit": "6f210bd0191e1936bbc1f036912c6efc4ea69475",
      "tree": "07fab9d1abbc925065c212eaaeb982e255d7affd",
      "parents": [
        "555fddb011548fb60e5abe90dd45df1cd7dd78af"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Mar 14 13:16:04 2013 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Mar 14 13:16:04 2013 -0700"
      },
      "message": "Fail fast if somebody is adding default routes\n\nbug:2655011\nChange-Id: I25da940e024825bc6e1d1ac5fe7b0d951609c1c1\n"
    },
    {
      "commit": "67bea2ef32198e5e246715998c1d907b73225761",
      "tree": "8ab5bb483ba8966b843c1c38a666d0ea21af7437",
      "parents": [
        "34f37e74125b09d13537782b602b6b4e37995ff7",
        "ca0ac718cbc2ad3e7ad2400f5fa34068f154ee20"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 14 16:48:53 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 14 16:48:53 2013 +0000"
      },
      "message": "Merge \"Remove WindowManager messages from remote queue.\" into jb-mr2-dev"
    },
    {
      "commit": "ca0ac718cbc2ad3e7ad2400f5fa34068f154ee20",
      "tree": "de2e71086e7584da4684c0c1b404b20d087aa930",
      "parents": [
        "6efb4c746f89458ffb3da21d7d70af0b220a4876"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 14 09:43:02 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 14 09:43:02 2013 -0700"
      },
      "message": "Remove WindowManager messages from remote queue.\n\nWhen a new IME is attached it is not enough to remove the\nWindowManager messages from the local queue, but the ones in\nthe previous IME queue must also be removed.\n\nFixes bug 8263462.\n\nChange-Id: I9e916c6052a83dc7691bcba0b6ab8328b9b7cc36\n"
    },
    {
      "commit": "86e1bc730570765355dc8789b5c6de6962a053cc",
      "tree": "a6b5357746a565b6fd4853d9f46d75af422812d9",
      "parents": [
        "c3b9cd635163ae48a9151fc6e1650388c5d716be"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 13 17:48:22 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 13 18:21:11 2013 -0700"
      },
      "message": "fix CloseGuard usage in Surface\n\nBug: 8375415\nChange-Id: I03e9f318c2ad586f4bd93b280557ada66121d275\n"
    },
    {
      "commit": "6efb4c746f89458ffb3da21d7d70af0b220a4876",
      "tree": "f25170a748ea1c0ab6dbee06ac3b1e0bc88cbdf4",
      "parents": [
        "f3d5de82468ce4e27db0fab502894345ecb5d2ba"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Mar 13 10:17:41 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Mar 13 11:12:26 2013 -0700"
      },
      "message": "Put debug back in for b/b8263462.\n\nPrevious CL did not fix.\n\nChange-Id: Ief9e8f519480fa41248d53e5b0187c9657f00b79\n"
    },
    {
      "commit": "53149acf7bfe262ff8764351d35af247fcdc4ef0",
      "tree": "89f8beaf34db680f6f0b81713247dad09c6d9048",
      "parents": [
        "d665b49518d1952c2c32825782ff117a13bc7484",
        "c895be7bc68b6f5b37fbb9881f464dd5ea0eb017"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 12 21:41:16 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 12 23:03:59 2013 +0000"
      },
      "message": "Merge \"Implement limited shared libraries in apks.\" into jb-mr2-dev"
    },
    {
      "commit": "274323ce8fa11e39ba66e9874c0a576e58046b1b",
      "tree": "edd43b111f112b93f5b337bb96dfaad37189a43e",
      "parents": [
        "93f99846df1e00f115c8870eab6ef3df54d1ec6a"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 12 14:12:39 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 12 14:44:59 2013 -0700"
      },
      "message": "Remove old show/hide messages on new ime (DO NOT MERGE)\n\nThe previous show/hide messages in the queue were still trying\nto be honored even after a new ime was attached.\n\nFixes bug 8263462.\n\nChange-Id: Iee60dbd1d58542f73aedeac5ccb54cddeb5d5dfe\n"
    },
    {
      "commit": "c895be7bc68b6f5b37fbb9881f464dd5ea0eb017",
      "tree": "fe7ba171c41d3df63b595adaf46a67ace2a7d7d3",
      "parents": [
        "9725d80adc7426ea20f3a193fc81dc1e8b8c4b31"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 11 17:48:43 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 12 12:51:38 2013 -0700"
      },
      "message": "Implement limited shared libraries in apks.\n\nYou can now declare shared libraries in apks that are\non the system image.  This is like the existing mechanism\nof using raw jar files as shared libraries, but since they\nare contained in an apk the library can actually be updated\nfrom the Play Store.  And this even (mostly) works.\n\nThere are some deliberate limitations on this feature.  A\nnew shared library *must* be declared by an apk on the system\nimage.  Installing an update to a system image apk does not\nallow you to add new shared libraries; they must be defined\nby everything on the base system image.  This allows us to\nget rid of a lot of ugly edge cases (shared libraries that were\nthere disappearing after an update is uninstalled for example)\nand give some brakes on apps that happen to be pre-installed\non devices from being able to throw in new shared libraries\nafter the fact.\n\nIn working on this, I ran into a recently introduced bug where\nuninstalling updated to system apps would fail.  This was done\nto allow for the new restricted users that don\u0027t have all\nsystem apps, but conflicts with the existing semantics for\nuninstalling system apps.  To fix this I added a new uninstall\nflag that lets you switch on the new mode if desired.\n\nAlso to implement the desired logic for limitations on declaring\nnew shared libraries in app updates, I needed to slightly tweak\nthe initial boot to keep the Package object for hidden system\npackages associated with their PackageSetting, so we can look at\nit to determine which shared libraries are allowed.  I think\nthis is probably more right than it was before -- we already\nneed to parse the package anyway, so we have it, and when you\ninstall an update to a system app we are in this same state\nuntil you reboot anyway.\n\nAnd having this fixed also allowed me to fix another bug where\nwe wouldn\u0027t grant a new permission to an updated app if its\nsystem image version is updated to request the permission but\nits version is still older than whatever is currently installed\nas an update.  So that\u0027s good.\n\nAlso add new sample code showing the implementation of an apk\nshared library and a client app using it.\n\nChange-Id: I8ccca8f3c3bffd036c5968e22bd7f8a73e69be22\n"
    },
    {
      "commit": "1d280ee9583cc3b8e96f02fcf73cde484f29cc69",
      "tree": "852bec0f325dae554fc3e818e9af20eb0fe54e15",
      "parents": [
        "9f6421a36574b3319d10d700a6e6e506e490ce66",
        "23d7c700324d6ae9a20ddc89617ccc1846f80fc8"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Mar 12 15:53:44 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 12 15:53:45 2013 +0000"
      },
      "message": "Merge \"Accumulate updates to notifications before archiving.\" into jb-mr2-dev"
    },
    {
      "commit": "2adea7ff3b1c30d9de6abd3cb7361a9a5a937dd0",
      "tree": "7c0096142e6fa83ac1092ebf73e429751fb2dffa",
      "parents": [
        "8c63487f3eea9b7276e0559af13f9b35f587cbe5"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Mar 12 07:39:59 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Mar 12 07:39:59 2013 +0900"
      },
      "message": "Remove redundant parameter to modifyRoute\n\nmodifyRoute takes both an interface name and a LinkProperties.\nThis is redundant because all callers get the interface name\nfrom the LinkProperties. Make modifyRoute get the interface\nname from the LinkProperties instead.\n\nChange-Id: I41ba8e0a10241c2f1107204fcaca2be74556042b\n"
    },
    {
      "commit": "de965891130bc50bd02eb6f7bac2ea177a733c2c",
      "tree": "7db214a1d7b3bd023d18dc3d35bb6df91537b29c",
      "parents": [
        "1dc2ff66af106d1e951a5678586215ce0e27e8f6",
        "e16713597661c326d2bb6586a8b13e27520c4227"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Mar 11 17:22:25 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 11 17:22:25 2013 +0000"
      },
      "message": "Merge \"Always specify an interface for host routes.\" into jb-mr2-dev"
    },
    {
      "commit": "e16713597661c326d2bb6586a8b13e27520c4227",
      "tree": "06db53def925439275cadc813996d99130805239",
      "parents": [
        "45b9a5bb93569ca49bbd44f7a518091371687f96"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Mar 08 12:30:44 2013 -0800"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Mar 08 16:41:25 2013 -0800"
      },
      "message": "Always specify an interface for host routes.\n\nChange-Id: I05b4d87e7d7e8237c6f4a70f1fedae00f416f581\n"
    },
    {
      "commit": "294b512ecaa98a6a8ef12285ad14e7a4091b5d57",
      "tree": "d89983eed02f4cc3fc48fb50cd0d779ff345752b",
      "parents": [
        "2042cc403a6eba2de1c5220e8402b045bdf24192"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 19 14:08:59 2013 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 08 15:08:10 2013 -0800"
      },
      "message": "DO NOT MERGE - Full backup/restore now handles OBBs sensibly\n\nOBB backup/ restore is no longer handled within the target app\nprocess.  This is done to avoid having to require that OBB-using\napps have full read/write permission for external storage.\n\nThe new OBB backup service is a new component running in the\nsame app as the already-existing shared storage backup agent.\nThe backup infrastructure delegates backup/restore of apps\u0027\nOBB contents to this component (because the system process\nmay not itself read/write external storage).\n\nFrom the command line, OBB backup is enabled by using new\n-obb / -noobb flags with adb backup.  The default is noobb.\n\nFinally, a couple of nit fixes:\n\n- buffer-size mismatch between the writer and reader of chunked\n  file data has been corrected; now the reading side won\u0027t be\n  issuing an extra pipe read per chunk.\n\n- bu now explicitly closes the transport socket fd after\n  adopting it. This was benign but triggered a logged\n  warning about leaked fds.\n\n(Cherrypicked)\n\nChange-Id: I471f6348abcccb7bf1e1710b7beda9f23de53e14\n"
    },
    {
      "commit": "a83cab0001ca4d90abe622c22a7af1b0da54f739",
      "tree": "51bec7849647a103e8d24179201e7f7e95e46b01",
      "parents": [
        "09ed05ceaecc5fca46e25fe9bd9e8c0ee61fd31d"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Mar 07 17:50:11 2013 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Mar 07 17:50:11 2013 -0800"
      },
      "message": "Do not hang in pm clear on an invalid package name\n\nThe Activity Manager was not properly informing the observer that\nthe operation had concluded (unsuccessfully).\n\nBug 8222595\n\nChange-Id: I8234e32d8edf4112c8c7a5e20e341d0b41e23014\n"
    },
    {
      "commit": "23d7c700324d6ae9a20ddc89617ccc1846f80fc8",
      "tree": "0d99ba9b33eff61ad55a96be6b50e88973be0160",
      "parents": [
        "21ca44d67b972e66a5c8698886ee8747366c8b05"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Mar 07 16:32:06 2013 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Mar 07 16:32:06 2013 -0500"
      },
      "message": "Accumulate updates to notifications before archiving.\n\nBy only adding notifications to the archive when they are\nremoved we batch up multiple updates and only store the\nfinal version. Some data is lost in this process, but we\nsave tons of memory storing otherwise redundant /\nuninteresting data (e.g. each step of a download).\n\nChange-Id: I008afefc1242bb7c433d45da2c36fcc626dd3706\n"
    },
    {
      "commit": "9f3443c55c51562e22abb6b16c83cbe036dd2db4",
      "tree": "bee57c3d41c5644e0d3bae105d05ca47e3f730c0",
      "parents": [
        "1f33ebd41dd1c149f86c822ad56f936f0373013d",
        "21ca44d67b972e66a5c8698886ee8747366c8b05"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Mar 07 20:46:09 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 07 20:46:09 2013 +0000"
      },
      "message": "Merge \"Properly support USER_ALL in notification listener API.\" into jb-mr2-dev"
    },
    {
      "commit": "21ca44d67b972e66a5c8698886ee8747366c8b05",
      "tree": "8213848925220e0e3b691189f87f5981e624b04c",
      "parents": [
        "4c333e177220387cf6746d47e1948bbfcc374512"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Mar 07 13:58:00 2013 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Mar 07 14:01:22 2013 -0500"
      },
      "message": "Properly support USER_ALL in notification listener API.\n\nListeners should be notified for any notification if they\nregister for USER_ALL, or for any notification posted to\nUSER_ALL.\n\nBug: 8328357\nChange-Id: Ib5024d41287090d1a390539a015d8cb4dfa854a7\n"
    },
    {
      "commit": "94d7ddb4b503c89c350d06965aac4e9e1203206b",
      "tree": "8164a5fcf68483feb79f17af8347ecf210d11206",
      "parents": [
        "f6fcea602750bbc0eb7d394f4daf3848ffaaed7d"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Mar 06 15:02:12 2013 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Mar 06 15:10:57 2013 -0800"
      },
      "message": "Use enabled/enabledSetting from PackageParser.\n\nPackageParser.updateApplicationInfo() has already interpreted the\nvarious COMPONENT_ENABLED flags for us, no need to clobber them.\n\nBug: 8331767\nChange-Id: If1363c5651a2f0326ee60e92517cfc0e6f256699\n"
    },
    {
      "commit": "cc947fdc2decb83a70484bd0f831c58cc0346657",
      "tree": "a23682fad41a856878a583e9853aa29d22351d13",
      "parents": [
        "67df64b3a48a8157d08a98fa90135d0ac0ee621c",
        "a99764e5978b51021db8575912b448d85541379b"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Mar 06 18:40:48 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 06 18:40:48 2013 +0000"
      },
      "message": "Merge \"Add window leak check and possible recovery.\" into jb-mr2-dev"
    },
    {
      "commit": "a99764e5978b51021db8575912b448d85541379b",
      "tree": "e11931cd108602ae13e2258f30913eb1a8289d97",
      "parents": [
        "7341786b138cb52eac053108b524ea3296d40f6d"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Mar 06 10:22:16 2013 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Mar 06 10:22:16 2013 -0800"
      },
      "message": "Add window leak check and possible recovery.\n\nSearch output for \"!!! LEAK !!!\"\n\nFor bug 8322020.\n\nChange-Id: I6db572a1c7fe0e6b386ccb0dba08bc376659a75a\n"
    },
    {
      "commit": "67df64b3a48a8157d08a98fa90135d0ac0ee621c",
      "tree": "d390d5c537c976a14688e24c1f9a8a213840ff29",
      "parents": [
        "0ffc81c1ada65b4ef4febaacf044e9fa62309b87"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Dec 14 12:09:36 2012 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Mar 06 09:49:44 2013 -0800"
      },
      "message": "Shared accounts and sharing of apps\n\nAPI and preliminary implementation for sharing primary user accounts with a secondary user.\nAbstractAccountAuthenticator has new methods to retrieve and apply a bundle of credentials\nto clone an account from the primary to a restricted secondary user. The AccountManagerService\ninitiates the account clone when it starts up the user and detects that the user has\na shared account registered that hasn\u0027t been converted to a real account.\n\nAccountManager also has new hidden APIs to add/remove/get shared accounts. There might be\nfurther improvements to this API to make shared accounts hidden/visible to select apps.\n\nAccountManagerService has a new table to store the shared account information.\n\nAdded ability in PackageManager to install and uninstall packages for a secondary user. This\nis required when the primary user selects a few apps to share with a restricted user.\n\nRemove shared accounts from secondary users when primary user removes the account.\n\nChange-Id: I9378ed0d8c1cc66baf150a4bec0ede56f6f8b06b\n"
    },
    {
      "commit": "f4d6f153e66eb54f7da5f9bd8f5b6fcc25dfd919",
      "tree": "f6d922dee012b7e369620ecc32366399adb0ec73",
      "parents": [
        "78421f903342e5fbc43b162380a99351c27f4fb5",
        "11e7d88d1441c20605d7f06ab31ef2c81590d5c4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 06 03:52:50 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 06 03:52:50 2013 +0000"
      },
      "message": "Merge \"remove suppor for SurfaceControl.FX_SURFACE_SCREENSHOT\" into jb-mr2-dev"
    },
    {
      "commit": "11e7d88d1441c20605d7f06ab31ef2c81590d5c4",
      "tree": "e8020fad8e0ab2a482f1e093d1aac58e89538436",
      "parents": [
        "188f8c5e4b266429b07b4381d58d33b1e771be48"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Mar 05 14:14:55 2013 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Mar 05 14:14:55 2013 -0800"
      },
      "message": "remove suppor for SurfaceControl.FX_SURFACE_SCREENSHOT\n\nthe window manager can now use the SurfaceControl.screenshot\nAPI with a \"regular\" surface.\n\nChange-Id: I76bed81d5e7b078ea1b3e8f96814aba32e9d5405\n"
    },
    {
      "commit": "c7ede61f592a2389790ce0993b8ee0a16de54b5e",
      "tree": "6b90ec00851fcc730f537b2b9eeeda66121a535f",
      "parents": [
        "43abdc486d19c137b79a2bde9ce4706c91656bda",
        "c808a1955f7571108e8c22502897ed82c69a7c3b"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue Mar 05 18:13:58 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 05 18:13:59 2013 +0000"
      },
      "message": "Merge \"Fix client tracking\" into jb-mr2-dev"
    },
    {
      "commit": "c808a1955f7571108e8c22502897ed82c69a7c3b",
      "tree": "6524a763a66cb9da40ecd38e068027731bc19e71",
      "parents": [
        "4c333e177220387cf6746d47e1948bbfcc374512"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue Mar 05 09:46:36 2013 -0800"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue Mar 05 09:46:36 2013 -0800"
      },
      "message": "Fix client tracking\n\nBug: 8311559\nChange-Id: I167fcdd5c3da4d46b7d99e18041036023c8c60f7\n"
    },
    {
      "commit": "a55136169eb3367c70f7b8686d51289483310586",
      "tree": "171bfb6b73e3073e20b246b13c40012829cc3e31",
      "parents": [
        "9c9aec721a78f23b4315ac920c26b109999a07f1",
        "e3f23a36d86fedf6c8c6503378cd6d2190c5ab23"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 05 17:37:43 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 05 17:37:43 2013 +0000"
      },
      "message": "Merge \"Add new WindowId for cross-process monitoring of focus.\" into jb-mr2-dev"
    },
    {
      "commit": "e3f23a36d86fedf6c8c6503378cd6d2190c5ab23",
      "tree": "cb4cb3a9598cd94d320203f7f1ba34842599b435",
      "parents": [
        "7be6d4c421cfa6f93079517d3ee54024c8049ae5"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 01 13:25:35 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 05 09:33:48 2013 -0800"
      },
      "message": "Add new WindowId for cross-process monitoring of focus.\n\nThis is a class representing a window and providing limited\ninteraction with it, which can be handed across processes.\n\nChange-Id: I22885f2064a9cc8c68d690a5858c2e28bbb6a0f3\n"
    },
    {
      "commit": "188f8c5e4b266429b07b4381d58d33b1e771be48",
      "tree": "13853397778ba99f309b14ff33b39120ce6d7f95",
      "parents": [
        "836f93dc5f00536baa56f7c035c424a130f9c2a3",
        "0449a40586b45ee05f760802020dc2f8a6e0506b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Mar 05 02:31:15 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 05 02:31:15 2013 +0000"
      },
      "message": "Merge \"screenshots can now go into a Surface from java\" into jb-mr2-dev"
    },
    {
      "commit": "0449a40586b45ee05f760802020dc2f8a6e0506b",
      "tree": "953b1e7777e044d316f887a7571f06fc1902de3b",
      "parents": [
        "8edd78499e2656916e89eeae91aa0f023f69eddc"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 01 23:01:51 2013 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 04 17:45:26 2013 -0800"
      },
      "message": "screenshots can now go into a Surface from java\n\nA Surface can trivially be created from a SurfaceTexture.\nUpdate ElectronBeam to use this new API.\n\nBug: 6940974\nChange-Id: I20459443d0d853e3f8ae23104c08d185c336abea\n"
    },
    {
      "commit": "79619ddbfe7367e11dd17d848b179877350b7b8e",
      "tree": "b714e48fe02e74ceaa4661f498b561cacd95dce3",
      "parents": [
        "cdac497289fd2c39a352f6167dae3f77cc608cb8"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Mar 04 13:05:32 2013 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Mar 04 13:46:45 2013 -0800"
      },
      "message": "EntropyMixer: Write entropy at shutdown / reboot / power\n\nWrite out entropy if we\u0027re shutting down or rebooting,\nor if someone plugs in the power.\n\nBug: 8312061\nChange-Id: Id9a48064a7bdfe6c05a9227ea95a1bdbd0e9b8ae\n"
    },
    {
      "commit": "32440aa25d958c8b82e7c17f784defc0a5860c0a",
      "tree": "ff9b2f209fb7e51073fea1b3f6a4b97e3599b41c",
      "parents": [
        "7be6d4c421cfa6f93079517d3ee54024c8049ae5",
        "7dd5bb18d44a9ed0521308595f664b51b6e9b3e9"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Mar 01 22:20:46 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 01 22:20:46 2013 +0000"
      },
      "message": "Merge \"Unify inputDispatchingTimedOut with keyDispatchingTimedOut\" into jb-mr2-dev"
    },
    {
      "commit": "7dd5bb18d44a9ed0521308595f664b51b6e9b3e9",
      "tree": "19e0562b4a408c2ce699228dbae8fd11d7334190",
      "parents": [
        "5633e23c2222c00f388a73f74295acee3fd13c44"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Feb 27 17:07:29 2013 -0800"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Mar 01 14:14:35 2013 -0800"
      },
      "message": "Unify inputDispatchingTimedOut with keyDispatchingTimedOut\n\nBug: 8194916\nChange-Id: Iac40108d848bcca77f49a7a49c57a095b3dbe9c9\n"
    },
    {
      "commit": "7f61d0146e48275bf372e6b1ea82d2f48163c73d",
      "tree": "1d53f5f2b18d1c52859906eb5595e9512a33b73d",
      "parents": [
        "f5e0471703d73a1285601928b790cdf0ab028fa5",
        "812085bc70a4a644ffab7fbbf9d4564632325a83"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 01 00:58:31 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 01 00:58:32 2013 +0000"
      },
      "message": "Merge \"Allow loopback traffic in lockdown mode.\" into jb-mr2-dev"
    },
    {
      "commit": "812085bc70a4a644ffab7fbbf9d4564632325a83",
      "tree": "8dc33fe4bab4704536e27715b773308a4d21bb87",
      "parents": [
        "ba761979ee883237b8e0143973ba5b6032f37d05"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Feb 28 16:57:58 2013 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Feb 28 16:57:58 2013 -0800"
      },
      "message": "Allow loopback traffic in lockdown mode.\n\nBug: 8245184\nChange-Id: If993e3d6f5c7ce5970bfe701074c85b9245aa2aa\n"
    },
    {
      "commit": "79751848d1c3a5139eb5ccd6ddecaf84c2a09783",
      "tree": "71f86448bdb5a5a0328bdcf4d655be663f90ffb2",
      "parents": [
        "c732976e6b40be5a23eee2df2bff23101abc1f91"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Feb 28 16:16:03 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Feb 28 16:33:48 2013 +0900"
      },
      "message": "Expose clatd commands to NetworkManagementService.\n\nFor now, we only support running one clat at a time. This is\nenforced by the netd ClatdController code.\n\nBug: 8276725\nChange-Id: I8a50305f9182f4da0f80716081211625a0202583\n"
    },
    {
      "commit": "2a45b9fe99b10baeedb9c4529dcc5177ad7e3584",
      "tree": "f90768e98757f0f4cbfd401dfea76dbd444134de",
      "parents": [
        "29466f85c06b7b58b2d058dcf293298fecdeb704",
        "3c55e5c6595d28c64f5a760947c66fdefa2481e2"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Feb 28 02:33:05 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 28 02:33:05 2013 +0000"
      },
      "message": "Merge \"Fake accessibility service used by UiAutomation not destroyed.\" into jb-mr2-dev"
    },
    {
      "commit": "3c55e5c6595d28c64f5a760947c66fdefa2481e2",
      "tree": "b4e37137661ff97004653f50adb413664847fd16",
      "parents": [
        "9ad665417713398524d425f63b0d6fa751244237"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 27 18:24:28 2013 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 27 18:32:17 2013 -0800"
      },
      "message": "Fake accessibility service used by UiAutomation not destroyed.\n\nUiAutomation registers a fake accessibility service to introspect\nthe screen. Upon the death of the shell process that started an\ninstrumentation in which a UiAutomation resides the connection\nbetween the UiAutomation and the system is kept alive allowing\nthe instrumentation to introspect the screen even after the death\nof the shell process.\n\nbug:8285905\n\nChange-Id: I1a16d78abbea032116c4baed175cfc0d5dedbf0c\n"
    },
    {
      "commit": "a60fdfac9432972e520e8c53b3b0717b4c3a2973",
      "tree": "4c574b95441696126b4228d0e60218264eb8ffc4",
      "parents": [
        "9ad665417713398524d425f63b0d6fa751244237"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Feb 26 19:16:18 2013 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Feb 26 19:25:01 2013 -0800"
      },
      "message": "NPE in AccessibilityManagerService.\n\nIf an accessibility service is connected but already removed\nfrom the list of connecting services we get a NPE since the\ncall to set the service connection is made over a null\nremove interface. Note that service connection is asynchronous.\n\nbug:8229877\n\nChange-Id: I7b05f219dd0c1da6286ee4ec90b1ef310908545d\n"
    },
    {
      "commit": "173bb61544fb41a10398606766f2bdf079ee02fc",
      "tree": "7297265576fda88a30527eb8a2fd12cc0b55df29",
      "parents": [
        "d0d209ed4d6280b6e1203eebe823f04f9db766c0",
        "5633e23c2222c00f388a73f74295acee3fd13c44"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Feb 26 22:14:41 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 26 22:14:41 2013 +0000"
      },
      "message": "Merge \"Move stack dump off of InputDispatcher thread\" into jb-mr2-dev"
    },
    {
      "commit": "305dbea8e39608b61810637944b6ffbbe6c07d2f",
      "tree": "e2130142cd31c905e9f8e5cc586586901eda74d5",
      "parents": [
        "4b141acde00840db4cd850e5cddbe2cf849830aa",
        "efcc1a23a1f731390ef8506b3536b9562d18ed78"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 26 18:16:22 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 26 18:16:22 2013 +0000"
      },
      "message": "Merge \"App ops: adding operations for reading/writing clipboard.\" into jb-mr2-dev"
    },
    {
      "commit": "9fbdda42a2acff8179c251f6455fd3e2c9971545",
      "tree": "62b08d053971a58636aa9b7a424de688fd1c4e25",
      "parents": [
        "30a51b3f01ceee9f17ba4070e518b1829e32063d",
        "302b06de7ea7ac97ac4a2189213a1133220bfdc8"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue Feb 26 17:04:58 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 26 17:04:58 2013 +0000"
      },
      "message": "Merge \"Fix leak in WifiManager\" into jb-mr2-dev"
    },
    {
      "commit": "302b06de7ea7ac97ac4a2189213a1133220bfdc8",
      "tree": "c51d4d2e36504f8384d893cc8f178135fe40f593",
      "parents": [
        "ff4fcdb98c9575642c48f1daeafff4b257769e81"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Feb 22 12:35:31 2013 -0800"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue Feb 26 09:01:48 2013 -0800"
      },
      "message": "Fix leak in WifiManager\n\nAvoid leaks from having a channel connection per manager instance\n\nBug: 8254124\nChange-Id: I10de91d7e5a775bc14bbab245734717d3b2f90d5\n"
    },
    {
      "commit": "efcc1a23a1f731390ef8506b3536b9562d18ed78",
      "tree": "3bf75913746cac59177a3d1c7ff2d82034e03cc2",
      "parents": [
        "f4b36ad1617920691def64c00179666e2e42d5fa"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 25 18:02:35 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 25 18:02:35 2013 -0800"
      },
      "message": "App ops: adding operations for reading/writing clipboard.\n\nChange-Id: Ic4cade153618fe86954754a3b3edde64a52a0a9c\n"
    },
    {
      "commit": "5633e23c2222c00f388a73f74295acee3fd13c44",
      "tree": "1d994b6968ad323ae56e88c73a1874e82ef0e4e3",
      "parents": [
        "40bbc3bb9997c6e9ea9aae42edd6bb4430d70978"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Feb 25 17:52:37 2013 -0800"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Feb 25 17:52:37 2013 -0800"
      },
      "message": "Move stack dump off of InputDispatcher thread\n\nChange-Id: I7250a0488c3e4c5dc159f4635a57e1e49aa8397a\n"
    },
    {
      "commit": "2e5528c5e0f354c7b780ca5ab436809efd611dcc",
      "tree": "97c7e8c0bb48c9364d18e5dc9f4b50e36f66b53d",
      "parents": [
        "19a38f6f408d8672ca8d253fb7a6039a7f25c96f",
        "2ad920759b1981eaf526fd37a314fbc5a3ed90ae"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Feb 26 01:08:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 26 01:08:28 2013 +0000"
      },
      "message": "Merge \"Revert ActivityManager changes for tasks. DO NOT MERGE\" into jb-mr2-dev"
    },
    {
      "commit": "2ad920759b1981eaf526fd37a314fbc5a3ed90ae",
      "tree": "3835b2fb240c592668afa5019f2dbad7036513f1",
      "parents": [
        "ff4fcdb98c9575642c48f1daeafff4b257769e81"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Feb 25 16:19:24 2013 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Feb 25 17:07:39 2013 -0800"
      },
      "message": "Revert ActivityManager changes for tasks. DO NOT MERGE\n\nKeeping all activity\u003d\u003etask changes in master and removing them\nfrom jb-mr2.\n\nRevert \"Update histories simultaneously.\"\nRevert \"Add null check to setAppGroupId.\"\nRevert \"Fix crashing bug in validator.\"\nRevert \"Switch topRunning* and moveTaskTo*\"\nRevert \"Begin switch over to task based history.\"\nRevert \"Reset and reuse Iterators and don\u0027t new() one.\"\nRevert \"Remove AppWindowToken lists.\"\nRevert \"Fix build.\"\nRevert \"Remove unused App methods.\"\nRevert \"Stop using AppToken movement and start using Task.\"\nRevert \"Replace access to mAppTokens with AppTokenIterator\"\nRevert \"Refactor setAppOpVisibility implementation.\"\nRevert \"Add AppWindowTokens to TaskList.\"\nRevert \"Make ActivityStack.mHistory private.\"\nRevert \"Migrate AppWindowToken lists into DisplayContent.\"\n\nChange-Id: I5722c9a4956dccb52864207e2967690bc58e4ebb\n"
    },
    {
      "commit": "40bbc3bb9997c6e9ea9aae42edd6bb4430d70978",
      "tree": "89eeb78b7a70316d8f3f6646fb0eaf68f6cf46b7",
      "parents": [
        "eb9dddbffb9f2d568d2222454c5dd7582efa819d",
        "6794458f8626c3be27eac3db3a5c89d94f132675"
      ],
      "author": {
        "name": "Maggie Benthall",
        "email": "mbenthall@google.com",
        "time": "Mon Feb 25 21:42:13 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 25 21:42:13 2013 +0000"
      },
      "message": "Merge \"Add location sharing toggle user restriction.\" into jb-mr2-dev"
    },
    {
      "commit": "eb9dddbffb9f2d568d2222454c5dd7582efa819d",
      "tree": "0bc39ed902751b736c4b328c83c0ff28a7e73653",
      "parents": [
        "88a1cf841ef8b5792fad8f3af4b4831101497c6c",
        "01d159d88a51c44d7e282e07b834535e5b0e8bd1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Feb 25 21:35:29 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 25 21:35:29 2013 +0000"
      },
      "message": "Merge \"Lookup permission groups by name\" into jb-mr2-dev"
    },
    {
      "commit": "01d159d88a51c44d7e282e07b834535e5b0e8bd1",
      "tree": "87d98fe2d57cf241f679838408dc95e258722f16",
      "parents": [
        "ff4fcdb98c9575642c48f1daeafff4b257769e81"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Feb 25 13:22:42 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Feb 25 13:22:42 2013 -0800"
      },
      "message": "Lookup permission groups by name\n\nWhen a top-level permission group is specified, lookup the group id\nby name instead of parsing the value as an integer. This matches\nwhat we do when the group tag is a child of \u003cpermission/\u003e.\n\nChange-Id: I54954ae683cecdf72cf846f75383bf6ba862dc5b\n"
    },
    {
      "commit": "7b4596fd68a24643145e33f3dc4da9285d0f53aa",
      "tree": "c55735d226ad7aa77648d5786f35477d591ffaa4",
      "parents": [
        "02a4cec107f1f07409fd03106b1cde56043894fa"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Feb 25 10:55:29 2013 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Feb 25 11:02:50 2013 -0800"
      },
      "message": "Require command and argument separation, cleanup.\n\nWhen invoking NativeDaemonCommands, require that base command and\narguments are separate.  Clean up reverse tethering commands, and\nremove deprecated throttle events.\n\nChange-Id: I302a74130b4f7c3f3045815a56d566e89c8969f6\n"
    },
    {
      "commit": "6794458f8626c3be27eac3db3a5c89d94f132675",
      "tree": "67840d15784013dede06dc3e40306c35e30d4be7",
      "parents": [
        "ff4fcdb98c9575642c48f1daeafff4b257769e81"
      ],
      "author": {
        "name": "Maggie Benthall",
        "email": "mbenthall@google.com",
        "time": "Fri Feb 22 14:58:27 2013 -0500"
      },
      "committer": {
        "name": "Maggie Benthall",
        "email": "mbenthall@google.com",
        "time": "Mon Feb 25 12:45:14 2013 -0500"
      },
      "message": "Add location sharing toggle user restriction.\n\nAnd add support for respecting it.\n\nChange-Id: Ia5cf9134c5f5741c3f55afadbe54f862da7bfe5b\n"
    },
    {
      "commit": "c4aad01cbbb69c916ef323693e1fd0560b0eccba",
      "tree": "20f636eb690f976e9f83ec0a23e6ac991776b08b",
      "parents": [
        "fb6806570911851fb8cbaaf5bdf275a89f3c3ef4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 22 15:05:25 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 22 19:14:37 2013 -0800"
      },
      "message": "Formalize overscan metrics.\n\nThe window manager now maintains and reports a new formal\n\"overscan insets\" for each window, much like the existing\ncontent and visible insets.  This is used to correctly\nposition the various UI elements in the various combination\nof layout options.  In particular, this allows us to have\nan activity that is using fitSystemWindows to have the content\nof its UI extend out to the visible content part of the screen\nwhile still positioning its fixed UI elements inside the\nstandard content rect (and the entire window extending all\nthe way into the overscan area to fill the screen as desired).\n\nOkay, maybe that is not written so clearly.  Well, it made\nmy head hurt too, so suffer!\n\nThe key thing is that windows now need to know about three\nrectangles: the overall rectangle of the window, the rectangle\ninside of the overscan area, and the rectangle inside of the\ncontent area.  The FLAG_LAYOUT_IN_OVERSCAN option controls\nwhether the second rectangle is pushed out to fill the entire\noverscan area.\n\nAlso did some improvements to debug dumping in the window\nmanager.\n\nChange-Id: Ib2368c4aff5709d00662c799507c37b6826929fd\n"
    },
    {
      "commit": "e436e4f8a48a6bc3094c036166cca3911a540321",
      "tree": "9286b3b1844afbd675919b463622eba0e9fa7ea7",
      "parents": [
        "ea53d7e0a46f333642f3663ce54ee0d36b87b813"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Feb 22 14:57:00 2013 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Feb 22 15:36:33 2013 -0800"
      },
      "message": "Remove two new permission checks\n\nThese checks while technically reasonable are a hard to swallow API change\nthat may break existing apps and pragmatically serves no purpose:  the protected\ndata is available in publicly readable java VM properties.\n\nChange-Id: I522c493c2604a33e28d99e2be31054326c9a8323\n"
    },
    {
      "commit": "a3f0665c62b79429009ed44960b712f4c0ca1f0e",
      "tree": "5f5cc32bc6cd70d05a03a2a93e5422d19b586424",
      "parents": [
        "7508039d66a2c1a3d19d3710f0d68e2cca0d872b",
        "5a6bdc46e2fdc8cfd930396773dd89efd19fa1f1"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Feb 22 20:02:02 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 22 20:02:02 2013 +0000"
      },
      "message": "Merge \"Improve ConnectivityManager docs\""
    },
    {
      "commit": "12e563fff95ebb186126d531b6f65af18eb1a069",
      "tree": "1645068724f4d0d5c7cc1bb9d3b7ce6f935c6324",
      "parents": [
        "d99375528ce5d87bdeb23a63b726fd04f6922ed7",
        "3c1743705c4df816089e07a17753c6043b4d8e66"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Feb 22 18:51:20 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 22 18:51:21 2013 +0000"
      },
      "message": "Merge \"Create rotation animation modes.\""
    },
    {
      "commit": "3c1743705c4df816089e07a17753c6043b4d8e66",
      "tree": "dd68b3b869a0b24bac79d713af19eeba57f3e668",
      "parents": [
        "7a7360ad528576d560aa13fbb4e81740b2c425b2"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Feb 21 17:54:37 2013 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Feb 22 10:44:52 2013 -0800"
      },
      "message": "Create rotation animation modes.\n\nAllow fullscreen windows to specify crossfade or jumpcut animations\nthat override the default rotation animation. Only if the incoming\nand outgoing topmost windows are fullscreen and both specify the\nsame animation to use.\n\nFixes bug 8182773.\n\nChange-Id: I6b3c0020d7bd2cdfba5c66189e114ec62cd54fcf\n"
    },
    {
      "commit": "d99375528ce5d87bdeb23a63b726fd04f6922ed7",
      "tree": "eedddcb2a2815900c8bb48627f6e19a22ad0dd12",
      "parents": [
        "bc340d03c3d67a64951162f2a901c805f9f56734",
        "bcc97ca43a339c3356b5c8d9eaf1cbdfb0de3165"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Feb 22 18:40:23 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 22 18:40:24 2013 +0000"
      },
      "message": "Merge \"Clean up scan handling\""
    },
    {
      "commit": "5a6bdc46e2fdc8cfd930396773dd89efd19fa1f1",
      "tree": "d574060601fb49345a80d1155669305718d65efb",
      "parents": [
        "b84951451c35813ccf8aefdb12f5092926785fd4"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Feb 15 10:56:35 2013 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Feb 22 10:39:20 2013 -0800"
      },
      "message": "Improve ConnectivityManager docs\n\nAlso fix some permission problems.\nbug:5738328\n\nChange-Id: Ib32c223f425b1fc03b8cce528456bcb50b540fdf\n"
    },
    {
      "commit": "bcc97ca43a339c3356b5c8d9eaf1cbdfb0de3165",
      "tree": "0620ab5952f774238704ec0d1097b775e7b68dfc",
      "parents": [
        "8a64b1a7f4b07e71b9eb0f4a98710cb1409588bf"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Feb 21 14:15:18 2013 -0800"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Feb 22 09:23:55 2013 -0800"
      },
      "message": "Clean up scan handling\n\nRemove obsolete active/passive scan handling - drivers always\ndo active scan.\n\nAlso, remove AP_SCAN hack for preventing connections and use\nthe TYPE\u003dONLY scan.\n\nBug: 8158647\nChange-Id: I8f70e19219ad789b7501a40529bcd6b6524739e8\n"
    },
    {
      "commit": "47e8074d401b0a2c38b376329bfe8bf1f62da23b",
      "tree": "1be896883496631d978e2dbf57781343f3e941d3",
      "parents": [
        "eab51de4de88219256260fe26e2018a6234ef83b",
        "b44de0d910a3ec22b9963e538117e257f621de47"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Feb 22 04:02:24 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 22 04:02:24 2013 +0000"
      },
      "message": "Merge \"Update histories simultaneously.\""
    },
    {
      "commit": "b44de0d910a3ec22b9963e538117e257f621de47",
      "tree": "c144d5debdc96bfb3826dec18b1f932b24c16c18",
      "parents": [
        "7a7360ad528576d560aa13fbb4e81740b2c425b2"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Feb 21 20:00:58 2013 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Feb 21 20:00:58 2013 -0800"
      },
      "message": "Update histories simultaneously.\n\nIn moveTaskToBackLocked calls that used mHistory were being made\nbetween the times that mTaskHistory and mHistory were modified. This\ncaused an inconsistent state that led to Windows arranged out of\norder. Updating both history stacks at the same time fixes this.\n\nFixes bug 8244261.\n\nChange-Id: I9669762ad39b06ab6d401122702b74969d4dc658\n"
    },
    {
      "commit": "ab6b77fd85979212299d8aef0b2c83c005b13abc",
      "tree": "49f66ef905bfe5d79a891fe754a0dfdb01a648bc",
      "parents": [
        "e4d3b06b6ddb055739b8b2aa82ffc7840588253a",
        "5cb5c337d5fe523723b8e5ceb4bdf38dff0cec70"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 21 23:45:02 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 21 23:45:02 2013 +0000"
      },
      "message": "Merge \"Be cool in backup/restore of apps that can\u0027t touch external storage\""
    },
    {
      "commit": "5cb5c337d5fe523723b8e5ceb4bdf38dff0cec70",
      "tree": "c6e81528f7bbbf4495841725a07ac2c15616b873",
      "parents": [
        "780294be50b57d94455c709044e36098c829f72a"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 21 14:32:12 2013 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 21 15:43:52 2013 -0800"
      },
      "message": "Be cool in backup/restore of apps that can\u0027t touch external storage\n\nBug: 8241337\nChange-Id: I23f6eeba8448b234a7b18ce50d2ced2ba54b4ebd\n"
    },
    {
      "commit": "2b3a47b9ce0f422323395286937944a2afa51ed6",
      "tree": "bb84a66ab85fb072f9d6d33a68c7c34c513ba7b2",
      "parents": [
        "c0997b0e6291d7c97963623eed2a41994a7855cf",
        "42c0c9f35a8efa71703f810ce2bff6d86bb5b30e"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Feb 21 18:33:16 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 21 18:33:29 2013 +0000"
      },
      "message": "Merge \"Allow L2TP traffic to lockdown VPN servers.\""
    },
    {
      "commit": "42c0c9f35a8efa71703f810ce2bff6d86bb5b30e",
      "tree": "99ddc8f1d0a6cea00854b084d8f661ae0cb8d079",
      "parents": [
        "4fa63b2d5e3b2e2a85bf17a9bf056cbdfb7046f0"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Feb 21 10:31:45 2013 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Feb 21 10:31:45 2013 -0800"
      },
      "message": "Allow L2TP traffic to lockdown VPN servers.\n\nBug: 8067988\nChange-Id: I6cb7d07e0c4b7c6e112a26a06892e859e6b515a8\n"
    },
    {
      "commit": "c0997b0e6291d7c97963623eed2a41994a7855cf",
      "tree": "551a4a4d26bb598844b0661df174c40b30697123",
      "parents": [
        "8a64b1a7f4b07e71b9eb0f4a98710cb1409588bf",
        "4fa63b2d5e3b2e2a85bf17a9bf056cbdfb7046f0"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Feb 21 17:49:27 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 21 17:49:28 2013 +0000"
      },
      "message": "Merge \"Improve notification UI for lockdown VPN.\""
    }
  ],
  "next": "4fa63b2d5e3b2e2a85bf17a9bf056cbdfb7046f0"
}
