)]}'
{
  "log": [
    {
      "commit": "5c19aeca3d41c6a5820dc05a51c38736d3583378",
      "tree": "842d01879f26ea60425ab99a98c1144b761db712",
      "parents": [
        "46c53129c6f27c9193ab195a69cb50591b8c1fa2"
      ],
      "author": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Thu Feb 04 13:33:45 2010 -0800"
      },
      "committer": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Thu Feb 04 14:37:21 2010 -0800"
      },
      "message": "API review: TrafficStats: rename Pkts to Packets\n\nRename getMobileTxPackets(), getMobileRxPackets(), getTotalTxPackets(),\ngetMobileRxPackets()\n\nbug 2420318\n"
    },
    {
      "commit": "8f3ff09556b2d0c45eebdf97bd980f3b9f0c7d8f",
      "tree": "569f5c1fc582aa41207d05a5030b7bde8f553377",
      "parents": [
        "7b4030dbe7c814c78a761d221d18eaaacfe1431e",
        "2cce6267a0cdcdd3f3f369599e99f9a83bbe4be2"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 04 14:26:40 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 04 14:26:40 2010 -0800"
      },
      "message": "Merge \"resolved conflicts for merge of dd24f599 to master\""
    },
    {
      "commit": "2cce6267a0cdcdd3f3f369599e99f9a83bbe4be2",
      "tree": "0a7f0b3570ca619ff916727ac7107bb73b1e9f66",
      "parents": [
        "76bc4a6bb355d402b82bfa146ff29b8b81099076",
        "dd24f599066d693722d53924b16f1cdb53aa7f8b"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 04 14:23:39 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 04 14:23:39 2010 -0800"
      },
      "message": "resolved conflicts for merge of dd24f599 to master\n\nChange-Id: I57c349c493d69585d4c85e8c0970649708c6bd33\n"
    },
    {
      "commit": "2a9094d07915a077026a651a7773f94322bf7d23",
      "tree": "71cc1bfa20c87704c6fca5ff32e384f1832a131c",
      "parents": [
        "76bc4a6bb355d402b82bfa146ff29b8b81099076"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 03 19:20:09 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 04 11:54:34 2010 -0800"
      },
      "message": "Framework part of issue #2391576: Add method to start the Jit and call it\n"
    },
    {
      "commit": "dd24f599066d693722d53924b16f1cdb53aa7f8b",
      "tree": "22bf8a53d79fc3c7909e1006f4189c52084a8a63",
      "parents": [
        "b5c01b96a8e1780d8ac0638041b08e06b8c88a83",
        "aead64def1fe58c95c086a0ca00cf0b13fa32ef1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 04 09:34:34 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 04 09:34:34 2010 -0800"
      },
      "message": "am aead64de: Fix issue: 2413494: [Passion-c] Add TTY support.\n\nMerge commit \u0027aead64def1fe58c95c086a0ca00cf0b13fa32ef1\u0027 into eclair-plus-aosp\n\n* commit \u0027aead64def1fe58c95c086a0ca00cf0b13fa32ef1\u0027:\n  Fix issue: 2413494: [Passion-c] Add TTY support.\n"
    },
    {
      "commit": "d0e18ffb82b59d38aeaf0e552f48e734202719ab",
      "tree": "5ad66758cf2629e3590201b37252be56518f2bc6",
      "parents": [
        "3141e0a62abe57e93e5d716895a2a57cc052bb50"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Jan 26 11:40:34 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 04 09:15:06 2010 -0800"
      },
      "message": "First pass at USB Tethering.\n\nbug:2281900\n"
    },
    {
      "commit": "aead64def1fe58c95c086a0ca00cf0b13fa32ef1",
      "tree": "918402ad7ecad49dfcba8aae87746b9c55c02cb9",
      "parents": [
        "8a6c060719c8870f370b82faa48ae2f437915214"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 02 09:42:33 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 03 23:35:34 2010 -0800"
      },
      "message": "Fix issue: 2413494: [Passion-c] Add TTY support.\n\nHandle TTY mode change events received by HeadsetObserver and send information down to AudioHardware with AudioManager.setParameters()\n\nUse setting \"tty_mode_uses_heaset_events\" in core config.xml to indicate if the product uses this particular\nmethod of indicating the TTY mode change.\n"
    },
    {
      "commit": "f1dd37ac283d09ba5d21349bf99fdc6ba3d7fc4b",
      "tree": "402371b00e3b954057efbbc86500237029e264f7",
      "parents": [
        "fa6bc84e01c061ded1b9ab11a82cbbaac2843f73",
        "68065e0a1980ab6abf8963b48b011efa017fe1c2"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Feb 03 20:25:43 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 03 20:25:43 2010 -0800"
      },
      "message": "Merge \"Fix 1667521 - system process crash after bad notification\""
    },
    {
      "commit": "68065e0a1980ab6abf8963b48b011efa017fe1c2",
      "tree": "3d6d4184f359e3bfea6783a97d0de7c2d99d7ab5",
      "parents": [
        "378a1488bb76d4786025a10e36c2d638cbd2cb6a"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Feb 03 20:21:41 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Feb 03 20:21:41 2010 -0800"
      },
      "message": "Fix 1667521 - system process crash after bad notification\n\nThe steps to reproduce this were kind of interesting.  You needed to have\na notification with a bogus RemoteViews in the first position in the list,\nand then have another notification come in with an earlier timestampe.  In\nthat case, it would get a bad index for the new (not bogus) view that was\nbeing added.\n"
    },
    {
      "commit": "fa6bc84e01c061ded1b9ab11a82cbbaac2843f73",
      "tree": "6f620d25e30c95e115d0811149ad3d1885965bde",
      "parents": [
        "b039fd4c4a15153571095f828d5485cc363924b7",
        "b858dfda5012a1040927ed62c3bb856c3294d882"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 03 18:18:56 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 03 18:18:56 2010 -0800"
      },
      "message": "Merge \"Implement system data migration support.\""
    },
    {
      "commit": "b858dfda5012a1040927ed62c3bb856c3294d882",
      "tree": "d865e8580e15ecda54e4fd4e891c489eb222a8b1",
      "parents": [
        "70d10c0156f5d2d1c639d0ebe62de8ec950d4306"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 02 10:49:14 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 03 15:42:02 2010 -0800"
      },
      "message": "Implement system data migration support.\n\nThis adds three new features:\n\n- \u003coriginal-package android:name\u003d\"com.foo\" /\u003e manifest tag.\n  This allows an .apk to specify another package it originally came from,\n  propagating all state and data from the old to new package.\n\n- \u003cadopt-permissions android:name\u003d\"com.foo\" /\u003e manifest tag.\n  In some more complicated cases, a new .apk may be a combination\n  of multiple older .apks that each declared their own permissions.\n  This allows you to propagate the permissions from these other\n  .apks into the new one.\n\n- A new system/etc/updatecmds directory.\n  You can place files here which describe data files to move from\n  one package to another.  (See below for details.)\n\nAlso in this change: we now clean up the data directories of\n.apks that disappear from the system image, and some improvements\nto logging and reporting error messages.\n\nA typical file in the updatecmds directory looks like this:\n\n-------\ncom.google.android.gsf:com.google.android.providers.talk\n    databases/talk.db\ncom.google.android.gsf:com.google.android.googleapps\n    databases/gls.db\n-------\n\nThis says that for com.google.android.sfs, there are two packages to\nmove files from:\n\nFrom com.google.android.providers.talk, the file databases/talk.db.\nFrom com.google.android.googleapps, the file databases/gls.db\n\nAs part of moving the file, its owner will be changed from the old\npackage to whoever is the owner of the new package\u0027s data directory.\n\nIf those two files had existed, after booting you would now have the\nfiles:\n\n/data/data/com.google.android.gsf/databases/talk.db\n/data/data/com.google.android.gsf/databases/gls.db\n\nNote that all three of these facilities assume that the older .apk\nis completely removed from the newer system.  The WILL NOT work\ncorrectly if the older .apk still remains.\n"
    },
    {
      "commit": "348f7b904851e3edcf09b8362406ff2f4ae57db2",
      "tree": "da6f4fdea5f8ca753d2e4f65e988a981e7a19b90",
      "parents": [
        "8c59ec53dc181e86cf620e53badb7d2e16be2d1f",
        "cce9da5dc3d515f98c260af41a03e61e57b4e7a6"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@android.com",
        "time": "Wed Feb 03 15:35:28 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 03 15:35:28 2010 -0800"
      },
      "message": "Merge \"Add auto-restore setting and Backup Manager awareness thereof\""
    },
    {
      "commit": "cce9da5dc3d515f98c260af41a03e61e57b4e7a6",
      "tree": "a62b89129c5ffa27c1068a489ac8e1932e9027cc",
      "parents": [
        "3c4a1ebc19abba06af565071c243e55ba6eef585"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Feb 03 15:11:15 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Feb 03 15:33:52 2010 -0800"
      },
      "message": "Add auto-restore setting and Backup Manager awareness thereof\n\nThis setting, like BACKUP_ENABLE, should never be set directly in the secure\nsettings database.  Instead, it should be manipulated through the new IBackupManager\nmethod setAutoRestore(boolean).\n\nChange-Id: I5c3226ca85b6148bb756d753d7f9e4ea76e878c4\n"
    },
    {
      "commit": "ec4caa0f549bf9a75d20daa95b8aa8d9fab39681",
      "tree": "7ff6f2e9c277d248924b289c707683c7c4d3353f",
      "parents": [
        "3c4a1ebc19abba06af565071c243e55ba6eef585"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 03 10:48:21 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 03 14:37:43 2010 -0800"
      },
      "message": "NativeDaemonConnector: Improve NativeDaemonException reporting to include the actual error response\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "08675a3376819a82aa5ab344bc3e7b1635c30b05",
      "tree": "9a16e6be377fe367639ef9e02c5421e0ce9b9044",
      "parents": [
        "57405b93f194851eb2187a8ed3362be18a483a17"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Jan 28 09:57:30 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 02 18:33:29 2010 -0800"
      },
      "message": "Apps on sdcard: Add new broadcasts\n\nAdd new broadcasts ACTION_MEDIA_RESOURCES_AVAILABLE and\nACTION_MEDIA_RESOURCES_UNAVAILABLE that get broadcast by\nPackageManagerService when sdcard gets mounted/unmounted\nby MountService so that packages on sdcard get recognized by\nvarious system services as being installed/available or\nremoved/unavailable by the system.\nThe broadcasts are sent before the actual package cleanup which includes\nmounting/unmounting the packages and we force a gc right after so\nthat any lingering file references to resources on sdcard get\nreleased.\n"
    },
    {
      "commit": "37b22176001d4bd69d2b276d212d7a12eafaaf15",
      "tree": "aab20acbf598c561eaa94ee8987f238e6d7f92fe",
      "parents": [
        "9763f64925cd04a684b014085f0a148bb9cc40fe",
        "c2af5d3bf84fa66570081d30ce0210458e46b1b8"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@android.com",
        "time": "Tue Feb 02 15:27:55 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 02 15:27:55 2010 -0800"
      },
      "message": "Merge \"Get rid of now-superfluous \"backup or restore in progress\" tracking\""
    },
    {
      "commit": "c2af5d3bf84fa66570081d30ce0210458e46b1b8",
      "tree": "18b1986a831c9d1987a939d4f90ab4200d965d99",
      "parents": [
        "1b7a47c911d21dbbcfb782380018703534bd8787"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 02 15:18:58 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 02 15:24:39 2010 -0800"
      },
      "message": "Get rid of now-superfluous \"backup or restore in progress\" tracking\n\nNow that backup/restore/etc operations are queued and serialized, we no longer\nneed to use external state tracking to prevent overlapping operations.\n\nChange-Id: I14f2a5d740cb97ae062aad55a06f49a2be5dd985\n"
    },
    {
      "commit": "be16cb15b39f5140b764854bc78c139bfa9fbe8b",
      "tree": "aa888d482abfcef50e1d61df92c6517ea3a0d95b",
      "parents": [
        "ec7f7e6378f87cdc826a8b5d836fff26f44b0b09"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 29 05:35:35 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 02 11:17:46 2010 -0800"
      },
      "message": "PackageManagerService: Refactor MountService calls (new api)\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "4270e1ea74c57f1c65620e9f5ecaa8c2a5daf0e1",
      "tree": "151ed15644268731334b27a1e179ed556c1cd407",
      "parents": [
        "78071b73479b9bea536dd1d5260ea78dd176640b"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 29 05:32:19 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 02 11:17:46 2010 -0800"
      },
      "message": "MountService: Massive bloat reduction and rewrite\n\n- Most API calls now return an int as a result code (see MountServiceResultCode.java)\n- All notification code has been removed\n- All settings code has been removed\n- Removed UMS centric API calls in favor of more generic \u0027shares\u0027\n- Mount error reporting is no longer done via an event, but is done as part of the\n  actual mount process\n- Rework vold IPC commands to be more sane\n\nUpdated:\n    MountService: Rename MountServiceObserver -\u003e MountServiceListener\n    MountService: Add support for Async callbacks\n\nUpdated:\n    MountService: Add BinderDeath handling\n\nUpdated:\n    MountService: Remove notifys since we dont listen anyways\n\nUpdated:\n    MountService: Fix bad cast\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "78071b73479b9bea536dd1d5260ea78dd176640b",
      "tree": "a7211c69fbe82022f8b0abf0142f9484c573fd8f",
      "parents": [
        "476387613b53defbe39380809d1cbe5e93e4de44",
        "4c27e0e3bed006a9ba45c6c02be5fe49827b3fea"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 02 11:15:55 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 02 11:15:55 2010 -0800"
      },
      "message": "Merge \"NativeDaemonConnector: Cleanup socket code and use a proper exception Signed-off-by: San Mehat \u003csan@google.com\u003e\""
    },
    {
      "commit": "f6133febaead08d597c4454d543ee3cba5158a90",
      "tree": "056721046314768bac765ed326ed0cbe01564a84",
      "parents": [
        "7747210426f0169b7f10f47a66d15a754b36d64c"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Feb 01 18:24:46 2010 -0500"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Feb 01 18:24:46 2010 -0500"
      },
      "message": "Fix bug 2362761 AppWidgetService should use Intent.setPackage()\n\nThanks Bjorn for the tip.\n"
    },
    {
      "commit": "9327f4f671de3cbb795612bf4f314ceff88de865",
      "tree": "f6f1109e4b3c8966eb6747f6f73835ea0623312e",
      "parents": [
        "7912a29cf24cab2f999186d95afa13ecdada0b8e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 29 10:38:29 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 29 17:16:02 2010 -0800"
      },
      "message": "More device policy work: clarify password modes, monkeying.\n\nClarifies what the password modes mean, renaming them to \"quality\"\nand updating their documentation and the implementation to follow.\n\nAlso adds a facility to find out if a monkey is running, which I\nneed for the api demo to avoid letting it wipe the device.\n"
    },
    {
      "commit": "b0dcaaf108d70040e4e4e4ac65df1a7eae732d1e",
      "tree": "9f724399126713699cd0ea14338c78ae3985aa6a",
      "parents": [
        "239d5b3638ae486f715f44a8c1a71420f486049c"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jan 29 16:27:04 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jan 29 16:27:04 2010 -0800"
      },
      "message": "Don\u0027t crash on transport unregistration if there is no current transport\n\nChange-Id: Icd0962254ba224a7be27d408dffb25b634f67863\n"
    },
    {
      "commit": "4a20061f341ffaa8531993a851a3dfbfcdc8e38d",
      "tree": "168ec3abef77edfff59360e8fff42187fdea7fc2",
      "parents": [
        "e6c73c2018bcd61aa1f9c1ce735a6813d40fe84d",
        "44a2790374bf27116cbd91060d4f096ca5999709"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@android.com",
        "time": "Fri Jan 29 15:02:03 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 29 15:02:03 2010 -0800"
      },
      "message": "Merge \"Make backup/restore asynchronous and enforce timeouts\""
    },
    {
      "commit": "44a2790374bf27116cbd91060d4f096ca5999709",
      "tree": "562efb45caf90c9f04630ab9e70c7fc7e7fb282d",
      "parents": [
        "4d3cef348b4350abd9d50230376ff8b1d2ac4654"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jan 27 17:15:49 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jan 29 14:07:52 2010 -0800"
      },
      "message": "Make backup/restore asynchronous and enforce timeouts\n\nCallouts to app backup agents are now asynchronous, and timeouts are applied if\nthey take too long, hang, etc.  The initial timeouts are set to 15 seconds on\nbackup, 60 seconds on restore.  These operations typically run at background\npriority, so it\u0027s necessary to give them ample time to run.\n\nAs part of setting up this asynchronicity, the Backup Manager\u0027s internal thread\nmanagement has been overhauled.  It now spins off a single HandlerThread at\nstartup, and runs backup/restore/etc operations *synchronously* in that thread,\napplying timeouts as appropriate.  This means we\u0027re no longer spinning up new\nthreads all the time, and furthermore it ensures that we can never have more\nthan one operation in flight at once.  Later CLs will remove the now-redundant\nlogic that previously ensured that operations didn\u0027t stomp on each other.\n\nBug: 2053560\nChange-Id: Ie4315c219c7ff6dd8f51f2ad6c0872595b18cff1\n"
    },
    {
      "commit": "ef73162887943e16587b8e737b19e59348338e8c",
      "tree": "8a769b3abba1289bd2d6c39cc801c656491f60e2",
      "parents": [
        "3b889f52195cbbc12200ca237e312e825003132d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jan 27 17:51:34 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jan 29 17:05:04 2010 -0500"
      },
      "message": "Support for triggering the lockscreen while the screen is on:\n\nAdd new ALLOW_LOCK_WHILE_SCREEN_ON window manager flag, which when set\ncauses the window manager to put up the lockscreen after the\nnormal screen timeout has elapsed.\n\nAdd plumbing to pass PowerManager.userActivity() to the window manager policy.\n\nChange-Id: I05adc52bad39c56031a08e8ec3cbcf5c2d9b9827\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "bd2f531a2836d3ad09755856c9c84cf75eb900d7",
      "tree": "2e5e74a0e2bc5c2aa0a906b591d1de9fc8493ae7",
      "parents": [
        "d425a45f8d7c0e94d2db4c0a5c8157e6c846b853",
        "5fd5bfe942a03a2a0f8b55e78138e5ca7d578c6b"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Jan 29 08:45:39 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 29 08:45:39 2010 -0800"
      },
      "message": "Merge \"Fix StringIndexOutOfBoundsException in PackageManagerService\""
    },
    {
      "commit": "d425a45f8d7c0e94d2db4c0a5c8157e6c846b853",
      "tree": "a2424eebb5622a5542d050a18eed50d27e8a02e2",
      "parents": [
        "b4a162e50a96d2eef5fa3ed686e1418c4fbc8ded"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Fri Jan 29 10:06:53 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Fri Jan 29 10:09:04 2010 -0500"
      },
      "message": "Fix build.\n\n(Broken in change Ib94f795c.)\n"
    },
    {
      "commit": "4c27e0e3bed006a9ba45c6c02be5fe49827b3fea",
      "tree": "9a15ea9ff54204a2e264516f6bd9994b0ce7d20f",
      "parents": [
        "b4a162e50a96d2eef5fa3ed686e1418c4fbc8ded"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 29 05:22:17 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 29 06:30:23 2010 -0800"
      },
      "message": "NativeDaemonConnector: Cleanup socket code and use a proper exception\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "77c292d83e70793dcb23677ab60a6c707fc613dd",
      "tree": "0c65c432e70e048e0dbfdb2ded1ef55c3bbbe017",
      "parents": [
        "784d53e79bab67e6b08b4bfc9a2dc75cfcba9772",
        "b94f795c257e32a1d7be1115568b5b6f576dec37"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Jan 29 06:22:33 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 29 06:22:33 2010 -0800"
      },
      "message": "Merge \"New full-screen activity for USB mass storage interaction.\""
    },
    {
      "commit": "5fd5bfe942a03a2a0f8b55e78138e5ca7d578c6b",
      "tree": "b2ed5440a50415eb8945387125c631440953b8d2",
      "parents": [
        "784d53e79bab67e6b08b4bfc9a2dc75cfcba9772"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Fri Jan 29 12:11:30 2010 +0000"
      },
      "committer": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Fri Jan 29 12:29:41 2010 +0000"
      },
      "message": "Fix StringIndexOutOfBoundsException in PackageManagerService\n\nThe method packageManagerService.getNextCodePath(String oldCodePath,\nString prefix, String suffix) threw StringIndexOutOfBoundsException if\noldCodePath does not contain prefix, and prefix is longer than\noldCodePath, or if the preix and suffix overlap.\n\nFixes http://b/issue?id\u003d2404232\n\nChange-Id: Ib8abb16f8bfd08f607476d9289f46d170c43a076\n"
    },
    {
      "commit": "784d53e79bab67e6b08b4bfc9a2dc75cfcba9772",
      "tree": "3fe04da1c937d334405ef77d26fd7d823e19b4bd",
      "parents": [
        "a9938c4bf491cdf0df3b6b1fe41e0e3ef5a2dfbb"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Fri Jan 29 16:26:28 2010 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Fri Jan 29 16:26:28 2010 +0800"
      },
      "message": "WifiService: allow EAP variables to be unset using empty strings.\n"
    },
    {
      "commit": "c4a0c2744a19a42bd1f5c39a6f1673310c6f9c3a",
      "tree": "c55900746cc0ef90b0d3146f6924dde6de9f52b8",
      "parents": [
        "5e342fa3260044353705c946d3ae62c89df52ee6",
        "0049a1bf3f8bae3a10cfeff38aefce215bf1298b"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Jan 28 20:46:25 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 28 20:46:25 2010 -0800"
      },
      "message": "Merge \"Blacklist APs instead of disable\""
    },
    {
      "commit": "fbf56dc719a2ee13129fd7049565054370c6ed1d",
      "tree": "1afad344e45b31b4479091086b15738d1a777640",
      "parents": [
        "8cc99938c3e3d1a8cfe29b6826e120dbed15a338",
        "3e229076203cd8cfee0adac44cd3c930dfa0e59c"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Jan 28 14:46:55 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 28 14:46:55 2010 -0800"
      },
      "message": "am 3e229076: am cc4b4016: Fix the reporting of NO_CONNECTIVITY.\n\nMerge commit \u00273e229076203cd8cfee0adac44cd3c930dfa0e59c\u0027\n\n* commit \u00273e229076203cd8cfee0adac44cd3c930dfa0e59c\u0027:\n  Fix the reporting of NO_CONNECTIVITY.\n"
    },
    {
      "commit": "64fe5646c5b2eb5ff58cea4ca4d384b4a5f733dc",
      "tree": "1f03e532dea35a41adf56a089bf35dc6d4ecb667",
      "parents": [
        "e7d9ba249a2b6d155e30c9b76bff8aa1c5ccaecb",
        "6d626d41e9db62a0eadb61ccb2aa4081a8b9f6d0"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Jan 28 13:44:45 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 28 13:44:45 2010 -0800"
      },
      "message": "am 6d626d41: am 5381e4ef: Merge \"Refine fix I53e91db7 to apply only to wifi network\" into eclair\n\nMerge commit \u00276d626d41e9db62a0eadb61ccb2aa4081a8b9f6d0\u0027\n\n* commit \u00276d626d41e9db62a0eadb61ccb2aa4081a8b9f6d0\u0027:\n  Refine fix I53e91db7 to apply only to wifi network\n"
    },
    {
      "commit": "b94f795c257e32a1d7be1115568b5b6f576dec37",
      "tree": "7a97a296b6e6f153c9533486cfed9e7367504766",
      "parents": [
        "5f551ef6a8b6a4f158d8b3ad9591d2f874c89f39"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Jan 28 15:12:04 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Jan 28 16:18:22 2010 -0500"
      },
      "message": "New full-screen activity for USB mass storage interaction.\n\nStill TODO: patch into forthcoming callbacks from\nMountService so the USB storage activity always shows the\ncorrect state of the device. (Right now it only refreshes\nits display onResume.)\n\nBug: 2299129\n"
    },
    {
      "commit": "254cb446faa7cb13699d8150eb4cc4f44cb61a2d",
      "tree": "1647a7558348a67989c0892b4e5b0350ba4392c5",
      "parents": [
        "2fd75f35158b8347251d18e8ec48585d6e020777"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 27 19:23:59 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jan 28 13:15:57 2010 -0800"
      },
      "message": "More device admin.\n\n- Clean up device policy manager APIs.\n- Implement lockNow().  For now this just turns the screen off to lock the device.\n"
    },
    {
      "commit": "bdbc925a275b4ba4217ec7ac0ad2ec5f913d4e51",
      "tree": "568aa9c4a713e68a9a9c179326448ea4eb2fc2ea",
      "parents": [
        "5f551ef6a8b6a4f158d8b3ad9591d2f874c89f39",
        "b0903104fd2fe7a69331758fba769c8067e26771"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Jan 28 12:03:49 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Jan 28 12:03:49 2010 -0800"
      },
      "message": "resolved conflicts for merge of b0903104 to master\n\nChange-Id: Iff20980c44d42b41ae411c4201e0927cee19d415\n"
    },
    {
      "commit": "0049a1bf3f8bae3a10cfeff38aefce215bf1298b",
      "tree": "7153232b780840367b5ca29b08f8d66d3633520d",
      "parents": [
        "5f551ef6a8b6a4f158d8b3ad9591d2f874c89f39"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Jan 14 12:37:49 2010 -0800"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Jan 28 11:27:14 2010 -0800"
      },
      "message": "Blacklist APs instead of disable\n\nWe currently disable networks upon too many reconnects. This leads to asking\nthe user input for reconnects. Blacklist it instead.\n\nBug: 2129037\nChange-Id: I23d69daf3964c066ed7f70d32fefb81016f19aa2\n"
    },
    {
      "commit": "f1a0f55f7145bc3c769752395d29b282f1f133f2",
      "tree": "6c1356e498c94d400772119346904e1351c49fc4",
      "parents": [
        "70aaacac8217552ae4def243011c5359075836b0",
        "131c5e0867d542788cf2dab23b17f2f8cc3d0391"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 28 10:09:09 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 28 10:09:09 2010 -0800"
      },
      "message": "am 131c5e08: am a59551ba: Merge \"Fix issue 2388215: Audio not routed to 3.5mm Headset after removal/insertion.\" into eclair\n\nMerge commit \u0027131c5e0867d542788cf2dab23b17f2f8cc3d0391\u0027\n\n* commit \u0027131c5e0867d542788cf2dab23b17f2f8cc3d0391\u0027:\n  Fix issue 2388215: Audio not routed to 3.5mm Headset after removal/insertion.\n"
    },
    {
      "commit": "51e93db9402dc19ed923fa4b586b9b37ff85eafe",
      "tree": "77525c8256eb392c134dd9517c9d5f554062dc33",
      "parents": [
        "9d0f609251ccea1cee0fb32da6d449bdde317604",
        "40b5110e746060ec67307da70f662826c18228a7"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Jan 28 06:50:18 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 28 06:50:18 2010 -0800"
      },
      "message": "Merge \"Remove destroy asec command when mounting secure container\""
    },
    {
      "commit": "8ea25cc1a104bfc95d5742a8c0ab582c7812ee74",
      "tree": "9392c573937d085fedf326955df4e1ab98a875f7",
      "parents": [
        "c58ffe8253ca76160908d153242d8150f668ea32",
        "41a9fd55ac0f50afb3d70b1ba0786dbb316eebce"
      ],
      "author": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Thu Jan 28 00:09:56 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 28 00:09:56 2010 -0800"
      },
      "message": "Merge \"timestamp field in ApplicationErrorReport was not getting intitialized on ANRs\""
    },
    {
      "commit": "40b5110e746060ec67307da70f662826c18228a7",
      "tree": "606838f8a7c6825e21acf08543d5622278db7adb",
      "parents": [
        "a322dfa47eab8d49eeb71b5245de7147c0207137"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jan 27 23:46:13 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jan 27 23:46:13 2010 -0800"
      },
      "message": "Remove destroy asec command when mounting secure container\n"
    },
    {
      "commit": "d47c6ed4a9f2b5bd31f6c806b74701428efe458b",
      "tree": "dcaea393c297e01163a4f57e377e295cf3cbe877",
      "parents": [
        "9cf5b455d95ff2024b6d23e3416aca4abf93ff8c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 27 16:21:20 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 27 17:31:56 2010 -0800"
      },
      "message": "Bite the bullet and add support for multiple device admins.\n"
    },
    {
      "commit": "41a9fd55ac0f50afb3d70b1ba0786dbb316eebce",
      "tree": "73ab0a72e30b713409942fe32c9eca796023b8ec",
      "parents": [
        "3ae6162d187a7166030263f8e9534aac65f3ae47"
      ],
      "author": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Wed Jan 27 16:37:21 2010 -0800"
      },
      "committer": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Wed Jan 27 16:37:21 2010 -0800"
      },
      "message": "timestamp field in ApplicationErrorReport was not getting intitialized on ANRs\n"
    },
    {
      "commit": "3ae6162d187a7166030263f8e9534aac65f3ae47",
      "tree": "1dc8d25a96cc6ac7af2c926988cfd0fdc6f01ee1",
      "parents": [
        "2060b637f793c1ac969aad85ab0b8e27351ab711",
        "492c6ed5b64cfdd72dc270e6b848025a26eff724"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Jan 27 15:06:06 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 27 15:06:06 2010 -0800"
      },
      "message": "Merge \"Report tombstone (native crash) data to the dropbox.\""
    },
    {
      "commit": "492c6ed5b64cfdd72dc270e6b848025a26eff724",
      "tree": "ed54858954d1f51416d2ec331dabf52ca2dd5b42",
      "parents": [
        "ea11654e684cb91252487f697c72e76da507f7be"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Jan 27 14:52:57 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Jan 27 14:52:57 2010 -0800"
      },
      "message": "Report tombstone (native crash) data to the dropbox.\n\nAlso uses a shared_prefs file to keep track of which files have been\nlogged, instead of polluting Settings.Secure with this data.\n"
    },
    {
      "commit": "8ea138cbf12b140d43fd81f4f12fe1a9234f1f25",
      "tree": "65d820bd65d69af867e4558b1fbd407634309eb2",
      "parents": [
        "2fc1f4a02957de3fdc785ca3dde414fb8e97bc49"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 26 18:01:04 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 27 13:51:53 2010 -0800"
      },
      "message": "More work on device admins:\n\n- You can now show a dynamic message to the user when asking to\n  have your DeviceAdmin added.\n- A DeviceAdmin can now provide a warning message that is displayed\n  before a user disables it.\n- Better ordering (and text) of the policy warnings.\n- New API to set the maximum failed password attempts before the device\n  wipes itself.\n- We now store the number of failed unlock attempts in persistent\n  storage.\n- New managed dialog APIs that will be used by the settings app.\n\nAlso a little bit of cleanup as I was working on this - removed the\nlong unused MailboxNotAvailableException, fixed a java doc in Messenger.\n"
    },
    {
      "commit": "c028be4f3b8c7476b46859f66c3f33d528adf181",
      "tree": "8a740e6207e958572706a636fcb92425dbf13a6e",
      "parents": [
        "aeb4126736c1b93abe5252e1723c568a13da7c81"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Jan 25 12:19:12 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jan 27 10:26:43 2010 -0800"
      },
      "message": "AppsOnSd feature - Add default container\n\nAdd new remote interface to do temporary copies. The new\nremote stub handling is done on mHandler thread and doesn\u0027t need locking\nfor now.\nAdd new InstallArgs class and subclasses to isolate cases for installation.\nMove resource deletion for failed installs/upgrades to later on in installation\ncycle.\nFix code path for forward locked apps when using scanPackageLI\n\nTODO\u0027s\nFix installation paths to completely use InstallArgs based design later on.\nGet rid of using flags in various install/uninstall code paths.\nIdeally InstallArgs should be created using these flags and used in the\nrest of the code.\nFunction renames.\nRevisit mount api\u0027s.\n"
    },
    {
      "commit": "02735bc9b7686e56957cdec9c10660c4a6dd1090",
      "tree": "748812633f2058e2b0c624f3d25b9110d668edf6",
      "parents": [
        "4539f38aec841cac74b170293d6d921acda96430"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Jan 26 15:18:08 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Jan 27 06:14:28 2010 -0800"
      },
      "message": "MountService: Introduce new @hide permissions to protect secure containers.\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "78d5ba9dbce20312aca11ae0a6e9366af3a08778",
      "tree": "24f28930b8d8893974f22a015516ec5b64dc6d01",
      "parents": [
        "c597b188bd0cf461231dac008b6e9eb8efde6ada",
        "ea11654e684cb91252487f697c72e76da507f7be"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Tue Jan 26 20:05:20 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 26 20:05:20 2010 -0800"
      },
      "message": "Merge changes Iea11654e,I2242da5a,I66c40e73\n\n* changes:\n  Use six dashes instead of five.\n  Include more verbose device information with kernel dumps (hardware, bootloader, etc.), and separate the device info headers from the actual dump with a blank line.\n  Add package information to dropbox reports for ANR, crash, etc. (Notably including package version codes, to help when we\u0027re shipping out-of-cycle unbundled app updates.)\n"
    },
    {
      "commit": "2242da5a4fadbef936153b4e43218d73033a11cd",
      "tree": "69b42c37c5fe954754d79dc625e70f821e7936da",
      "parents": [
        "66c40e73662d0e3090cd6e7f7e4e6dcb4867b8bd"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Tue Jan 26 17:00:36 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Tue Jan 26 17:00:36 2010 -0800"
      },
      "message": "Include more verbose device information with kernel dumps\n(hardware, bootloader, etc.), and separate the device info\nheaders from the actual dump with a blank line.\n"
    },
    {
      "commit": "c2a39471642e31d7350910612e40d078b825173a",
      "tree": "8cc55af2b3170b80436b68f1a6f2c94fa1a5fb51",
      "parents": [
        "ec3cad8ec6b18da75b179d0fd279d652ae8fc1aa"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Jan 26 16:51:35 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Jan 26 16:52:23 2010 -0800"
      },
      "message": "MountService: Don\u0027t update the storage status when we\u0027re unmounted\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "66c40e73662d0e3090cd6e7f7e4e6dcb4867b8bd",
      "tree": "b6cb95e7f878e3880745e00fcdc14a9d460f4f5a",
      "parents": [
        "ec3cad8ec6b18da75b179d0fd279d652ae8fc1aa"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Tue Jan 26 16:23:11 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Tue Jan 26 16:23:11 2010 -0800"
      },
      "message": "Add package information to dropbox reports for ANR, crash, etc.\n(Notably including package version codes, to help when we\u0027re shipping\nout-of-cycle unbundled app updates.)\n"
    },
    {
      "commit": "ec3cad8ec6b18da75b179d0fd279d652ae8fc1aa",
      "tree": "aab4d43b1b72f62a53bf9ed7363c5e24b18bce33",
      "parents": [
        "7b04317be85245ec3987421fc5cfa73df9442ae4",
        "5b77dab23469273d41f9c530d947ac055765e6ea"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Jan 26 14:18:47 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 26 14:18:47 2010 -0800"
      },
      "message": "Merge \"MountService: Explicitly query volume state on startup\""
    },
    {
      "commit": "7b04317be85245ec3987421fc5cfa73df9442ae4",
      "tree": "d49e623ef246f7133652b8e6155dc7ed243ed26d",
      "parents": [
        "b91f4643b66dc263d5c69ced9faf6980edec5583",
        "80120b43745102b3a8c635c796698d748b329222"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Jan 26 13:38:41 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 26 13:38:41 2010 -0800"
      },
      "message": "Merge \"NativeDaemonConnector: fix doListCommand() to return *all* list elements\""
    },
    {
      "commit": "5b77dab23469273d41f9c530d947ac055765e6ea",
      "tree": "4b9625ce58751940adcd9a2435595aa62d8dd025",
      "parents": [
        "80120b43745102b3a8c635c796698d748b329222"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Jan 26 13:28:50 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Jan 26 13:28:50 2010 -0800"
      },
      "message": "MountService: Explicitly query volume state on startup\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "80120b43745102b3a8c635c796698d748b329222",
      "tree": "b765a470284fd3aa694a7cb6f786c58506bd4a94",
      "parents": [
        "03b58bdf0e97f9e3bd247cb731b69fa87a845eeb"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Jan 26 12:48:39 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Jan 26 13:18:03 2010 -0800"
      },
      "message": "NativeDaemonConnector: fix doListCommand() to return *all* list elements\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "b91f4643b66dc263d5c69ced9faf6980edec5583",
      "tree": "2a39bc27ee50de7056b4495905070cbb853ed8f4",
      "parents": [
        "8aa2e8939c61d788cbc192098465e79f584e173a",
        "80202c8cb8c8e4ab507079e79b864c61a8eeeee9"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@android.com",
        "time": "Tue Jan 26 12:29:13 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 26 12:29:13 2010 -0800"
      },
      "message": "Merge \"Move towards a formal public API for backup and restore\""
    },
    {
      "commit": "8aa2e8939c61d788cbc192098465e79f584e173a",
      "tree": "83f2ea06758e1bb3f28a8fabedae29c3a5b89582",
      "parents": [
        "148fea03caed2a082387c45ae12a91561b8e41e5"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 22 11:31:30 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 26 12:28:15 2010 -0800"
      },
      "message": "More device admin work: description, policy control.\n\nThere is now a description attribute associated with all components,\nthat can supply user-visible information about what the component does.\nWe use this to show such information about device admins, and wallpapers\nare also updated to be able to show this in addition to the existing\ndescription in their meta-data.\n\nThis also defines security control for admins, requiring that they\ndeclare the policies they will touch, and enforcing that they do\nso to be able to use various APIs.\n"
    },
    {
      "commit": "508370f0cb5d3e03b1bcf04f1164ea1f384f496f",
      "tree": "a2c873a202605c3245c1fd4aef7e835cc6782d1d",
      "parents": [
        "9903f71b046e29bf6c1a3b7d3dc7facf372aa6f4",
        "1edab2b551995a8df25f4b533405d6003b8b8b66"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@google.com",
        "time": "Tue Jan 26 11:24:47 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 26 11:24:47 2010 -0800"
      },
      "message": "Merge \"Make PackageManager unpack gdbserver binaries at installation time.\""
    },
    {
      "commit": "09ac3c3cbc6278af127cffedb9d534449e63b683",
      "tree": "bd1a1058521b559c935474cb734af04c054a5ef3",
      "parents": [
        "996dddff64f90d8469e24107c44bfd618cf0c2dd",
        "1f2f23bd16ff798a08d73f4159ddcb621e70fc94"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Jan 26 10:09:52 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Jan 26 10:09:52 2010 -0800"
      },
      "message": "resolved conflicts for merge of 1f2f23bd to master\n"
    },
    {
      "commit": "d1df8ac6d076ef15ba8857211da2e447b6505fb3",
      "tree": "dc726575cfa963ce7ae3bf9444b0e9c13dea8317",
      "parents": [
        "0c8569f2a345b8321ff842d76191b5d72b4bdb54"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Jan 26 06:17:26 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Jan 26 07:51:05 2010 -0800"
      },
      "message": "NetworkManagementService: Start service when SystemServer starts up\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "80202c8cb8c8e4ab507079e79b864c61a8eeeee9",
      "tree": "517c775feb878d11f2e10eec0074907cea724574",
      "parents": [
        "da77d0a6e7fe70b7da229077039bcca1f232bd89"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jan 25 19:37:47 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jan 25 19:41:23 2010 -0800"
      },
      "message": "Move towards a formal public API for backup and restore\n\nThis commit makes a few changes towards establishing a formal application\ninterface for interacting with the backup/restore mechanism:\n\n1. Introduce public wrapper classes around the various binder interfaces; 3rd\nparty code will never see the binders directly.\n\n2. Progress update callbacks during a restore sequence now occur on the main\nthread, not in a binder thread [and not with system-process permissions!].\n\n3. Rename the BackupManagerService\u0027s inner \"RestoreSession\" class to avoid\nambiguity with the new public \"RestoreSession\" class.\n"
    },
    {
      "commit": "3e229076203cd8cfee0adac44cd3c930dfa0e59c",
      "tree": "8d5092ece3522eaa35f9a37e73cd47d32bffdee8",
      "parents": [
        "6d626d41e9db62a0eadb61ccb2aa4081a8b9f6d0",
        "cc4b4016e4b86db012f94bb889e5ca61ff362171"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Jan 25 18:56:32 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 25 18:56:32 2010 -0800"
      },
      "message": "am cc4b4016: Fix the reporting of NO_CONNECTIVITY.\n\nMerge commit \u0027cc4b4016e4b86db012f94bb889e5ca61ff362171\u0027 into eclair-plus-aosp\n\n* commit \u0027cc4b4016e4b86db012f94bb889e5ca61ff362171\u0027:\n  Fix the reporting of NO_CONNECTIVITY.\n"
    },
    {
      "commit": "cc4b4016e4b86db012f94bb889e5ca61ff362171",
      "tree": "07c0ed9947d212533c0db058a642a18da508bfb3",
      "parents": [
        "5381e4ef4ef1a05b25fa39ff942f4a95e0ae4750"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Jan 25 17:54:29 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Jan 25 17:54:29 2010 -0800"
      },
      "message": "Fix the reporting of NO_CONNECTIVITY.\n\nA refactoring of handleDisconnect instroduced a bug - we were reporting\nNO_CONNECTIVITY after any non-primary network (supl, mms, hipri) was lost.\n\nbug:2395006\n\nChange-Id: Ifa9e008872ec646981a35f2c316120cb9685a6a4\n"
    },
    {
      "commit": "6d626d41e9db62a0eadb61ccb2aa4081a8b9f6d0",
      "tree": "2abe78b970056f4dd2b55b2771f2683a7c6fd5ee",
      "parents": [
        "9985fecaa0bf32e94695f49bb495c9d0cd41e174",
        "5381e4ef4ef1a05b25fa39ff942f4a95e0ae4750"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Jan 25 16:54:28 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 25 16:54:28 2010 -0800"
      },
      "message": "am 5381e4ef: Merge \"Refine fix I53e91db7 to apply only to wifi network\" into eclair\n\nMerge commit \u00275381e4ef4ef1a05b25fa39ff942f4a95e0ae4750\u0027 into eclair-plus-aosp\n\n* commit \u00275381e4ef4ef1a05b25fa39ff942f4a95e0ae4750\u0027:\n  Refine fix I53e91db7 to apply only to wifi network\n"
    },
    {
      "commit": "6e6dec284369238f16ac23497292de5a1a39aca8",
      "tree": "5a7bbda6d45ebf825b09bf2c3633be0fbb37d420",
      "parents": [
        "f904be1659fcc88dd80be2c900ffc89e77b1c737"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Jan 25 16:14:00 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Jan 25 16:23:56 2010 -0800"
      },
      "message": "Refine fix I53e91db7 to apply only to wifi network\n\nThe original fix eliminated duplicate wifi connectivity changes stemming from\nlocation provder scan\u0027s for APs.  These would generate two DISCONNECTED broadcasts every\ntwo minutes and many apps mis-interpreted them.\n\nThe fix was to ignore notifications where the major state was the same as the previous one\nfor each network.  Unfortunately the state of per-apn notifications on cellular is hacky\nand so the wifi fix was breaking mms (mms when you\u0027re on cellular with a common default+mms apn does\nnot generate a disconnect notification (apn still connected) so subsequent connect notifications\nget dropped as duplicates).\n\nThis change refines the previous change so that it only applies to wifi networks.\n\nbug:2392061\nChange-Id: I05d8a46a4b55f8d28df8af12e05284e5e68bfc02\ndrno: ryanpc\n"
    },
    {
      "commit": "1edab2b551995a8df25f4b533405d6003b8b8b66",
      "tree": "5d6f545170ac5820c19b03e1aea6fd3332084c3d",
      "parents": [
        "8fdd45e1aa26e62fe02b053683624ac2b28bce93"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Jan 21 15:15:23 2010 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jan 25 11:27:08 2010 -0800"
      },
      "message": "Make PackageManager unpack gdbserver binaries at installation time.\n\nNative-debuggable packages contain a lib/\u003cabi\u003e/gdbserver executable.\nThis patch ensures that the package manager will copy it to the\nproper location (/data/data/\u003cappname\u003e/lib) at installation time.\n\nNote that such packages are marked with a new ApplicationInfo flag\nnamed FLAG_NATIVE_DEBUGGABLE, to be used later by the Activity\nManager.\n"
    },
    {
      "commit": "45f61040823d8c442838f75cde8760f236603dae",
      "tree": "2c45ee66fd0458b7656bab5c0237fd5ca04950a5",
      "parents": [
        "60e8495c1699f6f4d4046a3394b1eafdeefe6d64"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Sat Jan 23 08:12:43 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Sat Jan 23 08:12:43 2010 -0800"
      },
      "message": "MountService: Add support for renaming secure containers\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "3e3a6430ea49abcdcc645a26a6f1df65acd97345",
      "tree": "72a1f2e39c6eae5dd437bb19814d745147a5f41d",
      "parents": [
        "4d02d001ef6e06583e858e63e48d1aebf54ba28d"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 22 16:46:23 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 22 16:46:23 2010 -0800"
      },
      "message": "Fix whitespace issue causing protocol syntax error\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "4d02d001ef6e06583e858e63e48d1aebf54ba28d",
      "tree": "62bc259feafbea7df30d695e0e00cff9dc0623de",
      "parents": [
        "55434a7999222d89205f32efb03da7e70dd74073"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 22 16:07:46 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 22 16:10:29 2010 -0800"
      },
      "message": "NetworkManagementService: Introduce INetworkManagementEventObserver\n\n  Introduce a callback event observer which can be registered on the\nINetworkManagementService instance to receive events from the service.\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "b0903104fd2fe7a69331758fba769c8067e26771",
      "tree": "78978bbd51db92dbbc92e122f94260383120957c",
      "parents": [
        "97ca28cdd9b12e1c9e9ae57967010b60e61d6bf9",
        "678e66a4ec8bdceafd12f7d82c7d4aa8acf71aa2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 22 15:51:02 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 22 15:51:02 2010 -0800"
      },
      "message": "am 678e66a4: Merge \"Fix issue #2391429: Crash during boot if fwd locked app is incompletely installed\" into eclair\n\nMerge commit \u0027678e66a4ec8bdceafd12f7d82c7d4aa8acf71aa2\u0027 into eclair-plus-aosp\n\n* commit \u0027678e66a4ec8bdceafd12f7d82c7d4aa8acf71aa2\u0027:\n  Fix issue #2391429: Crash during boot if fwd locked app is incompletely installed\n"
    },
    {
      "commit": "678e66a4ec8bdceafd12f7d82c7d4aa8acf71aa2",
      "tree": "b6af45e3ffd778ddd7943dc4d74172730dc3dc39",
      "parents": [
        "5d14cb34c0e9760340c15ac5faf2d76a64797117",
        "e6620b2d993a8372f63d1c0ca0f1c8be6ab9ad0f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 22 15:47:08 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 22 15:47:08 2010 -0800"
      },
      "message": "Merge \"Fix issue #2391429: Crash during boot if fwd locked app is incompletely installed\" into eclair"
    },
    {
      "commit": "85fd374eabe610ab8213109ae87e2862a4da8985",
      "tree": "0626ee7bc2d4dc8504922e22ea4351b6ac13dca1",
      "parents": [
        "63454ebcc9604407152ee54e29ee91c726374f56",
        "2780e73ae7ec32418a1827671ddf0687a218ed13"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Fri Jan 22 15:24:17 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 22 15:24:17 2010 -0800"
      },
      "message": "Merge \"As requested, expand ANR event log entry (and crash/WTF too) to include process flags (including FLAG_SYSTEM, etc).\""
    },
    {
      "commit": "63454ebcc9604407152ee54e29ee91c726374f56",
      "tree": "a24606cfdc3ea2b75f0e84518f10e33714975a5a",
      "parents": [
        "bf81cacc962cdf5befdc0934fbb86008ccc11bae",
        "ed4fc8acc52d89f1d4dec853a29288c6d06717c3"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 22 15:20:18 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 22 15:20:18 2010 -0800"
      },
      "message": "Merge \"NetworkManagementService: Introduce API methods for configuring interfaces\""
    },
    {
      "commit": "2780e73ae7ec32418a1827671ddf0687a218ed13",
      "tree": "1e723156c81fe6632d4593baeafc8f2b0a5f5b1e",
      "parents": [
        "264ce3825892e4b5ef6af61d330832f4592130bf"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Fri Jan 22 14:47:35 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Fri Jan 22 14:47:35 2010 -0800"
      },
      "message": "As requested, expand ANR event log entry (and crash/WTF too) to include\nprocess flags (including FLAG_SYSTEM, etc).\n"
    },
    {
      "commit": "e6620b2d993a8372f63d1c0ca0f1c8be6ab9ad0f",
      "tree": "ef8e30a13415d93493b5395a35a10dbfb04bfe6e",
      "parents": [
        "b1c4a2a3b37fccf68e6a9563cccf1685df2bf3e7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 22 14:46:21 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 22 14:46:21 2010 -0800"
      },
      "message": "Fix issue #2391429: Crash during boot if fwd locked app is incompletely installed\n\nWe need to remove left-over .apk when cleaning up a partially installed app.\n\nChange-Id: I94264549670a2ad01622f746c40c82c30dd3da8d\n"
    },
    {
      "commit": "ed4fc8acc52d89f1d4dec853a29288c6d06717c3",
      "tree": "2c74edcb02a1e294e161f0e5e039168022a695b8",
      "parents": [
        "353ced79b49269151b056c4b06dc632801b59497"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 22 12:28:36 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 22 12:28:36 2010 -0800"
      },
      "message": "NetworkManagementService: Introduce API methods for configuring interfaces\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "c0cea4857683c83e5b5df370ae1c90cc11ed25ae",
      "tree": "19651d952c8afb9eec07369215efae5948fb2d9d",
      "parents": [
        "f226e9f27baa5a29aacffab87e0c0fc52d59fe13",
        "5f64128568d815f91dcd37db43d4e26a0566b41c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 22 11:59:41 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 22 11:59:41 2010 -0800"
      },
      "message": "am 5f641285: am b1c4a2a3: Fix issue #2364506: Phone locked up while listening to music and attempting to download an update\n\nMerge commit \u00275f64128568d815f91dcd37db43d4e26a0566b41c\u0027\n\n* commit \u00275f64128568d815f91dcd37db43d4e26a0566b41c\u0027:\n  Fix issue #2364506: Phone locked up while listening to music and attempting to download an update\n"
    },
    {
      "commit": "131c5e0867d542788cf2dab23b17f2f8cc3d0391",
      "tree": "811083201f26fd6bb174d0c5cf1631558497f52f",
      "parents": [
        "64c92f75df7415084aa9f0b304f2a99089b6be9f",
        "a59551bade6a7b0c916c277f044de79c6af1bd22"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 22 10:25:00 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 22 10:25:00 2010 -0800"
      },
      "message": "am a59551ba: Merge \"Fix issue 2388215: Audio not routed to 3.5mm Headset after removal/insertion.\" into eclair\n\nMerge commit \u0027a59551bade6a7b0c916c277f044de79c6af1bd22\u0027 into eclair-plus-aosp\n\n* commit \u0027a59551bade6a7b0c916c277f044de79c6af1bd22\u0027:\n  Fix issue 2388215: Audio not routed to 3.5mm Headset after removal/insertion.\n"
    },
    {
      "commit": "700aab67eb286b44663f885325f8db6b049cb638",
      "tree": "cd2fb91856bda162bfa1c30dfe5035198c3e7d89",
      "parents": [
        "9a400fa4d3e89a3ab3669c0aa2ef6676020646d1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 22 07:50:58 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 22 09:31:12 2010 -0800"
      },
      "message": "Fix issue 2388215: Audio not routed to 3.5mm Headset after removal/insertion.\n\nThe problem occurs if the delay between the headset removal and insertion is less than one second.\nIn this case, as the headset disconnection intent is broadcast with a 1 second delay to allow music to pause\nbefore updating the route, the connection intent is broadcast before and is ignored, leaving the system\nin a state where the headset is considered disconnected.\n\nThe fix consists in inserting a delay before broadcasting the connection intent if a disconnection\nintent is pending broadcast.\n"
    },
    {
      "commit": "4141d035c7d41f39f023d7a051568dff87c7cd32",
      "tree": "f11e8f74249e199b151dab5f21ebf2cbb4f64862",
      "parents": [
        "051ab623342746b6e25676c740f6104989902de6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jan 21 16:29:00 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jan 21 16:29:00 2010 -0800"
      },
      "message": "Don\u0027t crash when there is no admin.\n"
    },
    {
      "commit": "df83afaf299666e99c519aa86e7e082b7c116e95",
      "tree": "65480fb272324aee6613d0449d40d5e078a700a8",
      "parents": [
        "04ce08f34e39928a5b8e9ea59134f255c9ff08f6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 20 13:37:26 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jan 21 14:30:57 2010 -0800"
      },
      "message": "More device policy manager / admin work.\n\nUpdate API with some new features, re-arrange how you check for valid\npasswords, and start hooking up the back-end implementation.\n"
    },
    {
      "commit": "176a88ff14821b07f3c1e67f61ca786c997b9230",
      "tree": "033652ca36a1897e77a32052fedd7d51ee54e9a6",
      "parents": [
        "6efe03b19e0734361b262f9a0be4d225088d7f9e",
        "19563cc278446c2df7a2df6d5f7c89f43228c437"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 21 11:21:25 2010 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 21 11:21:25 2010 -0800"
      },
      "message": "merge from open-source master\n"
    },
    {
      "commit": "1f2f23bd16ff798a08d73f4159ddcb621e70fc94",
      "tree": "f41d20a8d5feae27e151002e257a556a8eddc082",
      "parents": [
        "d051434773769926671bc6f98e273e385819b653",
        "9fdf82e080ea20086378e751ace245a4a1b022dc"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Jan 21 10:05:13 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 21 10:05:13 2010 -0800"
      },
      "message": "am 9fdf82e0: Merge \"Try to switch to another default net on connection failure.\" into eclair\n\nMerge commit \u00279fdf82e080ea20086378e751ace245a4a1b022dc\u0027 into eclair-plus-aosp\n\n* commit \u00279fdf82e080ea20086378e751ace245a4a1b022dc\u0027:\n  Try to switch to another default net on connection failure.\n"
    },
    {
      "commit": "80ffe5d2fe8288623844c8f6c7ba1305d074a852",
      "tree": "a0974c2dfd0ac7153fbc89e3839b5ad2234eaaa3",
      "parents": [
        "db43099f9ec481afb4f24f1e08f1db720fbd3e3c",
        "670f93283b5e2445c58998153de9c476acddc37b"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Thu Jan 21 08:18:15 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 21 08:18:15 2010 -0800"
      },
      "message": "Merge \"Implement Notification.DEFAULT_LIGHTS flag.\""
    },
    {
      "commit": "670f93283b5e2445c58998153de9c476acddc37b",
      "tree": "6f55352c72e6a31ee30c26afb81b65f5f31d22a0",
      "parents": [
        "867e8eb753422bb9ef83297b72f925b92040daf9"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jan 20 12:13:36 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jan 20 22:43:47 2010 -0500"
      },
      "message": "Implement Notification.DEFAULT_LIGHTS flag.\n\nThis flag was already in the public API but did not do anything until now.\nWe now use it so we can override the default notification LED color on a per device basis.\n\nChange-Id: I0d6e239b7da2fdbeda9608d6d4de3e778aa88e2c\nBUG: 2329568\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "da03c4e4b3d47e6917fdcddecf68f2f52564e3a0",
      "tree": "a08480b57b97e4033f0c2e909bef9d358aa75eb1",
      "parents": [
        "48ef378d01b3ace349cbb6ba564276b854d872c9"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Jan 20 19:29:41 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Jan 20 19:29:41 2010 -0800"
      },
      "message": "Try to switch to another default net on connection failure.\n\nThis shouldn\u0027t be required, but there seems to be something odd going on\nin wifi and it doesn\u0027t hurt to try other available options.  Makes a\nconnection failure case work like a disconnected case.\n\nbug: 2378462\n"
    },
    {
      "commit": "db43099f9ec481afb4f24f1e08f1db720fbd3e3c",
      "tree": "148581719ef7fe429fc9806a699631dee0553c02",
      "parents": [
        "8ab6135841ca0fede5b99fdd9ff166fbfe0176c0",
        "72759df749bb8557269db86c2e3b2a8a0343cc26"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Jan 20 18:15:43 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 20 18:15:43 2010 -0800"
      },
      "message": "Merge \"INetworkManagementService: Add support for enumerating TTYs and attaching ppp servers to them\""
    },
    {
      "commit": "8ab6135841ca0fede5b99fdd9ff166fbfe0176c0",
      "tree": "7187a066f8aa267340c598af1621146b69f71a7a",
      "parents": [
        "45891e8bfd77bbb55e2568933f490d6512add865"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Jan 20 15:16:42 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Jan 20 18:14:09 2010 -0800"
      },
      "message": "MountService: Codeshrink\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "45891e8bfd77bbb55e2568933f490d6512add865",
      "tree": "2df95f9591aabcda4576814a284e7c761633d983",
      "parents": [
        "703f0614f3111957c0bda4e3595c10c413255894",
        "deba6935c6595c724416cde3368a92c32d8f8683"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Jan 20 18:12:54 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 20 18:12:54 2010 -0800"
      },
      "message": "Merge \"NativeDaemonConnector: Add a convenience method for obtaining lists\""
    },
    {
      "commit": "deba6935c6595c724416cde3368a92c32d8f8683",
      "tree": "42fba642d439ca5d290999d4b69f90917a89d993",
      "parents": [
        "8be346429c18929d4c429b81a4b6fff9dce661b0"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Jan 20 15:14:31 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Jan 20 15:32:02 2010 -0800"
      },
      "message": "NativeDaemonConnector: Add a convenience method for obtaining lists\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "72759df749bb8557269db86c2e3b2a8a0343cc26",
      "tree": "b3894692d3db96f62f3d976a7dbd3fa8e2206504",
      "parents": [
        "8be346429c18929d4c429b81a4b6fff9dce661b0"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Jan 19 13:50:37 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Jan 20 15:17:45 2010 -0800"
      },
      "message": "INetworkManagementService: Add support for enumerating TTYs and attaching ppp servers to them\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nUpdated: Refactor out duplicated code\n"
    },
    {
      "commit": "1206b9eb71e0fc0cfeb98677b92f16afb8179a31",
      "tree": "7394a1e5929eeb0b2f48605fc44bb4ed4bd93175",
      "parents": [
        "973fbb1591b94c83fe1d62593c3e26eaf82741f3",
        "31f90b62e8c83270094f5b0b4c75a0e06d72cd75"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Jan 20 15:12:04 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 20 15:12:04 2010 -0800"
      },
      "message": "Merge \"Fix 2385283: Add DevicePolicyManager calls to LockScreen.\""
    },
    {
      "commit": "31f90b62e8c83270094f5b0b4c75a0e06d72cd75",
      "tree": "5f3cd8d9dfe70cbb5ed607cb4dabf7e46a29c648",
      "parents": [
        "b49d9af7e1205312cc25e23636ef3980bee4c1b0"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Jan 20 13:35:20 2010 -0800"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Jan 20 14:48:37 2010 -0800"
      },
      "message": "Fix 2385283: Add DevicePolicyManager calls to LockScreen.\n"
    },
    {
      "commit": "6b32c0a2ffd3fe8bf5c290eeecc78fb2e3521520",
      "tree": "3191fa2c7bd3502b86cd96b3dd18809d7ef202c0",
      "parents": [
        "8c48b4a532b1011a2f76f3565335c77fc5b141b3",
        "48ef378d01b3ace349cbb6ba564276b854d872c9"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Jan 20 13:30:17 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 20 13:30:17 2010 -0800"
      },
      "message": "am 48ef378d: Merge \"DO NOT MERGE Avoid wifi disable in a UNKNOWN state\" into eclair\n\nMerge commit \u002748ef378d01b3ace349cbb6ba564276b854d872c9\u0027 into eclair-plus-aosp\n\n* commit \u002748ef378d01b3ace349cbb6ba564276b854d872c9\u0027:\n  DO NOT MERGE Avoid wifi disable in a UNKNOWN state\n"
    },
    {
      "commit": "8c48b4a532b1011a2f76f3565335c77fc5b141b3",
      "tree": "3c14e4ebe95f836f1f7c73125dff125795e0ea4f",
      "parents": [
        "70660425c03ac9688d749b13b48bba24d22efabf",
        "1a337547d5377c57dbb10a24d4d73ad6bda829ea"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Jan 20 13:30:11 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 20 13:30:11 2010 -0800"
      },
      "message": "am 1a337547: Merge \"Add bugreport info about network feature use. DO NOT MERGE\" into eclair\n\nMerge commit \u00271a337547d5377c57dbb10a24d4d73ad6bda829ea\u0027 into eclair-plus-aosp\n\n* commit \u00271a337547d5377c57dbb10a24d4d73ad6bda829ea\u0027:\n  Add bugreport info about network feature use. DO NOT MERGE\n"
    },
    {
      "commit": "48ef378d01b3ace349cbb6ba564276b854d872c9",
      "tree": "a2f8b5768d6a9d80e54a4cb2671355d661d21809",
      "parents": [
        "1a337547d5377c57dbb10a24d4d73ad6bda829ea",
        "0fe3f7cbbf769b80cd5ee549bbd0f7723f4d9312"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Jan 20 13:26:08 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 20 13:26:08 2010 -0800"
      },
      "message": "Merge \"DO NOT MERGE Avoid wifi disable in a UNKNOWN state\" into eclair"
    },
    {
      "commit": "73912ce083a35e0b4cbccd9a364791c3725d9e34",
      "tree": "672a704a496916f1af9c661b20c2d7352db4907f",
      "parents": [
        "8c166512a7e6ffaf87e41cd3a85d55993648fe9b"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Dec 21 18:24:07 2009 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Jan 20 12:36:09 2010 -0800"
      },
      "message": "Add bugreport info about network feature use. DO NOT MERGE\n\nBackported from master change Ib9285359.\n\nWe\u0027ve had a couple bug reports showing the effects of a left-live feature request.\nWe need a bit more bugreport-time logging.\n\nbug: 2323226\nbug: 2377507\nchange-id: I296b2887101c260aea678bf6db91144535cbad7e\n"
    }
  ],
  "next": "e0ee6efb1e5bc6cf219555e333635ce98531bc85"
}
