)]}'
{
  "log": [
    {
      "commit": "28a8c2bc140bf3efe732f01057ac280eb85706d0",
      "tree": "f41c9c3de45f300019418a0f97295e2034bb6c0d",
      "parents": [
        "1be40985283e77d3fc5d98268f9f6453bcc7223e",
        "4dcd2ee8cacc9b4c396b8611189595fd9bb7bcad"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 01 11:30:02 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 01 11:30:02 2010 -0800"
      },
      "message": "resolved conflicts for merge of 4dcd2ee8 to master\n"
    },
    {
      "commit": "4dcd2ee8cacc9b4c396b8611189595fd9bb7bcad",
      "tree": "18f73680e6345b765b659ea1bf390e003d5366ac",
      "parents": [
        "fc7028f1c68dcc8d59c8e4daf4a8917a3d9a7558",
        "7bb2581e6f404da0edba9ebb81b0d0593715eb40"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 01 09:30:21 2010 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 01 09:30:21 2010 -0800"
      },
      "message": "merge from open-source master\n"
    },
    {
      "commit": "7bb2581e6f404da0edba9ebb81b0d0593715eb40",
      "tree": "1ca3c4dc2d86df5df6a55db38fdd5804eef81cdd",
      "parents": [
        "853226b147fb7be7709ce55e7100ebfea6719435"
      ],
      "author": {
        "name": "Magnus Edlund",
        "email": "magnus.edlund.x@sonyericsson.com",
        "time": "Wed Feb 24 15:45:06 2010 +0100"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Mar 01 09:12:07 2010 -0800"
      },
      "message": "Fix problem with restarting an application process that recently has died.\n\nThere exists a race condition when starting a process that recently has died.\nIf the ActivityManager receives the death notification for the died process\nafter the new process has been started but before an application thread has\nbeen attached to the new process will the newly created process be removed\nduring the cleanup of the died process. If this happens when sending a broadcast\ncould it result in an ANR.\n\nThis is solved by doing the clean up before starting a new process that uses\nthe same process record.\n"
    },
    {
      "commit": "a33097d6d18415ce9cf68af1840d40cb94c2baac",
      "tree": "4f3e129e444afb31dbfd0204e224d8fa454c5082",
      "parents": [
        "b71c6164ef1b09521bc6e14f18de75be80381887",
        "ca44df86ac907fd147633955f6fda7a249625d50"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Feb 27 06:16:54 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 27 06:16:54 2010 -0800"
      },
      "message": "Merge \"Fix synchronization problem in PowerManagerService.dump()\""
    },
    {
      "commit": "87bba1ee14279bb14a28d42e27c4ef66d9967bf8",
      "tree": "915eb0be9f5fac21d24bacf76438cafb9f14bae0",
      "parents": [
        "8c49df4f36bee2878ab0ff7dc99dff60dc7354fb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 26 17:25:54 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 26 23:32:48 2010 -0800"
      },
      "message": "Move DeviceAdmin APIs to android.app.admin.\n\nAlso add ability for admins to hide themselves when not in use,\na facility for admins to not allow other admins to reset\ntheir password, and debug dumping.\n"
    },
    {
      "commit": "c9d5fb7c95f158d9a31d534895373afcfad77806",
      "tree": "43629cb3e1ba3fb11dc2beaa706b1a6ef21340df",
      "parents": [
        "8f7f35e0ccd91c964b9d3eeef81ff829622dfa74"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 25 12:29:30 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Feb 26 17:48:09 2010 -0800"
      },
      "message": "Add build options for tethering.\n\nDun-required bool and list of allowed upstream ifaces.\n"
    },
    {
      "commit": "8f7f35e0ccd91c964b9d3eeef81ff829622dfa74",
      "tree": "f00fafb472259f5b1cfa416b54cf62a2c3bef735",
      "parents": [
        "59dc9ecec6e4f53a1a2934b08c7f779d2b0a0d9a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 25 18:48:12 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 26 16:34:33 2010 -0800"
      },
      "message": "Add new -W option to Am to wait for the start to complete.\n"
    },
    {
      "commit": "d84aca7d3c5e51567e5ed25585d1b1d9629b2d93",
      "tree": "a554013824b293184fd6b6f1c58fb9ed3813451b",
      "parents": [
        "3f016cfd482721ded01109b8f5c07dfa214ccb05",
        "1cb3cb1a94342e03b54fabfaf361c9e2e26f23fe"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 26 15:19:10 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 26 15:19:10 2010 -0800"
      },
      "message": "Merge \"Tethering: Use battery changed broadcast instead of UMS broadcast to determine when USB is connected and disconnected.\""
    },
    {
      "commit": "1cb3cb1a94342e03b54fabfaf361c9e2e26f23fe",
      "tree": "e2464ec3ae18ca03a318822abe982ab5de8b1cda",
      "parents": [
        "eb6d13102331fb776e5ac586ebdc523ee69d2ddf"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Feb 26 17:22:27 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Feb 26 18:00:58 2010 -0500"
      },
      "message": "Tethering: Use battery changed broadcast instead of UMS broadcast to determine\nwhen USB is connected and disconnected.\n\nThis is needed because the UMS broadcasts will not be sent when UMSis disabled.\n\nChange-Id: I4488fee2c19ac9c901596d1430ea371df97e4325\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "1f9e1b4c37c135b75cf064cbb5675aa576e2942a",
      "tree": "1ca95439c91aaa52a74fcbf1833869c614602abe",
      "parents": [
        "eb6d13102331fb776e5ac586ebdc523ee69d2ddf"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 26 13:14:31 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 26 14:32:24 2010 -0800"
      },
      "message": "Remove public variables in PackageManager\nDont invoke getInstallLocation for forward locked apps.\nIf INSTALL_ON_SDCARD is selected as default, forward locked\napps are not being installed because of conflicting flags.\n"
    },
    {
      "commit": "f8219914f2269fb0932e140c966f24e47438f8fe",
      "tree": "a0a2a4f6070ff5700214308a1dc1d6b4e38e1afd",
      "parents": [
        "0eec21d97d9dc4eb4fdbad0e4c0fc53703452d02",
        "7d411a3b947ba82d1d57f73c0fa698c3b9c95892"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@android.com",
        "time": "Fri Feb 26 13:06:42 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 26 13:06:42 2010 -0800"
      },
      "message": "Merge \"Add single-package restore to Bmgr feature set\""
    },
    {
      "commit": "0eec21d97d9dc4eb4fdbad0e4c0fc53703452d02",
      "tree": "b18ff4aebe681cd501d79522ca3244e0b0720c9e",
      "parents": [
        "4c904a3bf3dbe98607b5e3f706ee8ef8887ee104"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Feb 25 17:07:14 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 26 12:48:21 2010 -0800"
      },
      "message": "Add dialog to display storage users when enabling/disabling ums\n\nSome error dialogs and related strings\nMountService changes to follow unmount path when enabling ums.\n\nPlease note that MountService api setUmsEnabled does not return\nerror codes for now. This is a known limitation.\n"
    },
    {
      "commit": "7d411a3b947ba82d1d57f73c0fa698c3b9c95892",
      "tree": "9fae7c4860733aaa126af64ab433c98665ff2819",
      "parents": [
        "4c904a3bf3dbe98607b5e3f706ee8ef8887ee104"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 26 11:27:08 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 26 12:45:22 2010 -0800"
      },
      "message": "Add single-package restore to Bmgr feature set\n\nAlso sanity-check the package name on the Backup Manager side, failing gracefully\nif the given package is not a backup/restore participant.\n\nBug: 2293977\n\nChange-Id: I3575046ffcaa3cf45c1c602824baeadd64082f70\n"
    },
    {
      "commit": "5035fdab3dbb60b226bc6bb2f03e9944bcb964cd",
      "tree": "84b85303b72926ed2b33253ba11553524a55d954",
      "parents": [
        "3f3e53bc30dbf0e47c90be5cf4bd4faabda9c601"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 25 18:01:14 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 25 18:01:14 2010 -0800"
      },
      "message": "Default the auto-restore setting to \"enabled.\"\n\nChange-Id: I7d8710466214a1b09aabdd71e77b9b34d3d62365\n"
    },
    {
      "commit": "ae06ed97382429f51075d257e3290cdd86f66326",
      "tree": "5198e27de4d596d55b57261c5e429fe53acb840c",
      "parents": [
        "50d89f961630e2d972013f20b8001d0aa0adedf4"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 25 17:13:28 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 25 17:13:28 2010 -0800"
      },
      "message": "Fix the build\n\nChange-Id: I41616afc75a3366ea7e9e79ac7ea4c46d1863d83\n"
    },
    {
      "commit": "f087272d56ff84157e2481b7ca34d4d077affa74",
      "tree": "84745a69d5a941d3e080fceb06b7a6348c616c0b",
      "parents": [
        "277903f8d853297a1d22ea07e27e04d6534bc430"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 25 15:22:48 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 25 15:28:38 2010 -0800"
      },
      "message": "Start respecting the auto-restore-at-install setting\n\nChange-Id: I420ff6b4ba72f87bee56f45d8906f086f7a2b114\n"
    },
    {
      "commit": "7964d1f7ac7ca1b1094e9894616cd2d41c2c26ca",
      "tree": "df11864fbb883c14bfede20d57fd960dde3bd3d2",
      "parents": [
        "018ff891a04b5849a1cfb15e5272330ee3f1810a",
        "35429599728793a6830a8ce32a62e98cabefc90e"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 25 12:18:26 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 25 12:18:26 2010 -0800"
      },
      "message": "Merge \"Fix no-mobile-data after wifi.\""
    },
    {
      "commit": "35429599728793a6830a8ce32a62e98cabefc90e",
      "tree": "5b3eb5d30207bf7eb356490bf6452f8e4f516942",
      "parents": [
        "e46145f7c114b9ac6d19c6a7886e9239463f91e1"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 25 12:04:29 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 25 12:04:29 2010 -0800"
      },
      "message": "Fix no-mobile-data after wifi.\n\nMissed a case - if you disabled mobile data and then cycled wifi, 3g would\nbe turned back on.\n\nbug:2251458\n"
    },
    {
      "commit": "2269d1572e5fcfb725ea55f5764d8c3280d69f6d",
      "tree": "7ce0788be6d85972d42ee7135cdce82aa323fcc7",
      "parents": [
        "e46145f7c114b9ac6d19c6a7886e9239463f91e1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 24 19:54:22 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 25 11:39:33 2010 -0800"
      },
      "message": "Re-arrange android-common so framework no longer links with it.\n\nThis is the framework part, moving classes around so the framework\nno longer needs to link to android-common.  Makes some APIs public,\nothers that didn\u0027t need to be public are private in the framework,\nsome small things are copied.\n"
    },
    {
      "commit": "ca44df86ac907fd147633955f6fda7a249625d50",
      "tree": "deab6397db5153b351beb0cf31825d7478e17eb6",
      "parents": [
        "2ec30697c6cc6812dfaeb9a2e7d1da0443aeb8e6"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Feb 25 13:48:49 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Feb 25 14:08:55 2010 -0500"
      },
      "message": "Fix synchronization problem in PowerManagerService.dump()\n\nFixes a race condition that resulted in an IndexOutOfBoundsException\ndue to a wakelock being released while dump() was iterating through the\nwakelock list.\n\nBUG: 2469910\n\nChange-Id: I10d7a65b9f397934942b290cb047c4ca81214297\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "a712dcec1cae2971dcc81b12bd894c98fcc65981",
      "tree": "014953789872dca2328a3dc0b8f02e9f100baba6",
      "parents": [
        "74f39d4c172398c96fa3d6dbdec740bc168e60f1"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Thu Feb 25 11:05:12 2010 +0100"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Thu Feb 25 11:14:21 2010 +0100"
      },
      "message": "Init car mode when phone is booted in a dock.\n\nWhen the device is booted in a car dock the car mode needs to be set\nas well, so that the status bar notification shows up and the system\nis initialized the same way as if the phone is placed into a car dock\nwhen it\u0027s booted already.\n"
    },
    {
      "commit": "c42e29e0a58d07a95d470780216cdf1d67476bd6",
      "tree": "bb2a39fe7ddaf416a3a67a98eb12b661c7070d6d",
      "parents": [
        "406b09bbd117446814a05aabc5971fd55c6afa5d"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Feb 22 16:03:53 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Feb 24 20:30:03 2010 -0800"
      },
      "message": "Add new handler mechanism in MountService to make unmount api asynchronous.\nMountService updates state on PackageManager and then tries to\nkill processes holding file references to media about to be unmounted by\ninvoking api on ACtivityManager. This is retried upto 4 times to make sure all\nprocesses holding file references are killed before unmounting the media\nat specified path.\n\nAlso changed PackageManger api to return boolean value to indicate if\nMountService is likely to receive broadcasts related to apps on sd.\n"
    },
    {
      "commit": "406b09bbd117446814a05aabc5971fd55c6afa5d",
      "tree": "bc3b08fe84878851d4d8743b682a0991596799ed",
      "parents": [
        "ba289966c644bf54a747ba9b003f86ea7f12bfed",
        "c03fa5014912684367174ff3cce664deb29f5e0e"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Feb 24 19:45:32 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 24 19:45:32 2010 -0800"
      },
      "message": "Merge \"Add mobile data on/off switch.\""
    },
    {
      "commit": "982bb24f5db4bfd9c52eb16adb876fea7c7e4a8b",
      "tree": "5737eef7b66397042638a2ca2a698c2ef7ab8400",
      "parents": [
        "694b787e197ab8ffe1a3bfbce051bf14eee1694a",
        "6a965af2d76f6cf3ec980c8ecfd257f49b3c97e3"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 24 19:04:48 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 24 19:04:48 2010 -0800"
      },
      "message": "Merge \"MountService: Send UMS_CONNECTED broadcast on boot if UMS connected.\""
    },
    {
      "commit": "6a965af2d76f6cf3ec980c8ecfd257f49b3c97e3",
      "tree": "3a8fcafe81350dce5a89370f52d82b9a8cd6144f",
      "parents": [
        "9b1e9edff5036745c14fb52553f8417a274ad9de"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 24 17:47:30 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 24 18:14:18 2010 -0800"
      },
      "message": "MountService: Send UMS_CONNECTED broadcast on boot if UMS connected.\n\nUMS detection is now done wayyyy before the system is booted, so set a flag\nto send our intent broadcast once we\u0027ve booted.\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "c03fa5014912684367174ff3cce664deb29f5e0e",
      "tree": "1f18a0a27c2f2fea7a1f73c84e88dcb98fe77f02",
      "parents": [
        "240becc68d2ffa967d79af9c0ef50e6113420e47"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Feb 23 18:58:05 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Feb 24 18:14:07 2010 -0800"
      },
      "message": "Add mobile data on/off switch.\n\nbug:2251458\n"
    },
    {
      "commit": "d70a3d4e2d356aab4cac313f1f9d8272a5e3e8d0",
      "tree": "61fa3391480c05cb507ad314e40065506309bfee",
      "parents": [
        "21a20a39aeb083335fabd1d1098a73977131ec3f"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Feb 23 18:15:29 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Feb 24 18:03:40 2010 -0800"
      },
      "message": "Tethering improvements.\n\nChanges due to comments.\nFixing Tether teardown.\n\nbug:2422545\n"
    },
    {
      "commit": "3dda518a4fd57cdded3afa50d8aa206501de7fc6",
      "tree": "4f94ac2f5cf057501c9cbd9f4f814432c701443b",
      "parents": [
        "27eb24148a935d10c2c490205174c59a47e76dc6"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Feb 24 16:06:18 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Feb 24 17:23:54 2010 -0800"
      },
      "message": "Add \u0027restoreAnyVersion\u0027 attr for apps that want to restore \"future\" data\n\nIf a backup-participating app sets android:restoreAnyVersion\u003d\"true\" in its\nmanifest \u003capplication\u003e tag, then its agent will be invoked for restore\neven if the available dataset was created by a later version of the app\nthan is currently installed on the device.  This will not typically be\na problem for third party applications, since for them the installation\nand initial data restore are tightly coupled, but it can cause serious\nproblems for applications which are both preinstalled on the system\npartition and overridden by later updates.  The primary difficulty\nthat this new attribute addresses is this:\n\n1. User buys a Nexus One, Market self-updates, and the user installs some apps.\nAt this point the backup data on the server may indicate that the version of\nMarket which originated its bookkeeping is newer than the stock N1 Market app.\n2. User loses their phone, and buys a replacement N1.  At setup time, Market\nhas not yet had a chance to self-update, so when the restore comes in, it\u0027s\ntagged as being from \"the future\" and so the restore is refused.  No apps get\nreinstalled.\n\nBug: 2442127\nChange-Id: I076a9553dc613e5c3189350e778315718ed1ed2b\n"
    },
    {
      "commit": "c3b91fd26a940f8cee54888f91b490cb1768b03c",
      "tree": "d00d38423c8dc6efc9d0ec2635259803555ac497",
      "parents": [
        "58cf334ff4cfb7cf41e0d3eea86f129e25101bbf"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 23 17:25:30 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 24 13:12:52 2010 -0800"
      },
      "message": "Fix crash in PendingIntentRecord debug output.\n\nAdd null checks to a few places to avoid crashes when dumping\ndebug data.\n\nAlso add some sanity checks for accessing content providers in\nthe activity manager.\n"
    },
    {
      "commit": "cf6eaeaae9e6745dd6e07540812c79821d7043c2",
      "tree": "fe1224c5b492a8ad09d00e167b66a45413fb3d73",
      "parents": [
        "2a399f066d4f3870385002cdcda8082a0eeeb770"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 23 19:37:45 2010 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 24 11:31:36 2010 -0800"
      },
      "message": "Some framework fixes for apps on sd\nchange hard coded path in installd\nfix tests\nWork around for renaming containers.\nDo forced unmount when destroying containers.\nForce a gc in default container service to release handle to parsed package\nand thus avoid getting killed by vold\nSome cosmetic changes to PackageManager api.\nUnit tests for renaming container for MountService\nRemove internal size limit on app to be installed.\n"
    },
    {
      "commit": "85451ee15fdf6cae371dc3005441988c7d426401",
      "tree": "ddf4f750bb3b73759f6268ed975bb385edf3322c",
      "parents": [
        "9ff1f96fdf1c88c55c45e0876b10a3a9686dc28a"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 24 08:54:18 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 24 08:54:18 2010 -0800"
      },
      "message": "MountService: Fix bug which would allow apps to try to rename a container whos dst is mounted\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "0e93b562f41759f05a449f68da5c4c14fb461a8f",
      "tree": "f98b2474f82906828ba205298ddaab85095d58e8",
      "parents": [
        "a439e52725c0dcd52cbd1673df37c76fa5c7d349",
        "f0fda925e6e82a7ceaf580718c1f8de2c2b8dadc"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Tue Feb 23 19:20:22 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 23 19:20:22 2010 -0800"
      },
      "message": "Merge \"Make the notification windowshade work properly with overscroll.\""
    },
    {
      "commit": "f0fda925e6e82a7ceaf580718c1f8de2c2b8dadc",
      "tree": "28bedece15cca73b11e8dc90f1b47365d5827542",
      "parents": [
        "33285c37abee6d95d0ac55cd7e9889cdc8d96d14"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Feb 23 19:18:54 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Feb 23 19:18:54 2010 -0800"
      },
      "message": "Make the notification windowshade work properly with overscroll.\n\nBug: 2432590\n"
    },
    {
      "commit": "6142a0b68fffb2d9595c364ebf4f8be996f37f77",
      "tree": "2fd41740966c89152d4682c7cd129673ddf44777",
      "parents": [
        "2854419072ec2cc109f4e6af1bf96ff9396563cf"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Feb 23 18:15:29 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Feb 23 18:15:29 2010 -0800"
      },
      "message": "Fix build.\n\nclicked \"submit\" on I65ae29bd when I shouldn\u0027t have.\n\nFixing according to comments and a build error change.\n"
    },
    {
      "commit": "5cde63a60d3c70e613642ad8a3910bcd3475e9cb",
      "tree": "11d99e43f45960d4ecd4587312f1b0e61aadf30e",
      "parents": [
        "2e1818a4d16c3309660f27286c77d8d1eee95a25",
        "65ae29bd852ff468ad003af241d5177fe016c74a"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Feb 23 18:08:04 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 23 18:08:04 2010 -0800"
      },
      "message": "Merge \"Add USB RNDIS enable/disable control\""
    },
    {
      "commit": "65ae29bd852ff468ad003af241d5177fe016c74a",
      "tree": "e60cea5f80ac7ea250dcba3f477d452e9a5c8be0",
      "parents": [
        "33285c37abee6d95d0ac55cd7e9889cdc8d96d14"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 18 11:25:54 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Feb 23 16:04:41 2010 -0800"
      },
      "message": "Add USB RNDIS enable/disable control\n\nAlso adding interface configuration to the tethering machine.\nAlso fixing netd bug that didn\u0027t send up/down portion of iface config command.\n"
    },
    {
      "commit": "6fd5e0ac51021d55beb2c1f6f184469311301711",
      "tree": "eb5128ca64addfe3939c855125756a9d2abb1260",
      "parents": [
        "e5a1d4a21eb35abe75f60cd0416ee469e8c2471b"
      ],
      "author": {
        "name": "Bernd Holzhey",
        "email": "holzhey@google.com",
        "time": "Thu Feb 18 11:19:56 2010 +0100"
      },
      "committer": {
        "name": "Bernd Holzhey",
        "email": "holzhey@google.com",
        "time": "Tue Feb 23 06:04:33 2010 +0100"
      },
      "message": "Fix calculation of the next twilight update for locations where the day or night never ends.\n"
    },
    {
      "commit": "f13f60127ec570590ef5acf3690d8eba4a3d7ea4",
      "tree": "59d710ab994c4543543f3ca74b68f552d0a53dc7",
      "parents": [
        "90c79c4fe6d207356fbdbd1b1a8b3dbea2540194",
        "9e0f5d9a63ba88c2bf69df0557f8c9696db370c4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 22 20:48:01 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 20:48:01 2010 -0800"
      },
      "message": "Merge \"Fix some random bugs.\""
    },
    {
      "commit": "9e0f5d9a63ba88c2bf69df0557f8c9696db370c4",
      "tree": "f1ae5c2aac298756a0db18fdb13a73f0a052728b",
      "parents": [
        "0f70868c835011a44d110fd48d00f49f60f38507"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 22 15:05:42 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 22 20:45:58 2010 -0800"
      },
      "message": "Fix some random bugs.\n\n2185256: After open \u0026close of device keyboard shortcut does not added to Home desktop.\n\nActivityThread was losing the last saved state when restarting or launching into\na paused state.\n\n2366174: defaults not cleared when they should be\n\nPackageManagerService now removes any preferred activity records for a package\nwhen it is uninstalled.\n\n2154556: Battery stats can have an unbounded number of wake locks\n\nWe now start combining wake locks into one shared record when we hit a\nmaximum limit (currently 20).\n\n2442519: Foreground services can have no notification by providing a bogus one.\n\nIf the notification manager rejects our notification, the service is forced to\nno longer be in the foreground.\n\n2442383: Finalization issues in com.android.server.am.PendingIntentRecord.java\n\nCleaned up finalization to call super class and avoid the big activity manager\nlock (we still need to use the locks inside of the message system, but these\nare much less likely to be a problem).\n\n2284190: Cannot call a phone number using adb\n\nWe weren\u0027t getting the calling uid/pid in startActivity() if the caller did not\nsupply an application record.\n"
    },
    {
      "commit": "46db504de583d7d644a28a4e7adae43eed5df1ba",
      "tree": "0d0a3f18eedf790f3f85ada26875d3211c2aa8c6",
      "parents": [
        "2f6a01858bea6c669039b0b1e10aa65fc73c7256"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Feb 22 16:36:44 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Feb 22 20:42:27 2010 -0500"
      },
      "message": "Don\u0027t start location providers until the system is ready.\n\nChange-Id: Id545e95705e59ffbaaab8a679a1b7df488813101\nBUG: 2461320\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "6fb7cbf12ad6c423a84e815c314f917c88234ae6",
      "tree": "ae3b201245f47f23fbfac6768b3ca2ce616dc2c9",
      "parents": [
        "42122b6aa6957722326a36d8f00078f22a333cc6",
        "c07907e0389f20f83fdfe01319023b8c7d5e4bbd"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Feb 22 16:46:08 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 16:46:08 2010 -0800"
      },
      "message": "Merge \"Show the USB mass storage UI as soon as USB is connected.\""
    },
    {
      "commit": "c07907e0389f20f83fdfe01319023b8c7d5e4bbd",
      "tree": "efc40c20eed0eb1c74d055e6b2ea3736802683f1",
      "parents": [
        "ec2c88d835dac156be0d14bd2b73cf3825e2e164"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Mon Feb 22 15:08:41 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Mon Feb 22 16:39:47 2010 -0500"
      },
      "message": "Show the USB mass storage UI as soon as USB is connected.\n\nThis is a huge usability win for average users who are\ntrying to transfer files: it coaches them through the\nprocess while at the same time saving a number of steps.\n\nIf the user is just charging via USB, they\u0027re most likely\nnot actively using the device, in which case they won\u0027t\nnotice the difference.\n\nUsers with ADB turned on will see the old behavior (just the\nongoing notification, which pops the UsbStorageActivity if\ntapped).\n\nBug: 2299129\n\nChange-Id: Ib63a0a973dfdeb28741268fcf0e0fbc1b7be2922\n"
    },
    {
      "commit": "b09cc2cde25d02f668b8bc2115a9479425f48703",
      "tree": "9dc9497ee2500afe2b67d0c909261169cb585d92",
      "parents": [
        "93ed831c9010588a4cf5100462a558c15d2128b4",
        "3d4881067a16c7f65f2aeb06f58eb3f106b05c45"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Feb 22 13:21:58 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 13:21:58 2010 -0800"
      },
      "message": "Merge \"MountService: Force unmount when enabling ums\""
    },
    {
      "commit": "3d4881067a16c7f65f2aeb06f58eb3f106b05c45",
      "tree": "86788c1fd5af269e98b7adb72d3891e117226ea8",
      "parents": [
        "9a56aaf12b462a064e81e02386eca8a1e77fe737"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Feb 22 11:39:16 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Feb 22 13:08:44 2010 -0800"
      },
      "message": "MountService: Force unmount when enabling ums\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "7e31e0c351a3b2bb70ee5507b34f1c72d62b56d7",
      "tree": "5b177c59b9ab317e3951b6369a5676080afd9788",
      "parents": [
        "ec2c88d835dac156be0d14bd2b73cf3825e2e164",
        "21f1bd17b2dfe361acbb28453b3f3b1a110932fa"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 22 12:18:01 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 12:18:01 2010 -0800"
      },
      "message": "Merge \"Fix issue #2438980: Implement package watcher for voice recognizer service setting\""
    },
    {
      "commit": "ec2c88d835dac156be0d14bd2b73cf3825e2e164",
      "tree": "dd1a7805c6951214ebb60fde3a2f7c28d358cc5a",
      "parents": [
        "9a56aaf12b462a064e81e02386eca8a1e77fe737"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Sat Feb 20 01:04:57 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Mon Feb 22 15:10:38 2010 -0500"
      },
      "message": "Move new sound effects to the system stream.\n\nChange-Id: I11cfa6495abeb0193b1a3929ec54f0386cfe9ed2\n"
    },
    {
      "commit": "21f1bd17b2dfe361acbb28453b3f3b1a110932fa",
      "tree": "531c362903a1c327db99630996948da85cdedaf7",
      "parents": [
        "9a56aaf12b462a064e81e02386eca8a1e77fe737"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 19 17:02:21 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 22 11:27:52 2010 -0800"
      },
      "message": "Fix issue #2438980: Implement package watcher for voice recognizer service setting\n\nI am getting tired of writing package monitor code, realized this is missing in\na number of places, and at this point it has gotten complicated enough that I\ndon\u0027t think anyone actually does it 100% right so:\n\nIntroducing PackageMonitor.\n\nYes there are no Java docs.  I am still playing around with just what this\nthing is to figure out what makes sense and how people will use it.  It is\nbeing used to fix this bug for monitoring voice recognizers (integrating the\ncode from the settings provider for setting an initial value), to replace\nthe existing code for monitoring input methods (and fix the bug where we\nwouldn\u0027t remove an input method from the enabled list when it got\nuninstalled), to now monitor live wallpaper package changes (now allowing\nus to avoid reverting back to the default live wallpaper when the current\none is updated!), and to monitor device admin changes.\n\nAlso includes a fix so you can\u0027t uninstall an .apk that is currently enabled\nas a device admin.\n\nAlso includes a fix where the default time zone was not initialized early\nenough which should fix issue #2455507 (Observed Google services frame work crash).\n\nIn addition, this finally introduces a mechanism to determine if the\n\"force stop\" button should be enabled, with convenience in PackageMonitor\nfor system services to handle it.  All services have been updated to support\nthis.  There is also new infrastructure for reporting battery usage as an\napplicatin error report.\n"
    },
    {
      "commit": "679dd12fa1edb7b5600e84671e06dc957fa8f784",
      "tree": "e1c3e108fd4e0af85d788573fceb21212ef15899",
      "parents": [
        "7edf7388b81eb7e3d3ed1e717f69896c3d95ecfa"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Feb 22 10:52:11 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Feb 22 10:52:11 2010 -0800"
      },
      "message": "Ignore touch down events near the edge of the screen for the purposes of pulling down the\nwindowshade.\n\nThis makes it happen less often when you pick up the device or push open the keyboard.\n"
    },
    {
      "commit": "59eac4b535adad485bffcfb07ae4b734168fc2e6",
      "tree": "b29a765e94fa7ab81b0fa52e8791557c35d90cc9",
      "parents": [
        "232f24e9c12a19cbbef304fb6ffc108d1334a800"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 19 19:25:45 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 19 19:25:45 2010 -0800"
      },
      "message": "Fix crash: check for install failure cleanly\n\nDon\u0027t go looking at attributes of a package struct without first verifying\nthat the struct pointer is non-null:  in the failed-install case, of course\nthere will be no package info.\n\nChange-Id: I3b2cafca2f1e3891a6592825ce5bcc977e7f3483\n"
    },
    {
      "commit": "1bb6906c7a903ee6427c8ff37bdc5896c386ff73",
      "tree": "bdb540e8ba002ae648456c0d1af905ac7edd3676",
      "parents": [
        "6ad5a7a7c78799ecb306cb97d979bdb98cc52d15"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 19 17:02:12 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 19 17:24:07 2010 -0800"
      },
      "message": "Automatically restore app data at install time\n\nWhen an application being installed defines a backupAgent in its manifest, we\nnow automatically perform a restore of the latest-known-good data for that app.\nThis is defined as \"data backed up by this app from this handset, if available;\notherwise data for this app as it existed when the device was initially\nprovisioned.\"  If neither option exists for the app, no restore action is\ntaken.\n\nThe CL involves major changes in the Backup and Package Managers...\n\n* The Package Manager\u0027s act of installing an application has now been split\ninto two separate phases, with a data-restore phase optionally occurring\nbetween these two PM actions.  First, the details of the install are performed\nas usual.  Instead of immediately notifying install observers and issuing the\ninstall-related broadcasts, the in-process install state is snapshotted and\nthe backup manager notified that a restore operation should be attempted.  It\ndoes this by calling a new API on IBackupManager, passing a token by which it\nidentifies its in-progress install state.\n\nThe backup manager then downloads [if possible] the data for the newly-installed\napplication and invokes the app\u0027s backupAgent to do the restore.  After this\nstep, regardless of failure, it then calls back into the Package Manager to\nindicate that the restore phase has been completed, supplying the token that\nwas passed in the original notification from the Package Manager.\n\nThe Package Manager then runs the final post-install actions: notifying install\nobservers and sending out all the appropriate broadcasts.  It\u0027s only at this\npoint that the app becomes visible to the Launcher and the rest of the OS.\n\n... and a few other bits and pieces...\n\n* The ApplicationInfo.backupAgentName field has been exposed to the SDK.  This\ncan be reverted if there\u0027s a reason to do so, but it wasn\u0027t clear that this\ninfo needs to be hidden from 3rd party apps.\n\n* Debug logging of restore set IDs and operation timeout tokens [used during\nany asynchronous Backup Manager operation] are now consistently in hex for\nreadability.\n\n* We now properly reset our binder identity before calling into the transport\nduring restore-set operations.  This fixes a permissions failure when a\nsingle-app restore was attempted.\n\n* The \u0027BackupTest\u0027 test app is no longer lumped onto the system partition\nby default.\n\nChange-Id: If3addefb846791f327e2a221de97c8d5d20ee7b3\n"
    },
    {
      "commit": "6c81defa3d1111c36f8b0c9c4e84e8b2c342620f",
      "tree": "135f77c35a105adfb00782f991112a61a8c57b34",
      "parents": [
        "8afbc53578a55cb39f97f959a0b444bf24f317ee",
        "8946dd3355fc1dcbad872c0546e356474d4cc5de"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 14:27:29 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 19 14:27:29 2010 -0800"
      },
      "message": "Merge \"Move package from internal to external and vice versa.\""
    },
    {
      "commit": "8946dd3355fc1dcbad872c0546e356474d4cc5de",
      "tree": "8b614c938152df8ad809fd9bf03c6876c8a7a58e",
      "parents": [
        "eac461cf7c246df737d2b0e7bd30be176a34c36e"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 09:19:34 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 14:20:54 2010 -0800"
      },
      "message": "Move package from internal to external and vice versa.\n"
    },
    {
      "commit": "fafb041b47c1c5f6a4c253768295ed3aeb7ad412",
      "tree": "7f3b001a5c6336d6bff264253841b7d4168d8d8a",
      "parents": [
        "8a032a3b29e7708e468e2078ff88a39e083db1da"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 18 19:40:04 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Feb 19 06:51:58 2010 -0800"
      },
      "message": "MountService: Move boot-time mount to a thread - avoids ANR at boot\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "939d5fafc904ff71f6d3afaedc3eb05420fac543",
      "tree": "e4495cd83a8d402468637e51508c2ae5aaf600c8",
      "parents": [
        "165c62d3fb0aac36d42ae08dde651a18d318527c",
        "ce1200d42c46ae5d3ec637587b07dfdc02ad21c0"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 18 17:34:16 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 18 17:34:16 2010 -0800"
      },
      "message": "Merge \"Add USB RNDIS enable/disable control\""
    },
    {
      "commit": "b167643c875e19de2e9928eaae40f205e7219a62",
      "tree": "837d5a3380e424176d4d07965b126782db8a3873",
      "parents": [
        "e36d6e277e49475076b7872d36ea6a5c5b996e9d",
        "fb606da00cbfc9d2e79a4df6929c3d720f25729f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 18 15:49:25 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 18 15:49:25 2010 -0800"
      },
      "message": "Merge \"Fixing bug 2453467 - In case of a dead process while disabling Accessibility some processes keep sending AccessibilityEvents\""
    },
    {
      "commit": "e36d6e277e49475076b7872d36ea6a5c5b996e9d",
      "tree": "83fa38d654d5bf93315b12423a7e9aa81ec45f9e",
      "parents": [
        "a696f5d667227365da732481770767dcb330dd23"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 17 19:46:25 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 18 15:47:34 2010 -0800"
      },
      "message": "Work on issue #2263557: PMF3000 showing hybrid of portrait and landscape modes\n\nThis is a bunch of reworking of how configuration changes are handled:\n\n- When orientation is changing (for whatever reason), the window manager no\n  longer tries to pre-emptively compute a new configuration.  Instead, it\n  just determines  change is happening and tells the window manager.\n- The activity manager is now responsible for giving the window manager the\n  final configuration it is using.  This is both so it knows whem the\n  activity manager is done with its configuration updates, and so the window\n  manager can use the \"real\" configuration.\n- When an orientation or other configuration change is happening, freeze the\n  screen and keep it frozen until the activity manager has given us the\n  final configuration.\n- The window manager can now send new configurations to its clients during\n  its layout pass, as part of a resize, if it has determined that it has\n  changed.  This allows for a new View.onConfigurationChanged() API for any\n  view to easily find out when the configuration has changed.\n- ViewRoot now also works with the activity thread to make sure the process\u0027s\n  current resources are updated to the new configuration when it receives one\n  from a window.  This ensures that at the time onConfigurationChanged() and\n  other view callbacks are happening, the correct configuration is in force.\n- There is now a sequence number associated with Configuration, which\n  ActivityThread uses to avoid using stale configurations.  This is needed now\n  that it can receive configurations asynchronously from both the window\n  manager and activity manager.\n- The hack for keeping the locale has been removed, and underlying problem\n  fixed by having Configuration initialize its locale to \"unknown\" instead of\n  a valid default value.\n"
    },
    {
      "commit": "fb606da00cbfc9d2e79a4df6929c3d720f25729f",
      "tree": "315c1da6b35fb6ae8014ec601a10205a40e765ce",
      "parents": [
        "be8af08cf4cf9384b3fa13c853c40d761211ceed"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Feb 18 10:54:36 2010 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Feb 18 15:30:52 2010 -0800"
      },
      "message": "Fixing bug 2453467 - In case of a dead process while disabling Accessibility some processes keep sending AccessibilityEvents\n"
    },
    {
      "commit": "424c61fd0aedb4a6cc8f53f4e417dbf23bf7fb18",
      "tree": "62a0963123d55867a6c6a69f51c8c24acbc8cc86",
      "parents": [
        "c34ebce475a6994f1aa59b8c535ff966c8f59431"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Feb 18 08:14:01 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Feb 18 14:17:23 2010 -0800"
      },
      "message": "Fix 2363699 - Make notification shade animate closed when disabled\n\nThe animation was removed to fix 2298803 because if the windowshade\nwas tracking when this happened, it would get stuck.\n"
    },
    {
      "commit": "c34ebce475a6994f1aa59b8c535ff966c8f59431",
      "tree": "0bf3d1e170ca8fae06b8aa1da699a432f0b4400c",
      "parents": [
        "76c22f180ade373ea80a25fd927d559067e21950"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 18 13:39:41 2010 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 18 13:59:05 2010 -0800"
      },
      "message": "Make MountService work in the simulator.\n"
    },
    {
      "commit": "ce1200d42c46ae5d3ec637587b07dfdc02ad21c0",
      "tree": "093e3d8693a3e8e1f5e36fbc8032711a8a964b90",
      "parents": [
        "0a073274d82443e7fbb964f069fed58215641aa8"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 18 11:25:54 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 18 12:10:55 2010 -0800"
      },
      "message": "Add USB RNDIS enable/disable control\n"
    },
    {
      "commit": "d970998b0d489774ad1c5b94b47d233912f00214",
      "tree": "e319422620d535a0c7172fe8616e67cc27cf86b5",
      "parents": [
        "154f7a1cc2d4f0468a7cc8dfa36e837c84cd9f7e"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 18 11:43:03 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 18 11:48:48 2010 -0800"
      },
      "message": "framework: storage: Add \u0027force\u0027 option to unmount/destroy storage apis, and update callsites.\n\nAlso adds additional storage unit tests\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "154f7a1cc2d4f0468a7cc8dfa36e837c84cd9f7e",
      "tree": "8b43fca812663d2ad1750128f72d8181fcb3a037",
      "parents": [
        "0a073274d82443e7fbb964f069fed58215641aa8"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Wed Feb 17 11:56:39 2010 -0800"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Thu Feb 18 11:43:03 2010 -0800"
      },
      "message": "Show car mode notification in status bar.\n\nThe notification is an ongoing event and can be used to get out of car mode.\n"
    },
    {
      "commit": "6d43ebb8077206da814e9dc251de5ade34c63409",
      "tree": "f8f4977a945151bab5ce919baaf995197d64528d",
      "parents": [
        "6a6588b4acada94fd36908c6bf16bc32c7c0a252",
        "62dbb22bd4878369975492c8a1c234840e418a4f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 18 11:11:29 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 18 11:11:29 2010 -0800"
      },
      "message": "Merge \"Make the simulator boot again.\""
    },
    {
      "commit": "6a6588b4acada94fd36908c6bf16bc32c7c0a252",
      "tree": "15b8f7f8c800a7d76652d5d1883aecf2995f8413",
      "parents": [
        "f59a3c14c1d2ad701a842c1b66fa14e2d022c313",
        "6371a2d31f30b473e91be9cced64a2527c086af1"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Feb 18 11:02:48 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 18 11:02:48 2010 -0800"
      },
      "message": "am 6371a2d3: am ee3bbefd: Merge \"Don\\\u0027t crash the system process when apps give us a bad foreground service notification.\" into eclair\n\nMerge commit \u00276371a2d31f30b473e91be9cced64a2527c086af1\u0027\n\n* commit \u00276371a2d31f30b473e91be9cced64a2527c086af1\u0027:\n  Don\u0027t crash the system process when apps give us a bad foreground service notification.\n"
    },
    {
      "commit": "62dbb22bd4878369975492c8a1c234840e418a4f",
      "tree": "31917f72e7e4e3376896385f29552da12d2fab01",
      "parents": [
        "bcbf564a3f527266693233cacd6728770d1a65fd"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 18 10:56:30 2010 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 18 10:56:30 2010 -0800"
      },
      "message": "Make the simulator boot again.\n"
    },
    {
      "commit": "65e72773914554f57e6afea8b0ddd9428e330e91",
      "tree": "bbc8c1418ad13bc3fade1747213d7fda24113367",
      "parents": [
        "52120865e16854a7f43aba7c4f1909ac41235d47",
        "714cff06939281b27673fbe5edf384af6a72dea6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 18 10:49:00 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 18 10:49:00 2010 -0800"
      },
      "message": "Merge \"Fixing bug 2451615 - Accessibility services are started upon system reboot while accessibility is disabled\""
    },
    {
      "commit": "589f37cd275670c117f1b0a7464605a8778a0f35",
      "tree": "15160e3bb6ebcea66141280798f949ccd6604671",
      "parents": [
        "3d4178fe1a3b5a10b55bd245d3c142db8a43f23f",
        "e325392c257a5460de6327420c81729f4e687881"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 18 10:11:27 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 18 10:11:27 2010 -0800"
      },
      "message": "Merge \"Add Java hookup to netd interface notifications.\""
    },
    {
      "commit": "3d4178fe1a3b5a10b55bd245d3c142db8a43f23f",
      "tree": "8dbef13a7a59b652ea0cbeb7e054081f69375671",
      "parents": [
        "a6fe26c58ff6810264222212ab3d641a077733e7",
        "6f4f619369630c20b58e70f7f2fdb02622ec19b8"
      ],
      "author": {
        "name": "Eric Rowe",
        "email": "erowe@google.com",
        "time": "Thu Feb 18 09:58:07 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 18 09:58:07 2010 -0800"
      },
      "message": "Merge \"Fix formatting of ANRs.\""
    },
    {
      "commit": "e325392c257a5460de6327420c81729f4e687881",
      "tree": "337267e2678181c5e3353f8a3704f9365d207feb",
      "parents": [
        "2db939bde9a9a1d52d8849e6ff88f6a81504d361"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 18 09:23:25 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 18 09:23:25 2010 -0800"
      },
      "message": "Add Java hookup to netd interface notifications.\n"
    },
    {
      "commit": "43cc4696bfa7c3839931f3360c9660a9e41050b3",
      "tree": "4d5abf421f7a84d62777d8bcb7b0b6c94a6e8d0e",
      "parents": [
        "eba3bb06a8018bc12510a266cadc267d2163e949"
      ],
      "author": {
        "name": "Bryan Mawhinney",
        "email": "bryanmawhinney@google.com",
        "time": "Thu Feb 18 13:00:16 2010 +0000"
      },
      "committer": {
        "name": "Bryan Mawhinney",
        "email": "bryanmawhinney@google.com",
        "time": "Thu Feb 18 13:00:16 2010 +0000"
      },
      "message": "Don\u0027t return passive location provider unless app has fine permissions.\n"
    },
    {
      "commit": "6371a2d31f30b473e91be9cced64a2527c086af1",
      "tree": "9dafb02ba85a688a3cfaef817f7b5a2c55c2edcc",
      "parents": [
        "ab4835ee0df866a4f7982644742e2b758c50fdd7",
        "ee3bbefd34fd5330ebbc59175a328197ab7526af"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Feb 18 04:52:46 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 18 04:52:46 2010 -0800"
      },
      "message": "am ee3bbefd: Merge \"Don\\\u0027t crash the system process when apps give us a bad foreground service notification.\" into eclair\n\nMerge commit \u0027ee3bbefd34fd5330ebbc59175a328197ab7526af\u0027 into eclair-plus-aosp\n\n* commit \u0027ee3bbefd34fd5330ebbc59175a328197ab7526af\u0027:\n  Don\u0027t crash the system process when apps give us a bad foreground service notification.\n"
    },
    {
      "commit": "34fcf971037f33605e8009946d3acc686819dd6d",
      "tree": "dea746268a6f82e9eb3afb919024c26e7be0b2ee",
      "parents": [
        "5d72a8dda22cdb0c8e1ded1ca5e5122b0c25bcc7"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Feb 18 07:45:17 2010 -0500"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Feb 18 07:45:17 2010 -0500"
      },
      "message": "Don\u0027t crash the system process when apps give us a bad foreground service notification.\n"
    },
    {
      "commit": "714cff06939281b27673fbe5edf384af6a72dea6",
      "tree": "803e84e430d6022d9dd5ed730ff4f9aa0c50de33",
      "parents": [
        "fc081668c307b7820c8c63c8cb3146760814454b"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 17 19:36:28 2010 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 17 19:36:28 2010 -0800"
      },
      "message": "Fixing bug 2451615 - Accessibility services are started upon system reboot while accessibility is disabled\n"
    },
    {
      "commit": "6f4f619369630c20b58e70f7f2fdb02622ec19b8",
      "tree": "3727a84c878da409ad7c2f7ce88cd8db8d0e7037",
      "parents": [
        "fc081668c307b7820c8c63c8cb3146760814454b"
      ],
      "author": {
        "name": "Eric Rowe",
        "email": "erowe@google.com",
        "time": "Wed Feb 17 18:29:04 2010 -0800"
      },
      "committer": {
        "name": "Eric Rowe",
        "email": "erowe@google.com",
        "time": "Wed Feb 17 18:29:04 2010 -0800"
      },
      "message": "Fix formatting of ANRs.\n\nFix for cases where an extra newline would be added and/or a newline at the end of a line would be ommited.\n"
    },
    {
      "commit": "a4903f254b4711c8fc0ac5f7e3d605f4dce34f35",
      "tree": "e43cd5c8258315768da788f390d230a105920154",
      "parents": [
        "c6a0a9cb67930f7259f3f019e8fba22b07a906bf"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Feb 17 06:42:23 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Feb 17 18:36:40 2010 -0500"
      },
      "message": "Add passive location provider.\n\nThe passive location provider allows receiving location updates without\nactually triggering them.  This allows an application to receive location\nupdates that are being generated due to other clients of the location manager.\n\nChange-Id: Ibf7a96b089c56875d4f62d3210252ae8d9f32768\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "1168baae849f03ad655bff74360b286b2f10b4a8",
      "tree": "fb736433e1ba711234775fdc3adb78ce3ca88225",
      "parents": [
        "7951eaa92a962e39ebba0366fdcafc4a0a78cc98"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Feb 17 13:03:40 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Feb 17 14:16:51 2010 -0800"
      },
      "message": "Tone down a non-error log message about lack of ancestral dataset tracking\n\nChange-Id: I2e5e48c9b695d6225016365907fe8edc73ab2c8e\n"
    },
    {
      "commit": "1e84ac51221037b1446baad30e1aae8823e5f5a6",
      "tree": "938de341894bc546e6a06e1596837265809a9208",
      "parents": [
        "fed93779a3e144eaa44012b802feb20d194b3a97"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Tue Feb 16 08:36:54 2010 -0800"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Wed Feb 17 13:05:36 2010 -0800"
      },
      "message": "Fix permission exception thrown on exit car mode.\n\nChanging the status bar behavior requires special permission.\nSince disableCarMode is called out of a context that might not have this\npermission, the calling identity is cleared before changing the status\nbar behavior.\n"
    },
    {
      "commit": "e32c345356469777a722325c07e34e90aecd8022",
      "tree": "be55792bd9bef9b1aca5a6ad78a914a1297d2662",
      "parents": [
        "0f5a434c5467ef300b7bb408d40aa763aecdb19f",
        "bfca3a0056a42bde672c8ade83f13f139149f756"
      ],
      "author": {
        "name": "Mike Cleron",
        "email": "mcleron@google.com",
        "time": "Wed Feb 17 12:00:45 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 17 12:00:45 2010 -0800"
      },
      "message": "Merge \"Add the automatic handling of night/notnight UI modes.\""
    },
    {
      "commit": "dfac9a643e261896768cd68e8e7476a31c70b345",
      "tree": "e7ac7954559a55b0fd1ca7067eb3b97c4aabc040",
      "parents": [
        "2d9dca100f0a9c493ffe3381f35d4600edd74b19",
        "ef6b22fc04a8d5ab26e13efac8069c097e0da7c9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 17 10:56:58 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 17 10:56:58 2010 -0800"
      },
      "message": "Merge \"Fix issue #2420412: API review: DeviceAdmin API changes\""
    },
    {
      "commit": "ef6b22fc04a8d5ab26e13efac8069c097e0da7c9",
      "tree": "883f9fde4fdcde9c073ee2b0987c5dd393a00745",
      "parents": [
        "855dd9e074c4dcb9c90deaeff1eb33d6394dd5da"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 16 20:38:49 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 17 10:29:52 2010 -0800"
      },
      "message": "Fix issue #2420412: API review: DeviceAdmin API changes\n\nNote in docs that callbacks are on main thread.\nRename to DeviceAdminReceiver?\nDocument resetPassword is the device\u0027s password.\n\nAlso hide android.R.attr.neverEncrypt.\n"
    },
    {
      "commit": "4086f752e1e3f093396b4eb6c0075dccb0c65983",
      "tree": "e5e00b1814827a41895fdc0278069a32e4351941",
      "parents": [
        "fea87ae1a742c94c50573dcdd50f07e6d56c8015"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 17 09:03:29 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 17 09:05:16 2010 -0800"
      },
      "message": "NativeDaemonConnector: Improve bad list IPC diagnostics\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "a4437fc93a993c7ab326b592d22c05be2f11b543",
      "tree": "78dd3d856d7afc20c90302f46137f9f0539aa62c",
      "parents": [
        "0a05f5dfebc3dc6ee8797cfe59f33faa12d660ba"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Feb 17 07:40:50 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Feb 17 07:40:50 2010 -0500"
      },
      "message": "Fix null pointer exception in connectivity service broadcast receiver.\n\nChange-Id: I80c7175ffd1a323a02201395ff6092e2ab0fdd1c\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "0902f02e8f0d9d9401fcdec550466051482f8abd",
      "tree": "fe36e8ebf7aaf4cee40ed422e480890cab8700b9",
      "parents": [
        "d998b3cd2420dfcf9e1237234d1aeb6f5c9c4778",
        "6c0afff7f027f14fba97bc937d2a13889927be9a"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@android.com",
        "time": "Tue Feb 16 22:28:20 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 16 22:28:20 2010 -0800"
      },
      "message": "Merge \"Detect system-wide safe mode and configure the VM accordingly.\""
    },
    {
      "commit": "2db939bde9a9a1d52d8849e6ff88f6a81504d361",
      "tree": "a463803b43d13617486c1a3493b07be5e60d9913",
      "parents": [
        "8ff97b58692ecc889e013a03eefc0a1f64cc7295",
        "c1b4ce93be60aa09eda5653edc2f6a8ce864526d"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 16 18:07:31 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 16 18:07:31 2010 -0800"
      },
      "message": "Merge \"MountService: Add API call for getting a list of pids currently using the specified mountpoint\""
    },
    {
      "commit": "c1b4ce93be60aa09eda5653edc2f6a8ce864526d",
      "tree": "b6849f9031ea35d1cfcf64815bac6a91802df748",
      "parents": [
        "e421195d75471629608dd4fcc1ac4cf1ff39e7e7"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 16 17:13:03 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 16 17:13:03 2010 -0800"
      },
      "message": "MountService: Add API call for getting a list of pids currently using the specified mountpoint\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "6a6ce74e5972f189004340af97c77aa7631478ee",
      "tree": "f70406bebb5739410aed93b0daa162d0cac89663",
      "parents": [
        "cff1ae56e88d369021b25bedde500037129c5516",
        "2a091d7aa0c174986387e5d56bf97a87fe075bdb"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Feb 16 17:11:10 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 16 17:11:10 2010 -0800"
      },
      "message": "Merge \"Update Tethering.\""
    },
    {
      "commit": "cff1ae56e88d369021b25bedde500037129c5516",
      "tree": "189d6cd0d512720025ec0a1d231488f49ddddaf4",
      "parents": [
        "675ee6ac3641e75a1496b06bdbc89fb4f5476647",
        "e28290e21f908b4e917099ff2aa41e3aab9310c2"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@android.com",
        "time": "Tue Feb 16 16:58:17 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 16 16:58:17 2010 -0800"
      },
      "message": "Merge \"API CHANGE: expose backup/restore to the SDK\""
    },
    {
      "commit": "2a091d7aa0c174986387e5d56bf97a87fe075bdb",
      "tree": "8f9dd3b79705824d03eeaa65a2f9cbc2d63be26c",
      "parents": [
        "be16be13c6f03e5e94fc442ba6a95e420e1a0fef"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 11 18:18:40 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Feb 16 16:56:09 2010 -0800"
      },
      "message": "Update Tethering.\n\nAdds telephony support, async model, multiple tethered iface suport,\nbetter notifications, device config.\n\nbug:2413855\n"
    },
    {
      "commit": "e28290e21f908b4e917099ff2aa41e3aab9310c2",
      "tree": "870e5fb91e64ea96ece567ab3ccbca6e7a5e5f1b",
      "parents": [
        "bb9a51768d2d9dddbe2394b99a00544a3d144fac"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 16 15:22:26 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 16 16:23:55 2010 -0800"
      },
      "message": "API CHANGE: expose backup/restore to the SDK\n\nThe core backup/restore classes [BackupManager, BackupAgent, RestoreSession, and\nRestoreObserver] are now published for 3rd party developers, as well as the suite\nof helper classes that exist so far to aid authorship of backup/restore agents.\n\nIn conjunction with the API change, the restore-time automatic data wipe has now\nbeen removed:  applications are responsible for managing the logic of wipe vs\nmerge themselves.  If the app\u0027s agent onRestore() callback throws, the data\nis presumed to be incoherent and a wipe is issued via the Activity Manager;\notherwise, no automatic action is ever taken.\n\nChange-Id: I0b3418b829d4689b58b88be3d9c4ace37a8583a9\n"
    },
    {
      "commit": "044a401292846098e3d40977be1346b6ce7ea327",
      "tree": "aab93d065e0cfa43c864d4dd5537d39ec955b76a",
      "parents": [
        "bb9a51768d2d9dddbe2394b99a00544a3d144fac",
        "679bba339ef6948091180c776d6a284cddd812f5"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 16 16:08:00 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 16 16:08:00 2010 -0800"
      },
      "message": "Merge \"Move mount service wrapper calls to PackageHelper\""
    },
    {
      "commit": "6c0afff7f027f14fba97bc937d2a13889927be9a",
      "tree": "290ac7f6b40f7c1626e6f6c26117214e09ec4c1a",
      "parents": [
        "4a2d3b15ecca1f4db1e2c935ff36d19838eb5622"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@android.com",
        "time": "Sun Feb 14 16:18:56 2010 -0800"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@android.com",
        "time": "Tue Feb 16 15:12:55 2010 -0800"
      },
      "message": "Detect system-wide safe mode and configure the VM accordingly.\n\nFor the system server process, do the disableJitCompilation/startJitCompilation\ncallbacks depending on whether the system is in safe mode or not.\n\nIn addition, if the system is found to be in safe mode, a flag will be set in\nthe Zygote class which will be used to launch subsequent apps in VM safe mode.\n\nBug: 2267590\n"
    },
    {
      "commit": "679bba339ef6948091180c776d6a284cddd812f5",
      "tree": "03c629b1f8bd427a3917efd3fa9a61c6ee9930e7",
      "parents": [
        "642b7c0f1964389ed0b049df275c7b4daaf35b7a"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 16 11:52:44 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 16 15:11:04 2010 -0800"
      },
      "message": "Move mount service wrapper calls to PackageHelper\n\nFix bug related to forward locked apps.\n"
    },
    {
      "commit": "63cfebf2dbe628508cccc10f47754fdacd48c1a0",
      "tree": "86c2e0ebcf229eeeb5d4d966afea4bf7a0667ba6",
      "parents": [
        "be16be13c6f03e5e94fc442ba6a95e420e1a0fef"
      ],
      "author": {
        "name": "Costin Manolache",
        "email": "costin@google.com",
        "time": "Thu Feb 04 16:52:34 2010 -0800"
      },
      "committer": {
        "name": "Costin Manolache",
        "email": "costin@google.com",
        "time": "Tue Feb 16 13:57:52 2010 -0800"
      },
      "message": "Switch from REMOTE_INTENT to the new push messaging, add the required permission.\n"
    },
    {
      "commit": "f8bb2a9ad096071fb7d45c769d031b2e1853317e",
      "tree": "ac6db61749e4e403f3e70356dabecaae4556471f",
      "parents": [
        "58d6a20cfaa55ebe269ac0736999b90c3227b0c1",
        "5d72a8dda22cdb0c8e1ded1ca5e5122b0c25bcc7"
      ],
      "author": {
        "name": "android-build SharedAccount",
        "email": "android-build@sekiwake.mtv.corp.google.com",
        "time": "Tue Feb 16 12:53:04 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 16 12:53:04 2010 -0800"
      },
      "message": "am 5d72a8dd: cherry pick d60e29009c1049a9776e6630e9489e1ef3f83491\n\nMerge commit \u00275d72a8dda22cdb0c8e1ded1ca5e5122b0c25bcc7\u0027 into eclair-plus-aosp\n\n* commit \u00275d72a8dda22cdb0c8e1ded1ca5e5122b0c25bcc7\u0027:\n  cherry pick d60e29009c1049a9776e6630e9489e1ef3f83491\n"
    },
    {
      "commit": "5d72a8dda22cdb0c8e1ded1ca5e5122b0c25bcc7",
      "tree": "d8c7b6971d3394322801d02d7e893d7f1dcbf218",
      "parents": [
        "6b178e472266052b4a9b28b1e4a5cef07f1ebf8b"
      ],
      "author": {
        "name": "android-build SharedAccount",
        "email": "android-build@sekiwake.mtv.corp.google.com",
        "time": "Thu Feb 11 17:09:16 2010 -0800"
      },
      "committer": {
        "name": "Sriram Raman",
        "email": "sriramkraman@google.com",
        "time": "Tue Feb 16 15:45:42 2010 -0500"
      },
      "message": "cherry pick d60e29009c1049a9776e6630e9489e1ef3f83491\n\nRevert \"Add null checks when scanning a package.\"\nThis reverts commit 9e7ac3ba8405f22c11629091449ff35a06b72055.\n"
    },
    {
      "commit": "3619b9abd8470f83ae49bb0e364e67bec9323f5b",
      "tree": "aee7a09222fa2641f2774875d37ce7799a25d434",
      "parents": [
        "62ed7a6d4a20d1efb151315b104805ce445e7346"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sat Feb 13 10:05:42 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Feb 16 11:06:38 2010 -0800"
      },
      "message": "Fix dumpsys activity service \u003cname\u003e\n\nRefactoring of the dumpsys framework introduced a comparison that\nalways made the action dump all the services.\n\nChange-Id: I1f3ac2bd903e39e2a6e8632e8cbb23a982dfe0c6\n"
    },
    {
      "commit": "5ce7d28a077363b656fecdd1983775aca61e9032",
      "tree": "a2a3def9ce047c3575984ab90a0762fcf7e4bca9",
      "parents": [
        "3d0ff09e35521a97ec1cfe14d57c6868e271fe9a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 12 19:30:02 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 16 10:54:49 2010 -0800"
      },
      "message": "Small oom_adj tweaks.\n\nInclude a proper name for processes that are in the background\nwith running services that have been running for a long time (instead\nof showing them as bg-empty).\n\nBatch together multiple processes into the same background bin when\nthere are significantly more processes than bins.  Arguably this\nshould be smarter and base the binning on the number of background/empty\nprocesses instead of the total count, but this should be good\nenough for now.\n"
    },
    {
      "commit": "642b7c0f1964389ed0b049df275c7b4daaf35b7a",
      "tree": "0aedd2679bb469a8d491d7c59931dbbef1e741d9",
      "parents": [
        "241379081e046803b7f4cf4f07091b9de49abf31",
        "5b993ce7bc29e43a3215a50ce6ce5d6550d4e5e2"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 16 09:23:51 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 16 09:23:51 2010 -0800"
      },
      "message": "Merge \"Include install location preference when installing packages. Changes include Add new remote call in default container service to determine install location. Rename INSTALL_ON_SDCARD Remove recommentAppInstall method Add some additional flags used in remote stubs. Move check for protected apps prior to copy. Unit tests\""
    },
    {
      "commit": "bfca3a0056a42bde672c8ade83f13f139149f756",
      "tree": "7ffae4a3d5593ab780b24934577ca7f941f776ef",
      "parents": [
        "bd27544098a9fd50bf7964f108d656a905216caf"
      ],
      "author": {
        "name": "Bernd Holzhey",
        "email": "googlecar+git@google.com",
        "time": "Wed Feb 10 17:39:51 2010 +0100"
      },
      "committer": {
        "name": "Bernd Holzhey",
        "email": "holzhey@google.com",
        "time": "Tue Feb 16 17:10:39 2010 +0100"
      },
      "message": "Add the automatic handling of night/notnight UI modes.\n\nThe automatic switching between night/notnight is based on the calulcation of\nthe civil twilight of the current location. The location is mainly retrieved\nfrom the NetworkLocationProvider.\n\nAutomatic switching will only be available, when\n1) the device is in UI_MODE_TYPE_CAR\n2) the setting for the UI mode are set to \u0027automatic\u0027\n\nIf mode is set to automatic, the next twilight is caluclated and\nan alarm is set that timestamp. The alarm will trigger a new calculation\nof the twilight and sets the UI_MODE_NIGHT to the appropriate value.\n\n\tmodified:   services/java/com/android/server/DockObserver.java\n\tnew file:   services/java/com/android/server/TwilightCalculator.java\n"
    },
    {
      "commit": "1c9131c91f27c8258dfad0a92cee105275f5422a",
      "tree": "753fab99f2f62b45d1ba5f055da1cb2068243e11",
      "parents": [
        "5b31fdae6004c48e4915afb084c3f7944ac0f9aa"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Sat Feb 13 10:38:55 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Sat Feb 13 12:40:12 2010 -0800"
      },
      "message": "Remove all traces of the old checkin service (and its associated parental\ncontrol interfaces) from the framework.\n"
    }
  ],
  "next": "0e9d2af2d60b381ba52d0c25e583b3d2a9906051"
}
