)]}'
{
  "log": [
    {
      "commit": "dde866131793208bbaabf29c4ed2e2a48d9eed95",
      "tree": "d5f2c7d26adb012ae95dd8e71c7b2b797fd3d2c0",
      "parents": [
        "8ff0201ad0354b6c43aebac6075298ee847c42ef",
        "51366be80fb086ba11c385c27e545ebfa1997248"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Mar 27 21:48:42 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 27 21:48:43 2013 +0000"
      },
      "message": "Merge \"Sync APIs use seconds instead of ms.\" into jb-mr2-dev"
    },
    {
      "commit": "51366be80fb086ba11c385c27e545ebfa1997248",
      "tree": "f45966f65f22067b9132e4ffa2b8fd308872fc90",
      "parents": [
        "05191053545065c9c71afae173d3ab42a2d947fa"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Mar 27 14:46:55 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Mar 27 14:46:55 2013 -0700"
      },
      "message": "Sync APIs use seconds instead of ms.\n\nBug: 7668972\nChange-Id: I7b253fe17d9539695adc474a69546645586b5f1a\n"
    },
    {
      "commit": "ca3d655d20c13c71972a4475cec3b98efa7dbdd0",
      "tree": "2766b887f99e37bcdc423ecf668b7ad6ee58d609",
      "parents": [
        "b404ecc91a5dd3dd027554490b2ca18c1048bdba",
        "c28867a1d67121ce5963de135e3ae2b1dbd9a33d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Mar 27 02:43:54 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 27 02:43:54 2013 +0000"
      },
      "message": "Merge \"Use input transport for communications between app and IME.\" into jb-mr2-dev"
    },
    {
      "commit": "3bcc2fbaad4064360cee26708d702b7ee575f448",
      "tree": "1a69bc0ec19f01464df5a35d00e64f95e94e3efd",
      "parents": [
        "5871b258afd0bf3a2d58dea437b340a4f5b382cf",
        "a40cfeb55f6caa35fee894b86175b7d916520c80"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 27 00:22:43 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 27 00:24:04 2013 +0000"
      },
      "message": "Merge \"Fix issue #8470131: Process thrash kills battery\" into jb-mr2-dev"
    },
    {
      "commit": "5871b258afd0bf3a2d58dea437b340a4f5b382cf",
      "tree": "bfe5d69599c4f9d0506fe169a92f2b419bfdb370",
      "parents": [
        "2509437e309827dbfe8bf3797d59c0d01af13972",
        "672cf45de7aa5ad6fd1f75512ee5a451a16c0b39"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 27 00:22:27 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 27 00:22:28 2013 +0000"
      },
      "message": "Merge \"Change wm commands to return size and density info.\" into jb-mr2-dev"
    },
    {
      "commit": "c28867a1d67121ce5963de135e3ae2b1dbd9a33d",
      "tree": "95da9070093882f0b95ee197f45f5b4a5e348d96",
      "parents": [
        "37f180b4a52e4c1d0b6a7b400b6579b7ff25f307"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 26 15:42:39 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 26 15:42:39 2013 -0700"
      },
      "message": "Use input transport for communications between app and IME.\n\nThe input method manager service now supplies an input channel for\ncommunication while creating an IME session on behalf of the\napplication.\n\nThis change significanly reduces the overhead of IME event dispatch\nby using a standard input channel to send input events rather than\nusing binder.  This results in fewer thread context switches\nand fewer object allocations.\n\nWhat\u0027s more, the IME may perform additional batching of the motion\nevents that it receives which may help it catch up if it is\ngetting behind while processing them.\n\nBug: 7984576\nBug: 8473020\nChange-Id: Ibe26311edd0060cdcae80194f1753482e635786f\n"
    },
    {
      "commit": "df5e9fe1819099097901641b1267374ca0bbc319",
      "tree": "dd7f2a704dcf1abe2941eca5dcaf0dd7f89475ab",
      "parents": [
        "8074cc0c068c06cea7e174f82c0f1c235fae43a7",
        "71e6c697e54a43d357cc25d87a446d140f17396a"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Mar 26 22:26:38 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 26 22:27:13 2013 +0000"
      },
      "message": "Merge \"Device Owner, a special kind of device admin\" into jb-mr2-dev"
    },
    {
      "commit": "672cf45de7aa5ad6fd1f75512ee5a451a16c0b39",
      "tree": "1a684fbeadc913b4544c65c12b334e0dc6f93181",
      "parents": [
        "7c566bf3e4a10d74588b3e92ea3f6af310930f37"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 26 15:24:24 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 26 15:24:24 2013 -0700"
      },
      "message": "Change wm commands to return size and density info.\n\nChange-Id: Id25722fe5f0cd9470d04d657f067e5ad29927c98\n"
    },
    {
      "commit": "71e6c697e54a43d357cc25d87a446d140f17396a",
      "tree": "9be027013fb93fae381d971ef8830ca7e31d2907",
      "parents": [
        "a32c7e8f9df1612d690a34258c014be661dc66ca"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Sun Mar 24 17:39:28 2013 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Mar 26 15:09:08 2013 -0700"
      },
      "message": "Device Owner, a special kind of device admin\n\nA Device Owner cannot be uninstalled and is available to all users. It must\nbe registered before the device_provisioned flag is set.\n\nDevice admins can be disabled until used, but visible to device policy\nmanager, so that users wont be bothered with update requests.\n\nOpened up a few related APIs for use by a system-installed Device Owner.\n\nChange-Id: I847b5fe68c0f724863f778a67602b5bddc79d8e5\n"
    },
    {
      "commit": "7e9221c5548b711bb083589d2c0d32eb6cf2fb8d",
      "tree": "11544a837d62cbb2dcbb0106b838f39f9708ab99",
      "parents": [
        "3be53a86dc5ee08e45c7fd657084107fa7ed2e1b",
        "9ae62f59343ee88019be3beb1535f056c3cbaf1a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 26 17:29:43 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 26 17:29:43 2013 +0000"
      },
      "message": "Merge \"It helps to catch the right exception.\" into jb-mr2-dev"
    },
    {
      "commit": "9ae62f59343ee88019be3beb1535f056c3cbaf1a",
      "tree": "238ef301f3dfd4fb38e2e9d5914aaa7b8844757d",
      "parents": [
        "45d01ea28290993b58fc00a1d952f4e29d576fc8"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 26 10:29:01 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 26 10:29:01 2013 -0700"
      },
      "message": "It helps to catch the right exception.\n\nBug: 7238149\nChange-Id: I7b60ec44d1d1d5ece8a871cb089f811b611f4a4a\n"
    },
    {
      "commit": "df4144f4dfaa3a344cfdf923121f6113463978da",
      "tree": "5fa04c62fff6b335e8053a8c1124c199608e967b",
      "parents": [
        "172fc865d34359b6cb0e3cd86789d06bd50e5bce",
        "9fa57b74d8acb99c86f761a98f6e76998de8aff2"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Mon Mar 25 22:29:10 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 25 22:29:10 2013 -0700"
      },
      "message": "am 9fa57b74: am 2aee33c1: Merge \"BackupManagerService files need new security labeling.\"\n\n* commit \u00279fa57b74d8acb99c86f761a98f6e76998de8aff2\u0027:\n  BackupManagerService files need new security labeling.\n"
    },
    {
      "commit": "2aee33c1cdf89c0754bb660cd2e0ec95a007d4a8",
      "tree": "7f85df5fca7170888ce0c7eec7213fe55bcc8764",
      "parents": [
        "48718c85b41b785cf6f6ae72beb4c5d46559b735",
        "ebab0ae105f1a6df593a4bc2549fae3ee8b2ade4"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Tue Mar 26 05:10:37 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 26 05:10:38 2013 +0000"
      },
      "message": "Merge \"BackupManagerService files need new security labeling.\""
    },
    {
      "commit": "a40cfeb55f6caa35fee894b86175b7d916520c80",
      "tree": "fa66c98e4298028290f303786f4f09ee9a08df85",
      "parents": [
        "7c566bf3e4a10d74588b3e92ea3f6af310930f37"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 25 17:49:36 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 25 17:49:36 2013 -0700"
      },
      "message": "Fix issue #8470131: Process thrash kills battery\n\nProtect app widget broadcasts from abuse.\n\nIn this case the app was sending an APPWIDGET_UPDATE broadcast\nwithout specifying a target, which (a) should not be allowed (you\nshould not be able to send updates to other apps), and (b) resulted\nin every single potential app widget in the system being launched...\nwhich was about 75 of them.\n\nChange-Id: I9d48733610ce6d5a7c32e69a3e06b9f33bd79a34\n"
    },
    {
      "commit": "0f40dc923c67e8822f9157aec4f786f73848af07",
      "tree": "a5e66ce03c22049f5c6956135656db9a10ac8464",
      "parents": [
        "21a34de7a87a55b608dd2b694e4522bd9d17e277"
      ],
      "author": {
        "name": "Robert Craig",
        "email": "rpcraig@tycho.ncsc.mil",
        "time": "Mon Mar 25 06:33:03 2013 -0400"
      },
      "committer": {
        "name": "repo sync",
        "email": "gcondra@google.com",
        "time": "Mon Mar 25 17:30:08 2013 -0700"
      },
      "message": "Add seinfo parsing to PackageManagerService.\n\nThis patch set allows the PMS to parse the\nmac_permissions.xml file which contains the\nseinfo values. Each package that is installed\non the device will be assigned an seinfo value\nbased on policy. This seinfo value will help label\nthe app process and data directory.  Modifications\ninclude adjustments to ApplicationInfo.java\nto store the seinfo tag per package as well as\nadjustments to installd to communicate the seinfo\ntag to libselinux.\n\nChange-Id: I61ad1ea12fb6a9a6d0b108ec163bc4bf4c954b58\nSigned-off-by: rpcraig \u003crpcraig@tycho.ncsc.mil\u003e\n"
    },
    {
      "commit": "c498614414e9cd9d56f5f23d295d1e758db9670c",
      "tree": "1661a0eb5767088843c5eab851e52adabe13e344",
      "parents": [
        "10ac1d125a1b19abf82807c7cca91019db0d290d"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sun Mar 24 14:27:17 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Mar 25 11:01:20 2013 -0700"
      },
      "message": "PackageManagerService: update grantPermission / revokePermission\n\nCurrently, grantPermission / revokePermission only handles development\npermissions. This change extends these two functions to handle normal\nand dangerous permissions.\n\nA normal / dangerous permission can modified if it is marked as\noptional (android:required\u003d\"false\") using the \"am grant\" / \"am revoke\"\ncommands.\n\nCurrently, this change is a no-op. The package parser code\ndoes not currently honor \u003cuses-permission android:required\u003d\"false\"\u003e in\nthe application\u0027s manifest, and assumes a permission is always required.\n\nThis change sets the ground for future optional permissions work.\n\nChange-Id: I34f02ffd714e8a9a37b9f87df89cef915b1b6780\n"
    },
    {
      "commit": "1e0c8e69891c89a86b2d9879e3c1985563a56f49",
      "tree": "f3d2c545746860a3d38c0156a62626e24deb5f64",
      "parents": [
        "d3f8d0333cf4d9d2e47b5b082a6f70460adcf5ff"
      ],
      "author": {
        "name": "rpcraig",
        "email": "rpcraig@tycho.ncsc.mil",
        "time": "Wed Nov 28 08:37:06 2012 -0500"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 25 14:35:00 2013 +0000"
      },
      "message": "Proper security labeling of multi-user data directories.\n\nThis patch covers 2 cases. When an app is installed\nand the resulting data directory is created for all\nexisting users. And when a new user is created and\nall existing app data directories are created for\nthe new user.\n\nChange-Id: Iacaba6d9d18d5337e65713960d14efe32006b330\nSigned-off-by: rpcraig \u003crpcraig@tycho.ncsc.mil\u003e\n"
    },
    {
      "commit": "d3f8d0333cf4d9d2e47b5b082a6f70460adcf5ff",
      "tree": "201827c55fca7032cab81aa6322460d834089e20",
      "parents": [
        "f6c4dba2d30ddba41ccfd6d9d2be2729ea496902"
      ],
      "author": {
        "name": "Robert Craig",
        "email": "rpcraig@tycho.ncsc.mil",
        "time": "Mon Mar 25 06:33:03 2013 -0400"
      },
      "committer": {
        "name": "Robert Craig",
        "email": "rpcraig@tycho.ncsc.mil",
        "time": "Mon Mar 25 06:33:03 2013 -0400"
      },
      "message": "Add seinfo parsing to PackageManagerService.\n\nThis patch set allows the PMS to parse the\nmac_permissions.xml file which contains the\nseinfo values. Each package that is installed\non the device will be assigned an seinfo value\nbased on policy. This seinfo value will help label\nthe app process and data directory.  Modifications\ninclude adjustments to ApplicationInfo.java\nto store the seinfo tag per package as well as\nadjustments to installd to communicate the seinfo\ntag to libselinux.\n\nChange-Id: I61ad1ea12fb6a9a6d0b108ec163bc4bf4c954b58\nSigned-off-by: rpcraig \u003crpcraig@tycho.ncsc.mil\u003e\n"
    },
    {
      "commit": "b685faa2cee2f8d74c82547fa7585027cbcfba5f",
      "tree": "18e6dbecc79423c0d0b1e97ce1006654b31d313f",
      "parents": [
        "53d13667e39f12644d03278c33298351ac68ec26",
        "119bbc378d3c836f1196e14b847e564205a29728"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Mar 23 01:26:07 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 23 01:26:08 2013 +0000"
      },
      "message": "Merge \"Implement #8323587, #8323342, #8323590: new features.\" into jb-mr2-dev"
    },
    {
      "commit": "119bbc378d3c836f1196e14b847e564205a29728",
      "tree": "bbef724b9da7b3040fcab940032af1f389bac596",
      "parents": [
        "1a89c5324badd10dac142a5a0c40a203503db65f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 22 17:27:25 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 22 17:27:25 2013 -0700"
      },
      "message": "Implement #8323587, #8323342, #8323590: new features.\n\n8323587: Add feature for supporting app widgets\n8323342: Add feature for replacing the home screen\n8323590: Add feature for supporting input methods\n\nThe app widget service looks for the app widget feature\nand refuses to work if it doesn\u0027t exist.  I didn\u0027t do\nthis for the input method service because some devices\nwill probably want to still make use of that mechanism\nwithout supporting third party input methods.\n\nChange-Id: Ie3b089105e104f4d767cdb03cdbe4fdb1c17382e\n"
    },
    {
      "commit": "320a31c604230566c2d269edf4327c97d99966a1",
      "tree": "4fd3825e5e1caf2e4bea778b3320dc50713f1dd8",
      "parents": [
        "1a89c5324badd10dac142a5a0c40a203503db65f",
        "cefac5acc845bc0fd36cb2c7e9e0992ecda33230"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Sat Mar 23 00:14:43 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 23 00:14:43 2013 +0000"
      },
      "message": "Merge \"Incorrect unbinding of accessibility services.\" into jb-mr2-dev"
    },
    {
      "commit": "cefac5acc845bc0fd36cb2c7e9e0992ecda33230",
      "tree": "ec52886b547e6a15c7510e2156c1914beb3395a7",
      "parents": [
        "81cce37deda2bd097d245c4d54806a354971a97c"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Mar 22 17:09:11 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Mar 22 17:13:01 2013 -0700"
      },
      "message": "Incorrect unbinding of accessibility services.\n\nIf no accessibility services are enabled, we disable the\naccessibility event firing to save resources. When the last\nsuch services is disabled the system was not unbinding. As\na result the user was seeing the touch exploration enable\ndialog when the service that requested it is disabled. Also\nthere is one service the system is bound to that is not used.\n\nbug:8439191\n\nChange-Id: I6f37f2573a815bfb29870298aa0abbb1fa105588\n"
    },
    {
      "commit": "5341f377ccdd71471894d23afaab4d7a75fd03ba",
      "tree": "303d2be8f258805f577132eb83a898d8b7a233c4",
      "parents": [
        "88a0765dd4f18ce367f2874f5972816644090b0d",
        "24d88747e9d78c49452768374dc213d744cfbfed"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 22 22:51:57 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 22 22:51:57 2013 +0000"
      },
      "message": "Merge \"Reduce situations where black thumbnail occurs.\" into jb-mr2-dev"
    },
    {
      "commit": "9da8c37ab8bb29c813d08a8c7e4fd6431fc52191",
      "tree": "2375af533f3d383b30c9df9da9a190101937fade",
      "parents": [
        "eb93cc6abba0d8be26ace531179510bffa86782d",
        "ded7b75d1a353856ad8f126d171d598d15b97760"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 22 20:45:16 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 22 20:45:17 2013 +0000"
      },
      "message": "Merge \"Move XML utility methods into shared location.\" into jb-mr2-dev"
    },
    {
      "commit": "ded7b75d1a353856ad8f126d171d598d15b97760",
      "tree": "f87b8d14f7bb8739e0b9f2fef2dd7e401f1ac9e2",
      "parents": [
        "71b0017759b825f8bddcdda7425afc802e8918c9"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 22 13:43:41 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 22 13:43:41 2013 -0700"
      },
      "message": "Move XML utility methods into shared location.\n\nChange-Id: I15e8f0e4a6c5546d9be956ca0d46715d3441458c\n"
    },
    {
      "commit": "24d88747e9d78c49452768374dc213d744cfbfed",
      "tree": "2362c5d60823c976a175bc97622c20c9ad541726",
      "parents": [
        "fd81f91052d54c0354834fcd4f423025f2d8c93e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Mar 20 15:40:36 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 22 12:07:51 2013 -0700"
      },
      "message": "Reduce situations where black thumbnail occurs.\n\nPause and retry capturing a thumbnail if the window hasn\u0027t yet\nbeen drawn. Still will show black thumbnails if recents is pressed\nbefore window has anything drawn.\n\nImproves bug 7552304.\n\nChange-Id: I550c5a60510bfc4547bbb44451d57b4bc9f49880\n"
    },
    {
      "commit": "a7452ee27de35e75b234adcf143c18f85d3f1aad",
      "tree": "6aaec7c1e6ccdb46ccddc8306190e23cc5e74dc2",
      "parents": [
        "31453e5a2b5150a18c41b8bebd85223615ad8849"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Mar 20 12:06:59 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Mar 22 10:42:24 2013 -0700"
      },
      "message": "[DO NOT MERGE] Notify vold when to start fstrim.\n\nSince using the discard option for mounting an Ext4 file system\ncould lead to unpredictable slowdowns of I/O we will explicitly\ncontrol when to perform fstrim, i.e. discard unused blocks of the\nmounted volume. We are using the idle maintenance intents sent by\nthe system which specify a window that one can use to perform\nexpensive maintenance tasks while the user does not use the device.\n\nThis change is adding a broadcast receiver for the idle maintenance\nstart intent to the mount services which then notifies vold when to\nstart fstrim.\n\nSince fstrim will be run on a daily basis we do not expect fstrim\nto be too long, so it is not interruptible. We will implement\ninterruption only in case we see issues.\n\nbug:8056794\n\nChange-Id: I1438479d2956b61b82d3a130854376f7a144aaf3\n"
    },
    {
      "commit": "31453e5a2b5150a18c41b8bebd85223615ad8849",
      "tree": "395f3d4d6698578b9157d4bf905903f12da851e4",
      "parents": [
        "32b9f6258d052c8c334ae348322fed9ba032a09f",
        "4aa9bcf414282e4bdd10900832baaeaa349bda50"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Mar 22 09:45:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 22 09:45:53 2013 +0000"
      },
      "message": "Merge \"Reset connections on all stacked interfaces.\" into jb-mr2-dev"
    },
    {
      "commit": "765ddb4bf42634cc729017503833c3b077e4f29c",
      "tree": "b068592c8e1caee36befdc380d88a477ba2ab49f",
      "parents": [
        "d46ded883074403440ffeae6f60248d327649eed",
        "52a53526265c801b70eaf6dab1acf5c3f628f8a6"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Mar 22 03:36:49 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 22 03:36:49 2013 +0000"
      },
      "message": "Merge \"Separate sessionCreated and finishedEvents callbacks\" into jb-mr2-dev"
    },
    {
      "commit": "6848963d814c4ba7dc429c1668f29922d60f6ec2",
      "tree": "b58459422ff9c0be39812156888892b0e12b2404",
      "parents": [
        "ef79366980ff229dd69b02ab7436ddc1039e8f27",
        "6009459405bbaa42054c9746c6339b48962c7753"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 22 01:18:38 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 22 01:18:38 2013 +0000"
      },
      "message": "Merge \"Round up periodic syncs with short frequencies.\" into jb-mr2-dev"
    },
    {
      "commit": "6009459405bbaa42054c9746c6339b48962c7753",
      "tree": "d2bffdfaf285b4964bbd1b05546a0251f936b235",
      "parents": [
        "71b0017759b825f8bddcdda7425afc802e8918c9"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Mar 21 18:14:24 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Mar 21 18:18:13 2013 -0700"
      },
      "message": "Round up periodic syncs with short frequencies.\n\nBug: 7668972\nChange-Id: I476ded1418a203621913098cf5d33a4e5dc533ee\n"
    },
    {
      "commit": "52a53526265c801b70eaf6dab1acf5c3f628f8a6",
      "tree": "37e128cc5a301edb375a4c106a28634b7f8d69a1",
      "parents": [
        "95ae9429ee3555f4a1f396da423413ba496bdf33"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Mar 14 10:59:38 2013 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Mar 21 17:47:40 2013 -0700"
      },
      "message": "Separate sessionCreated and finishedEvents callbacks\n\nBug: 8276952\nChange-Id: If7051086c060fcce5d1e958ebbddec0784c851da\n"
    },
    {
      "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": "4aa9bcf414282e4bdd10900832baaeaa349bda50",
      "tree": "ca8d6a6a78373e6dd3ce03eef5682e61fbb3a309",
      "parents": [
        "ec3928bf0993e13fb82c65ac26a4d70f5bc6c5e4"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Mar 20 19:22:58 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Mar 20 19:22:58 2013 +0900"
      },
      "message": "Reset connections on all stacked interfaces.\n\nBug: 8276725\nChange-Id: I7fe99c6ea123037cef3e89e3c2c17ed43cc0b1ea\n"
    },
    {
      "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"
    }
  ],
  "next": "812085bc70a4a644ffab7fbbf9d4564632325a83"
}
