)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "0e9d2af2d60b381ba52d0c25e583b3d2a9906051",
      "tree": "fd8348dea0d0a7ddbc3116c92e2ea506886bc50d",
      "parents": [
        "8fe5571aa46321a97dd6e7470e9df208a0324103"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Mon Jan 25 11:33:03 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Fri Feb 12 23:26:12 2010 -0500"
      },
      "message": "New user interface sound effects:\n\n - Low battery. (http://b/2320026)\n - Dock/undock events.\n - Keyguard lock/unlock events.\n\nNew system settings have been created to turn these on/off\nand to specify the relevant sound files.\n\n[Production notes: The provided low battery sound and dock\nsounds were synthesized; the lock screen sounds are\nprocessed samples of a ballpoint pen click mechanism.]\n\nBug: 2320026\nChange-Id: I374285b0f94f59c7555bb8816580f5a8c802e90d\n"
    },
    {
      "commit": "5b993ce7bc29e43a3215a50ce6ce5d6550d4e5e2",
      "tree": "fc25f9f6adee005c287454a74837f6cbc1a072a0",
      "parents": [
        "70251b1704b9bb81443e7533d365400645dd5eaa"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 12 09:43:29 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 12 18:50:47 2010 -0800"
      },
      "message": "Include install location preference when installing packages.\nChanges include\nAdd new remote call in default container service to determine\ninstall location.\nRename INSTALL_ON_SDCARD\nRemove recommentAppInstall method\nAdd some additional flags used in remote stubs.\nMove check for protected apps prior to copy.\nUnit tests\n\nDefaultContainerService first parses the file uri(if content uri is specified\nit returns a default install internal only value) and returns\na recommended location. Based on which the temporary id is determined\neither a file name or a container id and the file is copied there.\nThis is then later renamed during install.\nTodo\u0027s light weight parsing of package when determining location since we\njust need the install location attribute only when finding out\nrecomended location. This will also enable to move the check for\nupdated system apps(cannot be on sdcard) prior to copying.\n"
    },
    {
      "commit": "b125dc5599468a09d82751cd76152071ae485afb",
      "tree": "6d7ea46208c30bf1ae9014b70d7f5f50167eaa10",
      "parents": [
        "d382e4bee9c6cf96f97700ebcffcf81465294146"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 12 15:52:09 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 12 17:52:22 2010 -0800"
      },
      "message": "Fix MotionEvent pointer API.\n\nOoops.  The API said that the pointer down and up actions contained\nthe pointer id, but it is actually the index.  Actually it makes\nmuch more sense for it to be the index, and those ACTION_POINTER_1_DOWN\netc. constants were stupid.\n"
    },
    {
      "commit": "a87240c2270e83c3e865ffa1e56f79bfa74daffc",
      "tree": "56185fa9fc74ee9a55e3a35e6f228459a0cff04d",
      "parents": [
        "7f66d6e63dc79709ea308440ec57906980046531"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 12 14:12:34 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 12 15:49:30 2010 -0800"
      },
      "message": "Remove BACKUP_DATA permission and associated checks\n\nAny package can now participate in backup/restore, without requiring any\nmanifest-declared permission.  *Control* of the backup manager is still\nguarded by the BACKUP permission, which is signatureOrSystem.\n\nChange-Id: I116fcfcd4cd255e3c976330da1c4dea7d4faae9d\n"
    },
    {
      "commit": "90d2db3d21d07c2a4b4cbbc558f5ec59d20098c3",
      "tree": "51f9e1bcb1cfbfe18899bdb926c375164f3939f7",
      "parents": [
        "965e37ec88609c36a3c5461ece459a96abb6f7ca"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 11 22:19:06 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 12 13:19:06 2010 -0800"
      },
      "message": "Add Pointer Location to the window manager.\n\nThe window manager now has pointer location built into it.\nViva la touch!\n"
    },
    {
      "commit": "11f7c7e07754515cd732a9f8cdc2d1352db1a3ab",
      "tree": "2e3f70047d612049edfe516602f5ca76e9311fc7",
      "parents": [
        "93c0a0d90c873d5a9a6ee9df30cc6ad68420839a",
        "136b1f927f9d11cb0a9d3202ca3f77471afda556"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@android.com",
        "time": "Fri Feb 12 10:53:07 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 12 10:53:07 2010 -0800"
      },
      "message": "Merge \"Fix spurious ANRs involving window shuffling and non-fullscreen activities\""
    },
    {
      "commit": "a0430a1860dc3ee56a09c540ebed4ef0af5ab423",
      "tree": "e82459fa55e0083938cbdcb73c786c6d544a3279",
      "parents": [
        "470969346d7958f859d97d1a136b4ecc11e2a464"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Feb 11 23:35:49 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Fri Feb 12 01:06:22 2010 -0500"
      },
      "message": "Disable distracting status bar ticker text in car mode.\n\nBug: 2420702\n\nChange-Id: I17ade6355b60da5e77d17f3556c86a4aaf40d173\n"
    },
    {
      "commit": "470969346d7958f859d97d1a136b4ecc11e2a464",
      "tree": "c9c1ec33c9b3dd2463ffa4b7704cd87e1a12ca9c",
      "parents": [
        "b509065a586d11e6800373d0a57f5296428f2d89"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 11 15:57:09 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 11 20:02:20 2010 -0800"
      },
      "message": "Add APIs for mapping between new and current package names.\n\nThis will allow Market and others to find out what the \"real\" name\nof a package is, when it is currently running under the old name of\na previously installed version.\n"
    },
    {
      "commit": "136b1f927f9d11cb0a9d3202ca3f77471afda556",
      "tree": "c414b2dd82c19844dae57e475941f66c87c38bbd",
      "parents": [
        "5a4b1d9e63c084998f8be3def945f005f8768937"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 11 17:51:24 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 11 18:07:22 2010 -0800"
      },
      "message": "Fix spurious ANRs involving window shuffling and non-fullscreen activities\n\nForce the event-target bookkeeping to reset when an app explicitly\nacknowledges event receipt.  Furthermore, notify the event dispatcher\nwhenever a new window is created, even if there is nominally an\nexisting event target window.\n\nThese changes in tandem address a subtle race bug in which the event\ndispatcher believes that there is an event recipient that it is still\nwaiting for even when the event in question has been acknowledged;\nthis results in a spurious ANR.  There were checks in the existing code\nthat wound up doing the right thing in the case of windows becoming\nhidden, but the case of non-fullscreen activities floating over them\n[unavailable for input but still visible] exposed the race condition.\n\nBug: 2432828\nChange-Id: I29fb741aace34736b029f9ba43f2c43184366258\n"
    },
    {
      "commit": "315ada7fbb9e967c22e87b4921bec720ceb2c73c",
      "tree": "d40fec8ac540b985027bf2334c9d3e8d5d73d942",
      "parents": [
        "2870552b412cd8186c6605d108b736832b9b82da"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 11 12:14:08 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 11 14:36:30 2010 -0800"
      },
      "message": "Get rid of the limit-unlock policy control.\n\nThis is merged with force-lock.  These both allow effectively the same thing,\nso there is no reason to junk up the user experience with them as separate\nentities.\n"
    },
    {
      "commit": "27b28b3f62bd3b54fa13acd5d035940b9be464f3",
      "tree": "d1f44096f7071bbc53e5bc979117be8e0f4aa55c",
      "parents": [
        "d5663a108760de672b130ffabd4f6632982f75e5"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Tue Feb 09 23:09:17 2010 +0100"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Thu Feb 11 21:25:58 2010 +0100"
      },
      "message": "Introduce special UI modes for night and car usage.\n\nThe device mode is now called ui mode. Furthermore is the order of\nprecedence for the resources now in such a way that the ui mode needs\nto be specified after the orientation and before the density.\n\nThe ui mode can be set, like it is done for the locale, as follows:\n\nIActivityManager am \u003d ActivityManagerNative.getDefault();\nConfiguration config \u003d am.getConfiguration();\nconfig.uiMode \u003d Configuration.UI_MODE_TYPE_CAR | Configuration.UI_MODE_NIGHT_ANY;\nam.updateConfiguration(config);\n\nTo allow users to disable the car mode and set the night mode the IUiModeManager\ninterface is used.\n\nThe automatic night mode switching will be added in a separate change.\n"
    },
    {
      "commit": "3941411a21b0ccbfb2843dd8c7c7fbe9f8e85abb",
      "tree": "e19dd952cf8c80039bbc8bb5c751d6433ae96222",
      "parents": [
        "777db0c08a1bee45acc2ca3fcc62ef1db6d0e221",
        "1e90ab542d675616e9370ab7e5add99d7af12587"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Feb 11 11:20:40 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 11 11:20:40 2010 -0800"
      },
      "message": "am 1e90ab54: merge from open-source master\n\nMerge commit \u00271e90ab542d675616e9370ab7e5add99d7af12587\u0027\n\n* commit \u00271e90ab542d675616e9370ab7e5add99d7af12587\u0027:\n  Fixs the incorrect message for SecurityException\n  Default RotateDrawable\u0027s pivot set to (50%, 50%)\n"
    },
    {
      "commit": "777db0c08a1bee45acc2ca3fcc62ef1db6d0e221",
      "tree": "bb50d74a72792719b3ae9ecba7ac7bb2b6603539",
      "parents": [
        "6dee18c5cfdd5d63f3a9c299d2b61f819c07e920",
        "d7b92a0ff395fa45d934eaa4242bf2598da88964"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 11 11:16:36 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 11 11:16:36 2010 -0800"
      },
      "message": "Merge \"resolved conflicts for merge of 61bb25f2 to master\""
    },
    {
      "commit": "6dee18c5cfdd5d63f3a9c299d2b61f819c07e920",
      "tree": "d30d5cdc3fd085036d80c858db39e8bfc3653aec",
      "parents": [
        "938606083115275bf9d05bfbd4de771aede00091"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 09 23:59:16 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 11 11:04:49 2010 -0800"
      },
      "message": "New implementation of \u003coriginal-package\u003e tag.\n\nWe now have the new package retain the name of the old package.  This makes\nsure that all existing references to it (shortcuts, widgets, etc) will still\nwork.\n\nThis does mean that your package can run under either the old or new name,\ndepending on whether the user got it with an update.  Buyer beware!\n\nI have tried testing all of the paths of updating, installing another\nupdate in /data, uninstalling the update, updating system with an even\nnewer update, etc.  I think they all work.  No promises though.\n"
    },
    {
      "commit": "c0d71d37233f0aec18433eab3e0d90c48827f1a9",
      "tree": "3fa92e2ab291c759348ea4b0fa4eb69456e6018d",
      "parents": [
        "1ab6d751589c1f16512a64395b67508ac8b8fa94",
        "289e58051dd575cee601c38d6816b9ecd745b505"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu Feb 11 10:47:41 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 11 10:47:41 2010 -0800"
      },
      "message": "Merge \"Truncate SYSTEM_TOMBSTONE events at the end (take the head), but still truncate the other log files at the start (take the tail).\""
    },
    {
      "commit": "289e58051dd575cee601c38d6816b9ecd745b505",
      "tree": "c221129770d0d3015fb581fa6b5cb7dcc043b9ef",
      "parents": [
        "18e939623556928f73fcc7511c85a537929a4a7e"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu Feb 11 10:40:49 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu Feb 11 10:40:49 2010 -0800"
      },
      "message": "Truncate SYSTEM_TOMBSTONE events at the end (take the head),\nbut still truncate the other log files at the start (take the tail).\n"
    },
    {
      "commit": "d7b92a0ff395fa45d934eaa4242bf2598da88964",
      "tree": "46a4899a3799321bf8472c4818b54e089ced1560",
      "parents": [
        "4e208bd8722ad48c342c0128313ef40971234121",
        "61bb25f2f92af10b685d6bd1452bc5505995c64e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 11 10:36:10 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 11 10:38:28 2010 -0800"
      },
      "message": "resolved conflicts for merge of 61bb25f2 to master\n"
    },
    {
      "commit": "1ab6d751589c1f16512a64395b67508ac8b8fa94",
      "tree": "b12a77e9b556a469cdf2d85dbefe21af70e7f84f",
      "parents": [
        "18e939623556928f73fcc7511c85a537929a4a7e",
        "a181b21305e0bcf171e2112a3ca5c08eb4fd2434"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 11 10:25:59 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 11 10:25:59 2010 -0800"
      },
      "message": "Merge \"MountService: Fix some mountset bugs and tighten up some return values\""
    },
    {
      "commit": "18e939623556928f73fcc7511c85a537929a4a7e",
      "tree": "e1e85e2634f45742a4f358ad640f5a0ed76066c0",
      "parents": [
        "4e208bd8722ad48c342c0128313ef40971234121"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Feb 10 19:27:58 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu Feb 11 10:22:09 2010 -0800"
      },
      "message": "Eliminate dependencies on Checkin, replacing checkin events with EventLog\nevents (and in one case, a DropBox entry).\n\nAdd a simple intent that triggers master-clear (and toggle EFS), given the\nright permissions.\n\nBug: 2264596\nBug: 2350452\nBug: 2264596\n"
    },
    {
      "commit": "1e90ab542d675616e9370ab7e5add99d7af12587",
      "tree": "ba207d9049c64f2acd4dcf02ba177be38a05a3bb",
      "parents": [
        "61bb25f2f92af10b685d6bd1452bc5505995c64e",
        "27f3de6bac93140452ce131cbbd8c6df33e25a94"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Feb 11 10:03:02 2010 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Feb 11 10:03:02 2010 -0800"
      },
      "message": "merge from open-source master\n"
    },
    {
      "commit": "61bb25f2f92af10b685d6bd1452bc5505995c64e",
      "tree": "e67faae764a32c17d4e4f98050767128755dffd7",
      "parents": [
        "87bdfd6d22ee964339791bb65686a718d207793b",
        "c1eba82ba479006045c1d7a4c8ceba116a9602d1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 11 09:34:59 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 11 09:34:59 2010 -0800"
      },
      "message": "am c1eba82b: Merge \"Fix issue: 2413494: Add TTY support.\" into eclair\n\nMerge commit \u0027c1eba82ba479006045c1d7a4c8ceba116a9602d1\u0027 into eclair-plus-aosp\n\n* commit \u0027c1eba82ba479006045c1d7a4c8ceba116a9602d1\u0027:\n  Fix issue: 2413494: Add TTY support.\n"
    },
    {
      "commit": "a181b21305e0bcf171e2112a3ca5c08eb4fd2434",
      "tree": "2d710c52e471992a454f7115042f3a8ff79be06d",
      "parents": [
        "2980d10c1a77172556acf7875a2781ffc9881c15"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 11 06:50:20 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 11 06:50:31 2010 -0800"
      },
      "message": "MountService: Fix some mountset bugs and tighten up some return values\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "b2983510230f49616b81be363707928e526d30a4",
      "tree": "a4583d3b6692215b78efb605d029f107d064e7bd",
      "parents": [
        "49ffc0ff72a29f000b56deb34b0706cbfc5624bf",
        "5f85780db058d3babb435466b33834c3cc70f5c1"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Thu Feb 11 02:00:24 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 11 02:00:24 2010 -0800"
      },
      "message": "Merge \"Fix NPE in AppWidgetService.addProvidersForPackageLocked()\""
    },
    {
      "commit": "102d05fa9135bef5c6b875f9a6485566b06ebd18",
      "tree": "990ee430142bdc479b532ee524027300aca8a39d",
      "parents": [
        "aa82768b8c6b6e81bb048d2d72b6586eb66b5b5d"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Feb 05 14:47:27 2010 -0800"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Feb 10 15:22:58 2010 -0800"
      },
      "message": "get DHCP IP on each connection\n\nThe IP state was not being refreshed when the supplicant transitions\nfrom COMPLETED to ASSOCIATED to COMPLETED. This can lead to\na connected state with no real connection due to old IP settings.\nThe fix refreshes IP on each connection.\n\nBug: 2329261\nChange-Id: I38cd56369ee2d8ab3e0f06f5c9f5712b9b2f35a0\n"
    },
    {
      "commit": "5f85780db058d3babb435466b33834c3cc70f5c1",
      "tree": "5e3aaeb217085b8eeec5a0b9299ffd784c158a9a",
      "parents": [
        "e4e82f2782e61658256ecb85066e273c22a37951"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Wed Feb 10 23:09:48 2010 +0000"
      },
      "committer": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Wed Feb 10 23:09:48 2010 +0000"
      },
      "message": "Fix NPE in AppWidgetService.addProvidersForPackageLocked()\n\nqueryBroadcastReceivers() can return null, so AppWidgetService\nshould guard against that.\n\nFixes http://b/issue?id\u003d2418982\n\nChange-Id: I1ba83c0c37622e0280f3dba2fef5eca2cc90c975\n"
    },
    {
      "commit": "23085b781e145ed684e7270af1d5ced6800b8eff",
      "tree": "43629e3d545d343314af074dc66e63f628d780ff",
      "parents": [
        "60586f2ec65d16d185767fce4311d3ed0e9112ac"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@android.com",
        "time": "Mon Feb 08 16:06:32 2010 -0800"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@android.com",
        "time": "Wed Feb 10 14:51:31 2010 -0800"
      },
      "message": "Support per-application switch to execute the VM in safe mode.\n\nThe new attribute can be set by adding android:safeMode\u003d\"true\"\nin AndroidManifest.xml with the SDK.\n\nTested with pairing locally compiled SDK with Eclipse and verified that the JIT\n(the only component currently included in the safe mode) is indeed disabled\nwith the new attribute.\n\nBug: 2267583\n"
    },
    {
      "commit": "a7d7f79c4058bdf1508458341bd1c1cd4ff785b9",
      "tree": "db0dfca7ddff76c74e1954530d569fdbec10f854",
      "parents": [
        "2fe23de8e3af6ef9e54c57e981c7d9d0e62e5299"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Tue Feb 09 13:16:02 2010 -0800"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Wed Feb 10 12:16:29 2010 -0800"
      },
      "message": "Adding null check.\n"
    },
    {
      "commit": "7749adfd0184b876ff6f8d1961959ca95ab82244",
      "tree": "16783dbb54fc6bf4fcd0dd7383251ea3606cb175",
      "parents": [
        "859f455645bc49e32330108b1ea9f85ffb80a2cd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 10 11:22:11 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 10 11:23:04 2010 -0800"
      },
      "message": "Fix issue: 2413494: Add TTY support.\n\nThis is a new implementation of TTY support.\nPrevious implementation in commit aead64def1fe58c95c086a0ca00cf0b13fa32ef1 is reverted.\nThe new method does not rely any more on the kernel headset driver to send a UEvent containing\ncurrent TTY mode.\n"
    },
    {
      "commit": "d0efb6bc159b86dfad540aa9dc3e20e1bb56d930",
      "tree": "b699271ba9346af5235100f6a7e6c66e20e61456",
      "parents": [
        "4c48cb72ffc975c2a94473efb529d559aacaff17",
        "4154c07c5cabc74029a2df379075391d782a682c"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 10 11:21:50 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 10 11:21:50 2010 -0800"
      },
      "message": "Merge \"StorageNotification: Move notification / usb storage activity into StatusBarPolicy\""
    },
    {
      "commit": "27f3de6bac93140452ce131cbbd8c6df33e25a94",
      "tree": "c45b812a46c1a674c8b47763fd9e3327ceac3102",
      "parents": [
        "b81b1447d2cfa9dc5bcc02c8a1b7193400a97ab6"
      ],
      "author": {
        "name": "Chander S Pechetty",
        "email": "chanderspechetty@unisaran.com",
        "time": "Wed Feb 10 22:14:00 2010 +0530"
      },
      "committer": {
        "name": "Chander S Pechetty",
        "email": "chanderspechetty@unisaran.com",
        "time": "Wed Feb 10 22:14:00 2010 +0530"
      },
      "message": "Fixs the incorrect message for SecurityException\n\nwhen injecting a Key, Pointer and Trackball events into the UI across\napplications, the corresponding methods throw SecurityException with\nincorrect permission message.\nINJECT EVENT permission should be INJECT_EVENTS\n"
    },
    {
      "commit": "d03ff94fe58045b5bd1dd783fb98026778a4265d",
      "tree": "c35d201ab498f23f075f1c48ce4ce3ce55e9f2e4",
      "parents": [
        "ca35953c9064114cb09181e8bffddb2f7c2d8d53"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Feb 09 08:46:14 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Feb 10 09:41:25 2010 -0500"
      },
      "message": "Clean up interface between LocationManagerService and the location providers:\n\nLocationManagerService now uses new Java interface LocationProviderInterface\nrather than LocationProviderProxy to refer to location providers internally.\n\nLocationProviderProxy and the ILocationProvider binder interface are only\nused for location providers implemented as services (NetworkLocationProvider)\n\nBuilt-in location providers (GpsLocationProvider and mock providers) now just\nimplement LocationProviderInterface rather than using a Binder interface and proxy object.\n\nDelete obsolete and unused TestLocationProvider class.\n\nChange-Id: Id800e7c1864f7c666f8e37125c05896493b9c8c4\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "4154c07c5cabc74029a2df379075391d782a682c",
      "tree": "3d4f10d3e4c065c5c7ec2c3faad072bbf7d1c8b8",
      "parents": [
        "739e1f8cdaee7ad448086f61412d118cb18152c5"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 18:37:54 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 19:33:58 2010 -0800"
      },
      "message": "StorageNotification: Move notification / usb storage activity into StatusBarPolicy\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "739e1f8cdaee7ad448086f61412d118cb18152c5",
      "tree": "0fa259858bc835d739550151e8f77ced37598563",
      "parents": [
        "46d350233328b703455ae10bf3ef724fa6733662",
        "6cdd9c08565a6871ad72cd388adfdfca23532e5e"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 19:30:34 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 09 19:30:34 2010 -0800"
      },
      "message": "Merge \"MountService: Add isSecureContainerMounted() API call\""
    },
    {
      "commit": "6cdd9c08565a6871ad72cd388adfdfca23532e5e",
      "tree": "e8f726d6bf7d7271e1042a00cc0e2746a7c2160b",
      "parents": [
        "a63730d1f103f78589faef461d2af7351fc49f42"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 14:45:20 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 18:46:05 2010 -0800"
      },
      "message": "MountService: Add isSecureContainerMounted() API call\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "add1376cde9cd027df473f84df75edc993001ebe",
      "tree": "80f3ef3e2d79e3a685fe04169a3fb644e5d69035",
      "parents": [
        "b687581d4cf67fe8f25bac4333b513bcba2f3cb2"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Feb 03 17:34:58 2010 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Feb 09 18:18:55 2010 -0800"
      },
      "message": "Generate /data/system/packages.list in the PackageManager\n\nThis file contains uid + debugFlag + dataPath information for\neach non-system installed package. It is meant to be used later\nfrom native code and thus needs to be considerably simpler to\nparser than packages.xml.\n\nThe file should only be readable by non-system userIds, and its\nformat is essentially line-based with each line like:\n\n  \u003cpkgName\u003e \u003cuid\u003e \u003cdebugFlag\u003e \u003cdataDir\u003e\n\nWith:\n\n  \u003cpkgName\u003e    as the package name\n  \u003cuid\u003e        as the application-specific user id\n  \u003cdebugFlag\u003e  either 0 or 1. 1 if the package is debuggable\n  \u003cdataDir\u003e    path to the package\u0027s data directory\n\nWe need the debug flag to allow \u0027run-as\u0027 to only allow\ncommands to be executed on debuggable packages, even on\nproduction devices.\n"
    },
    {
      "commit": "46d4525abc4a07a7ac04880acd7a727e1348c997",
      "tree": "5d46846ee003d0e650f9addf8f4909cbde6b3240",
      "parents": [
        "ba637f87367878b1cebaf1b23a62f077e9c8006f"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 09 15:48:57 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 09 15:55:03 2010 -0800"
      },
      "message": "Print the snapshot focus rather than the Window Manager\u0027s actual current focus\nwhen dumping key-timeout information around an ANR.\n\nChange-Id: Ia70a71029663fa134078ea9ab40f0a6a7f3945ea\n"
    },
    {
      "commit": "e83cefcef07f9ac025642c1ffec76b4c7ab39cf2",
      "tree": "130696ee2a90150129c3ee98544c5814528c90f9",
      "parents": [
        "72e5a8820a996c547eacea534b11b6b8f6eca83b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 04 17:38:14 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 09 14:20:55 2010 -0800"
      },
      "message": "New external storage APIs.\n\nThis implements the spec for external storage organization, and\nproperly reflects how the media scanner organizes the files it finds.\n\nAlso includes package manager support for removing app private\nfiles from external storage when the application is uninstalled.\n\nFor the new APIs and paths, the main place to look is Environment\nand Context.\n"
    },
    {
      "commit": "53d0c7f4a032dcb2479294dddae31bb3230e10c8",
      "tree": "2c803a35902c5de0d0651e13a237e793cb006ff8",
      "parents": [
        "44d993798f8241b78229718bbc358046f590de7e",
        "8200b20fe6e68e68264efe133f21ac8df079a563"
      ],
      "author": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Tue Feb 09 14:05:48 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 09 14:05:48 2010 -0800"
      },
      "message": "Merge \"Change key dispatch timeout logging.\""
    },
    {
      "commit": "59443a673a736978361dc341f41ce4e9dae053a0",
      "tree": "2035b24014a356ad0f39cce16a63d977d2e903d1",
      "parents": [
        "cb72cda8ca3669dfcbe71d1ac6c5e6c264ff5faa"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 13:28:45 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 13:28:45 2010 -0800"
      },
      "message": "MountService: Check for failure to unmount when enabling UMS and fix reversed logic\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    }
  ],
  "next": "b104340496e3a531e26c8f428c808eca0e039f50"
}
