)]}'
{
  "log": [
    {
      "commit": "5ac72a29593ab9a20337a2225df52bdf4754be02",
      "tree": "dc5310e556b3662cb5f097b30e700a26d50a4db5",
      "parents": [
        "e217ee4d7a8223289a1af7363627c69956c46d41"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 29 18:32:08 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 30 14:33:22 2012 -0700"
      },
      "message": "Improve multi-user broadcasts.\n\nYou can now use ALL and CURRENT when sending broadcasts, to specify\nwhere the broadcast goes.\n\nSticky broadcasts are now correctly separated per user, and registered\nreceivers are filtered based on the requested target user.\n\nNew Context APIs for more kinds of sending broadcasts as users.\n\nUpdating a bunch of system code that sends broadcasts to explicitly\nspecify which user the broadcast goes to.\n\nMade a single version of the code for interpreting the requested\ntarget user ID that all entries to activity manager (start activity,\nsend broadcast, start service) use.\n\nChange-Id: Ie29f02dd5242ef8c8fa56c54593a315cd2574e1c\n"
    },
    {
      "commit": "e217ee4d7a8223289a1af7363627c69956c46d41",
      "tree": "be3b08c713d8662be094bdabfd8b7f2beffe837f",
      "parents": [
        "08db9df1af78dbe26af89f57c5e2777e1142b566"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Aug 28 16:23:01 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Aug 30 10:37:51 2012 -0700"
      },
      "message": "Access to all users\u0027 external storage.\n\nSystem services holding this permission have external storage bound\none level higher, giving them access to all users\u0027 files.\n\nBug: 7003520\nChange-Id: Ib2bcb8455740c713ebd01f71c9a2b89b4e642832\n"
    },
    {
      "commit": "428f53937efdc362b60d01592bd01c568691f70e",
      "tree": "9bf91a0b6d8445e6dc32125bcea8ab64fb16661a",
      "parents": [
        "a99e4caa94ed3261d11c650e778c7c9b26b3e590",
        "580dd31a68c65b4af68147d52d57f60e0bd52dbe"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 29 22:33:45 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 29 22:33:45 2012 -0700"
      },
      "message": "Merge \"Locking when clearing VPN source rules.\" into jb-mr1-dev"
    },
    {
      "commit": "580dd31a68c65b4af68147d52d57f60e0bd52dbe",
      "tree": "79defc2d49d3c34728523968ba1b56c205eed932",
      "parents": [
        "0d43c567cea30e6fb7af0f7adadb1c620339c0f5"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 29 22:27:39 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 29 22:31:58 2012 -0700"
      },
      "message": "Locking when clearing VPN source rules.\n\nOtherwise lockdown VPN reset is racy and can bring down system_server.\n\nChange-Id: Ib8eecde1d0857a1669c3ca5506a46198c71b1b51\n"
    },
    {
      "commit": "a99e4caa94ed3261d11c650e778c7c9b26b3e590",
      "tree": "41c124086db076ee20e7aa468d7e2d3e6424d3ff",
      "parents": [
        "7808581ca3b462fb187aed6b0d1b86fb83a8a215",
        "35744c19f6b4e2fc8bbd6fe2c82cea7a76818dfd"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 29 22:29:43 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 29 22:29:43 2012 -0700"
      },
      "message": "Merge \"Bind to screenshot service for current user.\" into jb-mr1-dev"
    },
    {
      "commit": "694121c4004e80deec71736481cfb03bd50e38f5",
      "tree": "32dd259891b706f101e2757758b5786e4eafbd99",
      "parents": [
        "c452a40eea5a8bc23b05201e70a9ca740ee9ceec",
        "317046a08784f0df75165ac1eaaf3d237704618e"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Aug 29 18:52:14 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 29 18:52:14 2012 -0700"
      },
      "message": "Merge \"Fix an NPE in PackageManager when getting the AppInfo for an app\" into jb-mr1-dev"
    },
    {
      "commit": "317046a08784f0df75165ac1eaaf3d237704618e",
      "tree": "84a84de97d748252a420773bb2d02a136df9986d",
      "parents": [
        "c479b55abe059776392af54685b77a825871781e"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Aug 29 18:48:08 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Aug 29 18:48:08 2012 -0700"
      },
      "message": "Fix an NPE in PackageManager when getting the AppInfo for an app\n\nBug: 7072043\nChange-Id: I37378b13820152434e7b3249e13c27001fe4ae5a\n"
    },
    {
      "commit": "12631ec35eafc466e0deef315daa5fdfb5066372",
      "tree": "6881c386ff69eca08eae5e90b5199aa4f36a48a5",
      "parents": [
        "ffc45b7d5708e706aeb19454c5172136761d214b",
        "80a4af2bbc6af42ae605e454bf89558e564f5244"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 29 18:15:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 29 18:15:07 2012 -0700"
      },
      "message": "Merge \"Start implementing concept of \"running\" users.\" into jb-mr1-dev"
    },
    {
      "commit": "ffc45b7d5708e706aeb19454c5172136761d214b",
      "tree": "42b3d738e0ec8e55f8ecc97d7e9d36227d2ec2db",
      "parents": [
        "f404d10225a2df60eb118089f8f0e72ab5845d48",
        "509bf2d2cf60201149b4e7711bbcdede8b744791"
      ],
      "author": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Wed Aug 29 17:05:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 29 17:05:26 2012 -0700"
      },
      "message": "Merge \"UsbDebuggingManager: Fix restart when toggling USB debugging\" into jb-mr1-dev"
    },
    {
      "commit": "a28c18fc618e4bf58da6417166b1ee249dc16ea9",
      "tree": "4d4856b89e7572b09a462cc37cebbff1cdd6fa0f",
      "parents": [
        "402206b6e25af5d9e103cae215048c7a41d68d39",
        "6bfc88876ab575913299b477528225a4d7bf8232"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Aug 29 15:55:43 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 29 15:55:43 2012 -0700"
      },
      "message": "Merge \"Fix DHCP handling at disconnect/reconnect\" into jb-mr1-dev"
    },
    {
      "commit": "d5ea3b464795d4e6adbdd174d1bd2f78b628e280",
      "tree": "0660fe4a3b1da16acabfee6874051887ba056a16",
      "parents": [
        "0552cbcf29f266f608e8326bc467b6afb13b7f3a",
        "bd6e1500aedc5461e832f69e76341bff0e55fa2b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 29 15:43:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 29 15:43:55 2012 -0700"
      },
      "message": "Merge \"Add initial multi-display support.\" into jb-mr1-dev"
    },
    {
      "commit": "509bf2d2cf60201149b4e7711bbcdede8b744791",
      "tree": "73135d27fc838b06741c019e2fd4415951146b46",
      "parents": [
        "0552cbcf29f266f608e8326bc467b6afb13b7f3a"
      ],
      "author": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Wed Aug 29 15:23:30 2012 -0700"
      },
      "committer": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Wed Aug 29 15:43:51 2012 -0700"
      },
      "message": "UsbDebuggingManager: Fix restart when toggling USB debugging\n\nChange-Id: Iaaec9162b03c4ea77735d096eec670392c61308a\n"
    },
    {
      "commit": "6bfc88876ab575913299b477528225a4d7bf8232",
      "tree": "b0d3577fa9a3ba17766da54d930d51b066544d34",
      "parents": [
        "4bbb13976e54f6325cb013882891c02adea61ec5"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Aug 29 15:35:57 2012 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Aug 29 15:35:57 2012 -0700"
      },
      "message": "Fix DHCP handling at disconnect/reconnect\n\nWifi can have a quick disconnection followed by a reconnection. We used to\ncreate a new DHCP state machine thread for every new connection and\nnever really waited until it quit after disconnect. This may have lead to\nsituations where repeated disconnect/reconnects resulted in multiple dhcp\nstart calls.\n\nWe now keep the statemachine after a disconnect and only shut it at supplicant\nstop.\n\nBug: 6417686\nChange-Id: Icf66efdc654be886e3eb46c81f09f8cce536f2f6\n"
    },
    {
      "commit": "bd6e1500aedc5461e832f69e76341bff0e55fa2b",
      "tree": "a7f6e0a3524872002f2904cc43d926166c3c4515",
      "parents": [
        "c53abc4d42a707caddf7ec9bb7d041125a09dbd7"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 28 03:27:37 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 29 15:34:17 2012 -0700"
      },
      "message": "Add initial multi-display support.\n\nSplit the DisplayManager into two parts.  One part is bound\nto a Context and takes care of Display compatibility and\ncaching Display objects on behalf of the Context.  The other\npart is global and takes care of communicating with the\nDisplayManagerService, handling callbacks, and caching\nDisplayInfo objects on behalf of the process.\n\nImplemented support for enumerating Displays and getting\ncallbacks when displays are added, removed or changed.\n\nElaborated the roles of DisplayManagerService, DisplayAdapter,\nand DisplayDevice.  We now support having multiple display\nadapters registered, each of which can register multiple display\ndevices and configure them dynamically.\n\nAdded an OverlayDisplayAdapter which is used to simulate\nsecondary displays by means of overlay windows.  Different\nconfigurations of overlays can be selected using a new\nsetting in the Developer Settings panel.  The overlays can\nbe repositioned and resized by the user for convenience.\n\nAt the moment, all displays are mirrors of display 0 and\nno display transformations are applied.  This will be improved\nin future patches.\n\nRefactored the way that the window manager creates its threads.\nThe OverlayDisplayAdapter needs to be able to use hardware\nacceleration so it must share the same UI thread as the Keyguard\nand window manager policy.  We now handle this explicitly as\npart of starting up the system server.  This puts us in a\nbetter position to consider how we might want to share (or not\nshare) Loopers among components.\n\nOverlay displays are disabled when in safe mode or in only-core\nmode to reduce the number of dependencies started in these modes.\n\nChange-Id: Ic2a661d5448dde01b095ab150697cb6791d69bb5\n"
    },
    {
      "commit": "37ce5c5d5e8216f02230aeb89b147c0395e18329",
      "tree": "c3c3cf3870f813deb586e5c6d0af0d8cfcb9fc5e",
      "parents": [
        "69626dab17f9e059cfa2e8c3ce4ec9aaa5f9853e"
      ],
      "author": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Wed Aug 29 13:49:07 2012 -0700"
      },
      "committer": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Wed Aug 29 13:52:17 2012 -0700"
      },
      "message": "UsbDebuggingManager: add missing break in switch\n\nBug: 7079044\nChange-Id: Icf4090e79af47db7d068981537c97f2028d8e405\n"
    },
    {
      "commit": "4e2820c22b3f8b330f8c6d04562037c77845716d",
      "tree": "89394507daae14f50123bcf71a4b1f49352ac14f",
      "parents": [
        "c479b55abe059776392af54685b77a825871781e"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Aug 28 22:17:23 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Aug 28 22:45:17 2012 -0700"
      },
      "message": "Fix adding live wallpaper in a second user\n\nWhen the second user downloads a new wallpaper service, Wallpaper\nservice needs to query the correct user\u0027s package state to figure\nout if it is available and bind to it.\n\nChange-Id: Ifb95db1c859887f996f5b2e821b4b46510ee7016\n"
    },
    {
      "commit": "c479b55abe059776392af54685b77a825871781e",
      "tree": "11295db963c571b488ee2d23045d0f3e88233284",
      "parents": [
        "7af0c166f01f80dbe28339c46b1d381837f92b73",
        "4ccbdd17704e8837f8a8fcc152e8de499b504ff6"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Aug 28 17:16:27 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 28 17:16:28 2012 -0700"
      },
      "message": "Merge \"Check proximity detector before powering off.\" into jb-mr1-dev"
    },
    {
      "commit": "4ccbdd17704e8837f8a8fcc152e8de499b504ff6",
      "tree": "ee965140e17da2ce61ce606f897e0ade541d1a57",
      "parents": [
        "ac137b3211818f9e72f9ffbaf541ad8a1ef27eb1"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Aug 28 17:12:52 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Aug 28 17:12:52 2012 -0700"
      },
      "message": "Check proximity detector before powering off.\n\nDo not automatically power off if the proximity detector wakelock is\nactive.\n\nFixes bug 7047455.\n\nChange-Id: I44e30bf388292e5c476dfb5d0de9226d21853e4d\n"
    },
    {
      "commit": "c3815a5679c21a6b09c2deaa6baedd124f9e717a",
      "tree": "b38d4026b393a6795b600c763f3d91a226b1eb7c",
      "parents": [
        "b5b2acec806a3acfbecb63839f8da431e8a9daab",
        "4ea60693236d73fa2d9b5bf25deeb6d9b602ed30"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Aug 28 16:56:18 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 28 16:56:19 2012 -0700"
      },
      "message": "Merge \"Fix PendingIntent caching for multiuser\" into jb-mr1-dev"
    },
    {
      "commit": "35744c19f6b4e2fc8bbd6fe2c82cea7a76818dfd",
      "tree": "72e21b8f56cb797fc0b88ec8698ab5a186c6e536",
      "parents": [
        "0d43c567cea30e6fb7af0f7adadb1c620339c0f5"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Aug 28 16:48:05 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Aug 28 16:49:10 2012 -0700"
      },
      "message": "Bind to screenshot service for current user.\n\nLet apps bindService() across user boundaries if they hold the\nINTERACT_ACROSS_USERS_FULL permission.\n\nBug: 7012034\nChange-Id: I2047d8318e1de47bfae7470d1dbc6fe5cfe44fdc\n"
    },
    {
      "commit": "80a4af2bbc6af42ae605e454bf89558e564f5244",
      "tree": "3cd054c0e9576c9fda33fc36670ef10458f71ee8",
      "parents": [
        "def8b0f011b5b2b02235063d5021ddfd58aa0baf"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 27 19:18:31 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 28 16:30:55 2012 -0700"
      },
      "message": "Start implementing concept of \"running\" users.\n\nThe activity manager now keeps track of which users are running.\n\nInitially, only user 0 is running.\n\nWhen you switch to another user, that user is started so it is\nrunning.  It is only at this point that BOOT_COMPLETED is sent\nfor that user and it is allowed to execute anything.\n\nYou can stop any user except user 0, which brings it back to the\nsame state as when you first boot the device.  This is also used\nto be able to more cleaning delete a user, by first stopping it\nbefore removing its data.\n\nThere is a new broadcast ACTION_USER_STOPPED sent when a user is\nstopped; system services need to handle this like they currently\nhandle ACTION_PACKAGE_RESTARTED when individual packages are\nrestarted.\n\nChange-Id: I89adbd7cbaf4a0bb72ea201385f93477f40a4119\n"
    },
    {
      "commit": "def8b0f011b5b2b02235063d5021ddfd58aa0baf",
      "tree": "79450cfac58ebe17ae7a64a55d3899f1051db1b4",
      "parents": [
        "b210018760997ee76940080b3257dda0958b681f",
        "377de7b13e6706911cca1d6826b2e4665edd60d4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 28 16:01:52 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 28 16:01:53 2012 -0700"
      },
      "message": "Merge \"Fix infinite loop when uninstalling apps.\" into jb-mr1-dev"
    },
    {
      "commit": "377de7b13e6706911cca1d6826b2e4665edd60d4",
      "tree": "471588a5420e21751a613216d0b72123e8b3a16b",
      "parents": [
        "0e17e5bc43373ff9dd8d567f876a26f990ed638e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 28 15:57:33 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 28 15:57:33 2012 -0700"
      },
      "message": "Fix infinite loop when uninstalling apps.\n\nChange-Id: Ibdf7fa832529a358d1115fc300651101c5185484\n"
    },
    {
      "commit": "2deaa3698d33d428b527329537440ab65ae8dced",
      "tree": "61269ae429f69cd0e3fcbce298bf2e229c1e5431",
      "parents": [
        "b1a1e5ca7d3a2a93d6741db40aeba1467a8631cb",
        "7e67151b912622f8a279ab1523a9bcf26ebaff3d"
      ],
      "author": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Tue Aug 28 15:14:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 28 15:14:26 2012 -0700"
      },
      "message": "Merge \"Add permission checks for Verification API calls\" into jb-mr1-dev"
    },
    {
      "commit": "4ea60693236d73fa2d9b5bf25deeb6d9b602ed30",
      "tree": "82af0e35845f7bd497dfa879c9936db376243f82",
      "parents": [
        "70574efd8f7105eb73a6ffe31992ed3c5971c8cc"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Aug 28 14:34:53 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Aug 28 14:34:53 2012 -0700"
      },
      "message": "Fix PendingIntent caching for multiuser\n\nStore the userId in the PendingIntentRecord.Key, so that it doesn\u0027t match\nan identical pending intent from another user.\n\nChange-Id: Icfc39e0f717c902dc3a60bdf5283a3402bbd2eaa\n"
    },
    {
      "commit": "7e67151b912622f8a279ab1523a9bcf26ebaff3d",
      "tree": "04e046f659971b2c62115755be7265b8fe0b5521",
      "parents": [
        "ac137b3211818f9e72f9ffbaf541ad8a1ef27eb1"
      ],
      "author": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Mon Aug 27 14:44:16 2012 -0700"
      },
      "committer": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Tue Aug 28 14:00:46 2012 -0700"
      },
      "message": "Add permission checks for Verification API calls\n\nEnsure that only applications with\nandroid.Manifest.permission.PACKAGE_VERIFICATION_AGENT can call application\nverification APIs, like PackageManager.verifyPendingInstall and\nPackageManager.extendVerificationTimeout\n\nBug: 7049083\nChange-Id: I5fc28b37e864d67cd319a1ed9d03a90dd15ad052\n"
    },
    {
      "commit": "da6da0907b28d4704aabbdb1bbeb4300954670d1",
      "tree": "58a2b58cf777d02d0d89cc8f54b0ce5d29a9c5b2",
      "parents": [
        "10a0df8459d22b29fb9163071e8cbc2bb7194393"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Aug 16 12:49:23 2012 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Mon Aug 27 22:27:06 2012 -0700"
      },
      "message": "Captive portal handling\n\nWe now notify the user of a captive portal before switching to the network as default.\nThis allows background applications to continue to work until the user confirms he\nwants to sign in to the captive portal.\n\nAlso, moved out captive portal handling out of wifi as a seperate component.\n\nChange-Id: I7c7507481967e33a1afad0b4961688bd192f0d31\n"
    },
    {
      "commit": "10a0df8459d22b29fb9163071e8cbc2bb7194393",
      "tree": "0314b2669b5106df7e023639377f6841ed21558d",
      "parents": [
        "bf3218f64de1692ca26c67b1911af856d81e186c",
        "8bf06edac2088ad100e67dcb00a46d3f0f95c126"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Aug 27 19:33:42 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 27 19:33:42 2012 -0700"
      },
      "message": "Merge \"Relax permission requirement for sending broadcasts to other users\" into jb-mr1-dev"
    },
    {
      "commit": "8bf06edac2088ad100e67dcb00a46d3f0f95c126",
      "tree": "37334aee97da6939d9932e9733c8c8e6838e9bc6",
      "parents": [
        "81efbb30f07d3c2d48b43659dd443ceb625505d2"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Aug 27 19:30:30 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Aug 27 19:30:30 2012 -0700"
      },
      "message": "Relax permission requirement for sending broadcasts to other users\n\nAlso handle USER_CURRENT for broadcasts\n\nChange-Id: I2df5616ac22b7c670a7d007b8d505d4d4d99a24e\n"
    },
    {
      "commit": "dc7d8008eceb08850142fcd77a97404b4fbe688d",
      "tree": "ec86be2fed3987132c6a7283a5dd10721460e9ef",
      "parents": [
        "ac66d4a8d653331a03c27d5444467fd943503c9b",
        "64a55af0ac700baecb0877235eb42caac59a3560"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 27 17:16:52 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 27 17:16:53 2012 -0700"
      },
      "message": "Merge \"Add plumbing for new surface flinger display API.\" into jb-mr1-dev"
    },
    {
      "commit": "0e17e5bc43373ff9dd8d567f876a26f990ed638e",
      "tree": "344da2d01806715678bede4ec7f4c3d04eb21ead",
      "parents": [
        "40edfc97795e34b1f24b15ca8f0ccba37fa1efbc",
        "786b44046a79d6c4c9cd07f5989d491c7196ad80"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 27 15:59:56 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 27 15:59:56 2012 -0700"
      },
      "message": "Merge \"Fix installing applications from non-primary users.\" into jb-mr1-dev"
    },
    {
      "commit": "786b44046a79d6c4c9cd07f5989d491c7196ad80",
      "tree": "ac3d22036260f4e56340903c4ae71f8f7c81e8fe",
      "parents": [
        "9d9ea05cde56f6663f57925212c87860d1cbc1b2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 27 15:14:02 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 27 15:16:33 2012 -0700"
      },
      "message": "Fix installing applications from non-primary users.\n\nWe also now send the correct broadcasts to each user.\n\nYou no longer need to be running the shell as root\nto be able to create/remove users.\n\nAlso added some more man page material to the pm command, and\ngot rid of a bunch of showUsage() calls that now make error\nmessages completely buried because of how large the usage info\nhas become.\n\nAnd the package manager now shows the user each historical broadcast\nwas sent to.\n\nChange-Id: Iab42498e1352a0c023069139c80fc04d2d69ab4b\n"
    },
    {
      "commit": "a97ec810e0dd5fe493c1ac08545dcb7a9f93b723",
      "tree": "f2531a0f2559a26bf39dc7ff4bd6515924fac0f1",
      "parents": [
        "ac137b3211818f9e72f9ffbaf541ad8a1ef27eb1",
        "595dda6d47a4eeeffc32abbfbc55edfba588d846"
      ],
      "author": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Mon Aug 27 14:59:10 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 27 14:59:11 2012 -0700"
      },
      "message": "Merge \"Remove unused IntentFilter in LocationManager\" into jb-mr1-dev"
    },
    {
      "commit": "64a55af0ac700baecb0877235eb42caac59a3560",
      "tree": "0f3c36ce8204e6cf8eedf04ce9ae24373239ddd8",
      "parents": [
        "0b722fe9ce98d97dbcb6fefd170b85ab7037e528"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Aug 26 02:47:39 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 27 14:34:54 2012 -0700"
      },
      "message": "Add plumbing for new surface flinger display API.\n\nCleaned up the implementation of Surface and SurfaceSession\nto use more consistent naming and structure.\n\nAdded JNI for all of the new surface flinger display API calls.\n\nEnforced the requirement that all Surfaces created by\nthe window manager be named.\n\nUpdated the display manager service to use the new methods.\n\nChange-Id: I2a658f1bfd0437e1c6f9d22df8d4ffcce7284ca2\n"
    },
    {
      "commit": "116ee10b95ffff658618be42544ce80971ce28e8",
      "tree": "2b1a0afba2c76dc785f4701f597b0e2f7a3be611",
      "parents": [
        "e45ca31a613d8692a9db2117be96f442e57abfef",
        "69ddab4575ff684c533c995e07ca15fe18543fc0"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Aug 27 13:57:58 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 27 13:57:58 2012 -0700"
      },
      "message": "Merge \"Always-on VPN.\" into jb-mr1-dev"
    },
    {
      "commit": "69ddab4575ff684c533c995e07ca15fe18543fc0",
      "tree": "dfae3a89b9027c33d47b58f80200af021bbe7426",
      "parents": [
        "080ca09c7f4c0033d0efece23687b71f7f8febc9"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sat Aug 25 00:05:46 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Aug 27 12:35:05 2012 -0700"
      },
      "message": "Always-on VPN.\n\nAdds support for always-on VPN profiles, also called \"lockdown.\" When\nenabled, LockdownVpnTracker manages the netd firewall to prevent\nunencrypted traffic from leaving the device. It creates narrow rules\nto only allow traffic to the selected VPN server. When an egress\nnetwork becomes available, LockdownVpnTracker will try bringing up\nthe VPN connection, and will reconnect if disconnected.\n\nConnectivityService augments any NetworkInfo based on the lockdown\nVPN status to help apps wait until the VPN is connected.\n\nThis feature requires that VPN profiles use an IP address for both\nVPN server and DNS. It also blocks non-default APN access when\nenabled. Waits for USER_PRESENT after boot to check KeyStore status.\n\nBug: 5756357\nChange-Id: If615f206b1634000d78a8350a17e88bfcac8e0d0\n"
    },
    {
      "commit": "be7ddb9f293076e0c14dc72ea498aced8742b5a9",
      "tree": "9b3018a721261e9795f81a8a9f3acef969b88460",
      "parents": [
        "a84a4af9b11946fe16689cd42741a92ca285ffe9",
        "250ce285318f9f7d714805e4f859a395ac9615f6"
      ],
      "author": {
        "name": "Andy Stadler",
        "email": "stadler@google.com",
        "time": "Mon Aug 27 12:28:05 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 27 12:28:05 2012 -0700"
      },
      "message": "Merge \"Fix package verifier lookup\" into jb-mr1-dev"
    },
    {
      "commit": "a84a4af9b11946fe16689cd42741a92ca285ffe9",
      "tree": "b7c24079b57d84fc0f77085edf1f9d364bcc0804",
      "parents": [
        "63dc027be28762232335797a30449995c555ae10",
        "2b9146523347d4458d17d99824afdac29e312176"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Aug 27 12:24:24 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 27 12:24:24 2012 -0700"
      },
      "message": "Merge \"Fix adb install\" into jb-mr1-dev"
    },
    {
      "commit": "2b9146523347d4458d17d99824afdac29e312176",
      "tree": "fc0754798be411bcd0e356388873a954f9cb7a6f",
      "parents": [
        "080ca09c7f4c0033d0efece23687b71f7f8febc9"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Aug 27 12:04:40 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Aug 27 12:04:40 2012 -0700"
      },
      "message": "Fix adb install\n\nWas not properly handling creating DefContainerService when the installation was\nfor USER_ALL. Not a problem for Market installs.\n\nBug: 7061571\nChange-Id: I4528b4c56e38effa137da56460e78c55b242ba45\n"
    },
    {
      "commit": "63dc027be28762232335797a30449995c555ae10",
      "tree": "1ef49cf8d897ea68bcad8fb15202fa25bbc7b7bc",
      "parents": [
        "62e2709c3ff91760108c31e6f60fcf57c8c8da46",
        "35bbe27d58ccf01ffd170b0f617a568bc843a49e"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Mon Aug 27 11:59:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 27 11:59:16 2012 -0700"
      },
      "message": "Merge \"Fix permission issue on channel\" into jb-mr1-dev"
    },
    {
      "commit": "3486b9696d81da8873ef595daa35b2d39fc83146",
      "tree": "550ca54bc0c53cc166f19eab1f663b41cfb2138f",
      "parents": [
        "71d7c3c628fbce04b8bdb60f127588ada00bae13"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Aug 27 11:31:24 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Aug 27 11:31:24 2012 -0700"
      },
      "message": "Fix drag bug.\n\nPrevious assumption -- that the drag window was defined at time of\nDragState construction -- was false. The window, and hence the\nDisplay, is not known until performDrag. This change delays assigning\nDragState.mDisplayContent until the window/Display is known.\n\nFixes bug 7028203.\n\nChange-Id: I5799005652c484ff0c45ab340ce3b9e4b784883e\n"
    },
    {
      "commit": "af18865486df1e23e2951983fb0d1d4bf17f4f32",
      "tree": "8d1574e853c3c5a2ef4c255205cd0c8e1b6debba",
      "parents": [
        "68cff8c117b18136de8f652782b364fc48f25a84",
        "ba37d595f70d348987a9e60c56c071fdd319260f"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Aug 27 08:16:02 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 27 08:16:02 2012 -0700"
      },
      "message": "am ba37d595: am e70a32af: am eb00f951: Merge \"VibratorService: Fix to ensure actual delay in a vibrate pattern\"\n\n* commit \u0027ba37d595f70d348987a9e60c56c071fdd319260f\u0027:\n  VibratorService: Fix to ensure actual delay in a vibrate pattern\n"
    },
    {
      "commit": "ba37d595f70d348987a9e60c56c071fdd319260f",
      "tree": "a6d35f5db94c8de10a8ada585c94aba8b235e907",
      "parents": [
        "2f1ec0db61554c3c26fe22cbb8f31ef6e6f15ef0",
        "e70a32afc5b27ddc9681efd867780a0c4c77edd3"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Aug 27 08:13:27 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 27 08:13:27 2012 -0700"
      },
      "message": "am e70a32af: am eb00f951: Merge \"VibratorService: Fix to ensure actual delay in a vibrate pattern\"\n\n* commit \u0027e70a32afc5b27ddc9681efd867780a0c4c77edd3\u0027:\n  VibratorService: Fix to ensure actual delay in a vibrate pattern\n"
    },
    {
      "commit": "eb00f951439cd724863d267e8e8d77414383d93f",
      "tree": "d5dae63b27d4f434ea887c173b15404f9906d57f",
      "parents": [
        "13ab2c9fdaec119a40b628ae772fd1462fbb826d",
        "e4c56d9367ae89c705b92e44f327bd1d0132129c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Aug 27 07:55:41 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 27 07:55:41 2012 -0700"
      },
      "message": "Merge \"VibratorService: Fix to ensure actual delay in a vibrate pattern\""
    },
    {
      "commit": "d59db50ab0c3c7a232b2a564e763ca46c6f6ebfa",
      "tree": "56d64362d3d4d6ce3811c7a07d039ab7f883793d",
      "parents": [
        "04a286b95528e1fe7c0a18e8780a64bfadbd1eba",
        "f75724b3d36d84c881d4052cfd4be766d454c98f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Aug 25 13:46:49 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 25 13:46:49 2012 -0700"
      },
      "message": "Merge \"Initialize screen state earlier in the boot process.\" into jb-mr1-dev"
    },
    {
      "commit": "04a286b95528e1fe7c0a18e8780a64bfadbd1eba",
      "tree": "d6b9605f9ab9cb35cf593a2f00a8a040f472f5aa",
      "parents": [
        "f85ddd6571c9084b76d874f79245d087b152cb67",
        "028872fe07f9b3468aa1506c658d6aae25f53015"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Aug 25 13:44:46 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 25 13:44:51 2012 -0700"
      },
      "message": "Merge \"Fix GpsLocationProvider wake lock book keeping.\" into jb-mr1-dev"
    },
    {
      "commit": "f85ddd6571c9084b76d874f79245d087b152cb67",
      "tree": "9050e94dcd997905a550a9022e44987e71f47864",
      "parents": [
        "080ca09c7f4c0033d0efece23687b71f7f8febc9",
        "a2910d0abbbe18ba1710dfd4a31af45769632255"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Aug 25 13:43:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 25 13:43:48 2012 -0700"
      },
      "message": "Merge \"Make it easier to create asynchronous Handlers.\" into jb-mr1-dev"
    },
    {
      "commit": "f75724b3d36d84c881d4052cfd4be766d454c98f",
      "tree": "3407abe81ef9a86e920096a7d0a1d3ad5a61f083",
      "parents": [
        "ba94170a7a4f78d68fe228e9ee35ed82c4de09c8"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Aug 25 13:34:32 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Aug 25 13:41:35 2012 -0700"
      },
      "message": "Initialize screen state earlier in the boot process.\n\nThe system depends on receiving reliable vsync signals from\nsurface flinger during the boot process.  If it doesn\u0027t get them\nbecause the screen is off then a hang may occur.\n\nThis isn\u0027t a problem when surface flinger manages the screen\nblanking itself but it is a problem for devices that still\nrely on early-suspend.  When early-suspend is involved, the\nscreen may be off without surface flinger knowing.  This is a\nproblem because surface flinger will only synthesize fake\nvsyncs when it knows the screen is off, otherwise relying\non the hardware to generate vsync signals itself.  Unfortunately,\nthe hardware won\u0027t generate vsync signals if the screen was\nturned off by early-suspend, so we have a problem.\n\nBug: 6975688\nChange-Id: Iaf4527f716bf4ea72cc3e6fdaf060855697b02f2\n"
    },
    {
      "commit": "028872fe07f9b3468aa1506c658d6aae25f53015",
      "tree": "40069ed51bf79a0daabd60b3b78c93e7d2632cbd",
      "parents": [
        "a2910d0abbbe18ba1710dfd4a31af45769632255"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Aug 25 13:07:01 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Aug 25 13:40:28 2012 -0700"
      },
      "message": "Fix GpsLocationProvider wake lock book keeping.\n\nThe GpsLocationProvider typically acquires a wake lock\nbefore sending a message to its handler then releases it\nafter the message has been handled.\n\nThere were two cases where messages might be removed from\nthe handler, resulting in the wake lock being released.\n\nThere were also two cases where background tasks were being\nstarted while not holding a wake lock for the duration.\n\nFixed these issues and marked the GpsLocationProvider handler\nas asynchronous too so that it doesn\u0027t accidentally get\nblocked by traversals if it happens to share a thread with some UI.\n\nBug: 7057752\nChange-Id: I8e12fc91ae943e84db068c08ec809879537503c6\n"
    },
    {
      "commit": "a2910d0abbbe18ba1710dfd4a31af45769632255",
      "tree": "bac98df3737fe3df7e9cd168973fcfe62fad05b0",
      "parents": [
        "ba94170a7a4f78d68fe228e9ee35ed82c4de09c8"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Aug 25 12:29:46 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Aug 25 13:40:26 2012 -0700"
      },
      "message": "Make it easier to create asynchronous Handlers.\n\nThere are potentially very many Handlers owned by services\nthat should not be blocked by barriers introduced by UI traversals\noccurring on the same thread (if that ever happens).\nAdd some convenience constructors to make it easy to switch\nthese Handlers over to being async.\n\nBug: 7057752\nChange-Id: I64d9bffe81e7c52ada4cfad4e89d4340153f4688\n"
    },
    {
      "commit": "080ca09c7f4c0033d0efece23687b71f7f8febc9",
      "tree": "c1b549887437a7474be9550c40838292301c17df",
      "parents": [
        "3782aabe4e0e67839e8a03b694abf6433fd2d65d",
        "6ec101288b93d7548ed9ac9169356e7939783813"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Sat Aug 25 07:25:42 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 25 07:25:42 2012 -0700"
      },
      "message": "Merge \"Bind to the correct default container service when installing/moving/measuring pkgs\" into jb-mr1-dev"
    },
    {
      "commit": "6ec101288b93d7548ed9ac9169356e7939783813",
      "tree": "02b1725d9ffab3682bf376513971e655fc4bb975",
      "parents": [
        "0b23b5f6039b3771708c8bc38b342be5f7fb2ee8"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Aug 23 13:49:25 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Sat Aug 25 07:17:29 2012 -0700"
      },
      "message": "Bind to the correct default container service when installing/moving/measuring pkgs\n\nChange-Id: I0acfe955b5d57b4985d1922fe3dd841a81c824ed\n"
    },
    {
      "commit": "ba94170a7a4f78d68fe228e9ee35ed82c4de09c8",
      "tree": "547584d64b91a935b00d0d7177bf0bb1a53c2c0f",
      "parents": [
        "f3db71791b0502646d9299c136641a233b743e78",
        "4428e17c5e05c0dad76da8f1c28ccba62a66cd91"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 24 18:03:56 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 24 18:03:56 2012 -0700"
      },
      "message": "Merge \"Some clean up of app install and user management.\" into jb-mr1-dev"
    },
    {
      "commit": "4428e17c5e05c0dad76da8f1c28ccba62a66cd91",
      "tree": "aacaa5e7c6dfb1f1dee8c5edd1b523fd88573bda",
      "parents": [
        "a31803fca6c61486e88d742a8ff58f178195f980"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 24 17:43:05 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 24 18:00:37 2012 -0700"
      },
      "message": "Some clean up of app install and user management.\n\nUserManagerService is now closely tied to PackageManagerService,\nsharing the same locks.  There is no longer direct access of\nInstaller by UserManagerService, instead the package manager is\nback to solely owning it.\n\nCreating a new user now correctly only installs system apps for\nthat user.\n\nFixed some misc bugs, where we were getting nulls when\nquerying content providers and instrumentation in uninstalled\nusers, incorrect locking, etc.\n\nChange-Id: Ife69b6e373d0cf7c5cfc03fc588e36b43ad5d8b0\n"
    },
    {
      "commit": "250ce285318f9f7d714805e4f859a395ac9615f6",
      "tree": "52d6f13f17acee9908e941f0467831168d396194",
      "parents": [
        "d78fc5b94d1bb3dab509ca55d09052821c51412b"
      ],
      "author": {
        "name": "Andy Stadler",
        "email": "stadler@google.com",
        "time": "Fri Aug 24 16:09:03 2012 -0700"
      },
      "committer": {
        "name": "Andy Stadler",
        "email": "stadler@google.com",
        "time": "Fri Aug 24 16:09:03 2012 -0700"
      },
      "message": "Fix package verifier lookup\n\nqueryIntentReceivers() needs the resolvedType string to be non-null\nin order to find the receiver.\n\nChange-Id: If473d7e08e79940c3e495bc7a9d136e4130599a1\n"
    },
    {
      "commit": "595dda6d47a4eeeffc32abbfbc55edfba588d846",
      "tree": "a7b09bb60ef60e0e97774e783b4e82d80b868b0f",
      "parents": [
        "40e1bafc37e2a83453535132c62aeb7ef706de25"
      ],
      "author": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Fri Aug 24 14:54:54 2012 -0700"
      },
      "committer": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Fri Aug 24 14:54:54 2012 -0700"
      },
      "message": "Remove unused IntentFilter in LocationManager\n\nThis intent filter isn\u0027t used anymore, since GpsLocationProvider handles\nthe CONNECTIVITY_ACTION broadcasts now..\n\nChange-Id: I593a9916aa6f8086b4d684cc3e25286c1cb137cc\n"
    },
    {
      "commit": "0b23b5f6039b3771708c8bc38b342be5f7fb2ee8",
      "tree": "19977a75da87b81a89c0b4100246596c9939e5d5",
      "parents": [
        "14b83959204bed9d0ecac3543ceb1291bf9db261",
        "40e1bafc37e2a83453535132c62aeb7ef706de25"
      ],
      "author": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Fri Aug 24 14:53:14 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 24 14:53:14 2012 -0700"
      },
      "message": "Merge \"Fix GPS provider thread blocked by NTP and XTRA\" into jb-mr1-dev"
    },
    {
      "commit": "40e1bafc37e2a83453535132c62aeb7ef706de25",
      "tree": "f28cc813f1c8ba19de987956a910bae52302edcd",
      "parents": [
        "e370c468221bfef8f73c20f9d013cd22f06e2da7"
      ],
      "author": {
        "name": "Kevin Tang",
        "email": "zhikait@codeaurora.org",
        "time": "Tue Jan 10 14:32:44 2012 -0800"
      },
      "committer": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Fri Aug 24 14:06:47 2012 -0700"
      },
      "message": "Fix GPS provider thread blocked by NTP and XTRA\n\nCurrently, the NTP and XTRA downloads block on the GPS provider thread.\nThis could potentially block the next tasks for over a minute of time.\nIf the upcoming task happens to be AGPS, AGPS will time out.\n\nPlaced the NTP and XTRA downloads in separate threads.\n\nBug: 6980618\n\nChange-Id: I57a6aaf5348212bc1246813f6d941da7d5b19136\n"
    },
    {
      "commit": "7767eac3232ba2fb9828766813cdb481d6a97584",
      "tree": "41cc717fb9f11190e9da3dc12d61faf23a22861d",
      "parents": [
        "1552586283f329253edc4786a6cf40c5bb69ea36"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 23 18:25:40 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 24 13:53:13 2012 -0700"
      },
      "message": "Keep track of whether an app is installed for each user.\n\nThis add a new per-user state for an app, indicating whether\nit is installed for that user.\n\nAll system apps are always installed for all users (we still\nuse disable to \"uninstall\" them).\n\nNow when you call into the package manager to install an app,\nit will only install the app for that user unless you supply\na flag saying to install for all users.  Only being installed\nfor the user is just the normal install state, but all other\nusers have marked in their state for that app that it is not\ninstalled.\n\nWhen you call the package manager APIs for information about\napps, uninstalled apps are treated as really being not visible\n(somewhat more-so than disabled apps), unless you use the\nGET_UNINSTALLED_PACKAGES flag.\n\nIf another user calls to install an app that is already installed,\njust not for them, then the normal install process takes place\nbut in addition that user\u0027s installed state is toggled on.\n\nThe package manager will not send PACKAGE_ADDED, PACKAGE_REMOVED,\nPACKAGE_REPLACED etc broadcasts to users who don\u0027t have a package\ninstalled or not being involved in a change in the install state.\nThere are a few things that are not quite right with this -- for\nexample if you go through a full install (with a new apk) of an\napp for one user who doesn\u0027t have it already installed, you will\nstill get the PACKAGED_REPLACED messages even though this is\ntechnically the first install for your user.  I\u0027m not sure how\nmuch of an issue this is.\n\nWhen you call the existing API to uninstall an app, this toggles\nthe installed state of the app for that user to be off.  Only if\nthat is the last user user that has the app uinstalled will it\nactually be removed from the device.  Again there is a new flag\nyou can pass in to force the app to be uninstalled for all users.\n\nAlso fixed issues with cleaning external storage of apps, which\nwas not dealing with multiple users.  We now keep track of cleaning\neach user for each package.\n\nChange-Id: I00e66452b149defc08c5e0183fa673f532465ed5\n"
    },
    {
      "commit": "1552586283f329253edc4786a6cf40c5bb69ea36",
      "tree": "18508291938dcee1535d179b4e7cf8556e45b062",
      "parents": [
        "34f863125865664af058ab4dff44ebec570e2234",
        "2c0929850ae495d54efb91a68e4bbd29a2e0ec95"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 24 11:46:27 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 24 11:46:27 2012 -0700"
      },
      "message": "Merge \"Clean up firewall interface method names.\" into jb-mr1-dev"
    },
    {
      "commit": "2c0929850ae495d54efb91a68e4bbd29a2e0ec95",
      "tree": "4d513be85de3034f72962a3018303b92b0a7cf07",
      "parents": [
        "82f8521d386f3109147c477d04e5e90e5c715fa0"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 24 11:44:40 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 24 11:44:40 2012 -0700"
      },
      "message": "Clean up firewall interface method names.\n\nChange-Id: I653f0a01af7c90fc96b201abb31ea8354b036e74\n"
    },
    {
      "commit": "34f863125865664af058ab4dff44ebec570e2234",
      "tree": "520a3a74893506596e59c531d03f7d69e49e3c08",
      "parents": [
        "96702ad6d736fd2b145968843d5d83615b104a16",
        "82f8521d386f3109147c477d04e5e90e5c715fa0"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 24 11:32:59 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 24 11:33:00 2012 -0700"
      },
      "message": "Merge \"Migrate legacy VPN arguments to system_server.\" into jb-mr1-dev"
    },
    {
      "commit": "82f8521d386f3109147c477d04e5e90e5c715fa0",
      "tree": "38ba5be71c161c63cc9a8fed9362d05b646f0b4e",
      "parents": [
        "c268f0b19efd0b6c6c89c21be0893787f3cc9cf7"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 24 11:17:25 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 24 11:29:58 2012 -0700"
      },
      "message": "Migrate legacy VPN arguments to system_server.\n\nGenerate the racoon and mtpd daemon arguments in system_server,\ninstead of accepting them from Settings.\n\nBug: 5756357\nChange-Id: I42c1a644f6add477fe4222342640d7db15982cb8\n"
    },
    {
      "commit": "96702ad6d736fd2b145968843d5d83615b104a16",
      "tree": "d2741f2552b7d05acfc6798bf7b26c04903a6d8e",
      "parents": [
        "4ff8d37934e148dc4bf4231e3bc769f1bf4b9daa",
        "c268f0b19efd0b6c6c89c21be0893787f3cc9cf7"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 24 11:07:41 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 24 11:07:42 2012 -0700"
      },
      "message": "Merge \"Framework interface for netd firewall.\" into jb-mr1-dev"
    },
    {
      "commit": "c268f0b19efd0b6c6c89c21be0893787f3cc9cf7",
      "tree": "67487f14f275502036af4114ff187760b4e0f0bf",
      "parents": [
        "899223b97c9b0ae56a8211a46600914c0ecfd854"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 24 10:25:31 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 24 11:00:28 2012 -0700"
      },
      "message": "Framework interface for netd firewall.\n\nBug: 5756357\nChange-Id: If8b9f738fcea2cf16bd01682220718b57346c7cc\n"
    },
    {
      "commit": "35bbe27d58ccf01ffd170b0f617a568bc843a49e",
      "tree": "8721ed8eb7463d9eee1ac3d7f0cce8cf643ff98c",
      "parents": [
        "de1d96c736730c2a99a225311b9211a34042f9d4"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Aug 23 16:57:43 2012 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Aug 23 16:57:43 2012 -0700"
      },
      "message": "Fix permission issue on channel\n\nChange-Id: I57f5d128dc2e2aa3bff93e82456f73cb96851f82\n"
    },
    {
      "commit": "fc6baa834913ec04ed14979341b994f790a53256",
      "tree": "7f38b6ce709d3f457a0b453f3a4862b03815274a",
      "parents": [
        "d5fc86f0677575333556fe579838353fae10ce52",
        "5642a48fbba84cc0b646aea1b9f407f046b70be9"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Aug 23 16:47:50 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 23 16:47:50 2012 -0700"
      },
      "message": "Merge \"Fix unprotected variable access by serializing.\" into jb-mr1-dev"
    },
    {
      "commit": "d5fc86f0677575333556fe579838353fae10ce52",
      "tree": "3f73dd668363342e39680ecb7c8065f51faa2aa4",
      "parents": [
        "e7485cbc45545e5e20e003790468cd2bcd965979",
        "899223b97c9b0ae56a8211a46600914c0ecfd854"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Aug 23 16:44:49 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 23 16:47:50 2012 -0700"
      },
      "message": "Merge \"Begin moving VPN to NetworkStateTracker pattern.\" into jb-mr1-dev"
    },
    {
      "commit": "899223b97c9b0ae56a8211a46600914c0ecfd854",
      "tree": "19b98a147be6309366dc1652f17e9fe3fe6f6e63",
      "parents": [
        "2c1dfa29b40a988e3ea8f6922768465743aafddc"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sat Aug 04 15:24:58 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Aug 23 16:41:06 2012 -0700"
      },
      "message": "Begin moving VPN to NetworkStateTracker pattern.\n\nCreated base tracker that handles common bookkeeping, and move VPN\nto become a tracker.  VPN status is now reflected in NetworkInfo, and\nis mapped to LegacyVpnInfo.\n\nLegacy VPN now \"babysits\" any init services it starts, watching for\nwhen they stop unexpectedly.\n\nBug: 5756357\nChange-Id: Iba7ec79da69469f6bd9a970cc39cf6b885b4c9c4\n"
    },
    {
      "commit": "7646c773fab6a12b0727c5e25b8d17d6c5263f8e",
      "tree": "b25921bdeeb6d454b2e715b7320be964ee1a9f14",
      "parents": [
        "f1d9f892f1dda5b277c58f91a5ceaa35196d6423",
        "d9ef3e5495db1c46bcfcc1a2d4386af8db6deb0c"
      ],
      "author": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Thu Aug 23 15:56:03 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 23 15:56:04 2012 -0700"
      },
      "message": "Merge \"Allow verifiers to extend timeout\" into jb-mr1-dev"
    },
    {
      "commit": "d9ef3e5495db1c46bcfcc1a2d4386af8db6deb0c",
      "tree": "9b78fc4eb2e237ee7ad49eb70cc558f871ff9a48",
      "parents": [
        "bb121d569cd6bc7bf4018ef12756247009988863"
      ],
      "author": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Wed Aug 22 14:28:05 2012 -0700"
      },
      "committer": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Thu Aug 23 15:39:02 2012 -0700"
      },
      "message": "Allow verifiers to extend timeout\n\nCreate a new verifier API to extend the timeout for a giving package,\nincluding the resulting action (allow or deny) upon the timeout occuring.\n\nBug: 6901038\nChange-Id: I351f7944327f863aff1d7dd1227be74652fa1511\n"
    },
    {
      "commit": "5642a48fbba84cc0b646aea1b9f407f046b70be9",
      "tree": "577cff98efb565c0b21f0d9930d4dd455f84d914",
      "parents": [
        "6715d1effaa70abf261112d2771d4d555cc109c2"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Aug 23 12:16:53 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Aug 23 14:25:34 2012 -0700"
      },
      "message": "Fix unprotected variable access by serializing.\n\nThe variables mKeyguardDisabled and mAllowDisableKeyguard were\nbeing modified unprotected by mKeyguardTokenWatcher. Fix is to\nserialize accesses to these variables by only referencing them\nfrom the same Handler that mKeyguardTokenWatcher uses. Eliminates\nsynchronization blocks and mKeyguardDisabled variable.\n\nFixes bug 7045624.\n\nChange-Id: I6355aa393507408296316bee61e178dc81e2a172\n"
    },
    {
      "commit": "10fb224623eae3a99a4fc68424eb876eb20c3f90",
      "tree": "97639632f4baa7dc3d9e7e18ded021af3886e525",
      "parents": [
        "21b53df7c3fc7501c9c9e238eb820a6dcf992650"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Thu Aug 23 15:32:28 2012 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Thu Aug 23 16:23:18 2012 -0400"
      },
      "message": "Disable screensavers if below first battery warning level.\n\nDon\u0027t activate on sleep if below the threshold, and quit any currently\nrunning dream when the threshold is reached.\n\nBug:6999949\nChange-Id: I961b350d24ee6f95e502228aaa57312b0ffbadc1\n"
    },
    {
      "commit": "21b53df7c3fc7501c9c9e238eb820a6dcf992650",
      "tree": "7ac7d0f6754bfa8f5429dba64d82ddf853440452",
      "parents": [
        "41d4332ab0641d3f5dd2ad8da7e325cd9f81f3c1",
        "1a868b7981ca5f52e893fdf9f8f538c9d5ce241d"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Thu Aug 23 10:44:04 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 23 10:44:05 2012 -0700"
      },
      "message": "Merge \"Add framework support for multiple dreams.\" into jb-mr1-dev"
    },
    {
      "commit": "6715d1effaa70abf261112d2771d4d555cc109c2",
      "tree": "00b0683cf5df4137b8d1fb20ed2140576000a7b6",
      "parents": [
        "03f482c34d7e0d2917e7f53006ee2fc9736e8773",
        "b47bbc3d80badb94229bc4ce7a2d5006faa9ef15"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Aug 23 08:44:53 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 23 08:44:53 2012 -0700"
      },
      "message": "Merge \"Clean up displayId and layerStack usage.\" into jb-mr1-dev"
    },
    {
      "commit": "b47bbc3d80badb94229bc4ce7a2d5006faa9ef15",
      "tree": "f817ed4884677c168f2f7e0badceab7ad889fe73",
      "parents": [
        "2bd65b61ba6e98496dc574251e06709546d24500"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Aug 22 17:41:48 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Aug 23 08:43:54 2012 -0700"
      },
      "message": "Clean up displayId and layerStack usage.\n\nMake better use of Display object by saving it in DisplayContent.\nOnly use layerStack when referring to Surfaces. Get displayId from\ndefault Display or default DisplayContent. Remove warnings.\n\nFixes bug 7038151.\n\nChange-Id: Ie493f0f5e755dc9b91ee969ff561c2a098283ead\n"
    },
    {
      "commit": "2c1dfa29b40a988e3ea8f6922768465743aafddc",
      "tree": "f9ab6b9142cfc0a7642c131abdfa3b5761ea4ab3",
      "parents": [
        "3451dc90648b8bd176030425ce91c019460ba88c",
        "0cd867c83e726c88355375af4d14ee83f3339bbe"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Aug 22 18:19:19 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 22 18:19:20 2012 -0700"
      },
      "message": "Merge \"Fix deadlock in removing a user\" into jb-mr1-dev"
    },
    {
      "commit": "3451dc90648b8bd176030425ce91c019460ba88c",
      "tree": "12055d0ddcd4c4f3abec59da1b5b2fa6a73bf0d1",
      "parents": [
        "9f814ac5fc0df77527d69710e8c1efa9d9d6f495",
        "2bca868361b41ff6a8228824cbecadc4c5deb44e"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 22 18:17:29 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 22 18:17:30 2012 -0700"
      },
      "message": "Merge \"Iteration on multi-user external storage.\" into jb-mr1-dev"
    },
    {
      "commit": "0cd867c83e726c88355375af4d14ee83f3339bbe",
      "tree": "783c1e5ae594354f70da7cf525a8f53ddcba0648",
      "parents": [
        "7e877fa00c6b093a0fe734e5d3bf23b5b2d6411e"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Aug 22 16:45:47 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Aug 22 16:45:47 2012 -0700"
      },
      "message": "Fix deadlock in removing a user\n\nCleanup PackageManager settings after the package directories are removed.\n\nChange-Id: I264bc95ea21da653a234d7c81df5b25d4de7aa9e\n"
    },
    {
      "commit": "b9b56954ec5a242f7c4945942539106539f98ffb",
      "tree": "8a65b45600e476175401783557b880f2bee9d130",
      "parents": [
        "6cf3b925ca2640c5c5e7e91ffd91749c0b5b2560",
        "259328c04ce16c554b48a14f68d8af94dc54d7ec"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Aug 22 14:14:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 22 14:14:54 2012 -0700"
      },
      "message": "Merge \"Eliminate special battery calls by WindowManager\" into jb-mr1-dev"
    },
    {
      "commit": "2bca868361b41ff6a8228824cbecadc4c5deb44e",
      "tree": "d3b0e43eae8fa3e02fe46be9d26dd0656b4a43dd",
      "parents": [
        "df5c3a54c7e955fb89951b63ff49f275a53f9c35"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 22 13:59:58 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 22 13:59:58 2012 -0700"
      },
      "message": "Iteration on multi-user external storage.\n\nRemove single-user bind mounts, since they need to remain as raw\nmounts to correctly propagate when remounted.  This means we\u0027re back\nto using sdcard_r GID to enforce READ_EXTERNAL_STORAGE.\n\nBug: 6925012\nChange-Id: I41b5d7ddc985a5df2e288632a0a80d4724089e00\n"
    },
    {
      "commit": "1a868b7981ca5f52e893fdf9f8f538c9d5ce241d",
      "tree": "7e47e8cdd2c7330d7f56d7a9c4fed851e53e94c9",
      "parents": [
        "00a8f4ff627584f4d9a8ae0cd83f87786005e16d"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Wed Aug 22 09:56:51 2012 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Wed Aug 22 16:49:20 2012 -0400"
      },
      "message": "Add framework support for multiple dreams.\n\nBug:7028665\nChange-Id: I4fba6b8e39dc07af4490c621ac3bc7b3867371b2\n"
    },
    {
      "commit": "6cf3b925ca2640c5c5e7e91ffd91749c0b5b2560",
      "tree": "24e2caff74cf6e8effc00a55e94a39db5b8b70b1",
      "parents": [
        "6da92032da255920d2e584f6ba2f8f9336ec9310",
        "5d03a5368119d59e9f58b9121bc4f16391140c73"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 22 13:31:08 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 22 13:31:08 2012 -0700"
      },
      "message": "Merge \"Fix auto-brightness adjustment sentinel value.\" into jb-mr1-dev"
    },
    {
      "commit": "5d03a5368119d59e9f58b9121bc4f16391140c73",
      "tree": "8125b2466ecd54a47e3f866b5267f8a6f9dbc19f",
      "parents": [
        "b5b710a4851db6c7e247429b0551a523c4d33da6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 22 13:22:02 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 22 13:22:02 2012 -0700"
      },
      "message": "Fix auto-brightness adjustment sentinel value.\n\nChange-Id: I1b0da4566eb350333d3c3b09a96266627260baa3\n"
    },
    {
      "commit": "6da92032da255920d2e584f6ba2f8f9336ec9310",
      "tree": "3ebc1f7d3f3be4cea64a9dd7222c73833cab7083",
      "parents": [
        "dfe5578771080bf225225d3c903e186d92f5b274",
        "b5b710a4851db6c7e247429b0551a523c4d33da6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 22 13:17:22 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 22 13:17:22 2012 -0700"
      },
      "message": "Merge \"Fix NPE.\" into jb-mr1-dev"
    },
    {
      "commit": "b5b710a4851db6c7e247429b0551a523c4d33da6",
      "tree": "1b21cc32d11bdc2af5986ee5d0881ef1350c0583",
      "parents": [
        "00a8f4ff627584f4d9a8ae0cd83f87786005e16d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 22 13:12:48 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 22 13:16:01 2012 -0700"
      },
      "message": "Fix NPE.\n\nBug: 7034583\nChange-Id: Ie6b436492d12b0dd6bbe1c25d9b7ac35b74095d3\n"
    },
    {
      "commit": "259328c04ce16c554b48a14f68d8af94dc54d7ec",
      "tree": "c2c25e4edb7b388d5b5dcb06948dd569a61f092c",
      "parents": [
        "f9678070a03ad16d223d26a38b319d38d5943a71"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Aug 21 19:30:58 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Aug 22 11:01:35 2012 -0700"
      },
      "message": "Eliminate special battery calls by WindowManager\n\nPrevious to this change the WindowManager was notifying the\nBatteryDtatsService about windows that keep the screen on. WM used a\ncustom WakeLock tag to indicate to PowerManagerService that it had\nalready notified the BatteryStatsService.\n\nThis change eliminates WindowManager notifying the BatteryStatsService\nand lets PowerManagerService do the job.\n\nFixes bug 7030326.\n\nChange-Id: I666dc6ef8f094b8d3d109fea6876be058e057b4f\n"
    },
    {
      "commit": "98dddda7912428241ed61c053c7300d4a6702fa7",
      "tree": "2e247db37e3ba9687b992c056c9c4b016709290b",
      "parents": [
        "6479ecd1b24e9d5a5636130cb4b0c353b396ff0e",
        "1952637425eece18aa1ce3d80d4b49086ef3bcf7"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Aug 22 10:31:30 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 22 10:31:30 2012 -0700"
      },
      "message": "Merge \"Remove permission requirement for some UserManager calls\" into jb-mr1-dev"
    },
    {
      "commit": "1952637425eece18aa1ce3d80d4b49086ef3bcf7",
      "tree": "095569083ec9fb2f52bb05919f0f6008e130b44a",
      "parents": [
        "7e877fa00c6b093a0fe734e5d3bf23b5b2d6411e"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Aug 21 15:40:12 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Aug 22 10:28:56 2012 -0700"
      },
      "message": "Remove permission requirement for some UserManager calls\n\nUpdate javadocs to be explicit about permissions.\nMinor fixes in UserManagerService\n\nChange-Id: I0d355e0a60e5dbdb49ed06091111d480ff249f3d\n"
    },
    {
      "commit": "2bd65b61ba6e98496dc574251e06709546d24500",
      "tree": "f15338f6cd52c6243d61494804afdefa5d9a1dca",
      "parents": [
        "00a8f4ff627584f4d9a8ae0cd83f87786005e16d",
        "29c6f24b254b4ea1a7d8448980e736355e4badf6"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Aug 22 07:49:03 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 22 07:49:03 2012 -0700"
      },
      "message": "am 29c6f24b: am 6ffe2594: Merge \"restorecon /data/anr directory.\"\n\n* commit \u002729c6f24b254b4ea1a7d8448980e736355e4badf6\u0027:\n  restorecon /data/anr directory.\n"
    },
    {
      "commit": "29c6f24b254b4ea1a7d8448980e736355e4badf6",
      "tree": "3f0c5118f838dc21f23aa93c564c165197ab1f0f",
      "parents": [
        "8b97ee6d8c26974a6fc9ce85c3d7a07ca1e9cac2",
        "6ffe2594674f250c16c5e3055aa69680efaa6f69"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Aug 22 07:46:41 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 22 07:46:41 2012 -0700"
      },
      "message": "am 6ffe2594: Merge \"restorecon /data/anr directory.\"\n\n* commit \u00276ffe2594674f250c16c5e3055aa69680efaa6f69\u0027:\n  restorecon /data/anr directory.\n"
    },
    {
      "commit": "6ffe2594674f250c16c5e3055aa69680efaa6f69",
      "tree": "fd5e8bea0ac42eda70179bebc3cb7201909268d4",
      "parents": [
        "b0b4a704400319ceaa1002f3194a40553a00cc82",
        "ec7ed14c183a2ab958817694bad53bdc8b05e49e"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Aug 22 07:18:39 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 22 07:18:39 2012 -0700"
      },
      "message": "Merge \"restorecon /data/anr directory.\""
    },
    {
      "commit": "00a8f4ff627584f4d9a8ae0cd83f87786005e16d",
      "tree": "0bbd2f92496759a17a34cf740a72a8baa0d68349",
      "parents": [
        "aa202a6dc33d331cbd9e34a1bb5f74db6284dda6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 21 23:11:46 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 22 00:06:09 2012 -0700"
      },
      "message": "Make the electron beam animation shorter.\n\nNow using about the same duration as it used to have when\nit was implemented in Surface Flinger.\n\nChange-Id: I09b28222379f4b6583f1f7b34188cc36c50509e9\n"
    },
    {
      "commit": "aa202a6dc33d331cbd9e34a1bb5f74db6284dda6",
      "tree": "a20a54dab159c7fb7f91e336cb0530eb85d1d1d4",
      "parents": [
        "2416e09649eb6ab767eba458796e126196c77a34"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 21 22:14:26 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 22 00:02:41 2012 -0700"
      },
      "message": "Add a mechanism to adjust auto-brightness at night.\n\nUses the twilight service to determine the hours of\nsunrise and sunset.  Shortly after sunset or before sunrise\ngradually start to apply a gamma correction factor to the\nauto-brightness calculations to make the screen a little\ndimmer at night.\n\nThe effect is relatively small and is mostly noticeable\nin dark rooms.  This is just a first pass at the algorithm,\nwe can tweak the adjustment later to ensure that it has even less\nimpact in moderate or bright environments.\n\nChange-Id: Idf89022a5d0bb52975e04779352d53fa63371178\n"
    },
    {
      "commit": "2416e09649eb6ab767eba458796e126196c77a34",
      "tree": "579dc73e2a1b91954f81edff23354b384da89755",
      "parents": [
        "ae25108a7b7181bedac11d6b31ff0a64ece729aa"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 21 22:12:20 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 22 00:02:41 2012 -0700"
      },
      "message": "Extract the twilight detection into its own service.\n\nMoving the detection out of UiModeManagerService will\nmake it easy for other services to register for the\ninformation.\n\nFixed a bugs related to updating twilight state\nwhen the time is updated.\n\nWe\u0027re using the same algorithm as before for passively\ntracking the location.  Ideally we should update it\nto use the new location manager features for low-power\nlocation requests.\n\nChange-Id: I520c53b9946ab6f8d994587d357fd6542c300c07\n"
    },
    {
      "commit": "ae25108a7b7181bedac11d6b31ff0a64ece729aa",
      "tree": "f776236eba46638c6daac15a8ae6f838ad47a53f",
      "parents": [
        "11167b887aa2af52b861f5ffd31efa0882c80ec5",
        "330560f53bccd06be805fee1b7988162119d1295"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 21 23:40:19 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 21 23:40:19 2012 -0700"
      },
      "message": "Merge \"Add support for auto-brightness adjust, but leave it disabled.\" into jb-mr1-dev"
    },
    {
      "commit": "330560f53bccd06be805fee1b7988162119d1295",
      "tree": "06c2c44271aab382b95b8b03a750644500030b2b",
      "parents": [
        "f9bba13692c10ff99a52f79d6d0f04c96117ff57"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 21 22:10:57 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 21 22:27:42 2012 -0700"
      },
      "message": "Add support for auto-brightness adjust, but leave it disabled.\n\nAuto-brightness adjustment applies a gamma correction factor\nbetween 1/3 and 3 depending on the setting.  This feature\nis disabled for now.\n\nChange-Id: I2b300b5c455da545bea56b2bae5bc7903e30f30e\n"
    },
    {
      "commit": "43c7aae4d0cf9e2d3527b093022ae1fa70d3920f",
      "tree": "e4250df53c98fa9281011a5a9ad1b4c11e2681df",
      "parents": [
        "df441848164a4cded48595abf64f379c31e026f5",
        "b94b41f516e69e137553157064f9619e1a2188e3"
      ],
      "author": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Tue Aug 21 16:54:51 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 21 17:08:17 2012 -0700"
      },
      "message": "Merge \"Listen for CONNECTIVITY_ACTION in GPS Provider\" into jb-mr1-dev"
    },
    {
      "commit": "b94b41f516e69e137553157064f9619e1a2188e3",
      "tree": "63965de16e303f89d9a08059d4e4aee176cde5d2",
      "parents": [
        "c2cb8d226399c3cb93bad7008b4049d493d4f1d2"
      ],
      "author": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Tue Aug 21 16:30:57 2012 -0700"
      },
      "committer": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Tue Aug 21 16:30:57 2012 -0700"
      },
      "message": "Listen for CONNECTIVITY_ACTION in GPS Provider\n\nBug: 7020678\n\nThe broadcast receiver in GpsLocationProvider now listens for\nCONNECTIVITY_ACTION changes. Set the intent filter so that\nit catches those actions and updates the network state.\n\nChange-Id: I7efd393dfe2aa8b172dd6701d42ff9ed687648a2\n"
    },
    {
      "commit": "4a81ef8fd3207b06a65709338470d1e6ebed8620",
      "tree": "bb21d7949ebd87fc103b352a52bf2f84a7d4ce0d",
      "parents": [
        "a6d16993eb6b8834095b8e308523b2d28259e430",
        "1332b53522e281012fefb34bfbcc68a03028f516"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Aug 21 16:29:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 21 16:29:54 2012 -0700"
      },
      "message": "Merge \"Fix some location issues exposed by CTS.\" into jb-mr1-dev"
    }
  ],
  "next": "1332b53522e281012fefb34bfbcc68a03028f516"
}
