)]}'
{
  "log": [
    {
      "commit": "bbff7ed44b353ff299b900a1ff50812a082206f0",
      "tree": "6b95c316e1f113c1c7af257217708d9282218a4b",
      "parents": [
        "6ec91731cbf6ee1a9a914d341fab9567d1599018"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@google.com",
        "time": "Fri Oct 29 12:57:04 2010 -0700"
      },
      "committer": {
        "name": "Chris Tate",
        "email": "ctate@google.com",
        "time": "Sun Jan 09 13:01:45 2011 -0800"
      },
      "message": "DO NOT MERGE : Ensure that the first post-restore backup pass is correct\n\nSome restore passes bring an ancestral dataset to the application, but\nothers instead act to bring an app back into sync with its own most-\nrecently-saved data.  In the latter case the state file written by the\napp after the restore is a correct basis for generating future backup\ndeltas, but in the former case it is not.\n\nThe app should not be required to distinguish between these cases;\nthe framework has all the information necessary to handle the saved\nstate correctly following any flavor of restore operation.  This\npatch makes the Backup Manager properly cause a full backup pass\nfollowing an ancestral-dataset restore.  After a current-set\nrestore the saved state file is an accurate description for\npurposes of continued backup operations, so is preserved.\n\n(Cherrypick from master to gingerbread)\n\nChange-Id: I4bc4e8782a168ecc0795107a340bdbb35060730e\n"
    },
    {
      "commit": "6ec91731cbf6ee1a9a914d341fab9567d1599018",
      "tree": "c8726515bae31736ebf1061006b5056d201879df",
      "parents": [
        "433863b1085248a8fdc9bcd0ac8501cc6a7b8ace"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@google.com",
        "time": "Tue Nov 16 15:10:49 2010 -0800"
      },
      "committer": {
        "name": "Chris Tate",
        "email": "ctate@google.com",
        "time": "Sun Jan 09 12:49:47 2011 -0800"
      },
      "message": "DO NOT MERGE : Permission fix: don\u0027t require BACKUP perm for self-restores\n\nThe public API is not supposed to require the BACKUP permission in order\nfor an application to restore its own last-known-good backup data.  However,\nas currently implemented, BackupManager.requestRestore() [the public API\nin question] depends on private Backup Manager methods that *do* enforce\nthat permission.  The net result is that the method cannot be successfully\nused by third party applications: it will throw an exception if attempted.\nThis CL restructures the permission checking involved.\n\nFirst, the underlying beginRestoreSession() operation can now be passed a\n\u0027null\u0027 transport name; if this is done, then the restore session is begun\non whatever the currently-active transport is.  Looking up the name of the\nactive transport is one of the permission-guarded actions that was required\nwith the initial implementation.\n\nSecond, a package name can now be passed to beginRestoreSession().  If\nthis is done, then the restore session can only be used to perform a\nsingle-package restore of that one application.  The BACKUP permission is\nnot required if the caller is tying the restore to its own package name.\n\nIn combination, these changes permit BackupManager.requestRestore() to\nfunction without the calling app needing to hold any special permission.\nThe no-permission case is intentionally quite narrow:  the caller must\nhold the permission unless they both (a) pass \u0027null\u0027 for the transport\nname, thereby accepting whatever the currently active transport is, and\n(b) pass their own package name to restrict the restore session only\nto their own app.\n\nExternal bug http://code.google.com/p/android/issues/detail?id\u003d10094\nInternal bug 3197202\n\n(Cherrypick from master to gingerbread)\n\nChange-Id: Ie20b0bd2420345ce6eda178f854680b558f6372a\n"
    },
    {
      "commit": "cd23823d4f533431c76baa104eb50b7803b3b391",
      "tree": "cde07be9855acfa3a611cdd4f800001d52bc5052",
      "parents": [
        "9b447d122a2f0a4798f03749e9d93b9a58834fe3",
        "690d20bb53ba2485f59d128b365eff991d5cc3e6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Jan 09 11:38:15 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jan 09 11:38:15 2011 -0800"
      },
      "message": "Merge \"Fix issue # 3227963: SecurityException: Neither user 10023 nor...\" into gingerbread"
    },
    {
      "commit": "b5a8654dea9ea8443b41f8ff3668ae4074e13a07",
      "tree": "cb4073d122303f155263187e68bc3d281694460c",
      "parents": [
        "c91f9fe542fd1ca9d6da432faeba60d35c4d5c49"
      ],
      "author": {
        "name": "Johannes Carlsson",
        "email": "johannes.carlsson.x@sonyericsson.com",
        "time": "Wed Oct 27 10:08:10 2010 +0200"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 05 18:59:07 2011 -0800"
      },
      "message": "Clear reference to the IIntentReceiver in order to avoid memory leak\n\nWhen using sendOrderedBroadcast(..) with a BroadcastReceiver the\nBroadcastReceiver instance was not released. The reason for this was that\nthe resultTo field in the BroadcastRecord kept a reference until it was pushed\nout of the mBroadcastHistory. This reference in turn kept a reference to the\nprocess side IIntentReceiver (implemented in ReceiverDispatcher$InnerReceiver).\nThis in turn had a strong reference (through mStrongRef) to the Context.\n\nIn order to keep the debug output the resultTo is also kept as a String in the\nnew resultToString variable.\n\nChange-Id: I4382a22a541c27b3694fb2b78a04ee820b235f8f\n"
    },
    {
      "commit": "3996b416109614194a265bfc107e7a407b2c233d",
      "tree": "91e9c4a0aa8bb4f0d521ad7f5c827d49f47a936d",
      "parents": [
        "69ea4e15e52c456537575d21443ac1efdb03a902"
      ],
      "author": {
        "name": "Mattias Petersson",
        "email": "mattias.petersson@sonyericsson.com",
        "time": "Wed Oct 27 09:32:51 2010 +0200"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 05 15:34:11 2011 -0800"
      },
      "message": "Avoiding cyclic references when unbinding from a service\n\nCyclic references can occur between a Service object held by an\napplication and a ServiceRecord object held by the system server.\nA part of the problem is that binders are leaked and since many binders\nare implemented by inner classes of services these services are also leaked.\nThis causes low memory problems. The solution is: When a Service is beeing\ndestroyed, go through the ServiceRecord\u0027s all IntentBindRecord and set its\nbinder references to null. This allows the binder and the service object to\nbe garbage collected.\n\nChange-Id: I5a257521964851f34c08ffb3908feaad96b1bafe\n"
    },
    {
      "commit": "6eef0ca59438a15d14be8a72b6b29f01da91a5b8",
      "tree": "e478f6a753f3435ceecce83d53643d148d088f40",
      "parents": [
        "c6f2b3b302c06b8b7b81ec7e3a43a7df1813d0e0",
        "a207ce2abafc653dd362f563f5eb46c2dea51460"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Dec 23 14:19:03 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 23 14:19:03 2010 -0800"
      },
      "message": "Merge \"frameworks/base: Fix to release references in ActivityManagerService\" into gingerbread"
    },
    {
      "commit": "a207ce2abafc653dd362f563f5eb46c2dea51460",
      "tree": "3047d8845261a1f07ad3a35fdfdbe33b57e4d16e",
      "parents": [
        "3ce86481cbde92e2cb6fe3a46cbedd8b2a5c4b48"
      ],
      "author": {
        "name": "Vairavan Srinivasan",
        "email": "vairav@codeaurora.org",
        "time": "Thu Dec 23 13:51:48 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Dec 23 14:16:56 2010 -0800"
      },
      "message": "frameworks/base: Fix to release references in ActivityManagerService\n\nServiceRecord\u0027s bindings is a hashmap to keep track of all active\nbindings to the service. This is not cleared when the service is\nbrought down by activity manager. This adds up the references to\nIntentBindRecords and its references to ServiceRecord. Fix is to\nclear the bindings.\n\nServiceRecord\u0027s restarter is a reference to the service and is not\ncleared when the service is brought down by activity manager. This\nadds up the references to ServiceRecord. Fix is to set the reference\nto null when the service is brought down by activity manager.\n\nChange-Id: Ica448cd5f60192c8adb23209b5d0e2cf0c04e446\n"
    },
    {
      "commit": "690d20bb53ba2485f59d128b365eff991d5cc3e6",
      "tree": "dc9e90632571711a17a963e39d04fa85613cdc11",
      "parents": [
        "3ce86481cbde92e2cb6fe3a46cbedd8b2a5c4b48"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Dec 22 14:03:29 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Dec 22 16:31:44 2010 -0800"
      },
      "message": "Fix issue # 3227963: SecurityException: Neither user 10023 nor...\n\n...current process has android.permission.WAKE_LOCK\n\nWhen updating a system app, we would actually uninstall the package\nof the system app, which also meant removing its uid...!  It was just\nluck that we would get the same uid when installing the update after\nthat.  During that time, if anyone tried to do anything related to\nthat uid, it would be unknown.\n\nThis change tweaks how we go about replacing system apps by making\nit more like normal apps -- to make this work, if we need to disable\nthe system app, we generate a new PackageSetting from the current\nsystem app and replace it into our data structures, so we can update\nthat without trashing the current correct information about the (still\nactually there) system app.\n\nAlso fixed a problem where we were not killing the currently running\napp before installing, like we do when updating a normal application.\n\nAnd fixed a problem where we were not deleting the /data .apk when\nuninstalling a system app update.\n\nAnd added a new option to the \"pm\" command to clear the data associated\nwith an app.\n\nChange-Id: I0e879677849aa42950a3c360bf78ad820e87674b\n"
    },
    {
      "commit": "eb9f7a01b0f501a535d872a957c1102ebb13d1c7",
      "tree": "44df101d8d798a84649dd5a4c9d2d32ab6bc7284",
      "parents": [
        "2bf89b2197674ccc414ea60a61199562df9dc52b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Oct 29 21:50:21 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Dec 22 16:00:21 2010 -0800"
      },
      "message": "Fix policy issues when screen is off. (DO NOT MERGE)\n\nRewrote interceptKeyBeforeQueueing to make the handling more systematic.\nBehavior should be identical except:\n- We never pass keys to applications when the screen is off and the keyguard\n  is not showing (the proximity sensor turned off the screen).\n  Previously we passed all non-wake keys through in this case which\n  caused a bug on Crespo where the screen would come back on if a soft key\n  was held at the time of power off because the resulting key up event\n  would sneak in just before the keyguard was shown.  It would then be\n  passed through to the dispatcher which would poke user activity and\n  wake up the screen.\n- We propagate the key flags when broadcasting media keys which\n  ensures that recipients can tell when the key is canceled.\n- We ignore endcall or power if canceled (shouldn\u0027t happen anyways).\n\nChanged the input dispatcher to not poke user activity for canceled\nevents since they are synthetic and should not wake the device.\n\nChanged the lock screen so that it does not poke the wake lock when the\ngrab handle is released.  This fixes a bug where the screen would come\nback on immediately if the power went off while the user was holding\none of the grab handles because the sliding tab would receive an up\nevent after screen turned off and release the grab handles.\n\nBug: 3144874\nChange-Id: Iebb91e10592b4ef2de4b1dd3a2e1e4254aacb697\n"
    },
    {
      "commit": "1622eee2e48678b17a4668641957f09213f98905",
      "tree": "73a488b0fda0f7aefc612929ff54f0dc132d5cac",
      "parents": [
        "3ce86481cbde92e2cb6fe3a46cbedd8b2a5c4b48"
      ],
      "author": {
        "name": "Mattias Petersson",
        "email": "mattias.petersson@sonyericsson.com",
        "time": "Tue Dec 21 10:15:11 2010 +0100"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Dec 22 10:42:47 2010 -0800"
      },
      "message": "Improve performance of WindowState.toString()\n\nThis fix improves the performance by caching the string that should\nbe returned, and reuse it next time if possible.\nThis will make it faster to switch between activities, approximately\nhalf the time to create the new view when changing from landscape to\nportrait. Also, the time for starting a new application is be reduced\nas WindowState.toString is being called thousands of times in this\ncase.\n\nChange-Id: I2b8b9bc1e251d1af43b6c85f049c01452f2573a2\n"
    },
    {
      "commit": "d68e321841b53263d97dcc7e1682e8f0c7877e62",
      "tree": "97f76e1a20480e67a97c9d11e65e71952d8aa9a8",
      "parents": [
        "12b82c8da7bc477e591b12d8b7e469a9ba6dd574"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Dec 21 11:43:28 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Dec 21 11:43:28 2010 -0800"
      },
      "message": "Be sure and report NO_CONNECTIVITY when needed.\n\nReports that we sometimes didn\u0027t report NO_CONNECTIVITY led to this suggested change.\nCould not repro the problem, but the change looks ok anyway.  Better safe than sorry.\n\nbug:3276408\nChange-Id: I0cdb48a05a5c9dfcf3a0b468a6eae43d461023b1\n"
    },
    {
      "commit": "3ec27e06a763f664b992cf1f9d8b378ea3fb53f5",
      "tree": "c7df5df3239d317e4c7d9bc3f64c35db92d8aab0",
      "parents": [
        "2bd83c00a0c72d3f6bd929c4df5fe83ee31b4704"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Dec 16 12:41:56 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Dec 16 12:41:56 2010 -0800"
      },
      "message": "Fix issue #3289835: NullPointerException in...\n\n..PackageManagerService.grantPermissionsLP when updating system app\n\nChange-Id: I36c1b96d2fe9a8737843d30f3a2669935fc281bb\n"
    },
    {
      "commit": "e4a5951925f16f18dae91ed65567e96528f17fee",
      "tree": "b96636542b481ce23865326f49c5ddff934e71cd",
      "parents": [
        "e3f6336bcffc250da90ec864bccfa73ad1d016b9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Dec 07 11:08:07 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Dec 13 14:31:40 2010 -0800"
      },
      "message": "Fix issue #3154576: battery stats checkin should include UID -\u003e packages+ map\n\nIncludes some other small fixes to battery collection and a few\nother things.\n\nOutput of package info looks like this:\n\n5,0,i,uid,1000,com.android.settings\n5,0,i,uid,1000,com.android.providers.subscribedfeeds\n5,0,i,uid,1000,com.android.providers.settings\n5,0,i,uid,1000,com.android.server.vpn\n5,0,i,uid,1000,android\n5,0,i,uid,1000,com.android.systemui\n5,0,i,uid,1000,com.google.android.backup\n5,0,i,uid,1001,com.android.phone\n5,0,i,uid,1001,com.android.providers.telephony\n5,0,i,uid,1022,com.android.nfc\n5,0,i,uid,10021,com.google.android.location\n5,0,i,uid,10021,com.google.android.syncadapters.calendar\n5,0,i,uid,10021,com.google.android.gsf\n5,0,i,uid,10021,com.google.android.syncadapters.contacts\n5,0,i,uid,10026,com.android.providers.downloads.ui\n5,0,i,uid,10026,com.android.providers.media\n5,0,i,uid,10026,com.android.providers.drm\n5,0,i,uid,10026,com.android.providers.downloads\n5,0,i,uid,10032,com.android.launcher\n5,0,i,uid,10039,com.google.android.gm\n5,0,i,uid,10041,com.google.android.gallery3d\n5,0,i,uid,10049,com.android.providers.calendar\n\nChange-Id: I9e38f254eef146339113ad270f5c6e8b60fb7a1d\n"
    },
    {
      "commit": "f92b453a58d19531f3735dd90cd4f97a78823ae1",
      "tree": "8f1452ae7450e54b7ecc65d2a7307dfa9b9db36f",
      "parents": [
        "30c818444d876dd868b84adec2416308c90f32e3"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Nov 03 11:13:10 2010 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue Nov 30 16:07:05 2010 -0800"
      },
      "message": "DO NOT MERGE Remove wifistatetracker lock access in BroadcastReceiver\n\nThe worksource reporting gets blocked by the\nstatetracker lock which can cause system restarts when\ndone from broadcastreceiver thread\n\nBug: 3153787\nChange-Id: Ie70687e7453a1c3618bac1424562be44762b2c9d\n"
    },
    {
      "commit": "70fc04c84db8f99ac2ac60fd9719b91057aacc9b",
      "tree": "5a32634a0597a9b247dcb6e0830b18d171758ccf",
      "parents": [
        "47e43febdd8ba83c333c9c98ca6a8c0bda421305"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 22 10:07:11 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Nov 05 11:59:45 2010 -0700"
      },
      "message": "Reorganize PackageManager dump to avoid NPE\n\nversionCode and mVersionName were added recently but ps.pkg can be null\nin some situations. Move them to where it will check before\ndereferencing it.\n\nBug: 3152896\nChange-Id: If992a1f29ac7b8f595f847b7743fd2374662bb6e\n"
    },
    {
      "commit": "a87ea46cb023763e0a9b0222da20b0a354f79d8d",
      "tree": "af391e4d3190d4023b6e5757a504346798151fc3",
      "parents": [
        "5dda76a72e8bb4630fb5fd38a42e7bceb5b9c954"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Nov 01 20:35:46 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Nov 01 20:51:58 2010 -0700"
      },
      "message": "Fix bugs related to cheek event suppression.\n\nTwo issues:\n\n1. First, due to an inverted conditional in the input dispatcher, we were\n   reporting touches as long touches and vice-versa to the power manager.\n\n2. Power manager user activity cheek event suppression also suppresses touch\n   events (but not long touch or up events).  As a result, if cheek event\n   suppression was enabled, touches would not poke the user activity timer.\n   However due to the above logic inversion, this actually affected long\n   touches.  Net result, if cheek suppression was enabled in the power manager\n   and you held your thumb on the screen long enough, the phone would\n   go to sleep!\n\nCheek event suppression is commonly turned on when making a phone call.\nInterestingly, it does not seem to get turned off afterward...\n\nThis change fixes the logic inversion and exempts touches from the cheek\nsuppression.  The reason we do the latter is because the old behavior\nwas actually harmful in other ways too: a touch down would be suppressed\nbut not a long touch or the touch up.  This would cause bizarre behavior\nif you touched the screen while it was dimmed.  Instead of brightening\nimmediately, it would brighten either when you lifted your finger or\n300ms later, whichever came first.\n\nBug: 3154895\nChange-Id: Ied9ccec6718fbe86506322ff47a4e3eb58f81834\n"
    },
    {
      "commit": "9e3191d16c025b44fb4a614b13e1c5b8488eb574",
      "tree": "49c91123fe9683b15579060d211e2bb1425041a7",
      "parents": [
        "11e2e9b0c261d95aafc9eb9c306f85fe95ac508a"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Oct 26 10:01:55 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Oct 26 10:01:55 2010 -0400"
      },
      "message": "Location Manager: Fix LocationManager.getBestProvider filtering.\n\ngetBestProvider should only return location providers that the client\nhas permission to use.\n\nBUG: 3124614\n\nChange-Id: I065091d0445092563bc53fb4f7d93a1ab6bebb9a\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "06eb33acb77b13f3dd55f11e3c1dfbc39f9c586b",
      "tree": "ed71fde4e62d5138429b5027cba672baa225f4c9",
      "parents": [
        "8c32bddfac259543f4ed87341fce42bc5ed60506"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Oct 25 14:09:21 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Oct 25 14:21:06 2010 -0700"
      },
      "message": "Don\u0027t turn the button backlights on if the screen is off. Part 2.\n\nThese are the logs from when I just reproduced it here.  This means that we got an event after the\nscreen turned off.  So isScreenTurningOffLocked() is working, but we need to also check that we\u0027re\nnot off.  This bug is happening because lightSensorChangedLocked is calling\nmButtonLight.setBrightness() directly instead of going through updateLightsLocked, which is where\nI added that check to not turn the buttons on of the screen is off.\n\nD/PowerManagerService( 1243): onSensorChanged: light value: 1280\nI/power   ( 1243): *** set_screen_state 0\nD/PowerManagerService( 1243): enableLightSensor false\nD/PowerManagerService( 1243): onSensorChanged: light value: 320\nD/PowerManagerService( 1243): lightSensorChangedLocked 320\nD/PowerManagerService( 1243): lcdValue 55\nD/PowerManagerService( 1243): buttonValue 255\nD/PowerManagerService( 1243): keyboardValue 0\nD/SurfaceFlinger( 1243): About to give-up screen, flinger \u003d 0x8dcf! 0\n\nBug: 3117801\nChange-Id: I722d66cafba71b183cc987b7383d4ad7e171ba82\n"
    },
    {
      "commit": "4a7b65e0d544ef1feff8e1e5789f469f89ebb85c",
      "tree": "3816ce50b2d10d62f5ce3f90f34b3be9f3138226",
      "parents": [
        "236568999411214ef440cabc6d12e3bf5f19d8f4"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Oct 25 16:35:55 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Oct 25 16:35:55 2010 -0400"
      },
      "message": "GPS: Disable verbose logging\n\nBUG: 3127049\n\nChange-Id: I9efd9eb7ff69724b133f3b70c52e173f49ddfbc5\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "60607a9012c9b7d39bef8fcf0284772f1b061efc",
      "tree": "fef35348a027e9846d27c86dca77c73327d10d88",
      "parents": [
        "b6a2256e5461160a89d077b761d3253d95ce869f"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Sat Oct 23 14:49:30 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Sat Oct 23 14:49:57 2010 -0700"
      },
      "message": "Make sure that when the screen is off, we don\u0027t try to turn the buttons on too.\n\nBug: 3117801\nChange-Id: I763f114a2b0426660d29bbda04ea7db12c1137e8\n"
    },
    {
      "commit": "5383f502e4479d117c89666fb2ee1ca53f3d27cf",
      "tree": "3205788a98d26a3161916279d83e7fd5629fc92f",
      "parents": [
        "7ce276b5a3f2e0938956171abd32d60c7f619d16"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 22 12:59:20 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 22 12:59:20 2010 -0700"
      },
      "message": "Fix issue #3122240: Expose xlarge in GB.\n\nPlus some other small API cleanup.\n\nChange-Id: I1a3c60f510f99224cccac9cc3f838f04141064f8\n"
    },
    {
      "commit": "edc0f3876ce6e14f0ce35ad950c55031694fd4f8",
      "tree": "17528833f3e8aadea97bef222471b76eb7a7b777",
      "parents": [
        "1257d330dcfdb87214278c8fc9718ea9fc663df6"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Oct 22 09:16:17 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Oct 22 09:16:17 2010 -0400"
      },
      "message": "GPS: Fix network type logic in requestRefLocation\n\nChange-Id: I20ef81bcf029b289389dba57e6cf457fda5acbf4\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "b51dc0fe2abe300593eedb8abd35e676c9224dc6",
      "tree": "df0193194babee7a4e9fcf2f057d297be257d8b0",
      "parents": [
        "7dc08fb070ff7455e794fc81645ccb4349cd152f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 21 15:34:47 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 21 15:34:47 2010 -0700"
      },
      "message": "Adjust boundaries for screen sizes.\n\nPart of issue #3116702: New manifest tags for supported screen sizes\n\nKind-of.\n\nIf you turn your head side-ways.\n\nChange-Id: I446f1e2eadba1ce284c93ff9fb0197bb0e6b0fca\n"
    },
    {
      "commit": "b09773dee0881f30c2fb4d0f3534527170f25bce",
      "tree": "7ddf436e8a4420a4722f7f843a5e7dea18c0cc48",
      "parents": [
        "b595e094e3901ff8a224eaf7d4869e7d2e5649dd"
      ],
      "author": {
        "name": "Tony Wu",
        "email": "Tony_Wu@acer.com.tw",
        "time": "Mon Aug 09 16:49:19 2010 +0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 20 10:17:28 2010 -0700"
      },
      "message": "Fix isUsbMassStorageConnected() will always return true\n\nAfter UMS mounted, isUsbMassStorageConnected() will always return true even if USB is disconnected.\nIt\u0027s because mUmsEnabling will always be ture.\n\nChange-Id: Ib24b2359ea2684eb0a9faeb880f383e87630e6e1\n"
    },
    {
      "commit": "431bb2269532f2514861b908d5fafda8fa64da79",
      "tree": "c862fe87c2525c18057728a75f2b3da9cdc30d2b",
      "parents": [
        "1858031946b3627b599475c5894655362e510351"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Oct 18 19:13:23 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Tue Oct 19 15:08:05 2010 -0400"
      },
      "message": "Reduce logging.\n\nRemember, the system and main logs are\n    - Shared resources\n    - Primarily for recording problems\n    - To be used only for large grained events during normal operation\n\nBug: 3104855\nChange-Id: I136fbd101917dcbc8ebc3f96f276426b48bde7b7\n"
    },
    {
      "commit": "1858031946b3627b599475c5894655362e510351",
      "tree": "42c6b21667f9fde9291408d5caacb12b74cf1239",
      "parents": [
        "52bea277ff92a2a1780e035c82c72082434e7b16"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@google.com",
        "time": "Tue Oct 19 11:22:03 2010 -0700"
      },
      "committer": {
        "name": "Chris Tate",
        "email": "ctate@google.com",
        "time": "Tue Oct 19 11:22:03 2010 -0700"
      },
      "message": "DO NOT MERGE.  Turn down backup logging for release.\n\nChange-Id: Ib9f4fd15981fcf52b5d5912995c1891836303427\n"
    },
    {
      "commit": "928b07480bc5372f2b959bce7b4a3b49651b49b8",
      "tree": "acc3ba2df960bd4d7658af313fd889b8c7d3d8ba",
      "parents": [
        "f73d48d754b11f6ed0fba017f5bc8f27acdfbe4f",
        "e68d58a2981827c6f54245fb62e70303a6a7ddb8"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 19 09:28:28 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 19 09:28:28 2010 -0700"
      },
      "message": "Merge \"Don\u0027t symlink native library paths for old apps\" into gingerbread"
    },
    {
      "commit": "e68d58a2981827c6f54245fb62e70303a6a7ddb8",
      "tree": "5f1b12fc433e0e2b37b2548e1354cae0fa1ec223",
      "parents": [
        "1f90908c19ab24791bd54c856b32bb12682496eb"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Oct 18 16:08:54 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Oct 18 16:55:27 2010 -0700"
      },
      "message": "Don\u0027t symlink native library paths for old apps\n\nApps that existed in an ASEC container before we put native libraries\nin the ASEC container will have their native libraries in the\n/data/data/\u003capp\u003e/lib directory. Don\u0027t try to symlink to the ASEC\ncontainer\u0027s library directory in this case.\n\nBug: 3108230\nChange-Id: I32167341cc8ff8c005e50f456ee7c783bfb0bf22\n"
    },
    {
      "commit": "5d5a9db514a9cf42fbc189fc3af6da602d89b747",
      "tree": "d55457e5fb3d5f15c04327f7ebda81f109cbc5cd",
      "parents": [
        "7689dd4928d1cc4080e43f83a523521b5ecf44e5",
        "b8d9033d9928209e68518c4b12fea74187ddb382"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Oct 18 15:14:46 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 18 15:14:46 2010 -0700"
      },
      "message": "Merge \"GPS: Enable some more logging\" into gingerbread"
    },
    {
      "commit": "b8d9033d9928209e68518c4b12fea74187ddb382",
      "tree": "389da976714bc5c5b9195d4cfe2e0b110ef93d6e",
      "parents": [
        "2d4d1bf14b531de9d4238b1e41b53c77f8976405"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Oct 18 17:59:48 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Oct 18 17:59:48 2010 -0400"
      },
      "message": "GPS: Enable some more logging\n\nChange-Id: I7d13c859002fa96fa8c361c0c709931c6b12eb99\nSigned-off-by: Mike Lockwood \u003clockwood@google.com\u003e\n"
    },
    {
      "commit": "ba2ec2b44f33f55ff8507199e4e8b108a4bec7b1",
      "tree": "e9a7b7479d4c6f32937a70578dc5495ca7db3b9b",
      "parents": [
        "72a635a1e08c1fe316dd91786774677abb11aafa",
        "2d4d1bf14b531de9d4238b1e41b53c77f8976405"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Oct 18 14:16:15 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 18 14:16:15 2010 -0700"
      },
      "message": "Merge \"Enable framework GPS and location manager logging\" into gingerbread"
    },
    {
      "commit": "2d4d1bf14b531de9d4238b1e41b53c77f8976405",
      "tree": "2ef8e19d33360133c85e10e759a860e8f646e646",
      "parents": [
        "1f90908c19ab24791bd54c856b32bb12682496eb"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Oct 18 17:06:26 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Oct 18 17:06:26 2010 -0400"
      },
      "message": "Enable framework GPS and location manager logging\n\nChange-Id: Id54fc01e7288e7d90d7b76824b708bcb2ee88333\nSigned-off-by: Mike Lockwood \u003clockwood@google.com\u003e\n"
    },
    {
      "commit": "3d3db601cdcb884ed8179cd3fd855454ea6bafac",
      "tree": "0b4888f1df40c48d3457f85b4e89aacd02291b1e",
      "parents": [
        "d1f7f4a68375f879671d300510f23d3ee78a500e"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Oct 18 16:08:16 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Oct 18 16:08:16 2010 -0400"
      },
      "message": "Pressing the power button quickly needs to turn the screen on and off correctly.\n\nThis does the animation with the power manager lock held, which isn\u0027t great, but is safe.\n\nBug: 3102208\nChange-Id: Ib0af3fab1cf6ba47053c10ae8b701376d63802ff\n"
    },
    {
      "commit": "424991704b5fb7a64f6cf0fcc3f4b1aabbf2a2e0",
      "tree": "e2961682902ad3bac3966dac644186470bbdd21b",
      "parents": [
        "77c011ba75ee1403c9b7626e4676cd3c8746605b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 15 18:45:07 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Oct 16 16:32:15 2010 -0700"
      },
      "message": "Implement issue #3094621 and #3094609 - wipe sd card\n\n3094621: add \"wipe sd card\" option to factory data reset\n3094609: collapse unmount/format into one command\n\nAlso since we have decided that it is important to consider\nthe Crespo storage as internal storage, DevicePolicyManager\ngets a new API to be able to wipe it.  (No big deal, since\nall of the work for this is now done in the implementation\nof the new UI.)\n\nChange-Id: I32a77c410f710a87dcdcbf6586c09bd2e48a8807\n"
    },
    {
      "commit": "2d3f159aa9622e05a18e7f93cecd57ad673955ae",
      "tree": "8df18f80f44133f19ce9e669a36bdd785b31460a",
      "parents": [
        "c9f7890a203a013646650a695157277df81b6a17"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Oct 15 00:54:27 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Oct 15 16:03:35 2010 -0700"
      },
      "message": "Add support for secure system overlays.  (DO NOT MERGE)\n\nThis change adds a new window type for secure system overlays\ncreated by the system itself from non-secure system overlays that\nmight be created by applications that have the system alert permission.\nSecure views ignore the presence of secure system overlays.\n\nBug: 3098519\nChange-Id: I8f8398f4fdeb0469e5d71124c21bedf121bd8c07\n"
    },
    {
      "commit": "8bdf5935c0db4a66ab33a10b43398d2523cfa15d",
      "tree": "5483e26cd1fb2de239b2f01f3d35c52aeeb7b598",
      "parents": [
        "efb581018bbede2ecdc76bcd9722ded5b6903254"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 15 12:54:40 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 15 14:46:33 2010 -0700"
      },
      "message": "Work on issue #3101415: Crespo apps seem to have their UID changed over time.\n\nfsync!\n\nChange-Id: Ie6c5397202579935ac69bf61d3e7b3081ecf269c\n"
    },
    {
      "commit": "efb581018bbede2ecdc76bcd9722ded5b6903254",
      "tree": "53ba83804a0ac7a53331b12bec05479954de6a9a",
      "parents": [
        "a851d8d0cfec45e33ee884114548a4f2890d1f06"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 14 16:47:34 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 15 11:22:17 2010 -0700"
      },
      "message": "Debug logs for issue #3101415: Apps seem to have their UID changed over time.\n\n- Activity manager now prints the pid doing a startActivity request.\n- Package manager now remembers messages about problems it has parsing\n  packages.xml.\n\nChange-Id: I11a75aa3953dbfa5dd41cfbdf69116c764ec228f\n"
    },
    {
      "commit": "bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48",
      "tree": "8b58be37237ea58089f6541403fd3092ff64f6bc",
      "parents": [
        "c1e7b2182594aa0463c4a738cc8e7eea6777ef50"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Oct 13 17:25:24 2010 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Oct 15 02:12:32 2010 -0700"
      },
      "message": "NFC: Move NFC service implementation out of system_server.\n\nNFC service is now an application service in packages/apps/Nfc.\n\nNFC service is registered through ServiceManager.addService(), and the proxy\nobject NfcAdapter obtains a handle to it through ServiceManager.getService().\n\n**Important** Had to add new symbols AID_NFC / NFC_UID / android.uid.nfc and\nmodify service_manager.c, Process.java and PackageManagerService.java in order\nto force the com.android.nfc process to take a fixed uid, so that it can use\nServiceManager.addService().\n\nMost of the JNI has moved to packages/apps/Nfc/jni. However NdefRecord and\nNdefMessage require some in-process native code, so android_com_NdefMessage.cpp\nand android_com_NdefRecord.cpp stay in frameworks/base/core/jni. They link to\na very small library libnfc_ndef.so that implements NDEF message parsing. This\nhas been added to core.mk so all devices (even without NFC hardware) can work\nwith NDEF data.\n\nBug: 3041259\nBug: 3097445\nChange-Id: If8f00ce8f2053acfc9319ca366d4a9c02bd396e6\nSigned-off-by: Nick Pelly \u003cnpelly@google.com\u003e\n"
    },
    {
      "commit": "609695dab0f0318459d32ff5dfc529d7398e751b",
      "tree": "24d1aad42b48d9040d162a015b29c5d7c21c1d07",
      "parents": [
        "d4e03f37423bee383d17f7292753a5f67e497a28"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Oct 14 14:57:49 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Oct 14 17:49:01 2010 -0700"
      },
      "message": "Screen on/off animation tweaks\n\n- Pass to surface flinger whether we want animations or not.\n- Don\u0027t use the animation when the screen goes off because of the prox sensor.\n- Turn the screen-on animation back off\n- Also, now the animation setting controls whether or not we do the animation.\n\nBug: 3097475\nBug: 3098508\nChange-Id: I205d5564d6668b33a8dc1c40d8cc06c4aad305cf\n"
    },
    {
      "commit": "bdf8034c657147226b2390eef113ff841e0d6065",
      "tree": "58be0affeafef6d38ef9e53744af1aaf1a7a8fa8",
      "parents": [
        "cebe5b2e01f8ebbf9089aebc386caecea232df76",
        "3b1abba6bbc895d63da3e82e9b158c01bd12eddd"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 13 18:29:43 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 13 18:29:43 2010 -0700"
      },
      "message": "Merge \"OBB: use PBKDF2 for key generation.\" into gingerbread"
    },
    {
      "commit": "3b1abba6bbc895d63da3e82e9b158c01bd12eddd",
      "tree": "1296e8c25a2927c94783eda83100c061fc9fe379",
      "parents": [
        "dfc07279fc6205c38f5f39cb5ba4f0aef6b593a4"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 13 15:00:07 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 13 18:25:33 2010 -0700"
      },
      "message": "OBB: use PBKDF2 for key generation.\n\nSwitch to using PBKDF2 for the key generation for OBBs. Any previously\ngenerated OBBs will stop being read correctly. A small pbkdf2gen program\nis available to allow generation of appropriate keys with the salts.\n\nBug: 3059950\nChange-Id: If4305c989fd692fd1150eb270dbf751e09c37295\n"
    },
    {
      "commit": "361a6ad16dedfed871c76e8fa64eb45aa82a0088",
      "tree": "74b5232126790b9169e7375c985cd2ccc36a62ed",
      "parents": [
        "49ec3dff4350209e109fc11dafe4294acea36146",
        "70e4210ad9119bfb7e8b7d93ade667518332e882"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 13 14:50:29 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 13 14:50:29 2010 -0700"
      },
      "message": "Merge \"Handle native library deletion in scanPackage\" into gingerbread"
    },
    {
      "commit": "f547d679c058ed00de78a32146d04b75254df7ec",
      "tree": "5a25cc02f0dcc5ad8ea59850f6383ababd4c956d",
      "parents": [
        "dfc07279fc6205c38f5f39cb5ba4f0aef6b593a4"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Sep 22 10:36:48 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 13 11:45:35 2010 -0700"
      },
      "message": "Add shutdown assurance\n\nIf something kills system_server before it completes its shutdown\naction, the runtime will just restart giving the illusion that a reboot\nfor an OTA or something else has happened.\n\nTo prevent this, write a system property containing the reboot reason\nbefore initiating the shutdown with all the services. If the\nsystem_server is killed before it completes, the next time the main\nthread of system_server starts up, it will immediately execute the\nshutdown action.\n\nBug: 3022556\nChange-Id: I81723bac333430f04205e7a7b799914d96f170eb\n"
    },
    {
      "commit": "70e4210ad9119bfb7e8b7d93ade667518332e882",
      "tree": "a12c6f82b3c11a2bb31bae29b512dc4189e491b8",
      "parents": [
        "dfc07279fc6205c38f5f39cb5ba4f0aef6b593a4"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 12 08:59:10 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 13 08:49:24 2010 -0700"
      },
      "message": "Handle native library deletion in scanPackage\n\nThe deletion of native libraries was initially added to\nFileInstallArgs.cleanUpResourcesLI() as a way to get rid of old native\nlibraries during an upgrade, but it runs well after scanPackage unpacks\nthe new native libraries. scanPackage now removes old libraries before\nunpacking the new ones, so we don\u0027t need this code anymore.\n\nBug: 3087739\nChange-Id: I54aca830ec34d6440ba22f117d55aa3107bf5b75\n"
    },
    {
      "commit": "ba0492d5edd3e6e24d948c531b74ffb5fc9b922e",
      "tree": "8452016fd3a0e7806647ce06cf288be94ebe31ee",
      "parents": [
        "45738f6700cff689eacda7c8192b76939ba20591"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Oct 12 19:01:46 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Oct 12 19:01:46 2010 -0700"
      },
      "message": "Fix issue #3089800: adb shell am -W causes ActivityManager crash\n\nChange-Id: I5508afeb523d84e552117f94c8b70e2bae2c33fa\n"
    },
    {
      "commit": "8e2be267f53bd1d2f1531f56732ead4138ac5c58",
      "tree": "5ceb35720a1daf0be56e161c788f7069430f56b7",
      "parents": [
        "fb6431c0298747d240fcdc025575e5f46db95132"
      ],
      "author": {
        "name": "Andy Stadler",
        "email": "stadler@android.com",
        "time": "Tue Oct 12 15:00:43 2010 -0700"
      },
      "committer": {
        "name": "Andy Stadler",
        "email": "stadler@android.com",
        "time": "Tue Oct 12 15:05:06 2010 -0700"
      },
      "message": "Add versionCode and versionName to dumpsys packages\n\nbug: 3090491\nChange-Id: If116baaeb83bd282c5c5534fde6248f19830a71c\n"
    },
    {
      "commit": "b08a1af667b16cb1faaea2aec1cf2a0e4659cb3f",
      "tree": "5d9491ee082cdb6f6fb61a22c97c961ee5ae5721",
      "parents": [
        "aab758e87991d1460ca94d4a5f22c0ef34641e2d"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Oct 11 19:28:58 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Oct 12 14:16:11 2010 -0700"
      },
      "message": "Remove dead code, and make the animation a setting.\n\nWhen we don\u0027t do the brightness fade, turn off the electron beam instead.\n\nChange-Id: I76513387c4fb420a67e59e005f6e8c3bc72f7f08\n"
    },
    {
      "commit": "b4de3dca96b9ff18562062e181dcd8b83e641e45",
      "tree": "b2e8b6060e1dbea173de867e5258add9b08ef8f3",
      "parents": [
        "1169f420f6df5cf5254fed883efa7e6780473c08",
        "af9d667ccf3e24058214cf4cc0a8aa8bc5100e3c"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Oct 11 17:24:54 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 11 17:24:54 2010 -0700"
      },
      "message": "Merge \"OBB: rearrange to be entirely asynchronous\" into gingerbread"
    },
    {
      "commit": "af9d667ccf3e24058214cf4cc0a8aa8bc5100e3c",
      "tree": "c59adbe6d27cf236d6920f689dd237a115fef3f9",
      "parents": [
        "ce2f1909c74a1b90995f06a865d21260b062300b"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 08 09:21:39 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Oct 11 17:22:03 2010 -0700"
      },
      "message": "OBB: rearrange to be entirely asynchronous\n\nRearrange structure of MountService handling of OBBs to be entirely\nasynchronous so we don\u0027t rely on locking as much. We still need the\nlocking to support dumpsys which has been improved to output all the\ndata structures for OBBs.\n\nAdded more tests to cover more of the error return codes.\n\nOh and fix a logic inversion bug.\n\nChange-Id: I34f541192dbbb1903b24825889b8fa8f43e6e2a9\n"
    },
    {
      "commit": "1da8d4d1697cec871dea8c30dad67e90db10bde6",
      "tree": "9a9fe2f4a87edb3e0816ef5b28f1076e476803e8",
      "parents": [
        "44104df10660c711129fd263364afc2174f40ac2",
        "b931a1b4183386ba840edc1bcc507eccf11b5cbe"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Oct 11 16:27:36 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 11 16:27:36 2010 -0700"
      },
      "message": "Merge \"Fix an event injection bug when the policy is bypassed.\" into gingerbread"
    },
    {
      "commit": "b931a1b4183386ba840edc1bcc507eccf11b5cbe",
      "tree": "f9e1ba1030d392ab288ad13e5eaba32c65a96c76",
      "parents": [
        "b699726018a0049665d8ad6b90dbc5af0e18f135"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Oct 11 14:20:19 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Oct 11 16:26:13 2010 -0700"
      },
      "message": "Fix an event injection bug when the policy is bypassed.\n\nAdded the concept of a \"trusted\" event to distinguish between events from\nattached input devices or trusted injectors vs. other applications.\nThis change enables us to move certain policy decisions out of the\ndispatcher and into the policy itself where they can be handled more\nsystematically.\n\nChange-Id: I4d56fdcdd31aaa675d452088af39a70c4e039970\n"
    },
    {
      "commit": "a4e95dfea4f3635d6cb845873fce0566c20cc88e",
      "tree": "1715f9fd98681f03b15ec36209f72f8ea53ad6bf",
      "parents": [
        "c0ad216c8ebc74b59074a7538533605eebfd65c3",
        "111285763204cabff682b381928fd5447a5c6a90"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Oct 11 15:49:30 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 11 15:49:30 2010 -0700"
      },
      "message": "Merge \"Grant URI permissions to the MCS\" into gingerbread"
    },
    {
      "commit": "c0ad216c8ebc74b59074a7538533605eebfd65c3",
      "tree": "cfb84ecf60bfe1b679080ef08922e8b02415b874",
      "parents": [
        "3d90d11a7b6d2b1c49e5890306a06f01646392b0",
        "6d747656628aa86ee2190a3e5939d447623294a5"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Oct 11 15:19:47 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 11 15:19:47 2010 -0700"
      },
      "message": "Merge \"Add a configuration option to turn on the screen when you unplug the device.\" into gingerbread"
    },
    {
      "commit": "6d747656628aa86ee2190a3e5939d447623294a5",
      "tree": "2c95adad3e676973f4e98691b185852819293e44",
      "parents": [
        "446547af37fd10142f15f6a9b3ac3007c6473981"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Oct 11 15:15:31 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Oct 11 15:16:28 2010 -0700"
      },
      "message": "Add a configuration option to turn on the screen when you unplug the device.\n\nBug: 3068624\nChange-Id: I7366ece2528b31feee920f4600a475e81a0f3709\n"
    },
    {
      "commit": "111285763204cabff682b381928fd5447a5c6a90",
      "tree": "1ea9124701006d918741d876f16fb4df1190ab7b",
      "parents": [
        "692cac9fdd7b179ba807351772fdf2339c000dfe"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Oct 11 10:51:32 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Oct 11 15:11:12 2010 -0700"
      },
      "message": "Grant URI permissions to the MCS\n\nWhen the PackageManagerService is asked to install from a URI, it might\nbe explicitly granted the permission to read from the URI content\nprovider. We need to pass along these permissions to the\nMediaContainerService (DefaultContainerService) to ensure the MCS can\nread from the content provider.\n\nChange-Id: Ie7ddaeb638af82b60792a4c3f8c99e1e8eef1916\n"
    },
    {
      "commit": "0a7892367f46e3653e9857195ec19356f848b7f8",
      "tree": "6891bfa1b033b2be6e6879f1d15ea1c241f9d0cf",
      "parents": [
        "cf6b2765ae7ea6305754e253264012b8f0498f7b",
        "a9c5043b24e288655a38970dd1e999e2bce5f326"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@google.com",
        "time": "Mon Oct 11 14:42:00 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 11 14:42:00 2010 -0700"
      },
      "message": "Merge \"Temporarily turn on backup/restore debug logs\" into gingerbread"
    },
    {
      "commit": "a9c5043b24e288655a38970dd1e999e2bce5f326",
      "tree": "c346d6702c040a3ad07643e200b9af899566a6c3",
      "parents": [
        "70f1a3b8a0fcf332e35f87be85ae3a9e37a85e9c"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@google.com",
        "time": "Mon Oct 11 14:37:12 2010 -0700"
      },
      "committer": {
        "name": "Chris Tate",
        "email": "ctate@google.com",
        "time": "Mon Oct 11 14:37:12 2010 -0700"
      },
      "message": "Temporarily turn on backup/restore debug logs\n\nSeveral people are seeing odd behaviors around backup/restore at present.\nEnable expanded logging to help pin down exactly what is happening.\n\nChange-Id: I95ca013017cb07e633f2ba765583de3cf0e056af\n"
    },
    {
      "commit": "446547af37fd10142f15f6a9b3ac3007c6473981",
      "tree": "929defbf32b5f56d3043a9a07ab831d9fc660f08",
      "parents": [
        "6bb7a4a68ae79dab56b23d1c7111bf7eb3aa55fe",
        "4b9f62d1a25d05996ac20dd2178e2e79f7aefbc4"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Oct 11 13:52:34 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 11 13:52:34 2010 -0700"
      },
      "message": "Merge \"Don\u0027t throw when userActivity fails because of the permission check.\" into gingerbread"
    },
    {
      "commit": "6bb7a4a68ae79dab56b23d1c7111bf7eb3aa55fe",
      "tree": "6ea95ac2e49bc512f183c22324c40f37db77964f",
      "parents": [
        "ce2f1909c74a1b90995f06a865d21260b062300b"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Oct 11 13:41:10 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Oct 11 13:43:51 2010 -0700"
      },
      "message": "Go one day into 1970 for timezone code.\n\nChange-Id: I80251de79db6684ef3fa1ec835b400d9e3547401\n"
    },
    {
      "commit": "4b9f62d1a25d05996ac20dd2178e2e79f7aefbc4",
      "tree": "5b33aaf7bb659b543cab78caf88fb780d6baf93b",
      "parents": [
        "692cac9fdd7b179ba807351772fdf2339c000dfe"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Oct 11 13:41:35 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Oct 11 13:42:00 2010 -0700"
      },
      "message": "Don\u0027t throw when userActivity fails because of the permission check.\n\nJust log.  But don\u0027t log too often.\n\nBug: 3083024\nChange-Id: I66f942a67ed6c481afb4079045c66931a4c81688\n"
    },
    {
      "commit": "ce2f1909c74a1b90995f06a865d21260b062300b",
      "tree": "fc01499a53e89cbe47ee129149da601ab60b95d3",
      "parents": [
        "a7c76d8307a3b49bf5b8fdda3543455b0e5dd64c",
        "35ca9d8a357d3e8c514740ebdbab154e865fdbbf"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Oct 11 13:00:51 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 11 13:00:51 2010 -0700"
      },
      "message": "Merge \"On boot, advance time to at least 1970.\" into gingerbread"
    },
    {
      "commit": "35ca9d8a357d3e8c514740ebdbab154e865fdbbf",
      "tree": "2682e5a7bd42fb1ddfa2af8e990bdceac06ff3fd",
      "parents": [
        "c8511af04a442551a204b1f47fabb317bcf54be0"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Oct 11 11:52:49 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Oct 11 12:17:16 2010 -0700"
      },
      "message": "On boot, advance time to at least 1970.\n\nOtherwise various Java APIs start doing their documented \"correct\"\nthing, which is to fail.\n\nBug: 3081605\nChange-Id: I90f8cde745d2ddab78419e37f60eea1e81a58127\n"
    },
    {
      "commit": "50130bbc884a7ad7db39dbc4f54e76e8be87761f",
      "tree": "a9cbbbc6767ca64c3fe38d5fe49fb5643c4185d1",
      "parents": [
        "c8511af04a442551a204b1f47fabb317bcf54be0"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Oct 11 06:22:50 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Oct 11 14:28:28 2010 -0400"
      },
      "message": "GPS: Add update_network_state call to AGpsRillInterface\n\nChange-Id: I404a7a45773f592de7dfe75a8287fef15515ea8b\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "1e6a3a53fc4d56e3a0f86c8721dedfd46e738a32",
      "tree": "71a66aa8a9a760086aba831e07101474dede90e2",
      "parents": [
        "b72a335a7f11176838d2d12e7295344c092c62ac",
        "b699726018a0049665d8ad6b90dbc5af0e18f135"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Oct 10 14:47:57 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Oct 10 14:47:57 2010 -0700"
      },
      "message": "Merge \"Added more robust tracking and cancelation of events.\" into gingerbread"
    },
    {
      "commit": "b699726018a0049665d8ad6b90dbc5af0e18f135",
      "tree": "e711b4de7efbb4473306a208befe0e834d90c39b",
      "parents": [
        "db56b9bd39e739474684987b83f386f50596aa5d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Oct 08 22:31:17 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Oct 10 14:45:51 2010 -0700"
      },
      "message": "Added more robust tracking and cancelation of events.\n\nThis change fixes several issues where events would be dropped in the\ninput dispatch pipeline in such a way that the dispatcher could not\naccurately track the state of the input device.\n\nGiven more robust tracking, we can now also provide robust cancelation\nof input events in cases where an application might otherwise become\nout of sync with the event stream due to ANR, app switch, policy decisions,\nor forced focus transitions.\n\nPruned some of the input dispatcher log output.\n\nMoved the responsibility for calling intercept*BeforeQueueing into\nthe input dispatcher instead of the input reader and added support for\nearly interception of injected events for events coming from trusted\nsources.  This enables behaviors like injection of media keys while\nthe screen is off, haptic feedback of injected virtual keys, so injected\nevents become more \"first class\" in a way.\n\nChange-Id: Iec6ff1dd21e5f3c7feb80ea4feb5382bd090dbd9\n"
    },
    {
      "commit": "572172befbdf020e96ee4b10506b2b7cd5f1a09b",
      "tree": "476ccd952fa62ed65c41fa849c4a33f2705e89d7",
      "parents": [
        "d14230f1c7aa5073db9d291f8fbd6da5491955b9"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Oct 08 16:35:52 2010 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Sun Oct 10 11:26:41 2010 -0700"
      },
      "message": "Add some error-case logging.\n\nTurning off all debug logging is a good thing, but it leaves us blind when errors come in.\nbug:3075537\n\nChange-Id: I8a4e7f2ce094574ec45cec268bdbc46449540c9f\n"
    },
    {
      "commit": "b6e5fa895c03eeefaa810eaceb498254096c093d",
      "tree": "6e91792cf480be6ce96cbb52e24fe1c1d72d6dd4",
      "parents": [
        "bed5af7ebcd195a2ab5e16fc03ee8b61a4d7aec6"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Oct 09 20:10:46 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Oct 09 20:14:33 2010 -0400"
      },
      "message": "GPS: Do not call sGpsInterface-\u003einit() multiple times\n\nChange-Id: I5f2b55959bd67864168690c1fe619e55edc18268\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "62d8874eb74045b37140857ea3b31f198f0adffa",
      "tree": "29459741151cb1cc6cb22df7e999681ffeb2c394",
      "parents": [
        "db56b9bd39e739474684987b83f386f50596aa5d",
        "2fe979fc611263965d25f9fb0d484fac99f4ef83"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 08 15:21:49 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 08 15:21:49 2010 -0700"
      },
      "message": "Merge \"Fix retaining of granted permissions when updating of system app.\" into gingerbread"
    },
    {
      "commit": "2fe979fc611263965d25f9fb0d484fac99f4ef83",
      "tree": "479155a5dde97054347c290f07bb794f90aa69f5",
      "parents": [
        "9934fa77efab362729d0d3cb8aa0bdcd31d63ead"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 08 15:07:17 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 08 15:07:17 2010 -0700"
      },
      "message": "Fix retaining of granted permissions when updating of system app.\n\nWas broken when the app is using a shared user ID.\n\nChange-Id: I088334f6540889969ee4367fa502807ce3f94f6a\n"
    },
    {
      "commit": "ecfd7f7d9588728a4579fab8af1722cefeb32d40",
      "tree": "4afcce867056ebf6910ea7f46d25ff92daf4ebcb",
      "parents": [
        "9934fa77efab362729d0d3cb8aa0bdcd31d63ead"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 08 14:23:40 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 08 14:28:02 2010 -0700"
      },
      "message": "Maybe fix #3076572: phone process crashes in SipService, trying to get wifi lock\n\nWifiService needs to keep the calling identity cleared while\nit is doing all of its internal work.\n\nChange-Id: I2bd720e26efcf5ad5839693307d61e51f0658ace\n"
    },
    {
      "commit": "aecab79b4ec4727a59a5532c7db2683c617e8c21",
      "tree": "88df28e7033205ae34d4acf0e9de485dee39f5c5",
      "parents": [
        "f72dd0190ee64914161d361be1213eda8cab7b90",
        "8863c43d9efda108c880814b0a18688b75d70153"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Oct 08 11:17:17 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 08 11:17:17 2010 -0700"
      },
      "message": "Merge \"Remove races in Geocoder/LocationProvider Proxy\" into gingerbread"
    },
    {
      "commit": "78d688369a2240009d3bbe4126996a973b2e2fe2",
      "tree": "409d53a06e612867fcef6673a89def6a6b5e768b",
      "parents": [
        "eb43f1b2eedbcfe0e8ac34452a43eaaef5dde513"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 07 01:12:46 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 07 18:48:22 2010 -0700"
      },
      "message": "Implement tracking of package install times.\n\nProvides information about the time at which the package was\nfirst installed and the time it was last updated.\n\nChange-Id: Icb43f77b5b669a1ce685e8913046b8be386b6175\n"
    },
    {
      "commit": "6a6b007c77e5cab7ee435506a4f65824f52028b6",
      "tree": "09daacd02a3582c26d72411e5ef0129812d0c8d6",
      "parents": [
        "b74941e32e068ec03f90b9a53670328cd17ff4b4"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 07 16:46:10 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 07 17:20:26 2010 -0700"
      },
      "message": "Symlink application lib directory when on SD card\n\nThis will help legacy games that use dlopen() to directly access the\n/data/data/\u003capp\u003e/lib directory before the\nApplicationInfo.nativeLibraryDir was part of the API.\n\nChange-Id: Ie9f3e7239b6334708b5d086ffafe66a507f6d9da\n"
    },
    {
      "commit": "480afe70fa75b74b618f1f6243e7e2be1f41419a",
      "tree": "837c4edbd9bff2881b0ec96051e60f935c2223d6",
      "parents": [
        "0145e36cad1472acafb492b3f009ca6eba9593ea"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 07 10:17:50 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 07 10:53:01 2010 -0700"
      },
      "message": "Eliminate MCS_GIVE_UP state\n\nIt\u0027s basically a duplicate of MCS_UNBIND state, so just get rid of it\nwhich simplifies the state transitions.\n\nBug: 3067076\nChange-Id: I34111be88dd727af8ad59c9f49debd54ede827ea\n"
    },
    {
      "commit": "0145e36cad1472acafb492b3f009ca6eba9593ea",
      "tree": "948c3c30bd7527d58a415b28936e6a3f92572c0c",
      "parents": [
        "08fb5851bbaf11ecac0cac0de321942bfbf6a630"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 06 13:35:05 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 07 10:14:09 2010 -0700"
      },
      "message": "Revert \"Only allow 8 OBBs to be mounted by a UID\"\n\nThis reverts commit 27358a69b33eaa268ee75ef778ec824c8085adcc.\n\nConflicts:\n\n\tservices/java/com/android/server/MountService.java\n\nChange-Id: Ia14be97b4f22e95daba0d191cfc62adf3d1469cd\n"
    },
    {
      "commit": "5919ac6b4188285324646772501ef4b97b353cf4",
      "tree": "24fd16d8c43c44500f9cf39d7fa0f93cd0e88546",
      "parents": [
        "a3ee5c0351e51f7a978ddddc37644f46051ca6ed"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 05 09:49:40 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 06 17:00:00 2010 -0700"
      },
      "message": "OBB: track binder death observers\n\nAn incorrect assumption about how death observers were tracked lead to\nan IllegalArgumentException in some cases. Make sure the linking and\nunlinking of the Binder to its ObbState death observer is symmetric to\navoid this problem.\n\nBug: 3062360\nChange-Id: Idd016db12551c80cd74d00f11cf6569bd3b4ce21\n"
    },
    {
      "commit": "a3ee5c0351e51f7a978ddddc37644f46051ca6ed",
      "tree": "413b873eca325c1e7bdcb0358863e334d7cc4331",
      "parents": [
        "ef083ec008a3ec69180340912e7f0137472c97d9",
        "17eb6fb07cc6965f09c51adc70b3c291f57a784a"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 06 16:59:23 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 06 16:59:23 2010 -0700"
      },
      "message": "Merge \"Add MountService tests and fix a bug it found\" into gingerbread"
    },
    {
      "commit": "17eb6fb07cc6965f09c51adc70b3c291f57a784a",
      "tree": "ebf326ca22de459e3747c8241842168c4181d70f",
      "parents": [
        "6d44456da87dccb15b4086696f5e72a5aa198926"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 06 15:02:52 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 06 15:39:28 2010 -0700"
      },
      "message": "Add MountService tests and fix a bug it found\n\nAdd some MountService tests that are based partially on some stuff done\nin PackageManagerTests. This allows us to test the OBB changes in an\neasy way.\n\nAlso, it found some bugs in the DefaultContainerService connection state\nmachine, so fix those while we\u0027re at it.\n\nChange-Id: I18f38593be754eb32fb6e842f88eec47e2beefce\n"
    },
    {
      "commit": "043fcd9847a804bc6394728e5785aecc495e6347",
      "tree": "73a1665e3fd4c0348e48f49e8bae8702d0fd6c0a",
      "parents": [
        "6d44456da87dccb15b4086696f5e72a5aa198926"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Oct 06 14:27:34 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Oct 06 14:27:34 2010 -0700"
      },
      "message": "Work on issue #3062691: GPS enable bypass via com.android.settings.widget.SettingsAppWidgetProvider\n\nExposes an Intent I need (okay it fixes an unrelated thing in the power widget),\nand fixes some dump output.\n\nChange-Id: I51d6c93a6ac879bab64e9d5aa21129e2bbcd461b\n"
    },
    {
      "commit": "3c4c2b7e6f0674068d13b42d4dcf0fd009df0c49",
      "tree": "9fb61197b62350b3c5899fd7357dc8717b0c5425",
      "parents": [
        "5a5fff7101b45bc28f59e72ea4c3e57632ff9ceb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Oct 05 18:07:54 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Oct 05 18:07:54 2010 -0700"
      },
      "message": "Fix issue #3001368: API REVIEW: android.app.Activity\n\nBye bye, lots of junk.\n\nChange-Id: Idd72fc525851277362b2a1ff3bb0f7865fe655fd\n"
    },
    {
      "commit": "f7872780ca3dae9584251b1e3495aed12110254c",
      "tree": "00b97ad2539d7bdc71bf29960ce9e838f482acbf",
      "parents": [
        "17bc4f65324a823598e7671256c815bf32ddcc95",
        "8274a0e53630f80ab356f69ddad895ed9638574e"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Tue Oct 05 14:41:16 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 05 14:41:16 2010 -0700"
      },
      "message": "Merge \"PowerManagerService needs yet another flag...\" into gingerbread"
    },
    {
      "commit": "8274a0e53630f80ab356f69ddad895ed9638574e",
      "tree": "7af4bd25c92f7384a1805c53aec17be197693963",
      "parents": [
        "b9a40068b590b86904b40bf466571b140d0f94b4"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Tue Oct 05 17:38:09 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Tue Oct 05 17:39:01 2010 -0400"
      },
      "message": "PowerManagerService needs yet another flag...\n\n... to make sure that if you press the power button to turn off the\nscreen, that the prox sensor won\u0027t turn it back on.\n\nBug: 3011618\nChange-Id: Id16c1d65417539d4592f485b1c3efb737540c3cd\n"
    },
    {
      "commit": "831baa2e2566bf1d243c06918672abd5ff786105",
      "tree": "9d3c02281f0185abc21b7127a4c026026c496fcc",
      "parents": [
        "8735c4cda00de26127d694bfbc81e192c4caca44"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 05 12:29:25 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 05 12:56:03 2010 -0700"
      },
      "message": "Remove lingering system app native libs in /data\n\nIf a system app had a lingering native library in /data/data/\u003capp\u003e/lib,\nit would prefer that over the one in /system/lib due to recent changed\nin the Dalvik JNI class loading code.\n\nTo \"fix\" that we need to check if there are any native libraries in a\n/data/data/\u003capp\u003e/lib directory for any non-updated system apps and\ndelete them during scanning.\n\nChange-Id: If3a22e41a8531e9e5a44ba001dcea46253d47d45\n"
    },
    {
      "commit": "8735c4cda00de26127d694bfbc81e192c4caca44",
      "tree": "4436a02787a0a84877b0de6affa325471e5a3e1f",
      "parents": [
        "e02e41f484a115b5278dcc07f2d6c90819279800",
        "bd135c193102186b73b50da90985a714a90a8b0d"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 05 12:48:46 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 05 12:48:46 2010 -0700"
      },
      "message": "Merge \"Get correct native library path on reinstall\" into gingerbread"
    },
    {
      "commit": "bd135c193102186b73b50da90985a714a90a8b0d",
      "tree": "f9445063f927ab8d589c438e8f335123bff7e122",
      "parents": [
        "abcbb1a1989e8c6adec607b3964dc187f5526e66"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 05 12:26:27 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 05 12:33:33 2010 -0700"
      },
      "message": "Get correct native library path on reinstall\n\nIf an application moved between internal and external storage during a\nreinstall, we were getting the wrong path. This change fixes going from\ninternal to external and external to internal which need different\nfixes.\n\nBug: 3019708\nChange-Id: If5859aeab7505cbbb35ae5724de1224a8733f2e8\n"
    },
    {
      "commit": "8863c43d9efda108c880814b0a18688b75d70153",
      "tree": "c77a58ad2624630d406616398153ea33eec5fdda",
      "parents": [
        "b9a40068b590b86904b40bf466571b140d0f94b4"
      ],
      "author": {
        "name": "Mark Vandevoorde",
        "email": "mtv@google.com",
        "time": "Mon Oct 04 14:23:24 2010 -0700"
      },
      "committer": {
        "name": "Mark Vandevoorde",
        "email": "mtv@google.com",
        "time": "Tue Oct 05 11:12:48 2010 -0700"
      },
      "message": "Remove races in Geocoder/LocationProvider Proxy\n\nThe proxy must ensure that enable/disable calls are not reordered when\nproxied; this change adds synchronization to prevent such reordering\nthat could happen following an onServiceConnected() callback, and to\nensure cross-thread visibility of writes.\n\nAlso, when the package is updated, the old service instance must be\nunbound and the new one bound.  This changes uses a separate\nConnection object per service instance (package version) to avoid\nconfusing the binder objects.\n\nChange-Id: I0907f7eed211b97ccfffa395754f1eb8ea8d8fec\n"
    },
    {
      "commit": "1e84da822e7aa4d494b31c8759917d2751611f84",
      "tree": "aa380bb97ffc1feaa7a3c484d6b8ff922b102f57",
      "parents": [
        "abcbb1a1989e8c6adec607b3964dc187f5526e66"
      ],
      "author": {
        "name": "Miguel Torroja",
        "email": "migueltb@broadcom.com",
        "time": "Tue Jul 27 07:02:24 2010 +0200"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Oct 05 13:15:37 2010 -0400"
      },
      "message": "GPS: Add support for AGpsRilInterface.\n\nAdding changes to be able to have access to missing data to SUPL\n(celld, imsi, WAP_PUSH and SMS)\n\nChange-Id: I0207f7f7ea6595ed3fd7021cb732feddf52e4cf9\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "54e570f78b45d6c47578a4a2513097b590b6d43f",
      "tree": "bb61bf7cbb0dd320bb16e40f8b534a3f2d401a13",
      "parents": [
        "15f107b151deff1f25f1255bdbcb630ed576ac8d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Oct 04 18:32:32 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Oct 04 18:35:10 2010 -0700"
      },
      "message": "Make it easier to figure out whether an app can go on sd card.\n\nChange-Id: I9195a0881b2c435b138f39c2ab1505dc820caf10\n"
    },
    {
      "commit": "e5439f228f603f60febe058f633d91d5af2fff76",
      "tree": "54a692e6d57f5b93efb89aab2d102701876689f4",
      "parents": [
        "407f625a9b8e356e765a5ec587c443af1f3aadb5"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Oct 02 16:53:50 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Oct 04 14:01:39 2010 -0700"
      },
      "message": "Fix issue #3041660: Camera image flips upside down when rotating device\n\nApps now must explicitly opt in to having their rotation changed while\nforcing landscape mode.  Also add some new orientation constants for other\nthings apps may want to do.\n\nChange-Id: If64d84b5ef54793ee717ebda9b4c76408efc9bfd\n"
    },
    {
      "commit": "3aeee33c720fc87d97625b8040d155ca0ee88848",
      "tree": "054febcd86ed12f16ff94f311f10aa1b9ec855d2",
      "parents": [
        "624380a14def6c2acdb473e09c36139acbcefbf9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Oct 02 18:56:33 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Oct 02 19:06:18 2010 -0700"
      },
      "message": "Don\u0027t write settings multiple times when unmounting.\n\nThe package manager would write its settings multiple times,\nonce for each app on the SD card, when unmounting external storage.\nThis was kind-of slow.\n\nChange-Id: Ic5ce12022a9ce26857d1db3071e316750b03f05a\n"
    },
    {
      "commit": "d9e88d22f0ffefdc6a3b9c59168bd1bb6d402486",
      "tree": "2351ffe01b2e05532dba0b68fc1a1ed7842faffb",
      "parents": [
        "fd57416cc8c2a333f46cacad6de48a3b1547eac9",
        "12ffd9bf4c2cc9075ea7602b4932f823ba940f80"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 01 14:06:46 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 01 14:06:46 2010 -0700"
      },
      "message": "Merge \"Add \"none\" for vold and deprecate mkobb -c\" into gingerbread"
    },
    {
      "commit": "12ffd9bf4c2cc9075ea7602b4932f823ba940f80",
      "tree": "5799aa5df8bde6b1f641d704b8909d0549fd1784",
      "parents": [
        "2942391801b79816c5eb77d7ac94c4a65f26af48"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 01 12:56:59 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 01 14:02:47 2010 -0700"
      },
      "message": "Add \"none\" for vold and deprecate mkobb -c\n\nIf vold isn\u0027t told \"none\" for the key, it will try to mount it as an\nencrypted container.\n\nAlso remove the -c option from mkobb since it can be triggered by\nincluding a key as well.\n\nChange-Id: I40a8ff3f778bfda682312630e6687ecc14b51844\n"
    },
    {
      "commit": "6493e64c2a3d5fa6adf0e6331a061d5bc67649fa",
      "tree": "999884329e9b71cf546147102f626ded35f12949",
      "parents": [
        "2942391801b79816c5eb77d7ac94c4a65f26af48"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 01 13:06:30 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 01 13:06:30 2010 -0700"
      },
      "message": "Fix issue #3037083: Problem report for Pinball\n\nThe app was toggling between hiding and showing the status bar, because\nthe dialog was large enough to fill the screen but didn\u0027t set to hide\nthe status bar.\n\nIt turns out that the code to determine the top fullscreen window is\nintrinsically unstable, since it relies on comparing a window\u0027s frame\nwith the screen, yet the window frame can change as a result of changes\nsuch as hiding the status bar.\n\nInstead, we now simplify all of this to just say that the top fillxfill\nwindow gets to control the status bar.\n\nChange-Id: I22913adf7235fe0d52612f6738c7c94351274e38\n"
    },
    {
      "commit": "2942391801b79816c5eb77d7ac94c4a65f26af48",
      "tree": "377be8b9e3b763263056bac5565888a9f0b2cb92",
      "parents": [
        "0a69f597604254bc37721b135ab612eaacdd0cbd"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 01 08:37:20 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 01 08:38:56 2010 -0700"
      },
      "message": "Fix regression in OBB key handling\n\nChange-Id: If583cbdb8be68ffed094a5fde7ee00e1914c5841\n"
    },
    {
      "commit": "0a69f597604254bc37721b135ab612eaacdd0cbd",
      "tree": "0f78376b5a3edaba3c6bc0218127f9c36acc89bf",
      "parents": [
        "ab2e6284845794079d809e62c52c6c380b31c4b5",
        "cef65eeb0315c3118bf8860d6f723cb49ff6bc52"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 30 19:03:38 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 30 19:03:38 2010 -0700"
      },
      "message": "Merge \"Rub in a little \u0027ol log-b-gone.\" into gingerbread"
    },
    {
      "commit": "cef65eeb0315c3118bf8860d6f723cb49ff6bc52",
      "tree": "2917e5a149a267eac00b13a27a88627e252cfe23",
      "parents": [
        "727d67d4fb8721b0291312e4cca33927dfba0e31"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 30 18:27:22 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 30 18:27:22 2010 -0700"
      },
      "message": "Rub in a little \u0027ol log-b-gone.\n\nMmmmmm...  great fresh scent!\n\nChange-Id: I050e70b31b5d4a9c6731f15a4b51a3620a33a78d\n"
    },
    {
      "commit": "ab2e6284845794079d809e62c52c6c380b31c4b5",
      "tree": "067c52d45d3d060d8c012be7c88bf09977e07147",
      "parents": [
        "8b28441adab59f2bb0d92c8a717af75331249e08",
        "a39ccb6c4ae7dbf522a3fd0c450a95653c6418ea"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Sep 30 18:12:24 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 30 18:12:24 2010 -0700"
      },
      "message": "Merge \"Use the private version of userActivity.\" into gingerbread"
    },
    {
      "commit": "4da02392a12e26f94a072e0a8584dbebfa29c4e3",
      "tree": "b2b4a218ae56422f56982d3ee99f7aebd29c9d22",
      "parents": [
        "735de3b38abbd6564082a819377673ee593744a6"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Sep 30 17:58:41 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Sep 30 17:59:42 2010 -0700"
      },
      "message": "Being already unmounted is not a failure\n\nChange-Id: I5943096444e3d4d4cc5fd63f64a09c32f649a227\n"
    },
    {
      "commit": "735de3b38abbd6564082a819377673ee593744a6",
      "tree": "ec309587616c5abbc49df83d7d21b6a3b3e9dfbd",
      "parents": [
        "27358a69b33eaa268ee75ef778ec824c8085adcc"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Sep 30 14:11:39 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Sep 30 17:25:05 2010 -0700"
      },
      "message": "Hash keys with MD5; track IBinders not IInterface\n\nUsing a plaintext password doesn\u0027t work unless it\u0027s a certain length, so\njust hash the plaintext password with MD5 to make it the right length\nfor the twofish encryption.\n\nTracking the IInterface doesn\u0027t make much sense since it\u0027s different\neach time, so track the IBinder instead. That way we can unlinkToDeath\nthe binder when the last thing it\u0027s holding onto goes away.\n\nChange-Id: Id828d25b4d74f27e9d8b4bfb3909c964469cc473\n"
    },
    {
      "commit": "27358a69b33eaa268ee75ef778ec824c8085adcc",
      "tree": "e12147b6763048166c954c0d2375b9daaecd9abc",
      "parents": [
        "38cf8867a8d3e8d5159abd0bd0e6a3b0b8348b94"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Sep 29 19:27:20 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Sep 30 17:24:53 2010 -0700"
      },
      "message": "Only allow 8 OBBs to be mounted by a UID\n\nChange-Id: I4f017c5408af903c6c9ba007a2cf7f488a7fcd27\n"
    }
  ],
  "next": "38cf8867a8d3e8d5159abd0bd0e6a3b0b8348b94"
}
