)]}'
{
  "log": [
    {
      "commit": "4573e29faf40983f9d1df99bb0f506d77a868e05",
      "tree": "fc3c3d39f54d21efaf2d2e9327c143ae9eb6a2eb",
      "parents": [
        "d7f5a51baf2c46436dc5bac3807fb0d46cbff304",
        "1676c856d61b97c871dc2be0cb1f1fb1e12e24e9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 10 15:39:02 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 10 15:39:02 2012 -0700"
      },
      "message": "Merge \"Flesh out multi-user in am commands.\" into jb-mr1-dev"
    },
    {
      "commit": "1676c856d61b97c871dc2be0cb1f1fb1e12e24e9",
      "tree": "7352f5bccdec8d7b9d90f9fb1d43dfa901e00f4a",
      "parents": [
        "41bd89f6b61296492d3775e5ef30e94c5f18d34f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 10 14:52:30 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 10 14:52:30 2012 -0700"
      },
      "message": "Flesh out multi-user in am commands.\n\nNow we default to the current user instead of user 0 for most commands\n(except where we can do the command for all users).\n\nMany more commands take a user argument: force-stop, kill, profile,\ndumpheap.\n\nImproved help text.\n\nChange-Id: I719a13b4d31b668f57ca21e51d7043ac3e0d4e1b\n"
    },
    {
      "commit": "dcc036c54457943afeadf40922a9dacfe29f30e1",
      "tree": "6d1ced331d9fc227fec3a621f7ece67662c439a5",
      "parents": [
        "1434e29ac6a157130c9882606ca577567c91ddc4",
        "5e0cc0d7ab29e5fbd11316cd3147ef96d65f8de7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 10 11:41:23 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 10 11:41:23 2012 -0700"
      },
      "message": "Merge \"Fix port logic in WifiDisplayController.\" into jb-mr1-dev"
    },
    {
      "commit": "5e0cc0d7ab29e5fbd11316cd3147ef96d65f8de7",
      "tree": "d0ee0cf5d79e0532aca0605bfc5b98adaedf4940",
      "parents": [
        "753e1280cbc3f0006b04f67385f02e1f92019f7d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 10 11:35:15 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 10 11:35:15 2012 -0700"
      },
      "message": "Fix port logic in WifiDisplayController.\n\nIt\u0027s not the port advertised in the sink\u0027s wfd IE, it\u0027s the one our\nsource broadcasts in its wfd IE. In addition some dongles ignore the\nbroadcast port and have to be special cased.\n\nChange-Id: Id5d279652e336391ba34dfc30bba700043d49b1d\n"
    },
    {
      "commit": "7e8f6c4cef8d65c5b470fc8700214e28d8cd4d43",
      "tree": "ef33216d9801e71f20d37a9dcaddae2476b819dc",
      "parents": [
        "3c1a20118739fd6765e128c5d9c39c01d22a89e7",
        "0c381504a8fce293b3b9ef8ad0333849c43eb6a4"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Sep 10 10:54:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 10 10:54:26 2012 -0700"
      },
      "message": "Merge \"Improve scaling vs pan in screen magnifier.\" into jb-mr1-dev"
    },
    {
      "commit": "0c381504a8fce293b3b9ef8ad0333849c43eb6a4",
      "tree": "0d348d32c00f423a63332f3fdc18b24542564b31",
      "parents": [
        "add52a975aa78d9e24d3e63a8168c00a9bfb80ec"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Sep 10 10:48:58 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Sep 10 10:49:04 2012 -0700"
      },
      "message": "Improve scaling vs pan in screen magnifier.\n\n1. Due to frequent changes of the behavior of ScaleGestureDetector\n   this patch rolls in a gesture detector used for changing the\n   screen magnification level. It has an improved algorithm which\n   uses the diameter of min circle around the points as the span, the\n   center of this circle as the focal point, and the average slop\n   of the lines from each pointer to the center to determine the\n   angle of the diameter used when computing the span x and y.\n\nChange-Id: I5cee8dba84032a0702016b8f9632f78139024bbe\n"
    },
    {
      "commit": "3c1a20118739fd6765e128c5d9c39c01d22a89e7",
      "tree": "b0142d573ce4b2d42195c40ad81eb69960a5daa5",
      "parents": [
        "753e1280cbc3f0006b04f67385f02e1f92019f7d",
        "b7a685978f3ea8a1514166c6986c1f1bacedab4a"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Sep 10 10:27:12 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 10 10:27:13 2012 -0700"
      },
      "message": "Merge \"Fix DevicePolicyManager crash when settings password quality (and possibly others).\" into jb-mr1-dev"
    },
    {
      "commit": "b7a685978f3ea8a1514166c6986c1f1bacedab4a",
      "tree": "3d36bef639199f03e228434802be16cb5740350d",
      "parents": [
        "25c925e6659e57f1cc8fef83be07f3917a108e3c"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Sep 10 10:24:36 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Sep 10 10:24:36 2012 -0700"
      },
      "message": "Fix DevicePolicyManager crash when settings password quality (and possibly others).\n\nBug: 7130570\n\nClear the calling identity before broadcasting to all users.\n\nChange-Id: Ibe84af1ee00aecfe4b2d5bb7731a952f617b4885\n"
    },
    {
      "commit": "01a7c79dda60c572af0db5820a66680d0faf95cf",
      "tree": "77d3eec6928a22d9c68c6ce976c171d55880f7ae",
      "parents": [
        "3e6d426d8d28e172af6b62c7b9e4b70c25c5facb",
        "2d1b37819112274f538d1886c379ff337eb0d9ed"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 09 18:19:50 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 09 18:19:50 2012 -0700"
      },
      "message": "Merge \"Various fixes.\" into jb-mr1-dev"
    },
    {
      "commit": "2d1b37819112274f538d1886c379ff337eb0d9ed",
      "tree": "dee875ee15fb5d64d8e1445491d0c828bf8a34cf",
      "parents": [
        "5de4d989fbc08cf5135c07a74e2062bf64af95f1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 09 17:49:39 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 09 18:14:32 2012 -0700"
      },
      "message": "Various fixes.\n\nBug #7132226: Can\u0027t start instrumentation due to ActivityManagerService crash\nBug #6912004: tap on gmail notification sends me to home screen\n\nChange-Id: I824128b01f368de95dee288f8e49039b84479a7e\n"
    },
    {
      "commit": "69d6b534335afc883077927b9abb0f94568d298d",
      "tree": "bd4a96e91baacaf3eee9a2162accbca7ca2f4a83",
      "parents": [
        "5de4d989fbc08cf5135c07a74e2062bf64af95f1",
        "5455f6826f832ed0f07d28a772f4489d7223acb3"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sun Sep 09 15:14:55 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 09 15:14:56 2012 -0700"
      },
      "message": "Merge \"Update PackageSetting flags when updating\" into jb-mr1-dev"
    },
    {
      "commit": "5455f6826f832ed0f07d28a772f4489d7223acb3",
      "tree": "a28785d1a9e76ba0fe0ee45befd2bb89d0779bd2",
      "parents": [
        "25c925e6659e57f1cc8fef83be07f3917a108e3c"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sun Sep 09 14:52:10 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sun Sep 09 15:12:00 2012 -0700"
      },
      "message": "Update PackageSetting flags when updating\n\nCommit 5e03e2ca7d25b899b129baad2dd5eca6bf99d88a moved from\nPacakgeParser.Package to PackageSetting which revealed that we weren\u0027t\nupdating the pkgFlags when replacing an existing application.\n\nAdd flags to PackageSetting so that deletion of the package later succeeds.\n\nChange-Id: I2e0d4e07da31f48b68601f3f3240966b6e17dbdf\n"
    },
    {
      "commit": "fdb5bd261d7836b5f7e9c20d75709ca978d6eb18",
      "tree": "dc48bbe6fdeae60c041909abd97b31d7cc373292",
      "parents": [
        "25c925e6659e57f1cc8fef83be07f3917a108e3c",
        "21c7153d30071dcbeb92daa1fd48ed181e42aef3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Sep 09 13:29:19 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 09 13:29:19 2012 -0700"
      },
      "message": "Merge \"Disable wifi display API when the adapter is not registered.\" into jb-mr1-dev"
    },
    {
      "commit": "21c7153d30071dcbeb92daa1fd48ed181e42aef3",
      "tree": "564e7ff89a05f3baa84322e63514579ff907cb2d",
      "parents": [
        "a3909a93958676d341424d574752bc7b3280d421"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Sep 09 13:26:55 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Sep 09 13:28:04 2012 -0700"
      },
      "message": "Disable wifi display API when the adapter is not registered.\n\nBug: 7132341\nChange-Id: I46d859082077afd2c8adc829ad285977dff80d07\n"
    },
    {
      "commit": "0c191624fba8484e811027a9db40a62a960ab7dc",
      "tree": "58c22c2bb7a920b6740da3e3268ebff01a308f80",
      "parents": [
        "add52a975aa78d9e24d3e63a8168c00a9bfb80ec"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sat Sep 08 17:03:48 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sun Sep 09 12:12:43 2012 -0700"
      },
      "message": "Remove \"protect\" command from installd\n\nNo one uses the \"protect\" command anymore, so remove it from installd.\n\nChange-Id: Ia990bae6f95cd6e317496f5dd173ec15164d7164\n"
    },
    {
      "commit": "add52a975aa78d9e24d3e63a8168c00a9bfb80ec",
      "tree": "57f934a710edbba70b517cd88a3da715564efc0d",
      "parents": [
        "5b1720e11d3d5a23c4b0406e1c51e8cd8275f25f"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun Sep 09 11:13:53 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun Sep 09 11:13:58 2012 -0700"
      },
      "message": "Viewport should zoom out when screen magnification is disabled.\n\n1. If screen magnification is disabled when the screen is in a\n   magnified state we have to zoom out since otherwise the user\n   is stuck in a magnified state without ability to pan/zoom/\n   toggle magnification which renders the device useless.\n\nbug:7131030\n\nChange-Id: I8f3339f31310448ec8742f3101c1fdc61a6a5f83\n"
    },
    {
      "commit": "5b1720e11d3d5a23c4b0406e1c51e8cd8275f25f",
      "tree": "77ebbbfddcd50d7e1b222573a2ff416d6488e5dc",
      "parents": [
        "a3909a93958676d341424d574752bc7b3280d421",
        "6d0df874ce235872bd5fdd4d3bce0905869a099d"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun Sep 09 10:50:34 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 09 10:50:34 2012 -0700"
      },
      "message": "Merge \"Viewport should zoom out when screen magnification is disabled.\" into jb-mr1-dev"
    },
    {
      "commit": "6d0df874ce235872bd5fdd4d3bce0905869a099d",
      "tree": "34a8ae2c0fc32984491a1ffac01637cf7e769bdd",
      "parents": [
        "970683c5d42a1d8588d656d4e570ce4f0f6e0abc"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun Sep 09 10:46:07 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun Sep 09 10:46:10 2012 -0700"
      },
      "message": "Viewport should zoom out when screen magnification is disabled.\n\n1. If screen magnification is disabled when the screen is in a\n   magnified state we have to zoom out since otherwise the user\n   is stuck in a magnified state without ability to pan/zoom/\n   toggle magnification which renders the device useless.\n\nbug:7131030\n\nChange-Id: Ia620954fbd594e7cd470e43b89d9ed04c0397c3c\n"
    },
    {
      "commit": "20ec8ac58665e6e2991988c134ba3b8590911648",
      "tree": "20840cb0add2f3ac2567f35e0a29bc520b51dce6",
      "parents": [
        "8f008e737a84be289d07cc603f98da1bbbfcf837",
        "180bbc71810496e280e9993177bfeddb3ad1f558"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Sep 09 00:23:58 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 09 00:23:59 2012 -0700"
      },
      "message": "Merge \"Improve Wifi display discovery API.\" into jb-mr1-dev"
    },
    {
      "commit": "180bbc71810496e280e9993177bfeddb3ad1f558",
      "tree": "62a8223a7236beebb5857ac180c08dbaa270e1a9",
      "parents": [
        "8e810132315ba6ce2e1f3dca5e91fd34e42a44d8"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Sep 08 23:15:00 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Sep 08 23:15:00 2012 -0700"
      },
      "message": "Improve Wifi display discovery API.\n\nChange-Id: I4d46503e5413f52da16f79bbc9c631cc5ae9c178\n"
    },
    {
      "commit": "8f008e737a84be289d07cc603f98da1bbbfcf837",
      "tree": "ecee40394e369eb79733d77c8157fe0d547e4066",
      "parents": [
        "8e810132315ba6ce2e1f3dca5e91fd34e42a44d8",
        "151ec4c9f8ca34625733730a4551a23eb97cda23"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Sat Sep 08 20:20:57 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 08 20:20:57 2012 -0700"
      },
      "message": "Merge \"More multi-user methods in PM\" into jb-mr1-dev"
    },
    {
      "commit": "151ec4c9f8ca34625733730a4551a23eb97cda23",
      "tree": "9a0ab8bed19904dce51ae3d23f5ff72c0581b7e2",
      "parents": [
        "4aacf93d40b4be82aa35bf164d6fd6536c8b2a50"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Sep 07 19:25:16 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Sat Sep 08 19:14:00 2012 -0700"
      },
      "message": "More multi-user methods in PM\n\npm can list installed packages by user now.\n\nBug: 6926465\n\nChange-Id: I822311bfd6e7e2d6fb315fc484739fbf953c9bb6\n"
    },
    {
      "commit": "8e810132315ba6ce2e1f3dca5e91fd34e42a44d8",
      "tree": "dbc1a40295fa4a2153bd118a64b90d0c1efb17d0",
      "parents": [
        "a4a2bee79a5ff8a2e6887a0135ed79b7b733891d",
        "d728bf514f257670fcb9aa22c6eaf97626072c93"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Sep 08 18:19:14 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 08 18:19:14 2012 -0700"
      },
      "message": "Merge \"Make display manager tell input system about viewports.\" into jb-mr1-dev"
    },
    {
      "commit": "d728bf514f257670fcb9aa22c6eaf97626072c93",
      "tree": "dedf4c8771ab1e1b618ea0d75e5f8328b0bfe83a",
      "parents": [
        "631938f26dbc89e7e9530bb85d9f37706dba59f3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Sep 08 18:05:28 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Sep 08 18:12:57 2012 -0700"
      },
      "message": "Make display manager tell input system about viewports.\n\nThe window manager is no longer responsible for telling the\ninput system about the display viewport.\n\nChange-Id: I932882bae55decef55f25093bb2a7ebac1620bb1\n"
    },
    {
      "commit": "1edf63ef4c7484355a6d9371bea912d6518a7d1e",
      "tree": "4f752dce6c9e284173e5b53c290e1d331330ed0a",
      "parents": [
        "b0d10aa9831fb74a28db63cac9d111559bed62ab",
        "631938f26dbc89e7e9530bb85d9f37706dba59f3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Sep 08 15:53:49 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 08 15:53:50 2012 -0700"
      },
      "message": "Merge \"Enable auto-brightness adjustment feature with system prop.\" into jb-mr1-dev"
    },
    {
      "commit": "631938f26dbc89e7e9530bb85d9f37706dba59f3",
      "tree": "e4e3db806dab82891a06003afd13d72dd6b0fa35",
      "parents": [
        "e08ae388d63c4db8f9d9a7ecd634f9a51f6e91b9"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Sep 08 15:11:11 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Sep 08 15:11:11 2012 -0700"
      },
      "message": "Enable auto-brightness adjustment feature with system prop.\n\nThis feature is experimental and disabled by default.\n\nChange-Id: I183534370da7613557e4d1535f556873f8a763df\n"
    },
    {
      "commit": "b0d10aa9831fb74a28db63cac9d111559bed62ab",
      "tree": "dfd31def6a69fabc757931cb700a3bdce88cb489",
      "parents": [
        "0597100f9127ddc0b638eb044872f138f4d3e4a8",
        "e08ae388d63c4db8f9d9a7ecd634f9a51f6e91b9"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Sep 08 14:55:02 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 08 14:55:02 2012 -0700"
      },
      "message": "Merge \"Add new wifi display discovery API.\" into jb-mr1-dev"
    },
    {
      "commit": "0597100f9127ddc0b638eb044872f138f4d3e4a8",
      "tree": "0be8cef15ac04e829be560603fbdfd7a4a35f1e4",
      "parents": [
        "f82b58368e1bd502f82ad7791647c5922ba5d0c0",
        "0cfebf28b15e85a42981a8f9e6a09556bef36ea3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Sep 08 14:53:58 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 08 14:53:58 2012 -0700"
      },
      "message": "Merge \"Retry wifi display connections.\" into jb-mr1-dev"
    },
    {
      "commit": "e08ae388d63c4db8f9d9a7ecd634f9a51f6e91b9",
      "tree": "ca429e688d16f11dc82410cee03c9d53da96626a",
      "parents": [
        "0cfebf28b15e85a42981a8f9e6a09556bef36ea3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Sep 07 20:36:36 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Sep 08 14:53:34 2012 -0700"
      },
      "message": "Add new wifi display discovery API.\n\nThe API is quite simple.  There are a few extra functions\non DisplayManager to scan, connect and disconnect from\nwifi displays and get status, and a single protected\nbroadcast sent when the status changes.\n\nChange-Id: Ic91dbab5ee818e790b27fa32e1a1e93788793be0\n"
    },
    {
      "commit": "4ea283a05f3724285ed3057ff1de1a344ab3e15a",
      "tree": "5f133fca36a2f09551e1d131e534da4141486eeb",
      "parents": [
        "be6024d57140a81883e6c5a27cae56a7d31d10dc",
        "e7287a0791b7398a540c18894972908683456283"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Sep 07 18:38:09 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 18:40:12 2012 -0700"
      },
      "message": "Merge \"Sanity-check existence of restore agent\" into jb-mr1-dev"
    },
    {
      "commit": "5d75052b2da7ed7c153faea69a28f13a4000788f",
      "tree": "7887ad19c1707e193b2ad2d8f6367994e937aeef",
      "parents": [
        "ddb12e845d7c5eae7a6bca6af17702f9bc619ae9",
        "74ee8652e02fc94901177214fc9370659732c921"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 07 18:35:02 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 18:35:02 2012 -0700"
      },
      "message": "Merge \"Add Binder.getCallingUserHandle().\" into jb-mr1-dev"
    },
    {
      "commit": "74ee8652e02fc94901177214fc9370659732c921",
      "tree": "d3b5c4848416a4957342f36b326364fb20d8e45e",
      "parents": [
        "d888399ad4a4ec0a08e97518bf22d726a8bd4eaa"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 07 18:33:18 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 07 18:33:18 2012 -0700"
      },
      "message": "Add Binder.getCallingUserHandle().\n\nChange-Id: I2a7eedfdc7baeeb4c2cd2ca0153aa95e0cf0bf45\n"
    },
    {
      "commit": "e7287a0791b7398a540c18894972908683456283",
      "tree": "f7b7b0ac36fcce903c57a2a76e509e2efda56b72",
      "parents": [
        "965e7ff4de117a9681b04e84573cb5924efdd6d9"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Sep 07 18:32:12 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Sep 07 18:32:12 2012 -0700"
      },
      "message": "Sanity-check existence of restore agent\n\nWhen a restore dataset includes data for an app that used to have\na backup agent, but does not in the currently-installed version, we\nwere merrily trying to bring up the agent for restore anyway, and\ncrashing.  Now we don\u0027t do that; we check whether there\u0027s actually\ngoing to be an agent to handle the data before doing any of the\nheavy work.\n\nBug 7130695\n\nChange-Id: I0a38c2a8bb51d4a140a72d22896fa58d98ebaa02\n"
    },
    {
      "commit": "824b959dfc830f3d0aa12afc5fb429980e35f3fd",
      "tree": "3c52c7bc7d2f939986b14ef6057c5d59ac40b58d",
      "parents": [
        "4d0b56255489efc3b35b9f0187f56536f07d5d66",
        "d888399ad4a4ec0a08e97518bf22d726a8bd4eaa"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 07 18:01:22 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 18:01:23 2012 -0700"
      },
      "message": "Merge \"Explicitly specify current user everywhere home is started.\" into jb-mr1-dev"
    },
    {
      "commit": "0cfebf28b15e85a42981a8f9e6a09556bef36ea3",
      "tree": "181013a11332fcc2e13cf0bcaa48e71d76fa7e95",
      "parents": [
        "4b71e4e66cd12d581d4939bab86ec624d27eb570"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Sep 07 17:41:20 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Sep 07 17:50:58 2012 -0700"
      },
      "message": "Retry wifi display connections.\n\nChange-Id: I48c62c7e272c2696022ddeea1c3107d24a9431b8\n"
    },
    {
      "commit": "4d0b56255489efc3b35b9f0187f56536f07d5d66",
      "tree": "9043e09917eb686645d1a564b2914f7b73db489a",
      "parents": [
        "0458a69d4d08a517780c2279ae1dc98ccb3fb916"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Sep 07 17:50:18 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Sep 07 17:50:56 2012 -0700"
      },
      "message": "Disable hardcoded wifi display adapter.\n\nChange-Id: Id0f7d59b6eafa8794ff7616cf54a0b94ba78c763\n"
    },
    {
      "commit": "d888399ad4a4ec0a08e97518bf22d726a8bd4eaa",
      "tree": "f2fb7815f5e0498cc36c71db8306f1fb064205bc",
      "parents": [
        "72018294cc4e3cc5feb7affdec4bf4bb2368ac41"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 07 15:58:52 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 07 17:48:06 2012 -0700"
      },
      "message": "Explicitly specify current user everywhere home is started.\n\nChange-Id: I58d86136de7f9cef1eaf72793d0e200b852d7355\n"
    },
    {
      "commit": "0458a69d4d08a517780c2279ae1dc98ccb3fb916",
      "tree": "d773559d0c414fb5ed86ba73ed42369a60cb0c07",
      "parents": [
        "72018294cc4e3cc5feb7affdec4bf4bb2368ac41",
        "2cee686498c6141f5a68532ecb79f598e043ec7e"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Sep 07 17:34:01 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 17:34:01 2012 -0700"
      },
      "message": "Merge \"Fixing off by one error in the ScreenMagnifier.\" into jb-mr1-dev"
    },
    {
      "commit": "2cee686498c6141f5a68532ecb79f598e043ec7e",
      "tree": "5baa7c1f49b0e1a6162a8d5ee7453cad43d4ac58",
      "parents": [
        "970683c5d42a1d8588d656d4e570ce4f0f6e0abc"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Sep 07 16:27:01 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Sep 07 17:33:09 2012 -0700"
      },
      "message": "Fixing off by one error in the ScreenMagnifier.\n\nChange-Id: Ia0ccfb6b354b7a18633e7cf26647c6436ebf5c08\n"
    },
    {
      "commit": "72018294cc4e3cc5feb7affdec4bf4bb2368ac41",
      "tree": "add91a7ce260c33d8fc72acd56606d5719e749b4",
      "parents": [
        "7017e48380ab0c1be033594bb2a9331898ad5be8",
        "722285e199a9fc74b9b3343b7505c00666848c88"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Sep 07 16:01:36 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 16:01:37 2012 -0700"
      },
      "message": "Merge \"Make mirroring automatic based on Windows on display.\" into jb-mr1-dev"
    },
    {
      "commit": "7017e48380ab0c1be033594bb2a9331898ad5be8",
      "tree": "1e24e747937706deb96ac1770f71a9c4cb6ebc65",
      "parents": [
        "cd620591b764cd999f18878985444fba01d5b710",
        "cbad976b2a36a0895ca94510d5208a86f66cf596"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Sep 07 16:00:12 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 16:00:13 2012 -0700"
      },
      "message": "Merge \"Add support for Wifi display.\" into jb-mr1-dev"
    },
    {
      "commit": "cd620591b764cd999f18878985444fba01d5b710",
      "tree": "4e5da1d1ca16e8e45e5e89d5b6123b3f98a418a8",
      "parents": [
        "1275abd013eee87b3fec5b704a799440cb1c71fe",
        "7de350a91301985b7f2d9f28edde5aade8495d9b"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Sep 07 15:58:43 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 15:58:44 2012 -0700"
      },
      "message": "Merge \"installd: fix forward locking symlink\" into jb-mr1-dev"
    },
    {
      "commit": "1275abd013eee87b3fec5b704a799440cb1c71fe",
      "tree": "90628566405dd628b5ed664132545501c11deb7b",
      "parents": [
        "cd42ce5d61d7854d1add5d4d308d1f3342baeea6",
        "4d8fc793f044cf2c857ac72ebe51641b8e6c413d"
      ],
      "author": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Fri Sep 07 15:54:12 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 15:54:13 2012 -0700"
      },
      "message": "Merge \"Move verification settings to Settings.Global\" into jb-mr1-dev"
    },
    {
      "commit": "cd42ce5d61d7854d1add5d4d308d1f3342baeea6",
      "tree": "a564bbcbe503ba75dd2cd5056ec1cbc1bb97c63c",
      "parents": [
        "df4a94e21c78b25d7e35590408efda87ab41b633",
        "11941fd651be468c8ab6c90256616418ecf3a6a8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 07 15:52:37 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 15:52:37 2012 -0700"
      },
      "message": "Merge \"Fix crash when setting wallpaper from non-primary user.\" into jb-mr1-dev"
    },
    {
      "commit": "11941fd651be468c8ab6c90256616418ecf3a6a8",
      "tree": "f1d75b86b609bab14703dee3545034bf4f29021e",
      "parents": [
        "649d0d71b245d88746b78399ffa1f75da7c80974"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 07 15:35:17 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 07 15:50:26 2012 -0700"
      },
      "message": "Fix crash when setting wallpaper from non-primary user.\n\nWhen accessing a content provider, there is a check for whether\nthe provider can run in the caller\u0027s process; if so, even if the\nprovider is currently published, we return to the caller that it\ncan run locally.\n\nThis check was broken -- it had an old condition that allowed\ncontent providers owned by the system UID to run in any other UID\u0027s\nprocess.  This is wrong, since by definition the other\nUIDs would not be able to access the data under the original UID.\n\nWe ran into this because the activity picker is part of the\nandroid platform manifest, so runs as the system process.  However\nit needs to run as the user who invoked it, so when coming from the\nnon-primary user we spin up a \"system\" process running as a uid of\nthat user.  Now when that process tries to access the settings\nprovider, the broken check would think that a new instance of the\nsettings provider should be created in the caller\u0027s process.\n\nChange-Id: I7bf495ed8370cb271bdaec073d5b7dda9e38c546\n"
    },
    {
      "commit": "7de350a91301985b7f2d9f28edde5aade8495d9b",
      "tree": "9db121eeed2e9d947564d465670c093f48ef0616",
      "parents": [
        "37ee53420ce47860807eb8eaeb454c12fa46797b"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Sep 07 15:48:11 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Sep 07 15:48:11 2012 -0700"
      },
      "message": "installd: fix forward locking symlink\n\ninstalld was not creating a compatibility symlink when\ninstalling a forward locked application.  Fix.\n\nBug: 7121527\nChange-Id: Ied507ab2b759d8658af563e6ac8f0dbb0d286cce\n"
    },
    {
      "commit": "df4a94e21c78b25d7e35590408efda87ab41b633",
      "tree": "188ad07de881b48dcdd2ea360fce58e79196db16",
      "parents": [
        "cd664f0faaaab2442733a9d2675a69a6429549a5",
        "efb735dbafd131cd1e8f4af40274c16443e39078"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Sep 07 15:48:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 15:48:07 2012 -0700"
      },
      "message": "Merge \"Fix incorrect indexing calculation.\" into jb-mr1-dev"
    },
    {
      "commit": "efb735dbafd131cd1e8f4af40274c16443e39078",
      "tree": "a3eeddad1e0b70d55b3598bc529d56629752ae74",
      "parents": [
        "c0be8c85b09002359adb1fb20f2bf08e6983d146"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Sep 07 15:40:24 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Sep 07 15:40:24 2012 -0700"
      },
      "message": "Fix incorrect indexing calculation.\n\nFixes bug 7129583.\n\nChange-Id: Ia395a7acded05686668d5b3cee09d49025a9f339\n"
    },
    {
      "commit": "4d8fc793f044cf2c857ac72ebe51641b8e6c413d",
      "tree": "6cfddf7fa4ac28d1140c07502dfd17ec060f78bd",
      "parents": [
        "5fc626639aa7ff2aed224b58891149e19fb24b57"
      ],
      "author": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Fri Sep 07 14:43:43 2012 -0700"
      },
      "committer": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Fri Sep 07 15:34:08 2012 -0700"
      },
      "message": "Move verification settings to Settings.Global\n\nMove Settings.Secure.PACKAGE_VERIFIER_ENABLE,\nSettings.Secure.PACKAGE_VERIFIER_TIMEOUT,\nSettings.Secure.PACKAGE_VERIFIER_DEFAULT_RESPONSE to\nSettings.Global.PACKAGE_VERIFIER_ENABLE,\nSettings.Global.PACKAGE_VERIFIER_TIMEOUT,\nSettings.Global.PACKAGE_VERIFIER_DEFAULT_RESPONSE, respectively.\n\nBug: 7082362\nChange-Id: I21fde031a330563891c0129132f3d6369ac5e7a5\n"
    },
    {
      "commit": "5fc626639aa7ff2aed224b58891149e19fb24b57",
      "tree": "b97ce29674b4c560f88b2e8630cf58702b1bd9db",
      "parents": [
        "dc531fa7d4ec545ace1b3daae0849d3101102e49",
        "259d5e56a82d721ccb7e7f514c80de69acae309e"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Sep 07 15:28:09 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 15:28:09 2012 -0700"
      },
      "message": "Merge \"Resolve the correct home intent for secondary users\" into jb-mr1-dev"
    },
    {
      "commit": "259d5e56a82d721ccb7e7f514c80de69acae309e",
      "tree": "1220fc2982bd733e68fe83e859c5c2b820883f15",
      "parents": [
        "37ee53420ce47860807eb8eaeb454c12fa46797b"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Aug 31 15:11:01 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Sep 07 15:04:36 2012 -0700"
      },
      "message": "Resolve the correct home intent for secondary users\n\nFix some searches through the Activity stack.\n\nThis allows SetupWizard to be launched for the second user.\n\nChange-Id: Icd306319f511c902557bd9985d80dda228e32d96\n"
    },
    {
      "commit": "62df6eb5081fbb66d9245626e8c91497431040e4",
      "tree": "c63577feeef65ba2b0fbaa49a2c2314046e648ce",
      "parents": [
        "c0be8c85b09002359adb1fb20f2bf08e6983d146"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Sep 07 15:00:54 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Sep 07 15:00:54 2012 -0700"
      },
      "message": "Refer to STAY_ON_WHILE_PLUGGED_IN via the Global namespace\n\nIt moved from System to Global, so writes are not automatically redirected\nto the new namespace (else apps would start crashing).\n\nBug 7126575\n\nChange-Id: Ief31fcb5a6107a098da04d30d146e16921dee776\n"
    },
    {
      "commit": "722285e199a9fc74b9b3343b7505c00666848c88",
      "tree": "31bae3426c4a79bbc7a23767a893a20f99a349fd",
      "parents": [
        "cbad976b2a36a0895ca94510d5208a86f66cf596"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Sep 07 13:55:58 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Sep 07 14:46:32 2012 -0700"
      },
      "message": "Make mirroring automatic based on Windows on display.\n\nTell the display manager whenever a given logical display\ncontains interesting windows.  If so, then the display\nmanager arranges to show that content on a physical display,\notherwise it ignores the logical display and makes its\nassociated primary physical display mirror the default\ndisplay.\n\nAssign DisplayContents when Displays are added, remove them when\nDisplays are removed, and update the DisplayInfo when Displays\nchange.\n\nChange-Id: I36e08ec538055acabe1e24cdd12c40de4e47a158\n"
    },
    {
      "commit": "c0be8c85b09002359adb1fb20f2bf08e6983d146",
      "tree": "afa797cab8f96f35d1be8bfeb7d0e934bdf99fa4",
      "parents": [
        "649d0d71b245d88746b78399ffa1f75da7c80974",
        "ad7353204152389e88b331991274bad04469ae58"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Sep 07 14:22:59 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 14:22:59 2012 -0700"
      },
      "message": "Merge \"Refer to STAY_ON_WHILE_PLUGGED_IN in the global namespace\" into jb-mr1-dev"
    },
    {
      "commit": "ad7353204152389e88b331991274bad04469ae58",
      "tree": "7b6fc769c5006190c6e9e021d2bd7d0e3034e617",
      "parents": [
        "4db5d23deab9ea8de34cdb1c56af31e6e3cff79b"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Sep 07 14:19:43 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Sep 07 14:19:43 2012 -0700"
      },
      "message": "Refer to STAY_ON_WHILE_PLUGGED_IN in the global namespace\n\nThis is the one relevant setting that moved from System to Global,\na move that we do not automatically redirect on writes.\n\nChange-Id: I7b26d0c364695c4a10a7cd477db3dfcfe89d7ef5\n"
    },
    {
      "commit": "5e03e2ca7d25b899b129baad2dd5eca6bf99d88a",
      "tree": "10c601a58b0bbeb6902d43e0862c58f3ec121c78",
      "parents": [
        "970683c5d42a1d8588d656d4e570ce4f0f6e0abc"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 06 14:21:19 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 07 13:55:23 2012 -0700"
      },
      "message": "More multi-user stuff:\n\n- New (hidden) isUserRunning() API.\n- Maintain LRU list of visited users.\n- New FLAG_IS_DATA_ONLY for ApplicationInfo.\n- Clean up pending intent records when force-stopping a user (or package).\n  (Also fixes bug #6880627: PendingIntent.getService() returns stale\n  intent of force stopped app)\n- Fix force-stopping when installing an app to do the force-stop across\n  all users for that app.\n- When selecting which processes to kill during a force stop, do this\n  based on the actual packages loaded in the process, not just process\n  name matching.\n- You can now use --user option in am when starting activities, services,\n  and instrumentation.\n- The am --user option accepts \"current\" and \"all\" as arguments.\n- The pm uninstall command now uninstalls for all users, so it matches\n  the semantics of the install command.\n- PhoneWindowManager now explicitly says to start home in the current\n  user.\n- Activity manager call to retrieve the MIME type from a content provider\n  now takes a user argument, so it will direct this to the proper user.\n- The package manager uninstall paths are now implemented around\n  PackageSetting, not PackageParser.Package.  This allows them to work\n  even if the application\u0027s apk has been removed (in which case it only\n  exists as a PackageSetting, not the PackageParser.Package parsed from\n  the apk).\n\nChange-Id: I3522f6fcf32603090bd6e01cc90ce70b6c5aae40\n"
    },
    {
      "commit": "cbad976b2a36a0895ca94510d5208a86f66cf596",
      "tree": "06422b1c420f27faede921f0813dbfc228ca030d",
      "parents": [
        "14c625188affcce2e6db3c8b2f96b63eeb0f10a0"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Sep 04 21:57:59 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Sep 07 13:26:31 2012 -0700"
      },
      "message": "Add support for Wifi display.\n\nChange-Id: I99693786cf9d07d07d3400046c55eb4933730b80\n"
    },
    {
      "commit": "240a90d2789f8813bef11b499a026b8afe43bbd8",
      "tree": "dddcaaf987ce779f1713754dde60faaf46a0174e",
      "parents": [
        "9545dc020ea11649d70dcbe911a8e82a3254a4ea",
        "1223e5a3115e825567972da26e38c0016bdfa268"
      ],
      "author": {
        "name": "Matthew Xie",
        "email": "mattx@google.com",
        "time": "Fri Sep 07 00:07:23 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 00:07:23 2012 -0700"
      },
      "message": "Merge \"Fault tolerance in Bluedroid\" into jb-mr1-dev"
    },
    {
      "commit": "1223e5a3115e825567972da26e38c0016bdfa268",
      "tree": "35aa48d6cc7b2ee7e5194237a99a72968575090b",
      "parents": [
        "369bb97d02209fa800081fc3b4e8675ea7e75d34"
      ],
      "author": {
        "name": "Syed Ibrahim M",
        "email": "syedibra@broadcom.com",
        "time": "Wed Aug 29 18:07:26 2012 +0530"
      },
      "committer": {
        "name": "Matthew Xie",
        "email": "mattx@google.com",
        "time": "Thu Sep 06 23:55:41 2012 -0700"
      },
      "message": "Fault tolerance in Bluedroid\n\nWhen bluetooth process gets crashed/killed/stopped by Android\nsystem, BluetoothManagerService will re-start AdapterService\nto recover from the crash appropriately.\n\nChange-Id: Iacb1a06a8245089517bbbd57de1378ca8ce4b41e\n"
    },
    {
      "commit": "9545dc020ea11649d70dcbe911a8e82a3254a4ea",
      "tree": "2eafaf32537c73b462f5f06c24c477655bacb71b",
      "parents": [
        "162fabbcf81157fddab1c38de09bdabaff8c068a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Sep 06 22:46:30 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Sep 06 23:15:20 2012 -0700"
      },
      "message": "Include primary flag in StorageVolume.\n\nBug: 7003520\nChange-Id: Iaae2ae22253820c954c51e0199c31087bc825f3f\n"
    },
    {
      "commit": "6da5827193408ec6d2a77b64448b2f1c40b9a482",
      "tree": "840718c7f3d92ffe7239d18de3467bfb76899108",
      "parents": [
        "c71d4060609ee64939ad5369d33b86d44baa17a9",
        "1cf70bbf96930662cab0e699d70b62865766ff52"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Sep 06 18:57:43 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 06 18:57:43 2012 -0700"
      },
      "message": "Merge \"Screen magnification - feature - framework.\" into jb-mr1-dev"
    },
    {
      "commit": "1cf70bbf96930662cab0e699d70b62865766ff52",
      "tree": "2173762d4e4d7be76f5691cebd74e1bd8f2b8543",
      "parents": [
        "fa8d83d90444354e8eca6ca0e080bc917e5a1f32"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Aug 06 10:53:34 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Sep 06 18:56:17 2012 -0700"
      },
      "message": "Screen magnification - feature - framework.\n\nThis change is the initial check in of the screen magnification\nfeature. This feature enables magnification of the screen via\nglobal gestures (assuming it has been enabled from settings)\nto allow a low vision user to efficiently use an Android device.\n\nInteraction model:\n\n1. Triple tap toggles permanent screen magnification which is magnifying\n   the area around the location of the triple tap. One can think of the\n   location of the triple tap as the center of the magnified viewport.\n   For example, a triple tap when not magnified would magnify the screen\n   and leave it in a magnified state. A triple tapping when magnified would\n   clear magnification and leave the screen in a not magnified state.\n\n2. Triple tap and hold would magnify the screen if not magnified and enable\n   viewport dragging mode until the finger goes up. One can think of this\n   mode as a way to move the magnified viewport since the area around the\n   moving finger will be magnified to fit the screen. For example, if the\n   screen was not magnified and the user triple taps and holds the screen\n   would magnify and the viewport will follow the user\u0027s finger. When the\n   finger goes up the screen will clear zoom out. If the same user interaction\n   is performed when the screen is magnified, the viewport movement will\n   be the same but when the finger goes up the screen will stay magnified.\n   In other words, the initial magnified state is sticky.\n\n3. Pinching with any number of additional fingers when viewport dragging\n   is enabled, i.e. the user triple tapped and holds, would adjust the\n   magnification scale which will become the current default magnification\n   scale. The next time the user magnifies the same magnification scale\n   would be used.\n\n4. When in a permanent magnified state the user can use two or more fingers\n   to pan the viewport. Note that in this mode the content is panned as\n   opposed to the viewport dragging mode in which the viewport is moved.\n\n5. When in a permanent magnified state the user can use three or more\n   fingers to change the magnification scale which will become the current\n   default magnification scale. The next time the user magnifies the same\n   magnification scale would be used.\n\n6. The magnification scale will be persisted in settings and in the cloud.\n\nNote: Since two fingers are used to pan the content in a permanently magnified\n   state no other two finger gestures in touch exploration or applications\n   will work unless the uses zooms out to normal state where all gestures\n   works as expected. This is an intentional tradeoff to allow efficient\n   panning since in a permanently magnified state this would be the dominant\n   action to be performed.\n\nDesign:\n\n1. The window manager exposes APIs for setting accessibility transformation\n   which is a scale and offsets for X and Y axis. The window manager queries\n   the window policy for which windows will not be magnified. For example,\n   the IME windows and the navigation bar are not magnified including windows\n   that are attached to them.\n\n2. The accessibility features such a screen magnification and touch\n   exploration are now impemented as a sequence of transformations on the\n   event stream. The accessibility manager service may request each\n   of these features or both. The behavior of the features is not changed\n   based on the fact that another one is enabled.\n\n3. The screen magnifier keeps a viewport of the content that is magnified\n   which is surrounded by a glow in a magnified state. Interactions outside\n   of the viewport are delegated directly to the application without\n   interpretation. For example, a triple tap on the letter \u0027a\u0027 of the IME\n   would type three letters instead of toggling magnified state. The viewport\n   is updated on screen rotation and on window transitions. For example,\n   when the IME pops up the viewport shrinks.\n\n4. The glow around the viewport is implemented as a special type of window\n   that does not take input focus, cannot be touched, is laid out in the\n   screen coordiates with width and height matching these of the screen.\n   When the magnified region changes the root view of the window draws the\n   hightlight but the size of the window does not change - unless a rotation\n   happens. All changes in the viewport size or showing or hiding it are\n   animated.\n\n5. The viewport is encapsulated in a class that knows how to show,\n   hide, and resize the viewport - potentially animating that.\n   This class uses the new animation framework for animations.\n\n6. The magnification is handled by a magnification controller that\n   keeps track of the current trnasformation to be applied to the screen\n   content and the desired such. If these two are not the same it is\n   responsibility of the magnification controller to reconcile them by\n   potentially animating the transition from one to the other.\n\n7. A dipslay content observer wathces for winodw transitions, screen\n   rotations, and when a rectange on the screen has been reqeusted. This\n   class is responsible for handling interesting state changes such\n   as changing the viewport bounds on IME pop up or screen rotation,\n   panning the content to make a requested rectangle visible on the\n   screen, etc.\n\n8. To implement viewport updates the window manger was updated with APIs\n   to watch for window transitions and when a rectangle has been requested\n   on the screen. These APIs are protected by a signature level permission.\n   Also a parcelable and poolable window info class has been added with\n   APIs for getting the window info given the window token. This enables\n   getting some useful information about a window. There APIs are also\n   signature protected.\n\nbug:6795382\n\nChange-Id: Iec93da8bf6376beebbd4f5167ab7723dc7d9bd00\n"
    },
    {
      "commit": "2b0442f33029c6b6cf1247a1633a97f5908d6cab",
      "tree": "b3a5a1eeb666c2c857badfac54d515899eec9bda",
      "parents": [
        "fa8d83d90444354e8eca6ca0e080bc917e5a1f32",
        "91c6a64a04c2d8b27b886d96a56800ae24efb7a9"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Sep 06 18:34:17 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 06 18:34:17 2012 -0700"
      },
      "message": "Merge \"Event logging for lockdown VPN state changes.\" into jb-mr1-dev"
    },
    {
      "commit": "91c6a64a04c2d8b27b886d96a56800ae24efb7a9",
      "tree": "91992f0805a350844ea0cf550292d0b1ebdebde6",
      "parents": [
        "f56e2435b64f9638e029777fa9492d42f157033e"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Sep 06 18:33:14 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Sep 06 18:33:14 2012 -0700"
      },
      "message": "Event logging for lockdown VPN state changes.\n\nBug: 7079350\nChange-Id: I3670efe7f09c0fca55552b6a04a2be159b9beb3c\n"
    },
    {
      "commit": "fa8d83d90444354e8eca6ca0e080bc917e5a1f32",
      "tree": "b5248aa8f033baf085826c2144067e55bb5a52a5",
      "parents": [
        "b75111df9bf22496bacb7a6f9d9412e4a7b6827f",
        "f56e2435b64f9638e029777fa9492d42f157033e"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Sep 06 18:02:44 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 06 18:02:44 2012 -0700"
      },
      "message": "Merge \"Restrict lockdown and firewall to AID_SYSTEM.\" into jb-mr1-dev"
    },
    {
      "commit": "f56e2435b64f9638e029777fa9492d42f157033e",
      "tree": "fead98e1fcd7a8d31a1f0f03b72581b99cbc5fa1",
      "parents": [
        "c862d0fc0574de74bf1758f69c98ccbf8e506532"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Sep 06 17:54:29 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Sep 06 17:59:14 2012 -0700"
      },
      "message": "Restrict lockdown and firewall to AID_SYSTEM.\n\nBug: 7076289\nChange-Id: Iafa3054335e8b1c3c8c3b8db2a4191d4ed4c8c41\n"
    },
    {
      "commit": "9e130e70eff57d15c0888f51c4f1a7cc4cd62573",
      "tree": "79d989396f57be8f447e1a59707449fdd81c45b6",
      "parents": [
        "5851c6e63879ce7c08d345e80db9a2872657a59f",
        "69b0818179201fadc9d2a384d692d8ae4aecd85c"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Sep 06 16:30:33 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 06 16:30:34 2012 -0700"
      },
      "message": "Merge \"Limit certain actions to default Display.\" into jb-mr1-dev"
    },
    {
      "commit": "69b0818179201fadc9d2a384d692d8ae4aecd85c",
      "tree": "0e7d2978798e010dc49f002eef35a4d3f6227912",
      "parents": [
        "256a1b4dac832746a3cc37bd67f60f88a98adb07"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Sep 05 13:07:13 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Sep 05 19:54:32 2012 -0700"
      },
      "message": "Limit certain actions to default Display.\n\nStop messing up PhoneWindowManager state when passing in windows\nfrom non-default Display.\n\nChange-Id: I472f7a13c5e2241fbf1f79ae1c8045fd92af016c\n"
    },
    {
      "commit": "fd5494b8ef91e8a909622c3bf45dac7537254b41",
      "tree": "9c4b4f0d11e57131e616e31043fe3f7b8af43fe0",
      "parents": [
        "ec098efcb11c4f4a12e7d3e44995536ef1eb7c1b",
        "c9ce0abe29baecc540c48f4913255a71586bcfd3"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Sep 05 12:38:24 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 05 12:38:25 2012 -0700"
      },
      "message": "Merge changes I4ef284da,Ie8cc69bd into jb-mr1-dev\n\n* changes:\n  Make the SystemUI stop the screen saver when a full-screen notification is posted.\n  Do not play sounds or vibes for background users\u0027 notifications.\n"
    },
    {
      "commit": "ec098efcb11c4f4a12e7d3e44995536ef1eb7c1b",
      "tree": "2bac4d13e270d27c1695f55b00b7ca51b50fa194",
      "parents": [
        "f389f2820c731b2b938a7057cde9dc11d87bcbe3",
        "342c6bc8e5edb5a0cfa2ad65162d559b7f2ad993"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Sep 05 12:36:04 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 05 12:36:04 2012 -0700"
      },
      "message": "am 342c6bc8: am 54099555: am 380a8e3d: Merge \"Am: Clean mLaunchingProviders of all providers started by the client\"\n\n* commit \u0027342c6bc8e5edb5a0cfa2ad65162d559b7f2ad993\u0027:\n  Am: Clean mLaunchingProviders of all providers started by the client\n"
    },
    {
      "commit": "540995555505486074e9652a9c682bdf6e3056c5",
      "tree": "73a903372418c842f8416a97ff63e7b561955ce7",
      "parents": [
        "b4ac801c477c0a0de18da89744d9a78e79d2ff51",
        "380a8e3d126374b0205e8452bf2b4b70779e2606"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Sep 05 12:10:48 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 05 12:10:48 2012 -0700"
      },
      "message": "am 380a8e3d: Merge \"Am: Clean mLaunchingProviders of all providers started by the client\"\n\n* commit \u0027380a8e3d126374b0205e8452bf2b4b70779e2606\u0027:\n  Am: Clean mLaunchingProviders of all providers started by the client\n"
    },
    {
      "commit": "380a8e3d126374b0205e8452bf2b4b70779e2606",
      "tree": "b2e91b17932566ec187326d84e07eaff53dabf15",
      "parents": [
        "1ca2fee9547dbdd7008211ac318b1f8f40ce1e35",
        "4ee364982e783b4a2eac6e05f81d167c6121e110"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Sep 05 11:40:29 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 05 11:40:30 2012 -0700"
      },
      "message": "Merge \"Am: Clean mLaunchingProviders of all providers started by the client\""
    },
    {
      "commit": "0b5a4a15132a9367b6bbff62781e9ad3441b6c1d",
      "tree": "e34f155132c59db41ad1bd58be2368a0b4101c0d",
      "parents": [
        "4a332f5bae18ae613b23b5c643063fb1a23f29c1",
        "11626a91b6e695e7a8fa9e9a9f1a37df11cfb4e2"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Sep 05 11:07:21 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 05 11:07:21 2012 -0700"
      },
      "message": "am 11626a91: am 9eb3bd88: am 42a58ecd: Merge \"Revert \"Watchdog: Improvement of debuggability\"\"\n\n* commit \u002711626a91b6e695e7a8fa9e9a9f1a37df11cfb4e2\u0027:\n  Revert \"Watchdog: Improvement of debuggability\"\n"
    },
    {
      "commit": "9eb3bd88f14c386c89dd2576c3ca798f2493b0fd",
      "tree": "40b5096080b4edcbbaf905dc29736ebf97d6066d",
      "parents": [
        "d3b74b9124e713e291053652839a7d725ffb64d9",
        "42a58ecd27783d347242206bcffd4052cf1d5164"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Sep 05 11:01:25 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 05 11:01:25 2012 -0700"
      },
      "message": "am 42a58ecd: Merge \"Revert \"Watchdog: Improvement of debuggability\"\"\n\n* commit \u002742a58ecd27783d347242206bcffd4052cf1d5164\u0027:\n  Revert \"Watchdog: Improvement of debuggability\"\n"
    },
    {
      "commit": "c9ce0abe29baecc540c48f4913255a71586bcfd3",
      "tree": "c1a97909b09e86d3528f65a1b4e35af6bca48417",
      "parents": [
        "24518e466ab36ce7c6d2ffd733ac4d57f255766e"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Sep 04 13:27:09 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Sep 05 08:41:07 2012 -0400"
      },
      "message": "Make the SystemUI stop the screen saver when a full-screen notification is posted.\n\nThis keeps all the fullScreenIntent logic (including\nmultiuser implications) in one place.\n\nChange-Id: I4ef284daf90464f105780ade1d971e9e081fbbb5\n"
    },
    {
      "commit": "24518e466ab36ce7c6d2ffd733ac4d57f255766e",
      "tree": "d866e7851240f6660791d864780bdfe73cbe262b",
      "parents": [
        "e94831e5ed4aa3b1ebc5444cc1b16cdab8cb92f8"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Sep 04 13:23:01 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Sep 05 08:41:07 2012 -0400"
      },
      "message": "Do not play sounds or vibes for background users\u0027 notifications.\n\nUSER_ALL notifications will still play/vibe for any user.\n\nChange-Id: Ie8cc69bd1541193ed9c4207ef38a8d4898af0a9d\n"
    },
    {
      "commit": "580e9f72e09efc4645aa98753ad8e9806d428950",
      "tree": "0b5938ccef128da65af4fb00d5b6a326b0618c5c",
      "parents": [
        "f87633f38c399edf5b2c358992ecbbbbbad5a648",
        "f3c74f34999337b8eb77e1a5ed0287561b512c21"
      ],
      "author": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Tue Sep 04 22:48:35 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 22:48:36 2012 -0700"
      },
      "message": "Merge \"Make battery shutdown temperature configurable\" into jb-mr1-dev"
    },
    {
      "commit": "f87633f38c399edf5b2c358992ecbbbbbad5a648",
      "tree": "e834224f05c56e17071ba639c4ec13469afecda3",
      "parents": [
        "0d727c714b75b9d9c927eca83aacba8938b08537",
        "63f1c43fbef157397869475ef30d23e631b88bbe"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 04 20:30:02 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 20:30:02 2012 -0700"
      },
      "message": "Merge \"update to new SurfaceComposerClient API\" into jb-mr1-dev"
    },
    {
      "commit": "0d727c714b75b9d9c927eca83aacba8938b08537",
      "tree": "37077b3466fb75cde12aefdcdd7ed78460a32f96",
      "parents": [
        "b326fa046b64b05b9969e0a6e89cf48577bfdae1",
        "e62e6d8731ab1e02c1632ebc011792d07b902af8"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Tue Sep 04 20:27:49 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 20:27:50 2012 -0700"
      },
      "message": "Merge \"Add subtypeId for keeping enabled \"InputMethodSubtype\"s even if subtype parameters are changed\" into jb-mr1-dev"
    },
    {
      "commit": "63f1c43fbef157397869475ef30d23e631b88bbe",
      "tree": "f485bac161dae075a2df0b5a1c07a5adc76d0a23",
      "parents": [
        "d2a8df9541c198d555ef6a50347acb9160509863"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 04 19:29:13 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 04 20:23:23 2012 -0700"
      },
      "message": "update to new SurfaceComposerClient API\n\nChange-Id: I8f2c96df56fe3a851b8ec03bb8734db0b6bea3d5\n"
    },
    {
      "commit": "bac6c12974c278a8045ed8deefb08d0348aa8496",
      "tree": "1de6070a76cef74dca2a065cfb3038edf1f58cc1",
      "parents": [
        "68093520872476fc19b50c096a9536a826c084e5",
        "fd8bf5c790749b0382c9d70424cac2367d6276e3"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 04 18:50:30 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 18:50:30 2012 -0700"
      },
      "message": "Merge \"Fix another issue #7097984 java.lang.SecurityException: Permission Denial:\" into jb-mr1-dev"
    },
    {
      "commit": "fd8bf5c790749b0382c9d70424cac2367d6276e3",
      "tree": "99c2e277f5bb882e23da577584632be152f3e1b0",
      "parents": [
        "d2a8df9541c198d555ef6a50347acb9160509863"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 04 18:48:37 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 04 18:48:37 2012 -0700"
      },
      "message": "Fix another issue #7097984 java.lang.SecurityException: Permission Denial:\n\nbroadcast asks to run as user -1 but is calling from user 0; this requires\n\nDupped bug of a different problem.\n\nChange-Id: I15f4ab08b81f5f5746ba1cd183dee4f0b1281df5\n"
    },
    {
      "commit": "bb95cb9f997afc34d54f3d5bcb247c44f368b62b",
      "tree": "0f11d1ef9b1427fc6b608bd8f1b92267b963f105",
      "parents": [
        "f1ffb4f7fe2a8e9fd5df947a8071eccdeabaefd4"
      ],
      "author": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Wed Aug 29 10:43:21 2012 -0700"
      },
      "committer": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Tue Sep 04 18:16:24 2012 -0700"
      },
      "message": "Fix GPS settings change listener in LocManager\n\nBug 7051185\n\n- Register a ContentObserver to track settings changes rather than\n  opening up a Cursor with a ContentQueryMap.\n\n- Move updateProvidersLocked into init to assure that the\n  ContentObserver does not miss any changes.\n\n- Move blacklist and fudger creation before loadProvidersLocked to\n  improve code readability.\n\nChange-Id: I4d3e19fa33401c384bc2b00658d4336ea119e0e5\n"
    },
    {
      "commit": "7950d081ac945d97427264f2a0531607097c2c71",
      "tree": "860e75fb63d2312907ed21c6ae4a810347dbdd15",
      "parents": [
        "0116136f4ca252c31a96a055eea4be8a52b32f3b",
        "19d59bc5ad877e9b1544ab13a08282b7b384fefb"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Sep 04 16:35:46 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 16:35:46 2012 -0700"
      },
      "message": "Merge \"Make mLayoutNeeded per-Display.\" into jb-mr1-dev"
    },
    {
      "commit": "19d59bc5ad877e9b1544ab13a08282b7b384fefb",
      "tree": "3ed53a69ada4b472a70c9f3cd27d874cd57a1b91",
      "parents": [
        "34a75df63533914bbca95a82d2c89ca374b2645d"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Sep 04 11:15:56 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Sep 04 16:18:52 2012 -0700"
      },
      "message": "Make mLayoutNeeded per-Display.\n\nSwitch from a global mLayoutNeeded to one for each Display so that\nwe don\u0027t run layout on Displays that haven\u0027t changed.\n\nChange-Id: Ib65c5c667933cceacc46b94f4e6e6bd613d5cb35\n"
    },
    {
      "commit": "175ae55c0d62b6adbc9b3cc215ad2e65a8b40cc3",
      "tree": "5892f9df667e5fed3fc3f18be7fb075869883632",
      "parents": [
        "690420831c9b60f7fb2f1100aeef67ad79bfd3bb",
        "b8ec470617590fa2025db869e8e80dcce8eaec23"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Sep 04 15:20:41 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 15:20:42 2012 -0700"
      },
      "message": "Merge \"Update DevicePolicyManager with ability to disable keyguard widgets\" into jb-mr1-dev"
    },
    {
      "commit": "690420831c9b60f7fb2f1100aeef67ad79bfd3bb",
      "tree": "d47f691a0548ed8e5e047f62f8892b03d788b7d7",
      "parents": [
        "85399cc606a456e7b439352aea58d4b679d8f1ac",
        "68ed7e448d36c2f82062add8a95dfdf995873557"
      ],
      "author": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Tue Sep 04 15:09:09 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 15:09:09 2012 -0700"
      },
      "message": "Merge \"Enable package verification\" into jb-mr1-dev"
    },
    {
      "commit": "035ce2ca92742894f7f906c93d7d217c647aa19a",
      "tree": "091278302dd86f6009db3d86ff95dd607fef8c11",
      "parents": [
        "167611811d4fd6318bc366128590701274488e84",
        "5f7979993979466c79ab4f38d83c6f2aca361662"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Sep 04 15:01:03 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 15:01:03 2012 -0700"
      },
      "message": "Merge \"Add support for \"-rtl\" in resources\" into jb-mr1-dev"
    },
    {
      "commit": "f3c74f34999337b8eb77e1a5ed0287561b512c21",
      "tree": "b6ab858370d84c5988eafc9f88f8ce8dd4d637b7",
      "parents": [
        "34a75df63533914bbca95a82d2c89ca374b2645d"
      ],
      "author": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Fri Aug 31 15:14:48 2012 -0700"
      },
      "committer": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Tue Sep 04 14:29:15 2012 -0700"
      },
      "message": "Make battery shutdown temperature configurable\n\nBug 7079455\n\nChange-Id: I448f21231bf0548ef975f99482576acb24a1a70e\n"
    },
    {
      "commit": "b8ec470617590fa2025db869e8e80dcce8eaec23",
      "tree": "d4341cbea549ffbfad089d16a4b337bfca7688ab",
      "parents": [
        "d2a8df9541c198d555ef6a50347acb9160509863"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Aug 31 17:19:10 2012 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Sep 04 13:52:36 2012 -0700"
      },
      "message": "Update DevicePolicyManager with ability to disable keyguard widgets\n\nChange-Id: I5876e9e180b2a995aaa355fbbb2b67cebb86104d\n"
    },
    {
      "commit": "68ed7e448d36c2f82062add8a95dfdf995873557",
      "tree": "124e41a5a82df3c8f29b0142359de232de107715",
      "parents": [
        "d2a8df9541c198d555ef6a50347acb9160509863"
      ],
      "author": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Tue Sep 04 13:42:32 2012 -0700"
      },
      "committer": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Tue Sep 04 13:42:32 2012 -0700"
      },
      "message": "Enable package verification\n\nTurn on package verification, if a verifier exists. Play app is now a verifier.\n\nBug: 7064853\nChange-Id: I11f6b108c507ea6236038b1415eb9064ca4c3c6d\n"
    },
    {
      "commit": "784827b27cf4cd82bf074b571e63cb5e660c54af",
      "tree": "95a415c62daa7a168023b5ee0eb81540aaa79a5d",
      "parents": [
        "b307ceb43fa96e8d54851c20278a4344469c9269"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Sep 04 13:35:12 2012 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Sep 04 13:35:12 2012 -0700"
      },
      "message": "Revert \"Watchdog: Improvement of debuggability\"\n\nThis reverts commit 9211b13c3268035b0da0c51ed2d6d5a578d45ff3.\n"
    },
    {
      "commit": "d2a8df9541c198d555ef6a50347acb9160509863",
      "tree": "864d7d2731e8b6d5536726f42d8c67be3f29c621",
      "parents": [
        "34a75df63533914bbca95a82d2c89ca374b2645d",
        "b8839dd35723235469a4e805682378c84f50a4fb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 04 13:11:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 13:11:49 2012 -0700"
      },
      "message": "Merge \"Fix issue #7097984 java.lang.SecurityException: Permission Denial:\" into jb-mr1-dev"
    },
    {
      "commit": "34a75df63533914bbca95a82d2c89ca374b2645d",
      "tree": "e90aba05a2b2943fe2092689d29f469aba1fa38c",
      "parents": [
        "ed48f9f8b253b3140607cb97d623093b3a90e897",
        "ea3a09a5b9c8ae56b0c4975c7a7039a05d4c0b3c"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Sep 04 12:32:11 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 12:32:11 2012 -0700"
      },
      "message": "Merge \"Remove single pass actions from display loop.\" into jb-mr1-dev"
    },
    {
      "commit": "ed48f9f8b253b3140607cb97d623093b3a90e897",
      "tree": "17a5f3b9e4953f1939b7ab8c042d3680b07385ec",
      "parents": [
        "e32bb6c9c6c27fc8d9df513994d996ceb1f226f4",
        "76a7165719dc3ccce902953f6244e2c2668aa753"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Sep 04 12:30:45 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 12:30:45 2012 -0700"
      },
      "message": "Merge \"Change layout inner loop order for multi display.\" into jb-mr1-dev"
    },
    {
      "commit": "b8839dd35723235469a4e805682378c84f50a4fb",
      "tree": "9d17b1b72650ec1beae76b71ca8a85e5d59801a9",
      "parents": [
        "b788556bfde48c1f94c46bda4f4b8d576d5cfb81"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 04 10:55:44 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 04 12:11:21 2012 -0700"
      },
      "message": "Fix issue #7097984 java.lang.SecurityException: Permission Denial:\n\nbroadcast asks to run as user -1 but is calling from user 0; this requires\n\nAlso improve part of issue #7087789: Local denial of service via\nlow-permissioned apps\n\nNo longer allow closeSystemDialogs() from background processes.\n\nChange-Id: I752d5a1d51be0b69fde6999d6659835e5bde3efe\n"
    },
    {
      "commit": "7d69e8bd2168a81a5cb68da99d025c6f290bf166",
      "tree": "2300fc73fb368cf9699821bc0a8d489840896865",
      "parents": [
        "9fc4b356a4552336f661bf4dfaaa19a251194cdb",
        "20e809870d8ac1e5b848f2daf51b2272ef89bdfc"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 04 10:40:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 10:40:07 2012 -0700"
      },
      "message": "Merge \"Add registering for explicit users.\" into jb-mr1-dev"
    },
    {
      "commit": "20e809870d8ac1e5b848f2daf51b2272ef89bdfc",
      "tree": "c863b6c684d1d3b21752880bc9f52bd749545d01",
      "parents": [
        "2701f325a6d4acd920637d2ff6fd6972a9cf836b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 31 19:00:44 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 04 10:39:21 2012 -0700"
      },
      "message": "Add registering for explicit users.\n\nNew API to register as an explicit user, which allows you to\nalso select ALL to see broadcasts for all users.\n\nNew BroadcastReceiver API to find out which user the broadcast\nwas sent to.\n\nUse this in app widget service to handle per-user package broadcasts\nand boot completed broadcasts correctly.\n\nChange-Id: Ibbe28993bd4aa93900c79e412026c27863019eb8\n"
    },
    {
      "commit": "ea3a09a5b9c8ae56b0c4975c7a7039a05d4c0b3c",
      "tree": "74b75b5ee6903c874489bf708f7d1fcb961fbca4",
      "parents": [
        "76a7165719dc3ccce902953f6244e2c2668aa753"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Sep 04 09:49:35 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Sep 04 09:49:35 2012 -0700"
      },
      "message": "Remove single pass actions from display loop.\n\nThe WindowAnimator loop over each Display contained actions that\nonly needed to be done one time but were instead done once per loop.\n\nChange-Id: Ia916b08cdb7670686e6295dbcef6a5ff27474099\n"
    },
    {
      "commit": "76a7165719dc3ccce902953f6244e2c2668aa753",
      "tree": "15774855504edc0b7985da491abce291520a10be",
      "parents": [
        "e94831e5ed4aa3b1ebc5444cc1b16cdab8cb92f8"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Sep 03 23:23:58 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Sep 04 08:59:39 2012 -0700"
      },
      "message": "Change layout inner loop order for multi display.\n\nThe inner loop that ran over each display had a few problems:\n- The Surface transaction was starting and stopping between each\ndisplay.\n- The layout change bits were being applied globally so all\ndisplays were layed out when only individual displays needed to be.\n- Wallpaper and input actions were being applied each time through\nthe display loop rather than once only for the default display.\n\nChange-Id: I924252bab28c426222a4bb73693accc4b21cecbe\n"
    }
  ],
  "next": "e62e6d8731ab1e02c1632ebc011792d07b902af8"
}
