)]}'
{
  "log": [
    {
      "commit": "c00c04d7d8758a5ade185d465624e47dcf1bd7c0",
      "tree": "9c7a9c99ecf9f6f29966efc65555066a65ee2dd5",
      "parents": [
        "8aea2f5f749e48ef0fe3532ab2fc258922c3239b",
        "11b822d2a91ea17c34c0cb1c11e80a9a30d72864"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 22 12:01:19 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 22 12:01:19 2009 -0700"
      },
      "message": "am 11b822d2: Simplify density compatibility to a boolean.\n\nMerge commit \u002711b822d2a91ea17c34c0cb1c11e80a9a30d72864\u0027\n\n* commit \u002711b822d2a91ea17c34c0cb1c11e80a9a30d72864\u0027:\n  Simplify density compatibility to a boolean.\n"
    },
    {
      "commit": "11b822d2a91ea17c34c0cb1c11e80a9a30d72864",
      "tree": "7eec5218c6831641b406f1b969841314f452adbb",
      "parents": [
        "59c25cbaf0dd690e503b881392510127441d9074"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 21 20:03:02 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 22 11:58:31 2009 -0700"
      },
      "message": "Simplify density compatibility to a boolean.\n\nInstead of a list, we now just have a single boolean indicating whether an\napplication is density aware, and this set set to true by default as of\nDonut.\n"
    },
    {
      "commit": "d72aa3b92c206092d3b3ce563e0ebf25e1a0be07",
      "tree": "648f49b86f07e108b45480e23c316ec0f7313bc7",
      "parents": [
        "ba5e889eae1175f5ff220637f48e848d56a96ba0",
        "356d4a14aa96cf52c16f7a4d381044ce28b01af3"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 22 11:51:06 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 22 11:51:06 2009 -0700"
      },
      "message": "am 356d4a14: Merge change 8172 into donut\n\nMerge commit \u0027356d4a14aa96cf52c16f7a4d381044ce28b01af3\u0027\n\n* commit \u0027356d4a14aa96cf52c16f7a4d381044ce28b01af3\u0027:\n  Add the phase2 field for EAP WiFi configuration.\n"
    },
    {
      "commit": "b96ea206d93b6cd7fe2106a8427d41a8e90d8322",
      "tree": "9ed05787590b1e8f306f96b9ad524da6ebf79b3d",
      "parents": [
        "dfca0ee879a6cb14bcdabf34962dcec3b34a40b3"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Wed Jul 22 15:56:04 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Wed Jul 22 15:58:30 2009 +0800"
      },
      "message": "Add the phase2 field for EAP WiFi configuration.\n"
    },
    {
      "commit": "a8339dfec9d1b2c6d6fd2f8268f8075d184f64c0",
      "tree": "40345158a2aa1084b21de121e5eb8b0d8f8f36a3",
      "parents": [
        "9822d2b27330793ea4ba9c3316ef35f402f35fb4",
        "9fc20b0e381b5fe00b7049ef357c839cd05a33bf"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 21 19:03:53 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 21 19:03:53 2009 -0700"
      },
      "message": "am 9fc20b0e: Merge change 8126 into donut\n\nMerge commit \u00279fc20b0e381b5fe00b7049ef357c839cd05a33bf\u0027\n\n* commit \u00279fc20b0e381b5fe00b7049ef357c839cd05a33bf\u0027:\n  First pass at reworking screen density/size APIs.\n"
    },
    {
      "commit": "9822d2b27330793ea4ba9c3316ef35f402f35fb4",
      "tree": "bede1721f385d2fc9ee547e815dac8c42c5d60eb",
      "parents": [
        "c098048892dd4417618999c9a91fa4724109e281"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jul 20 17:33:15 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 21 19:02:12 2009 -0700"
      },
      "message": "First stab at poly-finger support.\n\nThe MotionEvent API should be fairly solid, but there is still a lot of\nwork to do in the input device code.  In particular, right now we are\nreally stupid about watching how fingers change -- we just take whatever\nthe driver reports as down and dump that directly into the motion event.\n\nThe big remaning work is to assign pointer IDs so that applications have\nhelp in determine which fingers go up and down, and adding support for\nthe official multi-touch driver protocol.\n"
    },
    {
      "commit": "c4db95c077f826585d20be2f3db4043c53d30cf5",
      "tree": "9176baa673f97b27150f862485fd492cb3ec7e88",
      "parents": [
        "fe6f45c81463d2d28e11ac6083f2653e1286c5ef"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 21 17:46:02 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 21 18:28:42 2009 -0700"
      },
      "message": "First pass at reworking screen density/size APIs.\n\nThis changes the names of the directories in aapt, to what you see\nin the list of DpiTest resources.  Also adds a new \"long\" configuration\nfor wide screens, which the platform sets appropriate, and introduces\na new kind of resizeability for not large but significantly larger\nthan normal screens which may have compatibility issues.\n"
    },
    {
      "commit": "fe923cf2d6b5dec2b49370d70689152e0966c40d",
      "tree": "54f191eaa04f755ce87f1782136af648bbd32621",
      "parents": [
        "71effba5ac09a02704b564a7e89b797768a47103",
        "2c25fac23e5daafd62238f4c3dd031e3f4cd76f1"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 21 14:38:32 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 21 14:38:32 2009 -0700"
      },
      "message": "am 2c25fac2: Merge change 8036 into donut\n\nMerge commit \u00272c25fac23e5daafd62238f4c3dd031e3f4cd76f1\u0027\n\n* commit \u00272c25fac23e5daafd62238f4c3dd031e3f4cd76f1\u0027:\n  * Disable compatibility mode for all cases.\n"
    },
    {
      "commit": "71effba5ac09a02704b564a7e89b797768a47103",
      "tree": "9a39eea0bca6860a8ef5d9d7326fd5a99e84ab17",
      "parents": [
        "bd2007e2e332a9a13ecea063ed78fbb6a34a41c2",
        "6fb608ee67c3ad82baf2253b87b63fff8907992a"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 21 14:38:26 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 21 14:38:26 2009 -0700"
      },
      "message": "am 6fb608ee: Merge change 7854 into donut\n\nMerge commit \u00276fb608ee67c3ad82baf2253b87b63fff8907992a\u0027\n\n* commit \u00276fb608ee67c3ad82baf2253b87b63fff8907992a\u0027:\n  Issue #1884058 (Need to only record frequency and duration for selected Google apps)\n"
    },
    {
      "commit": "2c25fac23e5daafd62238f4c3dd031e3f4cd76f1",
      "tree": "daed0682327838a78cfed58aba7089346fe6fdab",
      "parents": [
        "6fb608ee67c3ad82baf2253b87b63fff8907992a",
        "69fff4a72d4dfc9208db79d773ef3ca23350287e"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 21 11:37:27 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 21 11:37:27 2009 -0700"
      },
      "message": "Merge change 8036 into donut\n\n* changes:\n  * Disable compatibility mode for all cases.\n"
    },
    {
      "commit": "69fff4a72d4dfc9208db79d773ef3ca23350287e",
      "tree": "7feb0dd665c7ea3512b512c8de358e760f956472",
      "parents": [
        "da57856d749457e495bd860c4ff45aaaf87c9dab"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Tue Jul 21 09:51:05 2009 -0700"
      },
      "committer": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Tue Jul 21 11:35:18 2009 -0700"
      },
      "message": "* Disable compatibility mode for all cases.\n"
    },
    {
      "commit": "6fb608ee67c3ad82baf2253b87b63fff8907992a",
      "tree": "4b742a2979b10547f403cce5847aa819e67ae41b",
      "parents": [
        "69a841a1649390d68b32b3bcf0c429a60c400cfa",
        "9fdbf6ae465f90b50ca5feb320215b98018c9937"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 21 11:10:16 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 21 11:10:16 2009 -0700"
      },
      "message": "Merge change 7854 into donut\n\n* changes:\n  Issue #1884058 (Need to only record frequency and duration for selected Google apps)\n"
    },
    {
      "commit": "a695d185f11b2b03ecf0e0f796621fb00bfe7855",
      "tree": "e211c2aab862fffee0843b4bd614051ef07a3c7f",
      "parents": [
        "4a38246b7a9d8900fcb80bd7848f489539147320",
        "ef1a92abe1bebe4feba4ba33cd0c7e25ee83fcc0"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 20 23:33:44 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 20 23:33:44 2009 -0700"
      },
      "message": "am ef1a92ab: Merge change 7961 into donut\n\nMerge commit \u0027ef1a92abe1bebe4feba4ba33cd0c7e25ee83fcc0\u0027\n\n* commit \u0027ef1a92abe1bebe4feba4ba33cd0c7e25ee83fcc0\u0027:\n  Bluetooth at command tracking.\n"
    },
    {
      "commit": "fce2972c7799784b572560a410cd7d0f9cc0d8c0",
      "tree": "44deaf13ee9b27adecd03939d416d09090b90f8e",
      "parents": [
        "87d78b55095312bd7c8c5ce78d7e7bf142a89adb",
        "3b5449e90247e77c173d7bbdd4d5e49ad856afe1"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 20 23:33:27 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 20 23:33:27 2009 -0700"
      },
      "message": "am 3b5449e9: Merge change 7862 into donut\n\nMerge commit \u00273b5449e90247e77c173d7bbdd4d5e49ad856afe1\u0027\n\n* commit \u00273b5449e90247e77c173d7bbdd4d5e49ad856afe1\u0027:\n  * Don\u0027t clip the display if LAYOUT_NO_LIMITS is specified (as with PhoneWindowmanager does)\n"
    },
    {
      "commit": "ef1a92abe1bebe4feba4ba33cd0c7e25ee83fcc0",
      "tree": "ba43c1b40c48a78ec881e493261eb216ea683df1",
      "parents": [
        "890231f1d5912f5b71371e73f44df2db2e741b1b",
        "3f7e35c2c7d3d7f08f50c1d93cd16b1f49354ccc"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 20 17:42:21 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 20 17:42:21 2009 -0700"
      },
      "message": "Merge change 7961 into donut\n\n* changes:\n  Bluetooth at command tracking.\n"
    },
    {
      "commit": "73c6afc91a90159e0d94ebeb28d67eda9c93223f",
      "tree": "81a286aadff36a5e57ae127e34f4cd9893bf50b3",
      "parents": [
        "c7b0dba641d5417286caa3694e70b039012d1e91",
        "967330496438a7f28273b0220a444a30dbdc9fb9"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 20 14:51:59 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 20 14:51:59 2009 -0700"
      },
      "message": "Merge change 7945\n\n* changes:\n  Clean up when an attempted restore throws\n"
    },
    {
      "commit": "967330496438a7f28273b0220a444a30dbdc9fb9",
      "tree": "0c9ed385ae2cbe07a36b134861fcb116a7574eb9",
      "parents": [
        "d03f7ae32d38e11722d4ab64db31a0f2c402b6c1"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Mon Jul 20 14:49:13 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Mon Jul 20 14:49:13 2009 -0700"
      },
      "message": "Clean up when an attempted restore throws\n\nWhen a restore agent throws an exception back into the framework, assume that it\nmay have left the app\u0027s data in an inconsistent state and clear the data for\nthat app (again -- it was cleared just prior to the attempted restore, too).\n"
    },
    {
      "commit": "d2967e261650651414faa2a0def9ac2bffd63bec",
      "tree": "af93b3571da71891266098ed7edfa06691928943",
      "parents": [
        "51cefb2ef58e18acad800c9aa63c2a7eee4d9731"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Mon Jul 20 14:01:43 2009 -0700"
      },
      "committer": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Mon Jul 20 14:01:43 2009 -0700"
      },
      "message": "    * Don\u0027t clip the display if LAYOUT_NO_LIMITS is specified (as with PhoneWindowmanager does)\n    * FullScreen mode was not hiding status bar for app in compatibility mode\n      * fixed fillsScreenLw to take compatibility window into account\n    * Fixed the logic in needsBackgroundFiller to be consistent with other places.\n    * Fix NPE in WindowManagerService#applyAnimationLocked  LayoutParam can be null.\n"
    },
    {
      "commit": "3f7e35c2c7d3d7f08f50c1d93cd16b1f49354ccc",
      "tree": "b4ce5865a36fbd440e84658cf053dfa900554910",
      "parents": [
        "5f6133a100d4477dfcea919e81ff301f9352cd32"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Jul 13 16:02:45 2009 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Jul 20 12:38:55 2009 -0700"
      },
      "message": "Bluetooth at command tracking.\n"
    },
    {
      "commit": "a065b01904d5017232c9b51ccb174412ff57e138",
      "tree": "35e9fc7aaf8a0149374c5c3260106828b1991824",
      "parents": [
        "bec99bffeecacb1af603966391014895f9a16025",
        "841f13c8e9ff3f7695b6c18a8abcec3c947983ff"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Sun Jul 19 21:14:56 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Jul 19 21:14:56 2009 -0700"
      },
      "message": "am 841f13c8: * Reverted the change in PackageParser that I checked by accident * More surface view fix.   - correct event translation on surface view.   - use compatible window * removed FLAG_NO_COMPATIBILITY_SCALE. It was my misunderstanding of how SurfaceView works,\n\nMerge commit \u0027841f13c8e9ff3f7695b6c18a8abcec3c947983ff\u0027\n\n* commit \u0027841f13c8e9ff3f7695b6c18a8abcec3c947983ff\u0027:\n  * Reverted the change in PackageParser that I checked by accident\n"
    },
    {
      "commit": "841f13c8e9ff3f7695b6c18a8abcec3c947983ff",
      "tree": "9807b2d7f900cc841aac07eaa19b948a8189c381",
      "parents": [
        "5c536e9162721c460699a041959a0d67de1d20db"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Fri Jul 17 17:23:31 2009 -0700"
      },
      "committer": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Sun Jul 19 19:17:06 2009 -0700"
      },
      "message": "* Reverted the change in PackageParser that I checked by accident\n* More surface view fix.\n  - correct event translation on surface view.\n  - use compatible window\n* removed FLAG_NO_COMPATIBILITY_SCALE. It was my misunderstanding of how SurfaceView works, and this was not necessary.\n* Added compatibility related info to package dumpsys\n"
    },
    {
      "commit": "9fdbf6ae465f90b50ca5feb320215b98018c9937",
      "tree": "24c935f9f04685c8e768c5ffa7103e9995893782",
      "parents": [
        "09a903ab5b8d940605783ae4ee591c0f090a31d1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Jul 19 14:18:51 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Jul 19 14:18:51 2009 -0700"
      },
      "message": "Issue #1884058 (Need to only record frequency and duration for selected Google apps)\n\nQuick and dirty solution: a new --packages argument allows you to specify an explicit\nset of packages to include in the dump.  There is also now a new GServices setting\nthat can provide a value for it.\n"
    },
    {
      "commit": "0fde7de9d660e4acdb8404f954f75d8c331b5d45",
      "tree": "9be145df09757f1963f18ba465f15906840900fe",
      "parents": [
        "1007bf2e50ab6d8bfe96479c1e44d7a1f9cb4e7a",
        "54f09101381fa63dca35ae4ea0ba3802ee863236"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 17 13:58:40 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 17 13:58:40 2009 -0700"
      },
      "message": "am 54f09101: Merge change 7613 into donut\n\nMerge commit \u002754f09101381fa63dca35ae4ea0ba3802ee863236\u0027\n\n* commit \u002754f09101381fa63dca35ae4ea0ba3802ee863236\u0027:\n  * Use Fede In/Out animation if one of opening/closing apps is in compatibility mode.\n"
    },
    {
      "commit": "54f09101381fa63dca35ae4ea0ba3802ee863236",
      "tree": "b6507ea3f881ab9b46267674f31c25724cfd10e4",
      "parents": [
        "0e230c574bdbf096994f6b658a19c19585907f11",
        "5a2b91dc14e4c92e91c6abcc795f54ac98ee5866"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 17 09:54:53 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 17 09:54:53 2009 -0700"
      },
      "message": "Merge change 7613 into donut\n\n* changes:\n   * Use Fede In/Out animation if one of opening/closing apps is in compatibility mode.  * preserve compatibility window flag when the app updates window\u0027s layout params.  * Added assertion in DEFAULT_COMPATIBILITY_INFO object to prevent unintentional modification.  * A few minor updates     * log/dump message improvement     * Removed unnecessary method in FadeInOutAnimator     * Fixed 100 char issue in WindwoManagerServer.java\n"
    },
    {
      "commit": "5a2b91dc14e4c92e91c6abcc795f54ac98ee5866",
      "tree": "8659e295f4a39b9a85ec5177a5f397cc736b83b7",
      "parents": [
        "abccd7eaa52d0b8579ba3d1c954dfe7529945c0f"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Thu Jul 16 16:30:02 2009 -0700"
      },
      "committer": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Fri Jul 17 09:53:40 2009 -0700"
      },
      "message": " * Use Fede In/Out animation if one of opening/closing apps is in compatibility mode.\n * preserve compatibility window flag when the app updates window\u0027s layout params.\n * Added assertion in DEFAULT_COMPATIBILITY_INFO object to prevent unintentional modification.\n * A few minor updates\n    * log/dump message improvement\n    * Removed unnecessary method in FadeInOutAnimator\n    * Fixed 100 char issue in WindwoManagerServer.java\n"
    },
    {
      "commit": "9bacd43d4dfd56a68533b0db1e0b38d04eb43aec",
      "tree": "ba240edebafc77e90763d36322b39d00c7b49f87",
      "parents": [
        "2e661a7c03be9c596423b18243c8a4ee3a67b8fe",
        "86e9e55c54a3e07f6c9476d107db99131cefc5d7"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 17 08:40:41 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 17 08:40:41 2009 -0700"
      },
      "message": "Merge change 7625\n\n* changes:\n  Whitespace cleanup prior to real work.\n"
    },
    {
      "commit": "c185e7b9d8c8a84962dc80cb18478eaf263fc667",
      "tree": "8395730463fe9311c0c9bdf2318c38ca0cbdf53e",
      "parents": [
        "9e1bd09c15f1fe391856ed53ff352b27f5017628",
        "3735df20ae9994a759aa9464534d57eab4af4011"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 17 02:09:06 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 17 02:09:06 2009 -0700"
      },
      "message": "am 3735df20: Merge change 7545 into donut\n\nMerge commit \u00273735df20ae9994a759aa9464534d57eab4af4011\u0027\n\n* commit \u00273735df20ae9994a759aa9464534d57eab4af4011\u0027:\n  MountListener: When we connect to vold, explicitly mount external storage.\n"
    },
    {
      "commit": "3735df20ae9994a759aa9464534d57eab4af4011",
      "tree": "99ab831033eeec67eb373d790abf054447376f01",
      "parents": [
        "97a67cc281805566d429d4ca6570348fcf6dabd9",
        "d7c499513e0d7ad67b99de9032eedd6e0ad9e69c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 16 18:10:48 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 16 18:10:48 2009 -0700"
      },
      "message": "Merge change 7545 into donut\n\n* changes:\n  MountListener: When we connect to vold, explicitly mount external storage. Vold no longer mounts storage automatically so it doesnt interfere with the framework booting.\n"
    },
    {
      "commit": "265c9d2a147fba80629dda9d28ec9c68de24278e",
      "tree": "fde68a617b7eeab690c9762e255d97fd9354a201",
      "parents": [
        "b2536b0b5cbb263a0c48c6cf838b18d1f3563ab9",
        "fae76f5bdeed68efd85805db143b0426de92f7e0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 16 17:54:44 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 16 17:54:44 2009 -0700"
      },
      "message": "am fae76f5b: Fix issue #1985502: Sapphire (and any other device) reports that it has a hard keyboard\n\nMerge commit \u0027fae76f5bdeed68efd85805db143b0426de92f7e0\u0027\n\n* commit \u0027fae76f5bdeed68efd85805db143b0426de92f7e0\u0027:\n  Fix issue #1985502: Sapphire (and any other device) reports that it has a hard keyboard\n"
    },
    {
      "commit": "019de98b84b2be6fec2ede91017061784327ed7f",
      "tree": "ae3b2bc39f05eb1942eac4c4c6da6038b43cf88f",
      "parents": [
        "5b3f4578452647d867305dd7f7ccfec761a51b84",
        "eb09c6a07abf58b4da2c4baf3800a1f96e3b0731"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 16 17:54:31 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 16 17:54:31 2009 -0700"
      },
      "message": "am eb09c6a0: Merge change 7568 into donut\n\nMerge commit \u0027eb09c6a07abf58b4da2c4baf3800a1f96e3b0731\u0027\n\n* commit \u0027eb09c6a07abf58b4da2c4baf3800a1f96e3b0731\u0027:\n  Issue #1969025: need api for launching intent as if it were coming from another component\n"
    },
    {
      "commit": "86e9e55c54a3e07f6c9476d107db99131cefc5d7",
      "tree": "bc6d96d56b1757c486b63d2dc57755bb028189d3",
      "parents": [
        "a4170099b124a675a1c6a7045e750275d02cafbe"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Jul 16 17:21:39 2009 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Jul 16 17:31:20 2009 -0700"
      },
      "message": "Whitespace cleanup prior to real work.\n"
    },
    {
      "commit": "0a6a05cdb57561e2d932a62a018c83ca5667f4da",
      "tree": "5b117be19f983ac46114798b2fcee10fe2af5cf6",
      "parents": [
        "43463bfb69fc8fab33afbd5b5f7fe4b7b823a7a2",
        "10c59a365a095d322f29aa969a3d0f6bb3314972"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 16 15:38:41 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 16 15:38:41 2009 -0700"
      },
      "message": "Merge change 7598 into donut\n\n* changes:\n  DO NOT MERGE - Disable settings backup in Donut\n"
    },
    {
      "commit": "10c59a365a095d322f29aa969a3d0f6bb3314972",
      "tree": "0bfcdf002b47c23c501054d6a2590fa60eecbb23",
      "parents": [
        "58d19d1f6321161fdcd10140fe7b9d9053f80bd2"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 16 15:15:25 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 16 15:31:39 2009 -0700"
      },
      "message": "DO NOT MERGE - Disable settings backup in Donut\n"
    },
    {
      "commit": "43463bfb69fc8fab33afbd5b5f7fe4b7b823a7a2",
      "tree": "c6839f76cbd1dea8b0cdb3e71a2fab27ee0ba3a6",
      "parents": [
        "fae76f5bdeed68efd85805db143b0426de92f7e0",
        "0816e0ee6e9bfde8a8eeb9cef9252a2c7ddee384"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 16 15:18:38 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 16 15:18:38 2009 -0700"
      },
      "message": "Merge change 7572 into donut\n\n* changes:\n  Fix issue #1985606 (Boot crash when battery level of \u003c 15% is reported) in Donut\n"
    },
    {
      "commit": "fae76f5bdeed68efd85805db143b0426de92f7e0",
      "tree": "2eaf0bd9494f9fee6f15b6f73cbfa479a0448886",
      "parents": [
        "9ce081aa2493dc163a42decfd4e1756b5c55a834"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 16 13:41:23 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 16 15:15:30 2009 -0700"
      },
      "message": "Fix issue #1985502: Sapphire (and any other device) reports that it has a hard keyboard\n"
    },
    {
      "commit": "0816e0ee6e9bfde8a8eeb9cef9252a2c7ddee384",
      "tree": "4c156ffe4ec52d66f4b5355e52d71825db7bb596",
      "parents": [
        "3e1663a2539ff0b939193304cfb601f6b134af7d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 16 13:50:01 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 16 13:50:01 2009 -0700"
      },
      "message": "Fix issue #1985606 (Boot crash when battery level of \u003c 15% is reported) in Donut\n\nActually I don\u0027t think it is really an issue here, because the status bar doesn\u0027t\nstart itself up like this until after we have booted, but let\u0027s be safe.\n\nAnd DO NOT MERGE since this code has changed in master.\n"
    },
    {
      "commit": "2d91af06082d10759793a79d17afdfbdc65a37ed",
      "tree": "c5b48f042575e58dc49e254d1c1e62e008e5d527",
      "parents": [
        "3e1663a2539ff0b939193304cfb601f6b134af7d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 16 13:34:33 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 16 13:34:33 2009 -0700"
      },
      "message": "Issue #1969025: need api for launching intent as if it were coming from another component\n\nAnd now there is.\n"
    },
    {
      "commit": "93dc9fe96192dbe6f974ca5d1c7c1102eb4b325a",
      "tree": "eb926bc33abb5f0422f4b55609b3221bc11bf13d",
      "parents": [
        "46ba4bf25e261aaad6f8caae9a04df2c6fda5634"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Thu Jul 16 13:25:49 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Thu Jul 16 13:28:23 2009 -0700"
      },
      "message": "Send all battery broadcasts with REGISTERED_ONLY_BEFORE_BOOT\n\nThe \"low\" and \"okay\" broadcasts were not being sent with this flag, so that if\nthe device had booted in a low battery state, the battery service would crash\ndue to an illegal-state exception.\n\nThis fixes bug b/1985606\n"
    },
    {
      "commit": "d7c499513e0d7ad67b99de9032eedd6e0ad9e69c",
      "tree": "7b951b4e66c9183e6d874cdf5a943e69bd18c400",
      "parents": [
        "9b0a5e57db8d3b701919d64d26269a9fa656e3be"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Jul 16 11:42:32 2009 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Jul 16 11:42:32 2009 -0700"
      },
      "message": "MountListener: When we connect to vold, explicitly mount external storage.\nVold no longer mounts storage automatically so it doesnt interfere with\nthe framework booting.\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "1d9dfc5dcf459e85cffcb762ffdb9b9a4abbfd67",
      "tree": "64e951c1690a7859c67cbc3421ca41a326e3d744",
      "parents": [
        "d0c0e46a4408b22599bc588ea423d9102bcee6bf"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jul 16 11:11:18 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jul 16 11:51:42 2009 -0400"
      },
      "message": "EventHub: Add support for excluding devices from being opened by as a keyboard.\n\nThis will be used to avoid unnecessarily listening to data from sensors\nthat function as event devices.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "545f979bdb77b3763ed63b6b2408deb8e710c941",
      "tree": "39eb88aaa5390124fda2a388fc56449819e579ab",
      "parents": [
        "2d22760e380e983e0098c9728bf9b44febbed87e",
        "b9bae58ecba8a25cc54dfd119a9edbeed6f230de"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 15 18:14:33 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 15 18:14:33 2009 -0700"
      },
      "message": "am b9bae58e: Merge change 7402 into donut\n\nMerge commit \u0027b9bae58ecba8a25cc54dfd119a9edbeed6f230de\u0027\n\n* commit \u0027b9bae58ecba8a25cc54dfd119a9edbeed6f230de\u0027:\n  Added fade-in out animation for compatible apps\n"
    },
    {
      "commit": "e97e807a468bf64ad614fca77d350b016f3ce4a9",
      "tree": "f9d71e526edd99f1e601f5cb786891f70079714a",
      "parents": [
        "f3ea3e09684c82016e13140d68019b968c793190"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Wed Jul 15 16:45:50 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Wed Jul 15 16:50:24 2009 -0700"
      },
      "message": "The rest of ever-backed-up tracking\n\nWhen a package is uninstalled we now remove our notion of its having been backed\nup, thereby forcing a backup pass if it is reinstalled at some point in the\nfuture.  Removal from the log means rewriting it and doing an atomic rename to\nthe canonical version.  The temporary existence used during the rewrite is *not*\nwritten synchronously; there\u0027s no need and it keeps the load on the flash part\nmuch lower.\n\nBecause we might crash \u0026 reboot in the middle of the rewrite operation, there\u0027s\nnow code during init that sanity-checks the contents of the ever-backed-up log\nand ensures that it\u0027s in a coherent state.\n"
    },
    {
      "commit": "73e025296fd8712c775fe75c5f5d6981155b0867",
      "tree": "9902424ae1d32d335ff71a3f951fcdceca862e54",
      "parents": [
        "2debd56b5b24d7f4c385f64bfcaf23d00d4d986a"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Wed Jul 15 14:18:26 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Wed Jul 15 14:18:26 2009 -0700"
      },
      "message": "Ensure that everything gets backed up at least once\n\nWe now schedule a backup pass for any new application we see (at boot or\npackage-install time) for which we have never performed a backup.  The\nbookkeeping is a log file with the names of all the packages we\u0027ve successfully\ncompleted a backup pass on, maintained with synchronous journal-type behavior.\n\nAlso, make a bunch of private fields package-scoped to permit cheaper access\nfrom the various worker / binder threads that run under the Backup Manager\u0027s\naegis.\n"
    },
    {
      "commit": "b9bae58ecba8a25cc54dfd119a9edbeed6f230de",
      "tree": "38f46e1ee11ff7916023bf37abde97ff3eef6c12",
      "parents": [
        "c122824f48266c5df1b1b3a0a915619e5963ed7a",
        "0a5d2c469108ee8d45d55c10ad5ce5f746afaa1f"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 15 13:32:07 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 15 13:32:07 2009 -0700"
      },
      "message": "Merge change 7402 into donut\n\n* changes:\n  Added fade-in out animation for compatible apps  (This CL only add this when the app on the top is in compatibility mode for now. I need some help to do the same   when the closing app is in compatibility mode) Refactored DimAnimator\n"
    },
    {
      "commit": "be96b3a2aa7ec6d57ac038d4a5326fc168585ad6",
      "tree": "a87ab86c4392813791259784722d2b4deb7d8b69",
      "parents": [
        "37b939a63742c9a0cea4e6982bfb0581def45d6d"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Jul 14 19:49:27 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jul 15 11:43:06 2009 -0700"
      },
      "message": "Clamp app widget updates from updatePeriodMillis to a minimum of 30 minutes.\n"
    },
    {
      "commit": "0a5d2c469108ee8d45d55c10ad5ce5f746afaa1f",
      "tree": "ed6c27db4a8bab47a874d4c7a4398fbe4e5e8bc7",
      "parents": [
        "fa8904a683903524ed9749f296e80381e5820178"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Tue Jul 14 14:10:30 2009 -0700"
      },
      "committer": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Wed Jul 15 10:48:06 2009 -0700"
      },
      "message": "Added fade-in out animation for compatible apps\n (This CL only add this when the app on the top is in compatibility mode for now. I need some help to do the same\n  when the closing app is in compatibility mode)\nRefactored DimAnimator\n"
    },
    {
      "commit": "851da848e97d9a1ec23a89ff0e200c301f32d690",
      "tree": "f46d550afce1168b58cb2fd9a2bb5c0f6e14d608",
      "parents": [
        "ee5bbb7f6304c4930899d069c82fe02e49f050aa"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Jul 14 19:49:27 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jul 15 09:58:08 2009 -0700"
      },
      "message": "Clamp app widget updates from updatePeriodMillis to a minimum of 30 minutes.\n"
    },
    {
      "commit": "85d1f158267d64b5660e86fab0baf0432c1dcfbd",
      "tree": "05c7ccd6fe0f43616538366bd52973c4ad22dccd",
      "parents": [
        "1f872d4e8675b918dafdd730100df7e865d9ce0b",
        "e3dd884815b2aaeec4241859722ab603e0b1466b"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 15 09:05:23 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 15 09:05:23 2009 -0700"
      },
      "message": "Merge change 7353\n\n* changes:\n  Implement virtual button support.\n"
    },
    {
      "commit": "e3dd884815b2aaeec4241859722ab603e0b1466b",
      "tree": "ab595122c085720a236251afbfe78af248d87bc5",
      "parents": [
        "334a67740c9f7f35fa9ee93cf0f8051d41ce2d7a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 14 12:06:54 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 14 18:51:53 2009 -0700"
      },
      "message": "Implement virtual button support.\n\nThe kernel can now publish a property describing the layout of virtual\nhardware buttons on the touchscreen.  These outside of the display\narea (outside of the absolute x and y controller range the driver\nreports), and when the user presses on them a key event will be\ngenerated rather than a touch event.\n\nThis also includes a number of tweaks to the absolute controller\nprocessing to make things work better on the new screens.  For\nexample, we now reject down events outside of the display area.\n\nStill left to be done is the ability to cancel a key down event,\nso the user can slide up from the virtual keys to the touch screen\nwithout causing a virtual key to execute.\n"
    },
    {
      "commit": "e2a5385c70b48b57476a0c8c52bad4ea40398641",
      "tree": "3bce146e2dc81fe4cee2b5edf3e4b7ef27353feb",
      "parents": [
        "c047d68372ece9fa74446b13ea66bc12b060b882",
        "f77035193152a0edba5abeb33d9c1a5f446c7dd8"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jul 14 21:35:36 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jul 14 21:44:30 2009 -0400"
      },
      "message": "resolved conflicts for merge of f7703519 to master\n"
    },
    {
      "commit": "de83ab9fce4d02ddfde785e193bc787497d45138",
      "tree": "94a227fb89320799f7742323c27d0e7ec723db06",
      "parents": [
        "334a67740c9f7f35fa9ee93cf0f8051d41ce2d7a"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Tue Jul 14 15:38:07 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Tue Jul 14 15:38:07 2009 -0700"
      },
      "message": "Grant adb the BACKUP permission\n\nThis also means we should no longer do explicit calling-identity fiddling in\ndump(), relying instead on the usual permission enforcement mechanism to handle\nthings.\n"
    },
    {
      "commit": "f32be166d56302b59c242a1296a6b03862f3c061",
      "tree": "2f48021eea3a2f81b324f9b52f9bfbe9c243a908",
      "parents": [
        "b82759a051f55852dabe201ad3354ea9b7b2979d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jul 14 17:44:37 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jul 14 18:28:35 2009 -0400"
      },
      "message": "wifi: Disable RSSI polling when the screen is off.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "dace230043314d6fab1c5ced4b031eaccd814c25",
      "tree": "0c2fbb477f5d94641cee6aa892600b6d34bc96d3",
      "parents": [
        "ae4f31706fa0589ede00dfce344779a1570cd2f3",
        "b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 14 12:51:00 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 14 12:51:00 2009 -0700"
      },
      "message": "resolved conflicts for merge of b06ea706 to master\n"
    },
    {
      "commit": "b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0",
      "tree": "2fcae8f89195ef4b162627892aeca97f06d42ef7",
      "parents": [
        "3660c09500a4d01eb6a733b5f0b15545855f8fe8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jul 13 13:07:51 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 14 11:37:11 2009 -0700"
      },
      "message": "Add reporting of activity movement for search manager.\n\nThis adds a new API with the activity manager to find out about movement between\nactivities.  For my sanity, the old IActivityWatcher is now renamed to\nIActivityController, and the new activity movement interface is named\nIActivityWatcher.\n\nThis changes the search manager itself to use the new API to manage its state.\nNote that there are still problems when going back to the search dialog after\nit was hidden -- the suggestions window no longer appears until you explicitly\ndismiss and re-show it.\n"
    },
    {
      "commit": "433830452dac5dc353f1db7a80023e889d522a82",
      "tree": "ce8d67c18b2389419f36d474db481431501eeb0d",
      "parents": [
        "9ba6998b0bd2472d997787938b598d8f72853b01"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Mon Jul 13 15:17:13 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Mon Jul 13 15:17:13 2009 -0700"
      },
      "message": "Don\u0027t NPE if a restore session is requested for an invalid transport\n"
    },
    {
      "commit": "9ba6998b0bd2472d997787938b598d8f72853b01",
      "tree": "23a030d3e6662556c5c991be31fce768084e308c",
      "parents": [
        "02035132ffb6a37d8ec573df7199ed055e733bd0",
        "ea5c044412f6853d686e93b8bef07f4729b6ad26"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Jul 13 11:20:29 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jul 13 11:20:29 2009 -0700"
      },
      "message": "am ea5c0444: When apps switch between system and data partition the code and resource paths should also be updated based on which version is being picked up. update the code and resource paths when a path change is detected\n\nMerge commit \u0027ea5c044412f6853d686e93b8bef07f4729b6ad26\u0027\n\n* commit \u0027ea5c044412f6853d686e93b8bef07f4729b6ad26\u0027:\n  When apps switch between system and data partition the code and\n"
    },
    {
      "commit": "ea5c044412f6853d686e93b8bef07f4729b6ad26",
      "tree": "e3f2353a4290f3527dac88176d97f31833d2fa27",
      "parents": [
        "c4ca420625183a8efa619e06287b47f3d2e72283"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Jul 13 10:36:15 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Jul 13 10:57:50 2009 -0700"
      },
      "message": "When apps switch between system and data partition the code and\nresource paths should also be updated based on which version\nis being picked up. update the code and resource paths when a path change\nis detected\n"
    },
    {
      "commit": "48e61cf545c59dd269a4831e52803d132c0ca09a",
      "tree": "b0b0d699c99b330b38dba912f13cb2533a17f2f3",
      "parents": [
        "9cf012a9fcac9b651dd0799240a96d454de49ba2",
        "54a26bc85f4fe972e929e42b986c65a710a229b3"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 10 16:46:26 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 10 16:46:26 2009 -0700"
      },
      "message": "Merge change 6841\n\n* changes:\n  resolved conflicts for merge of 889c2d37 to master\n"
    },
    {
      "commit": "54a26bc85f4fe972e929e42b986c65a710a229b3",
      "tree": "ac71617b901f2acc11f9bcba8ad09c8c6f78adfc",
      "parents": [
        "9629e04d7a5af62b58ebb6364b53f328d90bfc0e",
        "889c2d37f784301ea968e8a44d450ae1d8717a18"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 10 16:05:59 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 10 16:05:59 2009 -0700"
      },
      "message": "resolved conflicts for merge of 889c2d37 to master\n"
    },
    {
      "commit": "0900f3657664d9046e6723825fd32b244eef2b6c",
      "tree": "770dae272d11945320396c00b5cd0df763e18698",
      "parents": [
        "f1a43bbc32ad4450e4af3a5488f889ce095cf503"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jul 10 17:24:07 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jul 10 17:24:07 2009 -0400"
      },
      "message": "wifi: Keep the WLAN network interface up whenever wifi is enabled.\n\nWe now only bring it down briefly and bring it back up again when\nwe want to reset the interface.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "889c2d37f784301ea968e8a44d450ae1d8717a18",
      "tree": "aaa0fed4bc81e5b3a6934ce7e43993fd7eb52476",
      "parents": [
        "ad94a98364c02be7a0c5317cad9d57ecec964f80",
        "854060af30f928c0a65591e9c8314ae17056e6b8"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 10 13:42:51 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 10 13:42:51 2009 -0700"
      },
      "message": "Merge change 6718 into donut\n\n* changes:\n  Fix bug #1873249i: Apps can DoS/brick device\n"
    },
    {
      "commit": "622f82a0c78aa69d9b3b29ea0617cb8002b57c16",
      "tree": "009f53795947f80cf804efdf2cabb9526ba07c7e",
      "parents": [
        "2eedb2515b733aaba0a92944def8156ef379e0da"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jul 09 23:39:01 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jul 09 23:39:01 2009 -0400"
      },
      "message": "WifiService: Remove hidden AP counting logic for active/passive scanning mode.\n\nApparently this code was not 100% correct, and now the Wifi driver is responsible\nfor setting the scan mode to active for hidden networks, so this is no longer needed.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "854060af30f928c0a65591e9c8314ae17056e6b8",
      "tree": "90922c34cec925074bb62a3b79ac65af5527c02a",
      "parents": [
        "d1e5e3ffc22478bad8525dec4f1c6d57fe0ad368"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 09 18:14:31 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 09 18:14:31 2009 -0700"
      },
      "message": "Fix bug #1873249i: Apps can DoS/brick device\n\nThis is the problem where various things are listening for broadcasts\n(such as battery status, PIN/PUK/Network) that an application can send\nto cause harm to the system.\n\nSolving this is tricky because many of these broadcasts are sticky,\nand I have never figured out how to do permissions with sticky\nbroadcasts in a sane way.  So instead, I am going to punt on the\ngeneral problem and just brute force it:\n\nThere is new a way for system components to declare specific\nbroadcast actions to be protected, which means that only the system\nand the phone can send them.  This is good enough for now.  None\nof it is exposed in the public API so we can make something a little\nless stupid in the future if we ever need to.\n"
    },
    {
      "commit": "6811355d9683412cb3651e75c59c3256ceaddcec",
      "tree": "a69b7952f5263746a90772bb2b2adaf63a33b530",
      "parents": [
        "58e8131631b4598d445303183ee6ea80b7e63038",
        "463aacfbd220c9ef2f6ed915d54092289fdac05b"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 09 14:27:38 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jul 09 14:27:38 2009 -0700"
      },
      "message": "am 463aacfb: Merge change 6661 into donut\n\nMerge commit \u0027463aacfbd220c9ef2f6ed915d54092289fdac05b\u0027\n\n* commit \u0027463aacfbd220c9ef2f6ed915d54092289fdac05b\u0027:\n  wifi: WifiManager.startScan() will now do passive scans by default.\n"
    },
    {
      "commit": "a5ec95cdb1a7d2024249277dff1f99d0046c9b56",
      "tree": "5bf844072a7e160dede6dd2e68bce8c3349e355d",
      "parents": [
        "d1e5e3ffc22478bad8525dec4f1c6d57fe0ad368"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jul 08 17:11:17 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jul 09 16:54:39 2009 -0400"
      },
      "message": "wifi: WifiManager.startScan() will now do passive scans by default.\n\nActive scans will only happen if a hidden AP is in use, or if the new method\nWifiManager.startScanActive() is called.\nThis fixes some audio playback problems with bluetooth A2DP.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "c2efaa4ab0ba9e7fa743862aef10eaf63b306cdb",
      "tree": "3e3438437826b174e8f0de57ebfc37831f971fca",
      "parents": [
        "8b7bc669cef167f8b9541a2ffa08c2fa9a484646",
        "ed7603779282d416356ce3c9739056d632307275"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jul 09 12:50:37 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jul 09 12:50:37 2009 -0700"
      },
      "message": "am ed760377: Add a persistent system property to disable the adb notification.\n\nMerge commit \u0027ed7603779282d416356ce3c9739056d632307275\u0027\n\n* commit \u0027ed7603779282d416356ce3c9739056d632307275\u0027:\n  Add a persistent system property to disable the adb notification.\n"
    },
    {
      "commit": "e3f054411b9f025848f68389c4e2c325e76b3826",
      "tree": "be0af2b731613faaba3595c306d40027ea49fa3c",
      "parents": [
        "3ff23c46978adfb691507baa3d2bf04b3f5ca001",
        "2af632f87d487deaa5b2eb71341cfc4f0c0d1173"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 09 12:15:46 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 09 12:15:46 2009 -0700"
      },
      "message": "resolved conflicts for merge of 2af632f8 to master\n"
    },
    {
      "commit": "ed7603779282d416356ce3c9739056d632307275",
      "tree": "576f0a7007db402627e90d364a96768c78e048da",
      "parents": [
        "b45451f6dac5b32bcd8c52352a9697854eab40d0"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jul 09 07:07:27 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jul 09 14:24:42 2009 -0400"
      },
      "message": "Add a persistent system property to disable the adb notification.\n\nSetting to persist.adb.notify to 0 will disable the ad notification.\nYou need to be root to set this, so this allows disabling the notification\nonly on eng and userdebug builds.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "2af632f87d487deaa5b2eb71341cfc4f0c0d1173",
      "tree": "cc59b86316dbf64abb3f7d183ee031fdadd3fe42",
      "parents": [
        "4af0a709ee08e8ae43f49d8fc5c9cae142aaf2c4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 08 14:56:37 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 08 18:08:13 2009 -0700"
      },
      "message": "Add new \u003cpath-permission tag for use by global search.\n\nThis adds a new \u003cpath-permission\u003e tag you can use inside of a \u003cprovide\u003e\nto define additional path-based permissions that broaden the global\nread and write permissions.  The initial use for this will be global\nsearch, so that a content provider that is protected by permissions\ncan make a part of itself available to global search under another\npermission.  This addresses the issue with global search not being able\nto request permissions it would need of providers it doesn\u0027t know\nabout at build time.\n"
    },
    {
      "commit": "afefa49abce3a1f8dd64644009f73aaeea86d7e0",
      "tree": "297622d375da03355ab1065ae84c7457f0d11615",
      "parents": [
        "706f42c4f896a6ff43da3ca64af59824d2c50b67",
        "4af0a709ee08e8ae43f49d8fc5c9cae142aaf2c4"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 08 17:30:05 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jul 08 17:30:05 2009 -0700"
      },
      "message": "am 4af0a709: Merge change 6555 into donut\n\nMerge commit \u00274af0a709ee08e8ae43f49d8fc5c9cae142aaf2c4\u0027\n\n* commit \u00274af0a709ee08e8ae43f49d8fc5c9cae142aaf2c4\u0027:\n  Make it so the notification manager doesn\u0027t mysteriously\n"
    },
    {
      "commit": "4af0a709ee08e8ae43f49d8fc5c9cae142aaf2c4",
      "tree": "e02af0d2460d4de62bf3246844e6a8653429c25d",
      "parents": [
        "7dd042e32ee1e59227aafc4fbbc886c8ea0d0df9",
        "302754801cacf19a99c7fa1b88a195bb8f2b0915"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 08 17:09:54 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 08 17:09:54 2009 -0700"
      },
      "message": "Merge change 6555 into donut\n\n* changes:\n  Make it so the notification manager doesn\u0027t mysteriously beep during boot.\n"
    },
    {
      "commit": "302754801cacf19a99c7fa1b88a195bb8f2b0915",
      "tree": "2a89784a480c3df25bdf9bf3886b8222e92925e0",
      "parents": [
        "d6fe243c1c6d5e994cacede8110eef736767bd7f"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jul 08 17:09:14 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jul 08 17:09:14 2009 -0700"
      },
      "message": "Make it so the notification manager doesn\u0027t mysteriously\nbeep during boot.\n"
    },
    {
      "commit": "c3f60ddaeadb69c1e85198e609e575f55ecc28ac",
      "tree": "a865ed6aed999a7ab3076478ea079e447439ce23",
      "parents": [
        "2291616d846dcc7ed81ac534ff45962e6056ad12",
        "1ecf5d28817f0a051e77488380dcd5bc622ea169"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Wed Jul 08 15:59:16 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jul 08 15:59:16 2009 -0700"
      },
      "message": "am 1ecf5d28: Re-implementation of large screen support using window manager.  * added background filler surface to fill the outer rim. Using the same layer as dim surface because    they never co-exists (in the same window)  * clean up the obsolete code in Compatibilt\n\nMerge commit \u00271ecf5d28817f0a051e77488380dcd5bc622ea169\u0027\n\n* commit \u00271ecf5d28817f0a051e77488380dcd5bc622ea169\u0027:\n  Re-implementation of large screen support using window manager.\n"
    },
    {
      "commit": "1ecf5d28817f0a051e77488380dcd5bc622ea169",
      "tree": "c40b5f6e9d5d1ef01d90a6d476760af465737a97",
      "parents": [
        "7761920b2a2efc76d08c63d5be1b3ce829746e4b"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Mon Jul 06 17:20:38 2009 -0700"
      },
      "committer": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Wed Jul 08 15:21:30 2009 -0700"
      },
      "message": "Re-implementation of large screen support using window manager.\n * added background filler surface to fill the outer rim. Using the same layer as dim surface because\n   they never co-exists (in the same window)\n * clean up the obsolete code in CompatibiltyMode/ViewRoot for support large screen support.\n"
    },
    {
      "commit": "61e1d0021a98325c2f724ffe02f0171870d7c66d",
      "tree": "b4f653966d3888137f73e84279156edc12b95b0f",
      "parents": [
        "cd964761dc4daf61f35bee67c9c8d1e14509af55",
        "1bd3e0fb7e87f1daa983d06bc396393a788181b0"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 08 13:55:58 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jul 08 13:55:58 2009 -0700"
      },
      "message": "am 1bd3e0fb: Merge change 6504 into donut\n\nMerge commit \u00271bd3e0fb7e87f1daa983d06bc396393a788181b0\u0027\n\n* commit \u00271bd3e0fb7e87f1daa983d06bc396393a788181b0\u0027:\n  Don\u0027t invoke the transport if doBackup supplied no data\n"
    },
    {
      "commit": "b407f22c9d960b48ed49ed2a1cee0042d9f2a92e",
      "tree": "710029aab33400cee638316fdf2de016e45c6b0f",
      "parents": [
        "f9c228a51fba54e80826fb6aa5d53f43a2e86042"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jul 08 13:48:56 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jul 08 13:52:50 2009 -0700"
      },
      "message": "Don\u0027t invoke the transport if doBackup supplied no data\n\nIf there\u0027s no data to be backed up, we no longer invoke the transport.  We *DO*\nstill require that the agent have emitted a valid new state file, however.\n\nThis change also finally uncomments the code that removes the backup data file\nafter it has been sent to the transport, so there will be no more\npackagename.data files lying around in the staging area.\n"
    },
    {
      "commit": "9046fff2017fab6a85fb24a76d82a67b181300be",
      "tree": "5ca779ef509ea92dc4213247f3a188e17bd7d20f",
      "parents": [
        "8091a0f3ea0f80164546da9f8cf15ea85d1da721",
        "7b68a408e9261a170c5ab9ae7ef999cc1d92ae0e"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 07 16:38:59 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jul 07 16:38:59 2009 -0700"
      },
      "message": "am 7b68a408: Merge change 6426 into donut\n\nMerge commit \u00277b68a408e9261a170c5ab9ae7ef999cc1d92ae0e\u0027\n\n* commit \u00277b68a408e9261a170c5ab9ae7ef999cc1d92ae0e\u0027:\n  Remove a lot of debug-log verbosity\n"
    },
    {
      "commit": "22b60d8fd055171d7abe6be60a24ea8ac1af25b0",
      "tree": "06cd25b647183db47718aab4a5ac08396ba30c5e",
      "parents": [
        "a7de3845507b7bf57a2c7b26fb08f05b193697d6"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jul 07 16:36:02 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jul 07 16:36:02 2009 -0700"
      },
      "message": "Remove a lot of debug-log verbosity\n\nWe now log in dataChanged() only when an app is added to the backup set (and\n*not* if it redundantly asks to be added after it\u0027s already there) and on error.\n"
    },
    {
      "commit": "ea9f8a4d8842160e9126b37dce8b32e8ffa1f926",
      "tree": "0d10f85b6c3a2415daa5714a5115608c858b2751",
      "parents": [
        "51759015a39c15810ac4581359c6d72879b8155f",
        "a7de3845507b7bf57a2c7b26fb08f05b193697d6"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jul 07 14:53:56 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jul 07 14:53:56 2009 -0700"
      },
      "message": "am a7de3845: Only write to the pending-backup journal when necessary\n\nMerge commit \u0027a7de3845507b7bf57a2c7b26fb08f05b193697d6\u0027\n\n* commit \u0027a7de3845507b7bf57a2c7b26fb08f05b193697d6\u0027:\n  Only write to the pending-backup journal when necessary\n"
    },
    {
      "commit": "a7de3845507b7bf57a2c7b26fb08f05b193697d6",
      "tree": "7c9f8b7bb92e4db45255638fbf96401f9c4b0ac1",
      "parents": [
        "c4cf22e82ba8ec4eec7051ae3a8eb397ded578d1"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jul 07 14:50:26 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jul 07 14:50:26 2009 -0700"
      },
      "message": "Only write to the pending-backup journal when necessary\n\nWe now only commit to the pending-backup journal on disk the first time that a\ngiven package is added to the backup set.  This avoids a lot of write thrashing\nof the disk, particularly since Settings tends to call dataChanged() a great\nmany times during boot, while the Settings UI is in use, etc.\n"
    },
    {
      "commit": "c5ae493b846114adf3a06844a11bbda985f37583",
      "tree": "900ed02626357ea058eafee846ae5eeab13aa6fb",
      "parents": [
        "1256f01996cc45cc840258b80774f7b1190e7b93",
        "c4cf22e82ba8ec4eec7051ae3a8eb397ded578d1"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 07 14:31:19 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jul 07 14:31:19 2009 -0700"
      },
      "message": "am c4cf22e8: Merge change 6403 into donut\n\nMerge commit \u0027c4cf22e82ba8ec4eec7051ae3a8eb397ded578d1\u0027\n\n* commit \u0027c4cf22e82ba8ec4eec7051ae3a8eb397ded578d1\u0027:\n  Fix the metadata-available test during restore\n"
    },
    {
      "commit": "3d7cd13e772bde1c4a72fa4e740baa03cb042e6c",
      "tree": "528066c5c4eb44a792a009ad22425200141fe041",
      "parents": [
        "a5188a09bd20c376b4f0645b0df4c52f8e114e21"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jul 07 14:23:07 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jul 07 14:23:07 2009 -0700"
      },
      "message": "Fix the metadata-available test during restore\n"
    },
    {
      "commit": "f93a7c88e52a990f5cc408f54093deb6efa183da",
      "tree": "474828aad0b7850b69e0ebee9d78dad93dfacd60",
      "parents": [
        "ca2bc75aac473b0b71f1e95c4527d862746b3efd",
        "c1c44a5614c4ab7aaf5315f92dc1c8f6420c8f1c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 07 11:25:26 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jul 07 11:25:26 2009 -0700"
      },
      "message": "am c1c44a56: Merge change 6363 into donut\n\nMerge commit \u0027c1c44a5614c4ab7aaf5315f92dc1c8f6420c8f1c\u0027\n\n* commit \u0027c1c44a5614c4ab7aaf5315f92dc1c8f6420c8f1c\u0027:\n  LocationManagerService: Use Context.checkCallingOrSelfPermission for permission checks\n"
    },
    {
      "commit": "c1c44a5614c4ab7aaf5315f92dc1c8f6420c8f1c",
      "tree": "b32dc27028b535b3123bb55f3c90b4a2b0913774",
      "parents": [
        "0310f9aa21ed8714acbe56afea061596fb8f1ac4",
        "b7e9922722f50dbf1911eb12e3ee8023c1450086"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 07 11:02:04 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 07 11:02:04 2009 -0700"
      },
      "message": "Merge change 6363 into donut\n\n* changes:\n  LocationManagerService: Use Context.checkCallingOrSelfPermission for permission checks\n"
    },
    {
      "commit": "856d080ae52edc6ceaebf2047f8fe08fb159f9c2",
      "tree": "cf5970ff9b30beda298417b65a850e30e4529620",
      "parents": [
        "0f653aeecaad6c184a8e6680d7470358d4e24f64",
        "0310f9aa21ed8714acbe56afea061596fb8f1ac4"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Jul 07 10:52:51 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jul 07 10:52:51 2009 -0700"
      },
      "message": "am 0310f9aa: WifiService: Fix build (missing import)\n\nMerge commit \u00270310f9aa21ed8714acbe56afea061596fb8f1ac4\u0027\n\n* commit \u00270310f9aa21ed8714acbe56afea061596fb8f1ac4\u0027:\n  WifiService: Fix build (missing import)\n"
    },
    {
      "commit": "0310f9aa21ed8714acbe56afea061596fb8f1ac4",
      "tree": "e20a76cde0ca5c9e4333695ca794bcd6ea980b6e",
      "parents": [
        "b61479ae868c9f2b887b2992b133a96d9ea1a193"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Jul 07 10:49:47 2009 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Jul 07 10:50:39 2009 -0700"
      },
      "message": "WifiService: Fix build (missing import)\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "a15dd950e5d08fb015d4e57492fa68aa213eead7",
      "tree": "41a5f28926a30340de89c47c088e962c4dc4985a",
      "parents": [
        "fcc5be99e0497f25a12e77622c27b4de30e45b3d",
        "fa6c7111fe58e09a92741c7655221c3629d3220e"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Jul 07 10:19:56 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jul 07 10:19:56 2009 -0700"
      },
      "message": "am fa6c7111: WifiService: use wifi association state to determine if we should suspend wifi instead of the existance of an IP address.\n\nMerge commit \u0027fa6c7111fe58e09a92741c7655221c3629d3220e\u0027\n\n* commit \u0027fa6c7111fe58e09a92741c7655221c3629d3220e\u0027:\n  WifiService: use wifi association state to determine if we should suspend wifi instead of\n"
    },
    {
      "commit": "b7e9922722f50dbf1911eb12e3ee8023c1450086",
      "tree": "2744b72647e33153a5de2619cee5e29dd178c4a9",
      "parents": [
        "617750604c69e6068f68266d0e30324273aa990e"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jul 07 13:18:21 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jul 07 13:18:21 2009 -0400"
      },
      "message": "LocationManagerService: Use Context.checkCallingOrSelfPermission for permission checks\n\nso other services running in the system process can use the location manager.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "fa6c7111fe58e09a92741c7655221c3629d3220e",
      "tree": "6db4f252f5e22c8820aff82c149860f224b50f8e",
      "parents": [
        "88e209dcf8c2ebddda5c272f46d1bd5478bc639c"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Jul 07 09:34:44 2009 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Jul 07 09:41:39 2009 -0700"
      },
      "message": "WifiService: use wifi association state to determine if we should suspend wifi instead of\nthe existance of an IP address.\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "48f7d85d7b6be25f17f269adc7794e53121bbe2c",
      "tree": "e3665809e1af17187b1c9e8a59a6a6ce5d0972c0",
      "parents": [
        "4185da518961962b7a59d744827c3f5fdd1d654c",
        "dbee95cacff9d2faf30638e64abe26fbeb128787"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 06 18:26:42 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jul 06 18:26:42 2009 -0700"
      },
      "message": "am dbee95ca: Merge change 6317 into donut\n\nMerge commit \u0027dbee95cacff9d2faf30638e64abe26fbeb128787\u0027\n\n* commit \u0027dbee95cacff9d2faf30638e64abe26fbeb128787\u0027:\n  Make enable/provisioning of the backup service a two-step process\n"
    },
    {
      "commit": "8031a3df2fd0c38d85eeae39c1ea2c83e813f4ff",
      "tree": "4969dcee824e9a26164cda1eab4138dd3281f98f",
      "parents": [
        "8d07c0684619b6c30f525d25d92835254a7220a9"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jul 06 16:36:05 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jul 06 17:43:03 2009 -0700"
      },
      "message": "Make enable/provisioning of the backup service a two-step process\n\nThis CL adds the concept of \u0027provisioned\u0027 to the backup manager.  No backups\nwill be scheduled until the user has indicated that backups are to be enabled\n*and* has clicked all the way through the setup wizard.\n\nWhen the user first turns on the backup system, the delay before the initial\nbackup pass is different from the periodic backup interval.  Currently that\ninitial delay is 12 hours.  The intent here is to guess at a less-active time\nfor performing that first backup pass.\n\nNOTE: currently the backup service defaults to \u0027provisioned\u0027.  Once the real\ncode goes live in Setup Wizard, this will be changed to default to\nnot-provisioned until the user has confirmed all the relevant UI.\n"
    },
    {
      "commit": "a370b8488303b84412c5552a89fea84aaf0a15d2",
      "tree": "4c34798aabf279777cd7d566c1623bf734330249",
      "parents": [
        "5af08490c54b5d47ee5ffb0ac3234c720a6710a8",
        "8d07c0684619b6c30f525d25d92835254a7220a9"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 06 16:00:27 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jul 06 16:00:27 2009 -0700"
      },
      "message": "am 8d07c068: Merge change 6305 into donut\n\nMerge commit \u00278d07c0684619b6c30f525d25d92835254a7220a9\u0027\n\n* commit \u00278d07c0684619b6c30f525d25d92835254a7220a9\u0027:\n  Fix up permissions for \u0027dumpsys backup\u0027\n"
    },
    {
      "commit": "34ebd0e1bbd54def9fea020f4a9083382160fd3d",
      "tree": "73f0fc81bcd4443058132a6e152083ac282fcddc",
      "parents": [
        "991eec03a73f8803d0f8c80b418480ea25293cfb"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jul 06 15:44:54 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jul 06 15:44:54 2009 -0700"
      },
      "message": "Fix up permissions for \u0027dumpsys backup\u0027\n"
    },
    {
      "commit": "47873e55268eb636b2f9ada0266a0b60f52ca365",
      "tree": "daf6f1253b671a4c84bc7399223e0be2638b1b08",
      "parents": [
        "78d0fdfad1437b2382e8803fa396fbe0f38a214f"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Jul 02 12:05:32 2009 -0700"
      },
      "committer": {
        "name": "-b master",
        "email": "yamasani@google.com",
        "time": "Mon Jul 06 14:28:06 2009 -0700"
      },
      "message": "Backup Wifi supplicant data.\n\nWifiService requests a backup when it writes wifi configuration to disk.\nBackup the wifi supplicant file when settings provider runs backup.\n"
    },
    {
      "commit": "48c3064718cea308a32274773f46563932111078",
      "tree": "e56d6d012e31c891231cc6450541fce67c508e55",
      "parents": [
        "1d6ec76f0808c082fbffbad21fecbb612eb5c76f",
        "0d725f7d5a7efd9dc63f6ddb67a619d659bb4428"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 06 12:43:28 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jul 06 12:43:28 2009 -0700"
      },
      "message": "am 0d725f7d: Merge change 6162 into donut\n\nMerge commit \u00270d725f7d5a7efd9dc63f6ddb67a619d659bb4428\u0027\n\n* commit \u00270d725f7d5a7efd9dc63f6ddb67a619d659bb4428\u0027:\n  Hold a wakelock during backup/restore/clear operations\n"
    },
    {
      "commit": "0d725f7d5a7efd9dc63f6ddb67a619d659bb4428",
      "tree": "e042ffc02a4c383fd7c2378f003482b70bd53b22",
      "parents": [
        "9479a516cffd990ed3dfc209c5e768f4fb447812",
        "b6787f2ee535338bb96df0ab8ad70a9f82760a25"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 06 11:54:34 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 06 11:54:34 2009 -0700"
      },
      "message": "Merge change 6162 into donut\n\n* changes:\n  Hold a wakelock during backup/restore/clear operations\n"
    },
    {
      "commit": "b6787f2ee535338bb96df0ab8ad70a9f82760a25",
      "tree": "3ee86e968edcbce4bc241e19c882cc13f3e89d07",
      "parents": [
        "7e8cbfc2bc3ea2334c38db7fd2b6a1e17eefcac6"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 02 17:40:45 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jul 06 11:49:49 2009 -0700"
      },
      "message": "Hold a wakelock during backup/restore/clear operations\n\nWe need to make sure we stay alive for the duration of a backup or (especially)\nrestore operation.  The existing Handler-based timing system was simply not\nproperly functional, so it\u0027s been retooled to use a repeating alarm delivering a\nbroastcast PendingIntent to our registered receiver.\n\nWe acquire a partial wake lock in the broadcast receiver [i.e. while the Alarm\nManager is holding one for the duration of broadcast delivery] and pass the\nwakelock object to the backup thread, which eventually releases it when it\u0027s\nfinsihed operations.  A similar pattern is used for the threads handling restore\nand clear.\n"
    },
    {
      "commit": "58c714c41ac3799b0b408affd9804056070d358c",
      "tree": "24bed578ce9894c06b791261fce76e33451f4600",
      "parents": [
        "f6a6cff234e164874233de3618ab98b4fb00efb7",
        "699ca3f2518360ea3250ff5a0e5d39e122c64a91"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Mon Jul 06 11:22:18 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jul 06 11:22:18 2009 -0700"
      },
      "message": "am 699ca3f2: Add password field for WiFi configuration.\n\nMerge commit \u0027699ca3f2518360ea3250ff5a0e5d39e122c64a91\u0027\n\n* commit \u0027699ca3f2518360ea3250ff5a0e5d39e122c64a91\u0027:\n  Add password field for WiFi configuration.\n"
    },
    {
      "commit": "4753ff4466c0d90fb6adb89296da87e756272db9",
      "tree": "b95cf706ffec1ccbe71f7d3f9d9802958b437e42",
      "parents": [
        "80f4913d769babb89f5c69e1d80037394d3b25e2",
        "7e8cbfc2bc3ea2334c38db7fd2b6a1e17eefcac6"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 06 11:17:12 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jul 06 11:17:12 2009 -0700"
      },
      "message": "am 7e8cbfc2: Merge change 6143 into donut\n\nMerge commit \u00277e8cbfc2bc3ea2334c38db7fd2b6a1e17eefcac6\u0027\n\n* commit \u00277e8cbfc2bc3ea2334c38db7fd2b6a1e17eefcac6\u0027:\n  Fix the simulator.\n"
    },
    {
      "commit": "3d204326490e76b2a9a92225ed5cb1a3fd2ffc63",
      "tree": "8ae918d23f4e0845d380ffd9103cbfbc92ccc1bf",
      "parents": [
        "85c216794d2643d0364611e4dd1b31254c13f005",
        "e15df4017c3625de700e9f9953073f38898bbc89"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 06 11:16:58 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jul 06 11:16:58 2009 -0700"
      },
      "message": "am e15df401: Merge change 6132 into donut\n\nMerge commit \u0027e15df4017c3625de700e9f9953073f38898bbc89\u0027\n\n* commit \u0027e15df4017c3625de700e9f9953073f38898bbc89\u0027:\n  If we can\u0027t get the restore set\u0027s metadata, don\u0027t continue\n"
    }
  ],
  "next": "3042bb623870b877e18dabb07c31b5b8f45afa1d"
}
