)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "3042bb623870b877e18dabb07c31b5b8f45afa1d",
      "tree": "5f99e8c9e8221cf4027ec6546b72a0f220a4ce53",
      "parents": [
        "f77b4112ea4bf95b902d8ddb53bb7b1ad352bcec",
        "9701b3d594868bd6750d5887af560c6295ea091b"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 06 11:02:59 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jul 06 11:02:59 2009 -0700"
      },
      "message": "am 9701b3d5: Merge change 5979 into donut\n\nMerge commit \u00279701b3d594868bd6750d5887af560c6295ea091b\u0027\n\n* commit \u00279701b3d594868bd6750d5887af560c6295ea091b\u0027:\n  Remove the constraint to assign new uid when code path changes for system packages\n"
    },
    {
      "commit": "f77b4112ea4bf95b902d8ddb53bb7b1ad352bcec",
      "tree": "e158425d39d7af2ca09fe405820d0a9d23a21dcf",
      "parents": [
        "0a04ca7c97a82ad7afa8fa9d6c3a93964a588c07",
        "4e3e50cfa7cf02270ed0dd454d5c51bf7065bd14"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jul 06 11:02:55 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jul 06 11:02:55 2009 -0700"
      },
      "message": "am 4e3e50cf: Clean up the last two literal permission string usages\n\nMerge commit \u00274e3e50cfa7cf02270ed0dd454d5c51bf7065bd14\u0027\n\n* commit \u00274e3e50cfa7cf02270ed0dd454d5c51bf7065bd14\u0027:\n  Clean up the last two literal permission string usages\n"
    },
    {
      "commit": "0a04ca7c97a82ad7afa8fa9d6c3a93964a588c07",
      "tree": "cc0766c0e07ad4c5efd1d9a30e0078a67ac46daf",
      "parents": [
        "6375cf73a6030d5b5606b3ae5d3236c1b86d5bd8",
        "7c5ae202c53be1ab4881a6811aa5bd091c3aef10"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 06 11:02:50 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jul 06 11:02:50 2009 -0700"
      },
      "message": "am 7c5ae202: Merge change 6104 into donut\n\nMerge commit \u00277c5ae202c53be1ab4881a6811aa5bd091c3aef10\u0027\n\n* commit \u00277c5ae202c53be1ab4881a6811aa5bd091c3aef10\u0027:\n  Add a \"clear backed-up data\" method to the backup mechanism\n"
    },
    {
      "commit": "18dd5f0d25f1004e123dc265dc498a8bf8897af9",
      "tree": "89e57901a4e7e67871d529fdb9b2febef201c456",
      "parents": [
        "f8e3ba5bfad14f3037d72eb6243258c13169cbd8"
      ],
      "author": {
        "name": "Patrick Scott",
        "email": "phanna@android.com",
        "time": "Thu Jul 02 11:31:12 2009 -0400"
      },
      "committer": {
        "name": "Patrick Scott",
        "email": "phanna@android.com",
        "time": "Mon Jul 06 08:31:33 2009 -0400"
      },
      "message": "Improve the Vibrator service by keeping track of multiple vibration requests.\n\nThere are 2 types of vibrations: simple and repeated. Simple vibrations run for\na given length of time while repeated patterns run until canceled or the calling\nprocess dies.\n\nIf a vibration is currently running and another request is issued, the newer\nrequest always takes precedence unless the current vibration is a simple one and\nthe time left is longer than the new request.\n\nIf a repeating vibration is running and a new request overrides that vibration,\nthe current vibration is pushed onto a stack. Once the new vibration completes,\nthe previous vibration resumes. IBinder tokens are used to identify Vibration\nrequests which means that multiple calls to Vibrator.vibrate with the same\nVibrator object will override previous vibrations on that object.\n"
    },
    {
      "commit": "699ca3f2518360ea3250ff5a0e5d39e122c64a91",
      "tree": "dcdeefe39f5cb52cc02d63039be4c9a4427eb9bc",
      "parents": [
        "4492bcb851f4ee862a446664eb9045045ebb7b5e"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Sat Jul 04 22:19:51 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Sun Jul 05 11:06:01 2009 +0800"
      },
      "message": "Add password field for WiFi configuration.\n\n1. the certtool.h is modified for avoiding the side effect,\n   for saving the configuration with wpa_supplicant.\n2. put the loadLibrary back in CertTool.java\n3. Fix incorrect JNI declarations.\n"
    },
    {
      "commit": "5d16cd046298ec9e009cfdd2056c64c1a9ac5ba3",
      "tree": "40ec504b10b6deb12ba2cd459641ded41a1fd904",
      "parents": [
        "575d1af980f4b4866325bfc487455f54606cf49e",
        "d7cd29da91ccc0aba1f1097e19366f9ca36c7ce1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 03 08:58:10 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jul 03 08:58:10 2009 -0700"
      },
      "message": "am d7cd29da: Add facility to run setup wizard after an update.\n\nMerge commit \u0027d7cd29da91ccc0aba1f1097e19366f9ca36c7ce1\u0027\n\n* commit \u0027d7cd29da91ccc0aba1f1097e19366f9ca36c7ce1\u0027:\n  Add facility to run setup wizard after an update.\n"
    },
    {
      "commit": "575d1af980f4b4866325bfc487455f54606cf49e",
      "tree": "0e342963e3e06a2193f07519d440a840d0e2df3e",
      "parents": [
        "7a91dc11ac3edd101fc06ebbc89cca76314fc538",
        "cf098294da7a820d5c30d8ed2006ed5446ee1da9"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jul 03 08:55:59 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jul 03 08:55:59 2009 -0700"
      },
      "message": "resolved conflicts for merge of cf098294 to master\n"
    },
    {
      "commit": "7a91dc11ac3edd101fc06ebbc89cca76314fc538",
      "tree": "f39366f9f1ddd7d225dc8767b5575a0756927913",
      "parents": [
        "28dda652a2c776100f3ec94a3352564ac49149de",
        "2bbb80e183c6492689f8b10b2d0f5dfe9872a6ac"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 03 08:18:22 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jul 03 08:18:22 2009 -0700"
      },
      "message": "am 2bbb80e1: Merge change 5994 into donut\n\nMerge commit \u00272bbb80e183c6492689f8b10b2d0f5dfe9872a6ac\u0027\n\n* commit \u00272bbb80e183c6492689f8b10b2d0f5dfe9872a6ac\u0027:\n  Less logging in some places.  More in others.\n"
    },
    {
      "commit": "28dda652a2c776100f3ec94a3352564ac49149de",
      "tree": "7f55c158f17bf9a213b64e59d05a574d85a4c603",
      "parents": [
        "10063c10899976c70c64c4dd15f171728e9b3036",
        "a54755962ca7725d1e2b6cacbbaece6f1cbf5af4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Jul 03 08:18:17 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jul 03 08:18:17 2009 -0700"
      },
      "message": "am a5475596: Cleanup a bunch of warnings in app widgets code.\n\nMerge commit \u0027a54755962ca7725d1e2b6cacbbaece6f1cbf5af4\u0027\n\n* commit \u0027a54755962ca7725d1e2b6cacbbaece6f1cbf5af4\u0027:\n  Cleanup a bunch of warnings in app widgets code.\n"
    },
    {
      "commit": "7e8cbfc2bc3ea2334c38db7fd2b6a1e17eefcac6",
      "tree": "32e9f0c6062ea5ed0528abbdfe8b1116228d5edf",
      "parents": [
        "d23d7f2d12c20314e1e8ff206fafc8f21745ca2d",
        "d595c79cdd16ab90fabbe2d4b352236f901c598b"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 02 15:24:43 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 02 15:24:43 2009 -0700"
      },
      "message": "Merge change 6143 into donut\n\n* changes:\n  Fix the simulator.\n"
    },
    {
      "commit": "fc2459b80aa4c9c5be81e33366fdfec94c5eedbf",
      "tree": "462894456071051ba0cc87bb7f4d6c7b0c647812",
      "parents": [
        "0d0012ef1617170701b9cd7492ef04ac47bfb5ca",
        "d18dc8c641cb4c89ffb205fb510e59a40ddf43fe"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 02 15:24:01 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jul 02 15:24:01 2009 -0700"
      },
      "message": "am d18dc8c6: Merge change 5906 into donut\n\nMerge commit \u0027d18dc8c641cb4c89ffb205fb510e59a40ddf43fe\u0027\n\n* commit \u0027d18dc8c641cb4c89ffb205fb510e59a40ddf43fe\u0027:\n  resolve complex value in application context instead of system context.\n"
    },
    {
      "commit": "0d0012ef1617170701b9cd7492ef04ac47bfb5ca",
      "tree": "01b85c97f37b1356b723187578157e4f443de4c8",
      "parents": [
        "1c502a4624859289c1000af6be8bea1aacee41bd",
        "54af78a3f7064e04d7ebd64c985d4149f9f7b05c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 02 15:23:56 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jul 02 15:23:56 2009 -0700"
      },
      "message": "am 54af78a3: Merge change 5950 into donut\n\nMerge commit \u002754af78a3f7064e04d7ebd64c985d4149f9f7b05c\u0027\n\n* commit \u002754af78a3f7064e04d7ebd64c985d4149f9f7b05c\u0027:\n  Fix memory leaks in system_server\n"
    },
    {
      "commit": "1c502a4624859289c1000af6be8bea1aacee41bd",
      "tree": "8dadbf2a8fe36f860cf6f8eb1929789a96614206",
      "parents": [
        "b0b659a8aa8d7a973641e4866c8f29078d857731",
        "49401ddb9ac11ad5caead4e4cefcaa81d2418ed2"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 02 15:23:49 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jul 02 15:23:49 2009 -0700"
      },
      "message": "am 49401ddb: Revamp backup scheduling policy\n\nMerge commit \u002749401ddb9ac11ad5caead4e4cefcaa81d2418ed2\u0027\n\n* commit \u002749401ddb9ac11ad5caead4e4cefcaa81d2418ed2\u0027:\n  Revamp backup scheduling policy\n"
    },
    {
      "commit": "b0b659a8aa8d7a973641e4866c8f29078d857731",
      "tree": "2049295d2b48e19d085f1caae0c902de008b8961",
      "parents": [
        "9b7df7e628de5c44d2b04317da01b34f7d5e0edb",
        "ce0bf069fe8c5c93f91cb70b0cd9365245d144c1"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 02 15:23:45 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jul 02 15:23:45 2009 -0700"
      },
      "message": "am ce0bf069: Use secure settings for backup enable / transport selection\n\nMerge commit \u0027ce0bf069fe8c5c93f91cb70b0cd9365245d144c1\u0027\n\n* commit \u0027ce0bf069fe8c5c93f91cb70b0cd9365245d144c1\u0027:\n  Use secure settings for backup enable / transport selection\n"
    },
    {
      "commit": "d595c79cdd16ab90fabbe2d4b352236f901c598b",
      "tree": "a80df36ea5be3e4a9b855a39993ded60a093b090",
      "parents": [
        "fe11ea5e2df4a4414aa266e93179c3098b03a795"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jul 02 15:23:26 2009 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jul 02 15:23:26 2009 -0700"
      },
      "message": "Fix the simulator.\n"
    },
    {
      "commit": "e15df4017c3625de700e9f9953073f38898bbc89",
      "tree": "cfdb4b3aa0957fecff028e30ac3eb93e21c3108c",
      "parents": [
        "fe11ea5e2df4a4414aa266e93179c3098b03a795",
        "8c0324752a7f47afd9e84f0a3088954b5d05a94b"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 02 14:30:56 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 02 14:30:56 2009 -0700"
      },
      "message": "Merge change 6132 into donut\n\n* changes:\n  If we can\u0027t get the restore set\u0027s metadata, don\u0027t continue\n"
    },
    {
      "commit": "8c0324752a7f47afd9e84f0a3088954b5d05a94b",
      "tree": "5e485de5800af2b9f70a81a74e1497a057722e70",
      "parents": [
        "9701b3d594868bd6750d5887af560c6295ea091b"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 02 14:28:47 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 02 14:28:47 2009 -0700"
      },
      "message": "If we can\u0027t get the restore set\u0027s metadata, don\u0027t continue\n\nWithout the metadata we can\u0027t verify the version number or the signatures of the\napps whose data we\u0027d be trying to restore against the apps present on device.\nThis is not acceptable; we need to refuse to give data to an unauthenticated\napp.\n"
    },
    {
      "commit": "0d81f6368708b1faa42a3bb6413210e01fea9222",
      "tree": "c1ec4d870a2a165a6b1da843c68726c9eb7f88ef",
      "parents": [
        "9701b3d594868bd6750d5887af560c6295ea091b",
        "16d79e56ca3fe7606c48882d9b1aef6267d69124"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 02 13:19:55 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 02 13:19:55 2009 -0700"
      },
      "message": "Merge change 6102 into donut\n\n* changes:\n  Backup Wifi supplicant data.\n"
    },
    {
      "commit": "9701b3d594868bd6750d5887af560c6295ea091b",
      "tree": "162f81eb8482d26198bf825beeb9173eee65124a",
      "parents": [
        "4e3e50cfa7cf02270ed0dd454d5c51bf7065bd14",
        "b24a96701a2724bf69c5a34bd70a1bc7177ef0f2"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 02 12:20:29 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 02 12:20:29 2009 -0700"
      },
      "message": "Merge change 5979 into donut\n\n* changes:\n  Remove the constraint to assign new uid when code path changes for system packages\n"
    },
    {
      "commit": "4e3e50cfa7cf02270ed0dd454d5c51bf7065bd14",
      "tree": "eed3b13c97b5ed07cae3fabd2cfc287e44c41e31",
      "parents": [
        "7c5ae202c53be1ab4881a6811aa5bd091c3aef10"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 02 12:14:05 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 02 12:14:05 2009 -0700"
      },
      "message": "Clean up the last two literal permission string usages\n"
    },
    {
      "commit": "16d79e56ca3fe7606c48882d9b1aef6267d69124",
      "tree": "a0614a4f2275bc2cca32e159b47b468cb0c341fe",
      "parents": [
        "a642e313988ec7f9e732ead00edbded8b57d7452"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Jul 02 12:05:32 2009 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Jul 02 12:05:32 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": "ee0e78af5af3bf23dd928fe5e0ebeb39157eaf66",
      "tree": "d364ee20d633ea67a5cf6e82e3f67e1e3bd7feb8",
      "parents": [
        "c7396025e59524e7ef639fd86fc23123939ee91c"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 02 11:17:03 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 02 11:30:29 2009 -0700"
      },
      "message": "Add a \"clear backed-up data\" method to the backup mechanism\n\nIt\u0027s now possible to ask that the backup manager wipe the saved data for a given\napplication from the backing store.  LocalTransport implements this now but the\nGoogle backend does not yet.  When the data is wiped, the on-device backup state\nis also wiped to ensure that the next backup pushes all necessary data.\n\nBmgr has not yet been modified to actually call into this method, but it will\nbe soon.\n"
    },
    {
      "commit": "f73a65c2d7c06e5c1b30b84e3931d2a53145417b",
      "tree": "59dbbfd835bb96b14bcd680b8c38865016b773fa",
      "parents": [
        "c885577145f9e7b72466e8e7497e8b0f9da9477b",
        "65363830c1e5ca8c59b6e12b4b43a3f03688ca2e"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 01 22:44:37 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jul 01 22:44:37 2009 -0700"
      },
      "message": "am 65363830: Merge change 5854 into donut\n\nMerge commit \u002765363830c1e5ca8c59b6e12b4b43a3f03688ca2e\u0027\n\n* commit \u002765363830c1e5ca8c59b6e12b4b43a3f03688ca2e\u0027:\n  Run backups at background priority\n"
    },
    {
      "commit": "d96e0b0cf14f159d96502a4caf8aa2a33c334a99",
      "tree": "c444ad326a6e2ae5b48508f78cdac7d12c2f7fd1",
      "parents": [
        "74ab31598bb65b17f84411d11d09269f1291d78a",
        "6e1647a212317f4ee8bcc23948b6621a59172954"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 01 22:43:58 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jul 01 22:43:58 2009 -0700"
      },
      "message": "am 6e1647a2: Merge change 5829 into donut\n\nMerge commit \u00276e1647a212317f4ee8bcc23948b6621a59172954\u0027\n\n* commit \u00276e1647a212317f4ee8bcc23948b6621a59172954\u0027:\n  Fix issue #1673793: Theme styles don\u0027t apply.\n"
    },
    {
      "commit": "8ec5b83fc8f8aa68805c4d5987f8f75bb28250ca",
      "tree": "8a6b5057325b6cd51ad94903fefc97eda1718c21",
      "parents": [
        "fbc7c1a784b3e9b003feaa9bd39d4283b316308e",
        "1dac277f93a80c53a870b8924508dd2af81293de"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 01 21:19:35 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 01 21:19:35 2009 -0700"
      },
      "message": "Merge commit \u00271dac277f\u0027 into manualmerge\n\nRequired rewriting the okay battery broadcast stuff.\n\nConflicts:\n\tservices/java/com/android/server/status/StatusBarPolicy.java\n"
    },
    {
      "commit": "d7cd29da91ccc0aba1f1097e19366f9ca36c7ce1",
      "tree": "03869e5efe3791758b0e9da9d029373ec1653cb2",
      "parents": [
        "cf098294da7a820d5c30d8ed2006ed5446ee1da9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 01 11:22:45 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 01 20:20:47 2009 -0700"
      },
      "message": "Add facility to run setup wizard after an update.\n\nThe system now keeps a tag of the last version (just an arbitrary string)\nthat the setup wizard was run for.  If this is different than the current\none in the setup wizard, then setup is launched at boot.\n\nThis introduces a new intent action for the part of the setup wizard that\ngets run for an ungrade, which the system uses to find its current version\ntag for comparing against what was last stored.  It is up to the launched\nsetup activity update the stored setting to reflect its current value,\nonce it is happy.\n"
    },
    {
      "commit": "cf098294da7a820d5c30d8ed2006ed5446ee1da9",
      "tree": "d53913b8c355c15da25d2ab8708eeee94e6cf7ab",
      "parents": [
        "2bbb80e183c6492689f8b10b2d0f5dfe9872a6ac"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 01 19:55:20 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 01 20:12:36 2009 -0700"
      },
      "message": "Move backup state to settings, change permission checks to use symbol.\n\nThis changes the backup service to use the settings provider instead\nof system properties, correspondingly making it off by default and\nallowing specific devices to define the transport.  Also tweaks\nthe permission checks to use the permission symbol instead of raw\nstrings.\n\nThis requires some corresponding changes in the vendor projects.\n"
    },
    {
      "commit": "2bbb80e183c6492689f8b10b2d0f5dfe9872a6ac",
      "tree": "0c15e43130dfbef66bcfa2475aa5cec404ac7e65",
      "parents": [
        "a54755962ca7725d1e2b6cacbbaece6f1cbf5af4",
        "9a5e3e115fc69181e143bdb9ec455e0f94fbc11f"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 01 18:04:40 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 01 18:04:40 2009 -0700"
      },
      "message": "Merge change 5994 into donut\n\n* changes:\n  Less logging in some places.  More in others.\n"
    },
    {
      "commit": "9a5e3e115fc69181e143bdb9ec455e0f94fbc11f",
      "tree": "09365452a081b8a586b7c58e320b0872fccc9e41",
      "parents": [
        "d18dc8c641cb4c89ffb205fb510e59a40ddf43fe"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jul 01 21:04:03 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jul 01 21:04:03 2009 -0400"
      },
      "message": "Less logging in some places.  More in others.\n"
    },
    {
      "commit": "a54755962ca7725d1e2b6cacbbaece6f1cbf5af4",
      "tree": "055ff8aa0729e942105686135b0197f3bca3ae35",
      "parents": [
        "392282f1e01518491c6536d931500c4bfac7f24f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed Jul 01 17:20:08 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed Jul 01 17:21:12 2009 -0700"
      },
      "message": "Cleanup a bunch of warnings in app widgets code.\n"
    },
    {
      "commit": "b24a96701a2724bf69c5a34bd70a1bc7177ef0f2",
      "tree": "ceb598f3ae71afcd451c8694711ba7e0421e5fd7",
      "parents": [
        "d18dc8c641cb4c89ffb205fb510e59a40ddf43fe"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jul 01 14:04:43 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jul 01 16:16:56 2009 -0700"
      },
      "message": "Remove the constraint to assign new uid when code path changes for system packages\n"
    },
    {
      "commit": "3b0b1a11d6491385bea6cfe9b3adfe8da1aca88c",
      "tree": "50ec73ae1f4d0aea51bb18744ff65fe65a44ccfd",
      "parents": [
        "0901c82336c79ca3e3d67b1df8a5cb7ee45ec13e",
        "72d19aa51e90d45c7895629db78e548da2f6d469"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jul 01 16:01:48 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jul 01 16:01:48 2009 -0700"
      },
      "message": "am 72d19aa5: Tighten up the metadata backup logic\n\nMerge commit \u002772d19aa51e90d45c7895629db78e548da2f6d469\u0027\n\n* commit \u002772d19aa51e90d45c7895629db78e548da2f6d469\u0027:\n  Tighten up the metadata backup logic\n"
    },
    {
      "commit": "d18dc8c641cb4c89ffb205fb510e59a40ddf43fe",
      "tree": "cb0a8d954f69f79c9fb57d959d74ce182301ea8f",
      "parents": [
        "54af78a3f7064e04d7ebd64c985d4149f9f7b05c",
        "8f25c426b118c35f558cbf27bd413e1eb6d59823"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 01 12:53:04 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 01 12:53:04 2009 -0700"
      },
      "message": "Merge change 5906 into donut\n\n* changes:\n  resolve complex value in application context instead of system context.\n"
    },
    {
      "commit": "54af78a3f7064e04d7ebd64c985d4149f9f7b05c",
      "tree": "319681ef2905159095a4aa89f1165058b22bbca8",
      "parents": [
        "49401ddb9ac11ad5caead4e4cefcaa81d2418ed2",
        "fff2fda0199dedbf1079454dca98a81190dce765"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 01 12:52:39 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 01 12:52:39 2009 -0700"
      },
      "message": "Merge change 5950 into donut\n\n* changes:\n  Fix memory leaks in system_server unlink DeathRecipients in a whole bunch of places to avoid memory leaks\n"
    },
    {
      "commit": "fff2fda0199dedbf1079454dca98a81190dce765",
      "tree": "c45c5960e5c3469b36b5d728378a1aa901d1ec4e",
      "parents": [
        "c56096fe1fe3486102079f06ca5de3e2bef12e47"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Jun 30 21:36:16 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jul 01 12:55:30 2009 -0700"
      },
      "message": "Fix memory leaks in system_server\nunlink DeathRecipients in a whole bunch of places to avoid memory leaks\n"
    },
    {
      "commit": "49401ddb9ac11ad5caead4e4cefcaa81d2418ed2",
      "tree": "147cca0a95c8da6b1bc547756da6bda6c0341929",
      "parents": [
        "ce0bf069fe8c5c93f91cb70b0cd9365245d144c1"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jul 01 12:34:29 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jul 01 12:38:06 2009 -0700"
      },
      "message": "Revamp backup scheduling policy\n\nWe now schedule a periodic check of pending backups; if any apps have requested\na backup since the last check, we perform all of the pending backups.  The\nperiodic backup scheduling matches the enable/disable state of the backup\nmanager; while backups are disabled entirely there are no periodic wakeups.\n\nThe period is set here to one hour.  If an external caller (transport, the\n\u0027bmgr\u0027 command line tool, etc) requests an immediate backup pass, that is\nperformed and then the periodic backup check is rescheduled using that pass as\nthe starting point of a new interval.\n"
    },
    {
      "commit": "ce0bf069fe8c5c93f91cb70b0cd9365245d144c1",
      "tree": "6149eaf7f689d98470f6f5c99c647c3f1f087774",
      "parents": [
        "1b1a6e406c4233b309baee85e14f5a563ca63c48"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jul 01 11:43:53 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jul 01 11:45:57 2009 -0700"
      },
      "message": "Use secure settings for backup enable / transport selection\n"
    },
    {
      "commit": "a2b2223817a536c22ff314886c90ed85eaef07ed",
      "tree": "c64f99f2387c22aa69eaf3ec87504b4d40bc5491",
      "parents": [
        "a9fa179999b45c0199669f663bc12ddfec146948",
        "6f317426e49e73ef3e50d8839877504039cd2fca"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jul 01 11:19:15 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jul 01 11:19:15 2009 -0700"
      },
      "message": "am 6f317426: Don\\\u0027t issue a deletion for the global metadata backup\n\nMerge commit \u00276f317426e49e73ef3e50d8839877504039cd2fca\u0027\n\n* commit \u00276f317426e49e73ef3e50d8839877504039cd2fca\u0027:\n  Don\u0027t issue a deletion for the global metadata backup\n"
    },
    {
      "commit": "8f25c426b118c35f558cbf27bd413e1eb6d59823",
      "tree": "1dc53d22e856c9f15afabfdef4c3a957652a129b",
      "parents": [
        "083928fefde7060eb69f7f45cd8e2180efa9bfe1"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Wed Jul 01 00:10:43 2009 -0700"
      },
      "committer": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Wed Jul 01 00:10:43 2009 -0700"
      },
      "message": "resolve complex value in application context instead of system context.\n"
    },
    {
      "commit": "01ecd7bcd1f0d2a64e2c354ff0dc5a0fb2b8c907",
      "tree": "2c8835b408677583ad57870e7a42ae3be9ee7e3a",
      "parents": [
        "2658254d929de57f1d08f0056589113dfdda100c",
        "ab4748c62d106d9cbc27c88ccd3d2bbda8e451bd"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 01 00:07:35 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jul 01 00:07:35 2009 -0700"
      },
      "message": "am ab4748c6: Merge change 5694 into donut\n\nMerge commit \u0027ab4748c62d106d9cbc27c88ccd3d2bbda8e451bd\u0027\n\n* commit \u0027ab4748c62d106d9cbc27c88ccd3d2bbda8e451bd\u0027:\n  Implement persistent enable/disable of the backup manager\n"
    },
    {
      "commit": "6463ff24684a2b74cd25533ae6e028f4cd9933fe",
      "tree": "f87eb27aebd71a3ec453867b169690e8ca5f3e1b",
      "parents": [
        "5ad2f1c05ed69176849f535e4a8ab02e50e8e048",
        "66c2942a112b65eec93c25263684a8c79cb21318"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 30 16:52:32 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 30 16:52:32 2009 -0700"
      },
      "message": "resolved conflicts for merge of 66c2942a to master\n"
    },
    {
      "commit": "7958834e0e8adb42ca5183541c4bbcd8aaa7d3aa",
      "tree": "1a58583e4d162ab1bbb1ee49b0a03ce036ea0a83",
      "parents": [
        "f3ab3c3437f18834ce63542062c2ed7a87a05fca"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 30 16:11:49 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 30 16:11:49 2009 -0700"
      },
      "message": "Run backups at background priority\n"
    },
    {
      "commit": "6e1647a212317f4ee8bcc23948b6621a59172954",
      "tree": "50a0ac10196a017f438dbd3c4911b02ec040cf9d",
      "parents": [
        "d8de2ba42679a10db2adc11995d6596a0045ab3a",
        "de7faf658cd40d34c08a98b39477055da8e19172"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 30 14:04:55 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 30 14:04:55 2009 -0700"
      },
      "message": "Merge change 5829 into donut\n\n* changes:\n  Fix issue #1673793: Theme styles don\u0027t apply.\n"
    },
    {
      "commit": "1dac277f93a80c53a870b8924508dd2af81293de",
      "tree": "ec4687e36a6703c0ffe9434748a5fe66975b42e7",
      "parents": [
        "9848f11fd8788b985330183aeb83cc589b8b14ae"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 26 18:16:48 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 30 13:40:51 2009 -0700"
      },
      "message": "Implement issue #1943927 (need notification in status bar when adb is active)\n\nThis is a little hacky -- we just assume that if adb is enabled and power\nis connected through usb, then it is active.\n\nThe icons and text are temporary until final design is provided.\n"
    },
    {
      "commit": "de7faf658cd40d34c08a98b39477055da8e19172",
      "tree": "8450b4d75fbe22a3fed25867c1d53a059c10d664",
      "parents": [
        "bd9aa793b19f7aa529ca4123492f8940b96486b8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 30 13:27:30 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 30 13:27:30 2009 -0700"
      },
      "message": "Fix issue #1673793: Theme styles don\u0027t apply.\n\nIt turns out this was not a problem in the resource code at all.  Rather,\nthe system process has a cache of pre-loaded attributes it uses to avoid\ncontinually reloading things as it needs them.  Well it turns out this\ncache wasn\u0027t flushed after a package was uninstalled or a configuration\nchanged, so you could re-install an app where you change its style resources\nso its theme now points to one that is inconsistent in the cache.\n\nThis is mostly a problem for developers, where they continually install\nnew versions of an app where resources have changed.  This could possibly\nshow up when updating an app on a normal phone, although the problem would\neventually correct itself since this cache uses weak references.\n\nAnyway, the cache is now reworked to be flushed appropriately.\n\nThis change also includes an update to aapt to be able to dump the\ncontents of bags in resources.\n"
    },
    {
      "commit": "72d19aa51e90d45c7895629db78e548da2f6d469",
      "tree": "f65c8bcf06246252d75f387bf647386a255466a3",
      "parents": [
        "91c91b74df12e40c31a50ecb807ac60bed2ccb58"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 30 12:47:33 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 30 12:52:54 2009 -0700"
      },
      "message": "Tighten up the metadata backup logic\n\nWe now store the app version codes and and global OS incremental version name in\nthe PM backup state and the actual backup record.  We then use that information\nto trigger a re-backup of the metadata if the OS revision changes in any way, or\nto back up single apps\u0027 metadata if we notice that they\u0027ve been upgraded.\n"
    },
    {
      "commit": "5e79e323570cc0e110bfe4fe50f9e9a1d884004b",
      "tree": "3d45aa63b719b24d47d4227b13e02696d2ffe1a1",
      "parents": [
        "da6edf4d8a1716b193c4c779167e02bca883dda6",
        "9171749700853305f3e6abbcdbd9e02f3a71d459"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 29 20:20:20 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 29 20:20:20 2009 -0700"
      },
      "message": "am 91717497: Use system properties to track the current transport\n\nMerge commit \u00279171749700853305f3e6abbcdbd9e02f3a71d459\u0027\n\n* commit \u00279171749700853305f3e6abbcdbd9e02f3a71d459\u0027:\n  Use system properties to track the current transport\n"
    },
    {
      "commit": "f9435d7521a7085e487974faefbc7934bf90753c",
      "tree": "5226e80d44ecab0c424a245ece17c66afc5bab57",
      "parents": [
        "ff35c1d787e0f466065b4d148071a47aa972b3a7",
        "f7c886b4fe27cd9ab4a9991958ff931054556a24"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 29 20:17:47 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 29 20:17:47 2009 -0700"
      },
      "message": "am f7c886b4: Respect android:allowClearUserData\u003dfalse during restore\n\nMerge commit \u0027f7c886b4fe27cd9ab4a9991958ff931054556a24\u0027\n\n* commit \u0027f7c886b4fe27cd9ab4a9991958ff931054556a24\u0027:\n  Respect android:allowClearUserData\u003dfalse during restore\n"
    },
    {
      "commit": "ff35c1d787e0f466065b4d148071a47aa972b3a7",
      "tree": "95fb44f4a326a11f375f70ac97ebda7f71f8e1fa",
      "parents": [
        "0e04f18ec7bd187417cf2cfc1be1498cb4812ba7",
        "bd1e8aa502a6d9231e2a1399cee18debcf70b3d6"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 29 20:17:42 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 29 20:17:42 2009 -0700"
      },
      "message": "am bd1e8aa5: Merge change 5569 into donut\n\nMerge commit \u0027bd1e8aa502a6d9231e2a1399cee18debcf70b3d6\u0027\n\n* commit \u0027bd1e8aa502a6d9231e2a1399cee18debcf70b3d6\u0027:\n  Trim some superfluous imports.\n"
    },
    {
      "commit": "6f317426e49e73ef3e50d8839877504039cd2fca",
      "tree": "d80ff010d9887a32166d661e9397a9535d62a3c0",
      "parents": [
        "bbd63cb28595bd6b1fa62d331d9373b5c798c267"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 29 18:52:55 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 29 18:52:55 2009 -0700"
      },
      "message": "Don\u0027t issue a deletion for the global metadata backup\n\nWe were accidentally submitting a deletion for the global metadata key in the\nPM backup handling (it was falling into the usual \"here\u0027s a package that we said\nwe\u0027d backed up last time, but now it\u0027s no longer on device\" code).  Don\u0027t do\nthat any more, i.e. actually keep the global metadata key in the backup set.\nOops.\n"
    },
    {
      "commit": "f6ff591decdea6299aab1a5b6f95917800571de4",
      "tree": "dee211f3383b10360a61cb4194a1bcc2cc26bdd4",
      "parents": [
        "8c3fc63576c81139a8d16b608550568ad52237c6",
        "72eb0acad5cffc57ce5006f6deab29ee259e461e"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 29 16:37:17 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 29 16:37:17 2009 -0700"
      },
      "message": "am 72eb0aca: Merge change 5483 into donut\n\nMerge commit \u002772eb0acad5cffc57ce5006f6deab29ee259e461e\u0027\n\n* commit \u002772eb0acad5cffc57ce5006f6deab29ee259e461e\u0027:\n  Expand support for different screen sizes.\n"
    },
    {
      "commit": "8c3fc63576c81139a8d16b608550568ad52237c6",
      "tree": "8dadaf72d9a70b0bd5458467d34975551b7b2d0d",
      "parents": [
        "5ceae67f8a053ec4f47accf6e0ddad2d29af022c",
        "156411df4627336b246db78cddca8248ed615b67"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Mon Jun 29 16:37:02 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 29 16:37:02 2009 -0700"
      },
      "message": "am 156411df: Use a long for restore token\n\nMerge commit \u0027156411df4627336b246db78cddca8248ed615b67\u0027\n\n* commit \u0027156411df4627336b246db78cddca8248ed615b67\u0027:\n  Use a long for restore token\n"
    }
  ],
  "next": "f35b2f382c1ebb9c79d2216e151a61f1a27ce80f"
}
