)]}'
{
  "log": [
    {
      "commit": "dc92c82b4180e8067f1acd00a7db7935afce00ff",
      "tree": "4c108ce188aba5c0f2df9c8746fcabe981a47e64",
      "parents": [
        "83a7cdc56539d00933c2e25999620cec94c524b6"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri May 13 15:38:02 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri May 13 15:38:02 2011 -0700"
      },
      "message": "Full backup tweaks\n\n* provide placeholder UI showing backup/restore start/stop/timeout\n* don\u0027t kill the progress UI in mid stream\n* tidy up the pax extended header data writing a little\n\nChange-Id: Ife0cb78e3facb541d8327f1d5ca5fe77faa6cbca\n"
    },
    {
      "commit": "3d0724dc220a2e027b9e38f61c39c84c28a505d5",
      "tree": "d0bb402a46c3de05da7f086c629b78c3b175b3ba",
      "parents": [
        "674b595fa5299d138e068b2b786027d6d6225394",
        "0e59729b104e48c7d935026f565c4b45f1f37d12"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 12 15:39:41 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 12 15:39:41 2011 -0700"
      },
      "message": "resolved conflicts for merge of 0e59729b to master\n\nChange-Id: I2d3a6bddf66b1df0c101c45ea2fec1cf65caf01b\n"
    },
    {
      "commit": "0e59729b104e48c7d935026f565c4b45f1f37d12",
      "tree": "e5c1fc1e85dac0f7955144408600b912ca905a90",
      "parents": [
        "9c7c87941446cdd1263a87a8c4cc5672082c7e12",
        "972808164adde6c0784e9c836d06219a9cf7eb7f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 12 15:05:19 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 12 15:05:19 2011 -0700"
      },
      "message": "am 97280816: am 0f1de9ad: New compat mode front end: UI and persistence.\n\n* commit \u0027972808164adde6c0784e9c836d06219a9cf7eb7f\u0027:\n  New compat mode front end: UI and persistence.\n"
    },
    {
      "commit": "972808164adde6c0784e9c836d06219a9cf7eb7f",
      "tree": "5aa738ac6daee71126ec21792618328ee643fe65",
      "parents": [
        "76a118dd9e1bc8be33e1e22b7264b7f918f6f050",
        "0f1de9adde0b52d2a385a76232bd7ac30c3eeea2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 12 15:01:53 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 12 15:01:53 2011 -0700"
      },
      "message": "am 0f1de9ad: New compat mode front end: UI and persistence.\n\n* commit \u00270f1de9adde0b52d2a385a76232bd7ac30c3eeea2\u0027:\n  New compat mode front end: UI and persistence.\n"
    },
    {
      "commit": "0f1de9adde0b52d2a385a76232bd7ac30c3eeea2",
      "tree": "6d30064324ea987411955a88cb0272ddb27d39b2",
      "parents": [
        "f3cdea937b8b659f959d5e77f4a17f749f85c6ae"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 11 17:34:49 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 12 13:28:45 2011 -0700"
      },
      "message": "New compat mode front end: UI and persistence.\n\nAdds a really crappy UI for toggling compat mode.\n\nPersists compat mode selection across boots.\n\nTurns on compat mode by default for newly installed apps.\n\nChange-Id: Idc83494397bd17c41450bc9e9a05e4386c509399\n"
    },
    {
      "commit": "c9338305bf4d5cfb9ec2a1d64144d8cef32a00a5",
      "tree": "8d3789b4295184c0e82d2ffa28d89fcb2591694f",
      "parents": [
        "e8c926868f507d97b187f08dea409d4648022ef7"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed May 11 16:35:13 2011 -0700"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed May 11 17:06:07 2011 -0700"
      },
      "message": "Extract NetworkManagementService out from Tethering to ConnectivityService.\n\nand also some minor refactoring.\n\nChange-Id: I0e74f30ef1b035d9ed37571c512fedc15d05db77\n"
    },
    {
      "commit": "afd28ac6ecec88065968fff66b8fc1a10e8f28ac",
      "tree": "7b737a5faacd76a6e6f2a1f477996ceb09d091df",
      "parents": [
        "2b50d884c957778a7eb6b3487b639192d43a2ff9",
        "ee60f3fb1b4e61ac8027293a658ba710e36d36b6"
      ],
      "author": {
        "name": "Jake Hamby",
        "email": "jhamby@google.com",
        "time": "Wed May 11 13:09:42 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 11 13:09:42 2011 -0700"
      },
      "message": "am ee60f3fb: resolved conflicts for merge of 18cc814c to honeycomb-plus-aosp\n\n* commit \u0027ee60f3fb1b4e61ac8027293a658ba710e36d36b6\u0027:\n  Enable support for SMS national language shift tables.\n"
    },
    {
      "commit": "fc82cb170cfaf419f2a8da3baff8296d3ea4e241",
      "tree": "90b0d7a0f7538767e3ee6e798237e1db85cf4cc7",
      "parents": [
        "a0f5bb10a5a7b10f376b5001b7cabb6b267d734f",
        "441bc9a6f41ca1678a6c965bec7e2f18227ac100"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed May 11 13:07:38 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 11 13:07:38 2011 -0700"
      },
      "message": "am 441bc9a6: am e6848fac: Merge \"Fix the adding of host routes.\" into honeycomb-LTE\n\n* commit \u0027441bc9a6f41ca1678a6c965bec7e2f18227ac100\u0027:\n  Fix the adding of host routes.\n"
    },
    {
      "commit": "a0f5bb10a5a7b10f376b5001b7cabb6b267d734f",
      "tree": "36f53a83b2c36317c9d459706af0446056728c9f",
      "parents": [
        "b48be8a540be74b75ec5985c3815fc188b833e5d",
        "4a627c71ff53a4fca1f961f4b1dcc0461df18a06"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 11 12:51:31 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 11 12:51:31 2011 -0700"
      },
      "message": "Merge \"Full local backup infrastructure\""
    },
    {
      "commit": "01defe403f3705ac5802e392ee18a78737c51fcb",
      "tree": "c6bf997b750025fe5f77b0bf80a0fc41635d2d3f",
      "parents": [
        "4fbb31383004417b9e059ed9f51eb92c81c2773b",
        "0129b31ff493bb0aa10b778cbeacbec5964644f8"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Wed May 11 09:31:08 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 11 09:31:08 2011 -0700"
      },
      "message": "Merge changes I21e9629e,I535ed3ba\n\n* changes:\n  Create an XML config flag to turn the navbar off.\n  It\u0027s lights out for you, navigation bar!\n"
    },
    {
      "commit": "1d4d30aebd2c22627131819cabfe95f97def2c83",
      "tree": "9e94914a6a93a3007d4b57b32f2999a15e5dec03",
      "parents": [
        "ed742306b3d24ba1c2ca3fea0cc2ada8534a18b0"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Apr 28 12:35:29 2011 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Wed May 11 09:48:52 2011 -0400"
      },
      "message": "It\u0027s lights out for you, navigation bar!\n\nViews requesting lights out mode will cause the navbar to\ndisappear (this is useful for viewing videos/photos/etc\nusing every pixel of the screen).\n\nBut there\u0027s a catch: any user activity at all will cause the\nlights to come back on and the navbar to return.\n\nChange-Id: I535ed3ba9ae7fab3282c402be256add765395b6f\n"
    },
    {
      "commit": "4a627c71ff53a4fca1f961f4b1dcc0461df18a06",
      "tree": "270190b1e030424210b6375ca886c45db10c4fb6",
      "parents": [
        "2bb51bb203c117649db10ad8bd497f199ca797b0"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Apr 01 14:43:32 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue May 10 17:52:51 2011 -0700"
      },
      "message": "Full local backup infrastructure\n\nThis is the basic infrastructure for pulling a full(*) backup of the\ndevice\u0027s data over an adb(**) connection to the local device.  The\nbasic process consists of these interacting pieces:\n\n1. The framework\u0027s BackupManagerService, which coordinates the\n   collection of app data and routing to the destination.\n\n2. A new framework-provided BackupAgent implementation called\n   FullBackupAgent, which is instantiated in the target applications\u0027\n   processes in turn, and knows how to emit a datastream that contains\n   all of the app\u0027s saved data files.\n\n3. A new shell-level program called \"bu\" that is used to bridge from\n   adb to the framework\u0027s Backup Manager.\n\n4. adb itself, which now knows how to use \u0027bu\u0027 to kick off a backup\n   operation and pull the resulting data stream to the desktop host.\n\n5. A system-provided application that verifies with the user that\n   an attempted backup/restore operation is in fact expected and to\n   be allowed.\n\nThe full agent implementation is not used during normal operation of\nthe delta-based app-customized remote backup process.  Instead it\u0027s\nused during user-confirmed *full* backup of applications and all their\ndata to a local destination, e.g. via the adb connection.\n\nThe output format is \u0027tar\u0027.  This makes it very easy for the end\nuser to examine the resulting dataset, e.g. for purpose of extracting\nfiles for debug purposes; as well as making it easy to contemplate\nadding things like a direct gzip stage to the data pipeline during\nbackup/restore.  It also makes it convenient to construct and maintain\nsynthetic backup datasets for testing purposes.\n\nWithin the tar format, certain artificial conventions are used.\nAll files are stored within top-level directories according to\ntheir semantic origin:\n\napps/pkgname/a/  : Application .apk file itself\napps/pkgname/obb/: The application\u0027s associated .obb containers\napps/pkgname/f/  : The subtree rooted at the getFilesDir() location\napps/pkgname/db/ : The subtree rooted at the getDatabasePath() parent\napps/pkgname/sp/ : The subtree rooted at the getSharedPrefsFile() parent\napps/pkgname/r/  : Files stored relative to the root of the app\u0027s file tree\napps/pkgname/c/  : Reserved for the app\u0027s getCacheDir() tree; not stored.\n\nFor each package, the first entry in the tar stream is a file called\n\"_manifest\", nominally rooted at apps/pkgname.  This file contains some\nmetadata about the package whose data is stored in the archive.\n\nThe contents of shared storage can optionally be included in the tar\nstream. It is placed in the synthetic location:\n\nshared/...\n\nuid/gid are ignored; app uids are assigned at install time, and the\napp\u0027s data is handled from within its own execution environment, so\nwill automatically have the app\u0027s correct uid.\n\nForward-locked .apk files are never backed up.  System-partition\n.apk files are not backed up unless they have been overridden by a\npost-factory upgrade, in which case the current .apk *is* backed up --\ni.e. the .apk that matches the on-disk data.  The manifest preceding\neach application\u0027s portion of the tar stream provides version numbers\nand signature blocks for version checking, as well as an indication\nof whether the restore logic should expect to install the .apk before\nextracting the data.\n\nSystem packages can designate their own full backup agents.  This is\nto manage things like the settings provider which (a) cannot be shut\ndown on the fly in order to do a clean snapshot of their file trees,\nand (b) manage data that is not only irrelevant but actively hostile\nto non-identical devices -- CDMA telephony settings would seriously\nmess up a GSM device if emplaced there blind, for example.\n\nWhen a full backup or restore is initiated from adb, the system will\npresent a confirmation UI that the user must explicitly respond to\nwithin a short [~ 30 seconds] timeout.  This is to avoid the\npossibility of malicious desktop-side software secretly grabbing a copy\nof all the user\u0027s data for nefarious purposes.\n\n(*) The backup is not strictly a full mirror.  In particular, the\n    settings database is not cloned; it is handled the same way that\n    it is in cloud backup/restore.  This is because some settings\n    are actively destructive if cloned onto a different (or\n    especially a different-model) device: telephony settings and\n    AndroidID are good examples of this.\n\n(**) On the framework side it doesn\u0027t care that it\u0027s adb; it just\n    sends the tar stream to a file descriptor.  This can easily be\n    retargeted around whatever transport we might decide to use\n    in the future.\n\nKNOWN ISSUES:\n\n* the security UI is desperately ugly; no proper designs have yet\n  been done for it\n* restore is not yet implemented\n* shared storage backup is not yet implemented\n* symlinks aren\u0027t yet handled, though some infrastructure for\n  dealing with them has been put in place.\n\nChange-Id: Ia8347611e23b398af36ea22c36dff0a276b1ce91\n"
    },
    {
      "commit": "ee60f3fb1b4e61ac8027293a658ba710e36d36b6",
      "tree": "54156a5e68a8a0c95f073f7d6b486726db05e0fa",
      "parents": [
        "6819c677b9d8d9a5f60f1a35e045300b1a8aec96",
        "18cc814c94edb188b73a92f0d34878d9dc054ff6"
      ],
      "author": {
        "name": "Jake Hamby",
        "email": "jhamby@google.com",
        "time": "Tue May 10 15:52:15 2011 -0700"
      },
      "committer": {
        "name": "Jake Hamby",
        "email": "jhamby@google.com",
        "time": "Tue May 10 15:52:15 2011 -0700"
      },
      "message": "resolved conflicts for merge of 18cc814c to honeycomb-plus-aosp\n\nChange-Id: I2b569ada3baec2dc486296623063bc2b504c5e96\n"
    },
    {
      "commit": "e09089d8115835011a06e51693d290dab863b79f",
      "tree": "e71724256e17a5851c6022e5755e145eeb5babb0",
      "parents": [
        "607e379ebc2d0cf72738b1459c46fc9dfdf41178",
        "0f3f29b1b92f7f5788f3270c8cc6bf1f6d8bfc6e"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue May 10 15:36:45 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 10 15:36:45 2011 -0700"
      },
      "message": "Merge \"Use canonical paths to compare library directory with data directory.\""
    },
    {
      "commit": "0f3f29b1b92f7f5788f3270c8cc6bf1f6d8bfc6e",
      "tree": "974ca04ccc0143e493a3ed33b2b512755b923af3",
      "parents": [
        "48a880bc49548377ee44de8ecf068b3a67474712"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon May 09 14:17:14 2011 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue May 10 15:32:18 2011 -0700"
      },
      "message": "Use canonical paths to compare library directory with data directory.\n\nFix for unexpected recursive symbolic link when unpacking\nnative libraries contained in apks. This happened due to the data\ndirectory of primary user becoming a symlink to the legacy data directory.\n\nBug: 4396427\n\nChange-Id: Iaed2f21ada4eda16ce729ead259a52203300dfa8\n"
    },
    {
      "commit": "441bc9a6f41ca1678a6c965bec7e2f18227ac100",
      "tree": "b7d0cbb91b112c684e5e7558c6fc8f45330b549c",
      "parents": [
        "037b54cf3c85a41087f8346dd66cd426b132d899",
        "e6848faceff58f84f671dbc73be08ef7890fea09"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue May 10 11:53:57 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 10 11:53:57 2011 -0700"
      },
      "message": "am e6848fac: Merge \"Fix the adding of host routes.\" into honeycomb-LTE\n\n* commit \u0027e6848faceff58f84f671dbc73be08ef7890fea09\u0027:\n  Fix the adding of host routes.\n"
    },
    {
      "commit": "f43396caaaae8f336bcf6fe9128a89dc7a7b0a5c",
      "tree": "863dd7a6b494b95bded88932ae724b1369492d5b",
      "parents": [
        "4907d1d5e2c7d244b07579b8c52153df69754e85"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri May 06 17:10:53 2011 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue May 10 11:27:46 2011 -0700"
      },
      "message": "Fix the adding of host routes.\n\nWe used to just add\n\nChange-Id: I991e4cc976cc2932887dd3242fd50e013d521b0a\n"
    },
    {
      "commit": "aa9d84c37e05f696ec158dac98ce38cf41e18314",
      "tree": "49a8e08d51840eec7ff20b624c59408f2f7523aa",
      "parents": [
        "28e77e616d8f005c8e07d6f28a83f8ca9772aedf",
        "05be6d6fe09ddfb706d1bef3b20c3d37f45e3c8a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 09 19:00:59 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 09 19:00:59 2011 -0700"
      },
      "message": "resolved conflicts for merge of 05be6d6f to master\n\nChange-Id: Ic6a6c5bb300f6f1d43f9ed550b284282b4f16212\n"
    },
    {
      "commit": "05be6d6fe09ddfb706d1bef3b20c3d37f45e3c8a",
      "tree": "e267de423fabed80a38fd48d6f9e2910b69fc072",
      "parents": [
        "ba54feb094fdf0eb2201eae5751104a144a2a31d",
        "4907d1d5e2c7d244b07579b8c52153df69754e85"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 09 17:10:34 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 09 17:10:34 2011 -0700"
      },
      "message": "am 4907d1d5: am 0c6cbf41: Merge \"Better compat mode part one: start scaling windows.\" into honeycomb-mr2\n\n* commit \u00274907d1d5e2c7d244b07579b8c52153df69754e85\u0027:\n  Better compat mode part one: start scaling windows.\n"
    },
    {
      "commit": "4907d1d5e2c7d244b07579b8c52153df69754e85",
      "tree": "6e670ce463590a36bcbdec8df5a093e6fc3d2f4e",
      "parents": [
        "45364dc4bfe3e6118ad61f1d38489fe63418699a",
        "0c6cbf410a642f6e9cea7cca0a6e53a4a3cdd324"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 09 17:08:40 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 09 17:08:40 2011 -0700"
      },
      "message": "am 0c6cbf41: Merge \"Better compat mode part one: start scaling windows.\" into honeycomb-mr2\n\n* commit \u00270c6cbf410a642f6e9cea7cca0a6e53a4a3cdd324\u0027:\n  Better compat mode part one: start scaling windows.\n"
    },
    {
      "commit": "e2515eebf42c763c0a2d9f873a153711778cfc17",
      "tree": "ee159940f05c439d0524771bfbfe6b551c82c2d4",
      "parents": [
        "158e3582c03ab9e0221718da20fc8854bb9216d0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 27 18:52:56 2011 -0400"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 09 17:03:24 2011 -0700"
      },
      "message": "Better compat mode part one: start scaling windows.\n\nFirst step of improving app screen size compatibility mode.  When\nrunning in compat mode, an application\u0027s windows are scaled up on\nthe screen rather than being small with 1:1 pixels.\n\nCurrently we scale the application to fill the entire screen, so\ndon\u0027t use an even pixel scaling.  Though this may have some\nnegative impact on the appearance (it looks okay to me), it has a\nbig benefit of allowing us to now treat these apps as normal\nfull-screens apps and do the normal transition animations as you\nmove in and out and around in them.\n\nThis introduces fun stuff in the input system to take care of\nmodifying pointer coordinates to account for the app window\nsurface scaling.  The input dispatcher is told about the scale\nthat is being applied to each window and, when there is one,\nadjusts pointer events appropriately as they are being sent\nto the transport.\n\nAlso modified is CompatibilityInfo, which has been greatly\nsimplified to not be so insane and incomprehendible.  It is\nnow simple -- when constructed it determines if the given app\nis compatible with the current screen size and density, and\nthat is that.\n\nThere are new APIs on ActivityManagerService to put applications\nthat we would traditionally consider compatible with larger screens\nin compatibility mode.  This is the start of a facility to have\na UI affordance for a user to switch apps in and out of\ncompatibility.\n\nTo test switching of modes, there is a new variation of the \"am\"\ncommand to do this: am screen-compat [on|off] [package]\n\nThis mode switching has the fundamentals of restarting activities\nwhen it is changed, though the state still needs to be persisted\nand the overall mode switch cleaned up.\n\nFor the few small apps I have tested, things mostly seem to be\nworking well.  I know of one problem with the text selection\nhandles being drawn at the wrong position because at some point\nthe window offset is being scaled incorrectly.  There are\nprobably other similar issues around the interaction between\ntwo windows because the different window coordinate spaces are\ndone in a hacky way instead of being formally integrated into\nthe window manager layout process.\n\nChange-Id: Ie038e3746b448135117bd860859d74e360938557\n"
    },
    {
      "commit": "a301fe61c8573c06be754d5788a84d19188ee2d3",
      "tree": "f74dbb59b431a0e8a526f9067b2e5b28d3354db2",
      "parents": [
        "dd01e5b79f4230ea95756f3f128df9c382f2b40f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed May 04 08:44:59 2011 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri May 06 08:36:20 2011 -0700"
      },
      "message": "Fix dumpsys output.\n\nChange-Id: If3f51fbc4608ac295fa22d0aee4008f8dce4fa50\n"
    },
    {
      "commit": "18cc814c94edb188b73a92f0d34878d9dc054ff6",
      "tree": "9e68e5068c56cc4d4ce74a2a69a4ccc6a7dd6b9e",
      "parents": [
        "8a14d8b9c03c611cabde5743cfdcc9ff51314550",
        "4d53cb02168fe35104d7e644dd9b3efd8ca4c91b"
      ],
      "author": {
        "name": "Jake Hamby",
        "email": "jhamby@google.com",
        "time": "Thu May 05 13:31:03 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 05 13:31:03 2011 -0700"
      },
      "message": "am 4d53cb02: Merge \"Enable support for SMS national language shift tables.\" into gingerbread\n\n* commit \u00274d53cb02168fe35104d7e644dd9b3efd8ca4c91b\u0027:\n  Enable support for SMS national language shift tables.\n"
    },
    {
      "commit": "4d53cb02168fe35104d7e644dd9b3efd8ca4c91b",
      "tree": "9c1e4a1a76e66bb9de41470a204abcb8fb72980d",
      "parents": [
        "1a5b6098d5002ae07ce3f9bc514400a87c2b64fa",
        "b49a73dfc4c9817bba1f227e9330555acdf9b56f"
      ],
      "author": {
        "name": "Jake Hamby",
        "email": "jhamby@google.com",
        "time": "Thu May 05 13:09:11 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 05 13:09:11 2011 -0700"
      },
      "message": "Merge \"Enable support for SMS national language shift tables.\" into gingerbread"
    },
    {
      "commit": "ed30fd8e9a2d65ee5c8520de55b0089c219f390c",
      "tree": "26ba777cc019d3adcba613427a2bb2feabf9a54f",
      "parents": [
        "098b781699981a550500d2e30b4c844af63eb187"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Apr 22 16:18:45 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu May 05 07:35:40 2011 -0700"
      },
      "message": "Add ability for hierarchyviewer to output displaylist info\n\nClicking on a node in hierarchyviewer1 and hierarchyviewer2 and then\nclicking the new \"Dump DisplayList\" button will cause the display\nlist for the selected node (including its children) to be output into\nlogcat.\n\nChange-Id: Iad05f5f6cca0f8b465dccd962b501dc18fe6e053\n"
    },
    {
      "commit": "a17de9b493123f0d6e6d0b842150bf29322b7a88",
      "tree": "5a7518cfd3276a2e6ed40504f69fd3f8c3008a34",
      "parents": [
        "f2a4568afca603d3166fd86335abe095cd087393"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed May 04 18:23:12 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed May 04 18:23:12 2011 -0700"
      },
      "message": "Revert \"Add ability for hierarchyviewer to output displaylist info\"\n\nThis reverts commit b2a4b52e8d5e499d33e2765e8c47851bf0266299.\n"
    },
    {
      "commit": "28baf6f096265664a5cb778b7d2ad1c1974f0f4a",
      "tree": "9844c1a3c1d814513704e5eaa0e0818847592488",
      "parents": [
        "2a2dc6894ae2cea2c0c16b27d9acd5d536c71696",
        "2f5f4bc98b4db21102ff8e8d8116f00ab4d2fd2a"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed May 04 17:58:04 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 04 17:58:04 2011 -0700"
      },
      "message": "Merge \"Add basic walled garden check\""
    },
    {
      "commit": "2a2dc6894ae2cea2c0c16b27d9acd5d536c71696",
      "tree": "06cf53f5255b16d4ceab67dbf95748554e4087a7",
      "parents": [
        "42a3a39e231c02a3c2b7624cb7c64fe10d6ff4b0",
        "9a13f36cddaad01350bdb5f000167811a1d753c9"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed May 04 17:49:01 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 04 17:49:01 2011 -0700"
      },
      "message": "Merge \"Return NetworkStats bundle from NM service.\""
    },
    {
      "commit": "42a3a39e231c02a3c2b7624cb7c64fe10d6ff4b0",
      "tree": "7c19213bb0eba6602acf262ff603454ced479cc7",
      "parents": [
        "600fc592e7668033913ba376a8a10486db0662c9",
        "b2a4b52e8d5e499d33e2765e8c47851bf0266299"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed May 04 17:30:30 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 04 17:30:30 2011 -0700"
      },
      "message": "Merge \"Add ability for hierarchyviewer to output displaylist info\""
    },
    {
      "commit": "b2a4b52e8d5e499d33e2765e8c47851bf0266299",
      "tree": "fccd7891e4f5ac2b3bb833f226e2c7c23a28202d",
      "parents": [
        "b969d2d9c1771a3a4c813f2c2824522659d26927"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Apr 22 16:18:45 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed May 04 17:18:27 2011 -0700"
      },
      "message": "Add ability for hierarchyviewer to output displaylist info\n\nClicking on a node in hierarchyviewer1 and hierarchyviewer2 and then\nclicking the new \"Dump DisplayList\" button will cause the display\nlist for the selected node (including its children) to be output into\nlogcat.\n\nChange-Id: Id32f62569ad1ab4d533bc62987f3a7390c1bb4e6\n"
    },
    {
      "commit": "9a13f36cddaad01350bdb5f000167811a1d753c9",
      "tree": "024269b4f6c6ab8fb284156955ecace0578eaba2",
      "parents": [
        "588f280fe099dc5b18f15124ffb035fc1f5ef2f1"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Apr 26 16:25:36 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed May 04 16:07:21 2011 -0700"
      },
      "message": "Return NetworkStats bundle from NM service.\n\nIntroduce NetworkStats which is a collection of network statistics,\nwhich should match the structure communicated by kernel module through\nnetd.  Will introduce tags and fg/bg stats later.  Kept entirely in a\nflat data structure to optimize parcel speed.\n\nInitial pass at returning NetworkStats from NetworkManagementService,\nboth summary and details.  Will eventually pull data from kernel module\nover netd connection.\n\nChange-Id: I92d9f61678ec8c22e2ce26775fb035a0cf32413f\n"
    },
    {
      "commit": "b6f8bff10963893435afda7b426c7a5b1ac1cc1f",
      "tree": "577ab1c9d76dbc688a0a1976ad4e1b07d9239679",
      "parents": [
        "9f47d10e6acc079eb0fb5cfbd7267c6fe8f44d18",
        "9c7e6fc50614cc1739d4bfbf6187893c27b01a67"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed May 04 12:47:30 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 04 12:47:30 2011 -0700"
      },
      "message": "am 9c7e6fc5: am f13eb830: Merge \"Add auto-restore timeout for secondary networks.\" into honeycomb-LTE\n\n* commit \u00279c7e6fc50614cc1739d4bfbf6187893c27b01a67\u0027:\n  Add auto-restore timeout for secondary networks.\n"
    },
    {
      "commit": "9c7e6fc50614cc1739d4bfbf6187893c27b01a67",
      "tree": "8ff559e845d18c1498258f2fa13fe85e9b0e8cbd",
      "parents": [
        "63de615ddb3cb81bbb5b548693faca971d182a6d",
        "f13eb8301f4704179938e374129f2943c9c38d5f"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed May 04 10:02:16 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 04 10:02:16 2011 -0700"
      },
      "message": "am f13eb830: Merge \"Add auto-restore timeout for secondary networks.\" into honeycomb-LTE\n\n* commit \u0027f13eb8301f4704179938e374129f2943c9c38d5f\u0027:\n  Add auto-restore timeout for secondary networks.\n"
    },
    {
      "commit": "f13eb8301f4704179938e374129f2943c9c38d5f",
      "tree": "028311ba07490cd91380100b180a47e26f79a5fb",
      "parents": [
        "36132a488b2974db9a90da809c2f3eeab99a4427",
        "f2102f7a1a26d399cc60c516ed7d90ef660de055"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed May 04 09:59:30 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 04 09:59:30 2011 -0700"
      },
      "message": "Merge \"Add auto-restore timeout for secondary networks.\" into honeycomb-LTE"
    },
    {
      "commit": "20c356128492cf43d9ca10308601be585514f165",
      "tree": "37d06e2d80df44f322f8a3bb1ab862314daef787",
      "parents": [
        "2572051c4f6589e5ca8b21158a24a7fa606a5e67",
        "10fbba21e4827a1582d97aa99e4e8d772ce04920"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 04 08:57:19 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 04 08:57:19 2011 -0700"
      },
      "message": "am 10fbba21: DO NOT MERGE MountService: Fix running media scanner at boot.\n\n* commit \u002710fbba21e4827a1582d97aa99e4e8d772ce04920\u0027:\n  DO NOT MERGE MountService: Fix running media scanner at boot.\n"
    },
    {
      "commit": "2572051c4f6589e5ca8b21158a24a7fa606a5e67",
      "tree": "64cbd050402aede01867443e9ad93ad9ddeb46cd",
      "parents": [
        "a2a8419db82ae40146bdfd215e3de3be39c7249c",
        "0aa5d7b7f225236ac8461d0b6835b9c6152a2699"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 04 08:57:12 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 04 08:57:12 2011 -0700"
      },
      "message": "am 0aa5d7b7: DO NOT MERGE Fix deadlock in MountService\n\n* commit \u00270aa5d7b7f225236ac8461d0b6835b9c6152a2699\u0027:\n  DO NOT MERGE Fix deadlock in MountService\n"
    },
    {
      "commit": "a2a8419db82ae40146bdfd215e3de3be39c7249c",
      "tree": "7d40976cd68e10045c4dfae23dfae3c1f6702cb4",
      "parents": [
        "60c768d41277e3b7d4988452e15694c7ad5a74d0",
        "e3b498be0ae05367e9b84f4fac2ac5cf57a6b091"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 04 08:57:07 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 04 08:57:07 2011 -0700"
      },
      "message": "am e3b498be: DO NOT MERGE StorageManager: Add getVolumeList() and getVolumeState() methods\n\n* commit \u0027e3b498be0ae05367e9b84f4fac2ac5cf57a6b091\u0027:\n  DO NOT MERGE StorageManager: Add getVolumeList() and getVolumeState() methods\n"
    },
    {
      "commit": "60c768d41277e3b7d4988452e15694c7ad5a74d0",
      "tree": "82ec67daf5925d8fe9b7e34a27b651b93787cdbb",
      "parents": [
        "79eb78769c8ecd92624f0171d9f22d95fc093b00",
        "346a2d79ecd627e38bc7fc6874fb627995b8bc12"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 04 08:56:55 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 04 08:56:55 2011 -0700"
      },
      "message": "am 346a2d79: DO NOT MERGE MountService: Add support for multiple volumes\n\n* commit \u0027346a2d79ecd627e38bc7fc6874fb627995b8bc12\u0027:\n  DO NOT MERGE MountService: Add support for multiple volumes\n"
    },
    {
      "commit": "10fbba21e4827a1582d97aa99e4e8d772ce04920",
      "tree": "8ca9af5627e41c963a3e3bf064625a91b9935f25",
      "parents": [
        "0aa5d7b7f225236ac8461d0b6835b9c6152a2699"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 05 10:21:51 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 04 10:41:19 2011 -0400"
      },
      "message": "DO NOT MERGE MountService: Fix running media scanner at boot.\n\nChange-Id: Ia56573023f21fa067a14e7d3ac5a6dbd51ecc8a7\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "0aa5d7b7f225236ac8461d0b6835b9c6152a2699",
      "tree": "9bc11ff8ac526d26b59635edf1512ae3cd7afd0c",
      "parents": [
        "e3b498be0ae05367e9b84f4fac2ac5cf57a6b091"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 05 10:05:47 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 04 10:41:19 2011 -0400"
      },
      "message": "DO NOT MERGE Fix deadlock in MountService\n\nIt is not safe to call into vold with a lock held on mVolumeStates\nsince we will receive events back from vold on a different thread.\nSo in the boot completed handler we make a copy of the volume list and\nthen call vold to mount volumes after releasing the lock\n\nChange-Id: Iaadfb1b8be5567c8e228a8fbc69d4d483c8dc987\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "e3b498be0ae05367e9b84f4fac2ac5cf57a6b091",
      "tree": "0c1e2fbcf727794950a55df15d84d5edba45bcd8",
      "parents": [
        "346a2d79ecd627e38bc7fc6874fb627995b8bc12"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Mar 24 08:12:30 2011 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 04 10:41:19 2011 -0400"
      },
      "message": "DO NOT MERGE StorageManager: Add getVolumeList() and getVolumeState() methods\n\nChange-Id: I8ba7e56797b0106dafaa6388393e5c629f27e6e6\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "346a2d79ecd627e38bc7fc6874fb627995b8bc12",
      "tree": "abbf9844edd66b717f1ce5e6d8e7488cc47b6768",
      "parents": [
        "88741823a67fd8246b3926464bfaa2081b330f40"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Mar 23 14:52:34 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 04 10:41:19 2011 -0400"
      },
      "message": "DO NOT MERGE MountService: Add support for multiple volumes\n\nChange-Id: I18527e78a1c04023ae7bc0f269eaac082eb48d7f\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "f2102f7a1a26d399cc60c516ed7d90ef660de055",
      "tree": "ef5a798c8adddd8fc300cdfe9766581b97e12b79",
      "parents": [
        "7e74c60db5261ea137c8f6672f8573873eb5814e"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue May 03 19:02:44 2011 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue May 03 19:10:26 2011 -0700"
      },
      "message": "Add auto-restore timeout for secondary networks.\n\nSettable per network so you can have not timeout for some and some for others.\nIf you set the old NETWORK_RESTORE_DELAY_PROP_NAME system property\n(android.telephony.apn-restore) it will override this value.\n\nChange-Id: Icca706fdc74245dce679209116660e5dc4b05d23\n"
    },
    {
      "commit": "91dd02c3405a76e9051f7e118ad19ca111b2aa40",
      "tree": "c8d2911356489466e8bd23143c96e7de47d5ceda",
      "parents": [
        "b9135638c5b813e876dc16dcb10084b6ab3d2003"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 05 10:21:51 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 03 21:03:56 2011 -0400"
      },
      "message": "DO NOT MERGE MountService: Fix running media scanner at boot.\n\nChange-Id: I67ff2ccde7e03143167b8c59726ffb741c96e028\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "b9135638c5b813e876dc16dcb10084b6ab3d2003",
      "tree": "c334f5ac034f372c0f3d4f468e3b2a0e0e2e61f0",
      "parents": [
        "d967f4664f40f9a4c5262a44b19df9bbdf457d8a"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 05 10:05:47 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 03 21:03:56 2011 -0400"
      },
      "message": "DO NOT MERGE Fix deadlock in MountService\n\nIt is not safe to call into vold with a lock held on mVolumeStates\nsince we will receive events back from vold on a different thread.\nSo in the boot completed handler we make a copy of the volume list and\nthen call vold to mount volumes after releasing the lock\n\nChange-Id: Ic9836c2e1e8a5677d0c4e33476a72081f69823a0\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "d967f4664f40f9a4c5262a44b19df9bbdf457d8a",
      "tree": "421898338ee3ec31b2e6ba03b36ba7deff83599d",
      "parents": [
        "f097fc2fee57183508558acbca1f8742fb55615a"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Mar 24 08:12:30 2011 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 03 21:03:55 2011 -0400"
      },
      "message": "DO NOT MERGE StorageManager: Add getVolumeList() and getVolumeState() methods\n\nChange-Id: I43d5c1730b340f1288b58012234b38f801001b71\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "f097fc2fee57183508558acbca1f8742fb55615a",
      "tree": "563a1d88fc67e15216aaa4f93611fcd4b8f349e9",
      "parents": [
        "7c2d14d59637cfb06ebcfbb091541cebd131fc6a"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Mar 23 14:52:34 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 03 21:03:55 2011 -0400"
      },
      "message": "DO NOT MERGE MountService: Add support for multiple volumes\n\nChange-Id: I45ee0e5735a6d72c635f6d22320e8b13bccc3847\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "dacce73bcc53a21125f532d8000e7ec2e3c30a35",
      "tree": "ae0856bf9f1c5c133841d1f6eb0f0ddee87c28ce",
      "parents": [
        "eac835e52e8378b33a2b34b7edb803290154588d",
        "4ec33c2aad59b2a745ee891c9b7246b9533d95e0"
      ],
      "author": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Tue May 03 14:59:52 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 03 14:59:52 2011 -0700"
      },
      "message": "am 4ec33c2a: Do not merge. Cherry-pick of Idc802af57fb9926a69ed52d4e776ef57d8b647c6 (package manager fix) to gingerbread.\n\n* commit \u00274ec33c2aad59b2a745ee891c9b7246b9533d95e0\u0027:\n  Do not merge. Cherry-pick of Idc802af57fb9926a69ed52d4e776ef57d8b647c6 (package manager fix) to gingerbread.\n"
    },
    {
      "commit": "2f5f4bc98b4db21102ff8e8d8116f00ab4d2fd2a",
      "tree": "1bffc4effd5dedc452f323f42d7f451b8b7e401c",
      "parents": [
        "a0449f03eb12462189f7a75f55e4751e1e2bcbcd"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Mon May 02 11:43:28 2011 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue May 03 13:35:21 2011 -0700"
      },
      "message": "Add basic walled garden check\n\nUse multiple DNS resolutions to the same IP address\nas an indication to launch a web view for authentication\n\nBug: 4378442\nChange-Id: Id3cf1e3c5b5bee4468665d0459ac945e5b12e730\n"
    },
    {
      "commit": "e21f3764343ba3b077c6be3cad568ab9ecea85a7",
      "tree": "3cd23b261f3c051671cf2b389e727200199ed0a8",
      "parents": [
        "3165f1a8eb707b36a6b2c66379c3fde85d9cc2fd",
        "75c664582c5ce5d94826f37cb725b447a4d62c50"
      ],
      "author": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Tue May 03 12:46:20 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 03 12:46:20 2011 -0700"
      },
      "message": "am 75c66458: am 8325c3a8: Backporting I57c58c4083bd59f45095c184d6ca5a302f79ff6e to HC-MR1. New change since file was renamed, making cherry-pick impossible.\n\n* commit \u002775c664582c5ce5d94826f37cb725b447a4d62c50\u0027:\n  Backporting I57c58c4083bd59f45095c184d6ca5a302f79ff6e to HC-MR1. New change since file was renamed, making cherry-pick impossible.\n"
    },
    {
      "commit": "75c664582c5ce5d94826f37cb725b447a4d62c50",
      "tree": "e464c39c2bd0870d03795895e571a2d64bebb1ab",
      "parents": [
        "d0d44c4e988ecdea86c2bb04e29d8f6d20c1c631",
        "8325c3a89197e47cfc2eeb4117c927fb8cb91630"
      ],
      "author": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Tue May 03 12:26:16 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 03 12:26:16 2011 -0700"
      },
      "message": "am 8325c3a8: Backporting I57c58c4083bd59f45095c184d6ca5a302f79ff6e to HC-MR1. New change since file was renamed, making cherry-pick impossible.\n\n* commit \u00278325c3a89197e47cfc2eeb4117c927fb8cb91630\u0027:\n  Backporting I57c58c4083bd59f45095c184d6ca5a302f79ff6e to HC-MR1. New change since file was renamed, making cherry-pick impossible.\n"
    },
    {
      "commit": "4ec33c2aad59b2a745ee891c9b7246b9533d95e0",
      "tree": "9dd947b46cbaddf95e4a07b7efaee109fe17033a",
      "parents": [
        "a4e7353d33a0736361c866db76008a66ad8fbf8a"
      ],
      "author": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Mon May 02 16:58:35 2011 -0700"
      },
      "committer": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Mon May 02 17:00:13 2011 -0700"
      },
      "message": "Do not merge. Cherry-pick of Idc802af57fb9926a69ed52d4e776ef57d8b647c6\n(package manager fix) to gingerbread.\n\nChange-Id: Ia5373100e97bfe42d2211c6249996dc7ff4818e0\n"
    },
    {
      "commit": "a8e0dfae06298b375637813a3263a62749dd0b82",
      "tree": "05732764028e29a1e26980864063179c7b3c120c",
      "parents": [
        "677cece131528d1edcaad247b87d1f989c3956c2",
        "db46fa25be0a3e8040b118f688b69dd526aed86d"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon May 02 14:41:57 2011 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon May 02 14:41:57 2011 -0700"
      },
      "message": "resolved conflicts for merge of db46fa25 to master\n\nChange-Id: I8df9d5d07588fbd70e417dae567be26f645b74b6\n"
    },
    {
      "commit": "8325c3a89197e47cfc2eeb4117c927fb8cb91630",
      "tree": "9c5c219a485025c29d7bc1a312527b991f5db27a",
      "parents": [
        "de506220d8a3d453463e1abe1b2eb54afd48ec93"
      ],
      "author": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Mon May 02 13:16:06 2011 -0700"
      },
      "committer": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Mon May 02 14:06:06 2011 -0700"
      },
      "message": "Backporting I57c58c4083bd59f45095c184d6ca5a302f79ff6e to HC-MR1. New change\nsince file was renamed, making cherry-pick impossible.\n\nChange-Id: Idc802af57fb9926a69ed52d4e776ef57d8b647c6\n"
    },
    {
      "commit": "db46fa25be0a3e8040b118f688b69dd526aed86d",
      "tree": "5b2cabf4eecfe86a209d6a9a47653320111892bb",
      "parents": [
        "d369d64ee7931726d479e60e64d76a31fdba4a8f",
        "a47c40193fcbe9ca07facea78b2828afdae5e025"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon May 02 13:29:22 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 02 13:29:22 2011 -0700"
      },
      "message": "am a47c4019: Merge \"Add RouteInfo objects for tracking routes.\" into honeycomb-LTE\n\n* commit \u0027a47c40193fcbe9ca07facea78b2828afdae5e025\u0027:\n  Add RouteInfo objects for tracking routes.\n"
    },
    {
      "commit": "aa70f101e08098ed9cb190abe2d7f952561026b8",
      "tree": "8dd78eb19fa32c9c98f31b258aff02accb3ee4fa",
      "parents": [
        "969749319ca17f6e0c6836303a78cc484df2539b"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Apr 28 14:28:50 2011 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon May 02 11:17:30 2011 -0700"
      },
      "message": "Add RouteInfo objects for tracking routes.\n\nUsed to have list of gateways for default routes, but general static routes\nshould be supported.\n\nChange-Id: I01730142c6139f2b833b9d48f5381d2d320b69f6\n"
    },
    {
      "commit": "0a1b746686f335a650b974ff0d345836f2629794",
      "tree": "22983f8b0d36042da2808c3dce158270f6a2cf2f",
      "parents": [
        "5e3357fcee2a23a08434873a89e8ada4c6e6d893",
        "92618f5fd9e4a0469d60cab39765b7c820c1976b"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Mon May 02 10:11:11 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 02 10:11:11 2011 -0700"
      },
      "message": "am 92618f5f: am 52749c0b: am 03daee63: Merge \"frameworks/base: acquire lock on am only when needed\"\n\n* commit \u002792618f5fd9e4a0469d60cab39765b7c820c1976b\u0027:\n  frameworks/base: acquire lock on am only when needed\n"
    },
    {
      "commit": "92618f5fd9e4a0469d60cab39765b7c820c1976b",
      "tree": "f19e9658ba3496bcd10b4c814c0cfcdf85a08d8d",
      "parents": [
        "5eb49e0f1e8e03e8808d8d7da6d5ffb761400e0b",
        "52749c0b1117a05a9c853b7d54f69a281f69cf3c"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Apr 29 16:44:20 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 29 16:44:20 2011 -0700"
      },
      "message": "am 52749c0b: am 03daee63: Merge \"frameworks/base: acquire lock on am only when needed\"\n\n* commit \u002752749c0b1117a05a9c853b7d54f69a281f69cf3c\u0027:\n  frameworks/base: acquire lock on am only when needed\n"
    },
    {
      "commit": "03daee6380772b0ab167a7b28e37d7a21ec89c86",
      "tree": "8b28f2d92291322c49c33321128f733264b84c3d",
      "parents": [
        "2f463ef18bb235be57b39cbda536bcd2df2d0908",
        "68a4e0a38fca00e9615a3c8ccb2d46edc88cf338"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Apr 29 09:59:22 2011 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Fri Apr 29 09:59:22 2011 -0700"
      },
      "message": "Merge \"frameworks/base: acquire lock on am only when needed\""
    },
    {
      "commit": "a550bdc84af70babb48091197bfb1b93d3671664",
      "tree": "d1bbbd600c4cd3faaf7022a89b7b7678595b3841",
      "parents": [
        "9a51519dfc20d5ed1fb9e25270b8e46e0e3ab8db"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Wed Apr 27 08:26:33 2011 -0700"
      },
      "committer": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Thu Apr 28 16:18:19 2011 -0700"
      },
      "message": "Use passive provider for location based country detection\n\nBug: 4345419\nChange-Id: Ia3e071b97c6971538ea994fdee6029db928201d6\n"
    },
    {
      "commit": "b7342acebcb7e5dc7da0cda77fbddf50e7dfdd7c",
      "tree": "40e6e8fe8708c087640f8a26bffdf20eac8e779e",
      "parents": [
        "cb95894bc7ed2f5f4fc541be62631e5456f442d3"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 25 23:44:11 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Apr 28 12:28:36 2011 -0700"
      },
      "message": "Tests for ThrottleService, NTP into TrustedTime.\n\nWrote initial suite of tests for ThrottleService, checking a variety\nof edge cases.  Checks going over limits, updating policies, and reset\nafter cycle elapses.\n\nMoved NTP code in ThrottleService into new TrustedTime interface,\nwhich makes it easier to understand, and allows tests to provide custom\nclocks.\n\nChange-Id: I0d62b8b3a169516a2ab2d33025f6fe30dc792be8\n"
    },
    {
      "commit": "a6590e7fee1ef4286f0896358593fdb9aab24f6c",
      "tree": "e277d33c99d649505a4c2cd9b851dd055b5167cc",
      "parents": [
        "cfe7b9fcfaeda1e79a8673e4005bcb307f9e9313",
        "13b21e608e47382cb94a0aeac13b24ac97f355d2"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Wed Apr 27 13:53:46 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 27 13:53:46 2011 -0700"
      },
      "message": "am 13b21e60: Merge \"Auto hide virtual keyboard\"\n\n* commit \u002713b21e608e47382cb94a0aeac13b24ac97f355d2\u0027:\n  Auto hide virtual keyboard\n"
    },
    {
      "commit": "13b21e608e47382cb94a0aeac13b24ac97f355d2",
      "tree": "b49e71cb3a876b3dbe107cb06ea85a47c255afb9",
      "parents": [
        "a538b4a206c54ef763dab4da00990a8991425e77",
        "44ad61c3a5bdb01a1c375811faf37915bfae24ca"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Wed Apr 27 13:20:16 2011 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Wed Apr 27 13:20:16 2011 -0700"
      },
      "message": "Merge \"Auto hide virtual keyboard\""
    },
    {
      "commit": "a3e261d506551713477adb2fd47d1a65b94e64d8",
      "tree": "ccbe33f918417f2268f3d154cd350314793d5ac0",
      "parents": [
        "3bd929579919999852c3e29c536fd06907e620ac"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Apr 27 12:06:23 2011 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Apr 27 12:06:28 2011 -0700"
      },
      "message": "The accessibility input filter state was not unregistered when\nno spoken feedback accessibility services are regitstered.\n\nbug:4343996\n\nChange-Id: Ie709ac24baa084cf3627d6adb6caf1550c399f8b\n"
    },
    {
      "commit": "736c2756bf3c14ae9fef7255c119057f7a2be1ed",
      "tree": "5bea187f2f67a91ede0eabfcd0fc15a4b105e7f7",
      "parents": [
        "c1e1f43dab96a317f58e31137c49a4df2e919b83"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Apr 22 18:30:36 2011 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Apr 22 18:30:43 2011 -0700"
      },
      "message": "Touch exploration feature, event bubling, refactor\n\n1. Added an Input Filter that interprets the touch screen motion\n   events to perfrom accessibility exploration. One finger explores.\n   Tapping within a given time and distance slop on the last exlopred\n   location does click and long press, respectively. Two fingers close\n   and in the same diretion drag. Multiple finglers or two fingers in\n   different directions or two fingers too far away are delegated to\n   the view hierarchy. Non moving fingers \"accidentally grabbed the\n   device for the scrren\" are ignored.\n\n2. Added accessibility events for hover enter, hover exit, touch\n   exoloration gesture start, and end. Accessibility hover events\n   are fired by the hover pipeline. An accessibility event is\n   dispatched up the view tree and the topmost view fires it.\n   Thus predecessors can augment the fired event. An accessibility\n   event has several records and a predecessor can optionally\n   modify, delete, and add such to the event.\n\n3. Added onPopulateAccessibilityEvent and refactored the existing\n   accessibility code to use it.\n\n4. Added API for querying the currently enabled accessibility services\n   by feedback type.\n\nChange-Id: Iea2258c07ffae9491071825d966dc453b07e5134\n"
    },
    {
      "commit": "3fb3d7c4e756bd32d5abde0abca9ab52d559bc84",
      "tree": "a1dcfb8f2cdee81a033b85e27f55129ddb695776",
      "parents": [
        "6c079b6819d749fcb72988c5b06becff081c82fd"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Apr 22 17:08:55 2011 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Apr 22 17:23:44 2011 -0700"
      },
      "message": "Revert \"Touch exploration feature, event bubling, refactor\"\n\nThis reverts commit ac84d3ba81f08036308b17e1ab919e43987a3df5.\n\nThere seems to be a problem with this API change. Reverting for now to\nfix the build.\n\nChange-Id: Ifa7426b080651b59afbcec2d3ede09a3ec49644c\n"
    },
    {
      "commit": "f9fa622cc04028fd7c5f5036ea2e0ccfb80d55f3",
      "tree": "c9b8ec24bd7601233d3e49373ce5d68f01485567",
      "parents": [
        "d0f650c6c3a123c856bb0adb138ae7cd0deed3d1",
        "ac84d3ba81f08036308b17e1ab919e43987a3df5"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Apr 22 16:29:07 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 22 16:29:07 2011 -0700"
      },
      "message": "Merge \"Touch exploration feature, event bubling, refactor\""
    },
    {
      "commit": "dacea8ce503369e7b82ff1c0e1a5a8a48863a25a",
      "tree": "c2975da092931952a787c7dbff59ccc87a4c124c",
      "parents": [
        "fb281f3ad7f78f9046fe3921fe0a2ab74fad5f82"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 21 17:26:39 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 22 11:23:13 2011 -0700"
      },
      "message": "Start work on simulating landscape/portrait when orientation is locked.\n\nNot yet working, so turned off.\n\nAlso fix a bug where the display size configuration became inconsistent\nafter a configuration change -- we now figure out everything about the\ndisplay size when computing a new configuration.\n"
    },
    {
      "commit": "ac84d3ba81f08036308b17e1ab919e43987a3df5",
      "tree": "8bf9d7f0b110667e45186d90674465a63e868f26",
      "parents": [
        "1cc1a41b5a095c2eae556c9be0a7ad3f2fc5bfbb"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Apr 04 16:09:08 2011 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Apr 21 18:33:52 2011 -0700"
      },
      "message": "Touch exploration feature, event bubling, refactor\n\n1. Added an Input Filter that interprets the touch screen motion\n   events to perfrom accessibility exploration. One finger explores.\n   Tapping within a given time and distance slop on the last exlopred\n   location does click and long press, respectively. Two fingers close\n   and in the same diretion drag. Multiple finglers or two fingers in\n   different directions or two fingers too far away are delegated to\n   the view hierarchy. Non moving fingers \"accidentally grabbed the\n   device for the scrren\" are ignored.\n\n2. Added accessibility events for hover enter, hover exit, touch\n   exoloration gesture start, and end. Accessibility hover events\n   are fired by the hover pipeline. An accessibility event is\n   dispatched up the view tree and the topmost view fires it.\n   Thus predecessors can augment the fired event. An accessibility\n   event has several records and a predecessor can optionally\n   modify, delete, and add such to the event.\n\n3. Added onPopulateAccessibilityEvent and refactored the existing\n   accessibility code to use it.\n\n4. Added API for querying the currently enabled accessibility services\n   by feedback type.\n\nChange-Id: Iec03c6c3fe298de3f14cb6efdbb9b198cd531a0c\n"
    },
    {
      "commit": "9d13264f6b5818812e61d66baaada599b8ad1faf",
      "tree": "ebc05f5c11a1fe0150cdbb71ff3675d051c6b395",
      "parents": [
        "4c1f4f7144ad6d73ca2a28eceb5a1c43664799c7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 21 17:26:39 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 21 17:27:42 2011 -0700"
      },
      "message": "Fix bug in deciding which rotation to use for an orientation.\n\nChange-Id: Icc928c2188a5865035cafcdab2efd5bae3132b1f\n"
    },
    {
      "commit": "44bc17c6b517aef35a390c81b5aa79c4f284f744",
      "tree": "b4dabc94a8974f81cf7ea855a93e307205c5b8d7",
      "parents": [
        "52c03d2cb9a782366e804d1910a7c8f072b05353"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 20 18:18:51 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 21 15:17:52 2011 -0700"
      },
      "message": "Rework display size access.\n\nApplications now get the display size from the window manager.  No\nbehavior should be changed yet, this is just prep for some real\nchanges.\n\nChange-Id: I2958a6660895c1cba2b670509600014e55ee9273\n"
    },
    {
      "commit": "3f14891fc9e764d97de07b109f066aedfff90c2e",
      "tree": "7d026487ee719489cea2c1237901ef6cf325efe2",
      "parents": [
        "05d30b14843bf7cf252873f4d0d39706878b28c2",
        "2352b978a3c94cd88f41d0d908f961333fdac1e9"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 19 15:37:32 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 19 15:37:32 2011 -0700"
      },
      "message": "Merge \"Initial checkin of spot presentation for touchpad gestures.\""
    },
    {
      "commit": "2352b978a3c94cd88f41d0d908f961333fdac1e9",
      "tree": "24f8f19e9b2895cc2c3489bf2dd7a09aaf5834db",
      "parents": [
        "f76dc56c33ba66138af70d72803cf55f881c3717"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 12 22:39:53 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 19 15:35:51 2011 -0700"
      },
      "message": "Initial checkin of spot presentation for touchpad gestures.\n\nAdded a new PointerIcon API (hidden for now) for loading\npointer icons.\n\nFixed a starvation problem in the native Looper\u0027s sendMessage\nimplementation which caused new messages to be posted ahead\nof old messages sent with sendMessageDelayed.\n\nRedesigned the touch pad gestures to be defined in terms of\nmore fluid finger / spot movements.  The objective is to reinforce\nthe natural mapping between fingers and spots which means there\nmust not be any discontinuities in spot motion relative to\nthe fingers.\n\nRemoved the SpotController stub and folded its responsibilities\ninto PointerController.\n\nChange-Id: I5126b1e69d95252fda7f2a684c9287e239a57163\n"
    },
    {
      "commit": "25641ca1ac5b09727f86fe01389877332a00455d",
      "tree": "e18f66c852164f4fbc6fbdf3d7c689b9b2ac3d83",
      "parents": [
        "08d1f937236230756bffde241ad6b335da368cf9",
        "0b285499db739ba50f2f839d633e763c70e67f96"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Apr 19 10:41:20 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 19 10:41:20 2011 -0700"
      },
      "message": "Merge \"Plumbing in PackageManager and installd for multi-user support.\""
    },
    {
      "commit": "5c14d32d56e5e74c9ada328e6053091685483c7c",
      "tree": "5d79ea6d5a981fd9eda18f4d74fe3b5522e73759",
      "parents": [
        "08d9d9a46250c4fad66e9b637e8898a3524c4286"
      ],
      "author": {
        "name": "Jozef BABJAK",
        "email": "jozef.babjak@gmail.com",
        "time": "Tue Apr 19 11:27:30 2011 +0200"
      },
      "committer": {
        "name": "Jozef BABJAK",
        "email": "jozef.babjak@gmail.com",
        "time": "Tue Apr 19 11:27:30 2011 +0200"
      },
      "message": "Fix for startup NPE.\n\nChange-Id: I6928939d235faf544a85bb84bba2fa135ddc8e45\n"
    },
    {
      "commit": "343c1ad7200619230a55caa6aa8a9d041e62b29d",
      "tree": "42ef60951bc803ec683ee61dfa3e29965fb6a32b",
      "parents": [
        "5664eea800ffc40cd1ee93bd228435aa41e7a64c",
        "37677849998e6c9a39afe0a730b2f0131a371f3b"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Apr 18 15:28:47 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 18 15:28:47 2011 -0700"
      },
      "message": "am 37677849: am 64c42cae: Rename HierarchicalStateMachine and HierarchicalState to StateMachine and State.\n\n* commit \u002737677849998e6c9a39afe0a730b2f0131a371f3b\u0027:\n  Rename HierarchicalStateMachine and HierarchicalState to StateMachine and State.\n"
    },
    {
      "commit": "37677849998e6c9a39afe0a730b2f0131a371f3b",
      "tree": "2c5e95ce98a9ced1744e60a9aa1a454894cd9511",
      "parents": [
        "9a2c93905a2a65db7135f48ca5653d3cf614faed",
        "64c42cae4482fe0157e977b8ddd0f2c2436b3f31"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Apr 18 15:24:47 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 18 15:24:47 2011 -0700"
      },
      "message": "am 64c42cae: Rename HierarchicalStateMachine and HierarchicalState to StateMachine and State.\n\n* commit \u002764c42cae4482fe0157e977b8ddd0f2c2436b3f31\u0027:\n  Rename HierarchicalStateMachine and HierarchicalState to StateMachine and State.\n"
    },
    {
      "commit": "64c42cae4482fe0157e977b8ddd0f2c2436b3f31",
      "tree": "477c231a37d54f329f002ed5323e30f7e346200b",
      "parents": [
        "6f200f738ed0bbdef5c433b5f571fcb591e1760c"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Apr 18 14:55:10 2011 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Apr 18 14:55:10 2011 -0700"
      },
      "message": "Rename HierarchicalStateMachine and HierarchicalState to StateMachine and State.\n\nChange-Id: Ib4b33894da75f5f156066092fb145b478e52f7d7\n"
    },
    {
      "commit": "0b285499db739ba50f2f839d633e763c70e67f96",
      "tree": "77e6ecb6572cefdfae2095dcf64c4388adae15c2",
      "parents": [
        "4123211637dcc0155091016f0c0987b80e56ab7b"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Apr 14 17:35:23 2011 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Apr 15 15:15:27 2011 -0700"
      },
      "message": "Plumbing in PackageManager and installd for multi-user support.\n\n- Create /data/user directory and symlink /data/user/0 -\u003e /data/data for\n  backward compatibility\n- Create data directories for all packages for new user\n\n- Remove data directories when removing a user\n\n- Create data directories for all users when a package is created\n\n- Clear / Remove data for multiple users\n\n- Fixed a bug in verifying the location of a system app\n\n- pm commands for createUser and removeUser (will be disabled later)\n\n- symlink duplicate lib directories to the original lib directory\n\nChange-Id: Id9fdfcf0e62406a8896aa811314dfc08d5f6ed95\n"
    },
    {
      "commit": "68f1b78b7b9139a0e34285ff641a664e664a14b8",
      "tree": "dbd50188b77a1dfab9310daad8550d553cf72204",
      "parents": [
        "c02c97ef7527e19dce067562692c89d27e7bad52"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Mon Apr 11 14:26:04 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Apr 15 13:49:33 2011 +0900"
      },
      "message": "Add an API to get the last used input method subtype\n\nBug: 4075039\n\n- Voice input requires to know the last used input method subtype.\n\nChange-Id: I603a4fb88a2af5195e52188adfa6585ad80304fa\n"
    },
    {
      "commit": "fa32cd1516e81ef4d23313c5b05c367e16a7ed73",
      "tree": "3a2c6ed34e6616a170a76e49105fa9df447c0071",
      "parents": [
        "3758321fcecf1a6af653937d295a14a5289e8e5b",
        "07a630d23ef326f820e6339b5f691df0aafd3574"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 14 15:43:03 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 14 15:43:03 2011 -0700"
      },
      "message": "am 07a630d2: am 9a03a73a: am f6f87c98: Merge \"Fix issue #4291805: Tap Fish crashes on launch\" into honeycomb-mr1\n\n* commit \u002707a630d23ef326f820e6339b5f691df0aafd3574\u0027:\n  Fix issue #4291805: Tap Fish crashes on launch\n"
    },
    {
      "commit": "07a630d23ef326f820e6339b5f691df0aafd3574",
      "tree": "5382b9b1cda9bf5a3438dbd3ca3ad7772a70553b",
      "parents": [
        "1bfb2db93514f8ed70d0a02c12d7ce4791d6b336",
        "9a03a73a44c69706fe2b97a28632928f58b434b1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 14 15:40:00 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 14 15:40:00 2011 -0700"
      },
      "message": "am 9a03a73a: am f6f87c98: Merge \"Fix issue #4291805: Tap Fish crashes on launch\" into honeycomb-mr1\n\n* commit \u00279a03a73a44c69706fe2b97a28632928f58b434b1\u0027:\n  Fix issue #4291805: Tap Fish crashes on launch\n"
    },
    {
      "commit": "9a03a73a44c69706fe2b97a28632928f58b434b1",
      "tree": "67654705627c9cfbefecc8331609542f91acd285",
      "parents": [
        "b590ca85afba6b886cc995e9a6092457174ea016",
        "f6f87c985989603139b31df663f9f9a90543cacc"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 14 15:27:32 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 14 15:27:32 2011 -0700"
      },
      "message": "am f6f87c98: Merge \"Fix issue #4291805: Tap Fish crashes on launch\" into honeycomb-mr1\n\n* commit \u0027f6f87c985989603139b31df663f9f9a90543cacc\u0027:\n  Fix issue #4291805: Tap Fish crashes on launch\n"
    },
    {
      "commit": "f6f87c985989603139b31df663f9f9a90543cacc",
      "tree": "4861164936215fc7fcc955e6fdc0356ce27dcee4",
      "parents": [
        "4e3d6aa0688f023dfe5feb2eb197207cc8267463",
        "52b0ce0fe3e9ab52c272dde3d9c59376c276a17e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 14 15:10:31 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 14 15:10:31 2011 -0700"
      },
      "message": "Merge \"Fix issue #4291805: Tap Fish crashes on launch\" into honeycomb-mr1"
    },
    {
      "commit": "52b0ce0fe3e9ab52c272dde3d9c59376c276a17e",
      "tree": "05783a9efb7f4fe73ec86f58027c6bd2dbd50cf2",
      "parents": [
        "6bb8b0ecb558373ba99e44ad5c351e1d7bb410d6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 14 13:09:32 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 14 13:09:32 2011 -0700"
      },
      "message": "Fix issue #4291805: Tap Fish crashes on launch\n\nThe activity manager got a little too aggressive about argument validation.\n\nChange-Id: I3cca0cd3135b98e5c50d26db778ec4ec28a47ec1\n"
    },
    {
      "commit": "0ffc988a7f47013805d5abeed1c20f159b3bd799",
      "tree": "f9873ba8872388b88d75a3d83144e03e7c3f59f4",
      "parents": [
        "5cde33b7d14841677414fa9f43a043bb4a89ffa7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 13 18:15:56 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 14 10:57:22 2011 -0700"
      },
      "message": "Rewrite battery history storage.\n\nWe now write battery history directly into a buffer, instead of\ncreating objects.  This allows for more efficient storage; later\nit can be even better because we can only write deltas.\n\nThe old code is still there temporarily for validation.\n\nChange-Id: I9707d4d8ff30855be8ebdc93bc078911040d8e0b\n"
    },
    {
      "commit": "44ad61c3a5bdb01a1c375811faf37915bfae24ca",
      "tree": "c53891e964702cb5c0bd99793c763f25444622ff",
      "parents": [
        "08d9d9a46250c4fad66e9b637e8898a3524c4286"
      ],
      "author": {
        "name": "Mattias Petersson",
        "email": "mattias.petersson@sonyericsson.com",
        "time": "Wed Apr 13 15:09:16 2011 +0200"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonyericsson.com",
        "time": "Wed Apr 13 15:09:16 2011 +0200"
      },
      "message": "Auto hide virtual keyboard\n\nSometimes the virtual keyboard was not hidden when switching between\napplications. An example of this was when launching the browser from\nthe Google Search widget:\n1) Tap the Google Search widget and enter some text, e.g. \"google\"\n2) Select one search items, e.g. \"google maps\"\n3) Browser opens. Press back button.\n4) Select an item again, e.g. \"google maps\" - Keyboard does not\n   close.\n\nWhen switching application, the virtual keyboard needs to find a new\nZ position (window index) among the other windows. Normally it is\nplaced on top of the first window that is visible and can get focus\n(canBeImeTarget()).\n\nWith a new application being launched, there is\nan exception: a special \"starting window\" is placed on top of the\nActivity window while the application is starting up. Since this\nwindow should not get input, we need to look below that window.\nWhen doing this, the previous implementation assumed that the\nfirst window below always was focusable. If it wasn\u0027t, the\ninput method was placed above the \"starting window\", which\ncaused confusion that led to the keyboard not being closed\nautomatically.\n\nIn the case of the Browser, it sometimes has a \"fake TitleBar\"\nwindow that can not get focus and that is placed above the\nActivity window.\n\nWith this fix, we now keep looking through the windows below\nthe \"starting window\" until we find a window that can receive\ninput.\n\nChange-Id: I1117846eb0f57603e64329bd955e28182f98f226\n"
    },
    {
      "commit": "2432d1bd4828d10d97cf72f974d8312a168bb2ca",
      "tree": "f626829f5ed184965c56f21ced33a49e1ac7b320",
      "parents": [
        "0c5001d776d56bae02a5cc2663286a125d99bc5e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 12 19:12:30 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 12 19:12:30 2011 -0700"
      },
      "message": "Forgot to add this file.\n\nChange-Id: I7b29785599ab8e4b8b29099a8398ef86df6aef31\n"
    },
    {
      "commit": "0c5001d776d56bae02a5cc2663286a125d99bc5e",
      "tree": "ea7458737297e313c454f18d672e2b997af13990",
      "parents": [
        "26b05f7dc35f47bc62bf9630df288ae2d6e4657e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 12 18:16:08 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 12 18:28:06 2011 -0700"
      },
      "message": "Add APIs to remove tasks.\n\nYou can remove sub-tasks inside of a task, or an entire task.\n\nWhen removing an entire task, you can have its process killed\nas well.\n\nWhen the process is killed, any running services will get an\nonTaskRemoved() callback for them to do cleanup before their\nprocess is killed (and the service possibly restarted).\n\nOr they can set a new android:stopWithTask attribute to just\nhave the service automatically (cleanly) stopped at this point.\n\nChange-Id: I1891bc2da006fa53b99c52f9040f1145650e6808\n"
    },
    {
      "commit": "2e3ede527d8a972795a49ffc7eef4ead391107ec",
      "tree": "f2678d126ac68d8b6e017c6e45ff186907286c4a",
      "parents": [
        "83b61471c39fc4d5afc9f56c3ed771a14c8ad194",
        "1d1b4893762c8daad2b31dc79cad2dbcc1b251d2"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Apr 12 15:34:42 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 12 15:34:42 2011 -0700"
      },
      "message": "Merge \"Updated system packages retain shared user\""
    },
    {
      "commit": "316594715d31bb95b5efa08bfc80f287833b3a37",
      "tree": "a10e2f02ade56220f17742aa08d8f9d9b9793f80",
      "parents": [
        "07c25b651216daac884bd503c02b788418165b50",
        "2869d1715d815ef2b357bf182d384515cdf6f9ab"
      ],
      "author": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Mon Apr 11 18:53:57 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 11 18:53:57 2011 -0700"
      },
      "message": "am 2869d171: resolved conflicts for merge of 08c39c6a to honeycomb-LTE\n\n* commit \u00272869d1715d815ef2b357bf182d384515cdf6f9ab\u0027:\n  Add support for USB Ethernet adapters\n"
    },
    {
      "commit": "2869d1715d815ef2b357bf182d384515cdf6f9ab",
      "tree": "04abbcfa7969035a41250e04bbd016a225606b5d",
      "parents": [
        "87ee132ac5dd99564d4ad8f05631bbb021dbc0b0",
        "08c39c6a11f728e113811a6a85c109cfc80ce28e"
      ],
      "author": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Mon Apr 11 18:41:23 2011 -0700"
      },
      "committer": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Mon Apr 11 18:41:23 2011 -0700"
      },
      "message": "resolved conflicts for merge of 08c39c6a to honeycomb-LTE\n\nChange-Id: I79f8ac1dc8ff9f5d0559d37043b850cd26246b92\n"
    },
    {
      "commit": "08c39c6a11f728e113811a6a85c109cfc80ce28e",
      "tree": "5e614740dfe0a156fd710b326545003ee990418f",
      "parents": [
        "c6c2285b36e83b96056e2404371cdf6e6f7acaee"
      ],
      "author": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Wed Dec 22 14:29:40 2010 -0800"
      },
      "committer": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Mon Apr 11 16:33:43 2011 -0700"
      },
      "message": "Add support for USB Ethernet adapters\n\nChange-Id: I6ae34a32d0e1b6f21c484b8639c3e7ce086e568d\n"
    },
    {
      "commit": "beb182a4945b9b762fac77edd1183897bcac5b32",
      "tree": "5cdfa5875008f47169652eaef2fee0aedb15225c",
      "parents": [
        "37e344cbe277e8f4da944c19cffaf34f38f6396e",
        "4b2e934928a2eb65927bd39197198c28c49efb94"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Apr 11 12:14:17 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 11 12:14:17 2011 -0700"
      },
      "message": "Merge \"Package manager changes to store and update user information.\""
    },
    {
      "commit": "4b2e934928a2eb65927bd39197198c28c49efb94",
      "tree": "52dedcaa4ef165954e6c7ec9dcd98c5b13442842",
      "parents": [
        "d07f6a7934d229e91d7ca23e83c664101f472312"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Mar 31 12:38:53 2011 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Apr 11 12:12:58 2011 -0700"
      },
      "message": "Package manager changes to store and update user information.\n\nSome API stubs for managing users and storing their details.\nList of users is stored in an xml file.\nEach user\u0027s properties are stored in a separate xml file.\n\nSome unit tests for modifying the XML files.\n\nChange-Id: If2ce2420723111bd426f6762def3c2afc19a0ae5\n"
    },
    {
      "commit": "bcbab3684349353ee8cab30b556001824d0e7ccf",
      "tree": "cd5699f89c052a71e8ebad1cc4fbbb256c5c0883",
      "parents": [
        "0741b1ae22ecb5f6ac449bf85ef06e05c8d8f438",
        "f26fd99a7c2f554b0297760bb66336473c7db61f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 08 18:28:14 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 08 18:28:14 2011 -0700"
      },
      "message": "Merge \"Rework thumbnails in activity manager.\""
    },
    {
      "commit": "f26fd99a7c2f554b0297760bb66336473c7db61f",
      "tree": "292bc65e6d068857bda10f2f45727a7c88601b64",
      "parents": [
        "bdf7b013f81b0b56a18cc9dd2fb987b56d595650"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 08 18:14:09 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 08 18:16:21 2011 -0700"
      },
      "message": "Rework thumbnails in activity manager.\n\nWe now only keep a thumbnail for the task, not for each\nactivity.  However if you use FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET,\nwe will make a new secondary thumbnail for that series of\nactivities.  There is a new API for the app to get these\nsecondary thumbnails.\n\nAlso set a default thumbnail size for non-xlarge screens\nso we have thumbnails on phones.  (We need some smarter\ncode in the platform for computing the actual thumbnail\ndimensions of the current device).  And add a test app\nto show recent tasks + thumbnails.\n\nChange-Id: Ic36759f6635522118a2cb7f156662229a610c492\n"
    },
    {
      "commit": "1d1b4893762c8daad2b31dc79cad2dbcc1b251d2",
      "tree": "ff93d11699c033ee4539ab89b6819c77f8b280ff",
      "parents": [
        "955276656755bdc85518049305a8492b3f7f8b0a"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Apr 08 14:25:24 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Apr 08 14:25:27 2011 -0700"
      },
      "message": "Updated system packages retain shared user\n\nIf a system package was updated that used permissions provided by a\npackage signed with a different signature, it wouldn\u0027t grant\nthose permissions to the updated system app.\n\nThis is because the sharedUser field was not set in the disabled system\npackage. Therefore it was checking the disabled system package\u0027s\nindividual user permission grants which were empty.\n\nThis change populates the sharedUser field for disabled system packages\nafter reading all the existing shared users from the saved settings\ndatabase.\n\nBug: 4245273\nChange-Id: I57c58c4083bd59f45095c184d6ca5a302f79ff6e\n"
    },
    {
      "commit": "8c2a1a90a81f04573bfa578eab32f5fd4a30eafb",
      "tree": "fba8d0b7e475a502ae396603a7089f1d5695c1ae",
      "parents": [
        "5008e92d1fd573d926cd55c39ca723a6fbdf7c4b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Apr 08 13:44:08 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Apr 08 14:06:39 2011 -0700"
      },
      "message": "Add keychain user with special keystore access permissions\n\nChange-Id: I02fe5171add62c5cd9f57b01bc137f3bc1cb3a69\n"
    },
    {
      "commit": "43a17654cf4bfe7f1ec22bd8b7b32daccdf27c09",
      "tree": "a5aac88ebb367a0f046a5724edc8e35cbe192cb9",
      "parents": [
        "ea4af8914a3b6ea68558f20ce502966032ca1ab1"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Apr 06 19:22:23 2011 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Apr 07 19:23:05 2011 -0700"
      },
      "message": "Remove the deprecated things from Config.java. These haven\u0027t been working since before 1.0.\n\nChange-Id: Ic2e8fa68797ea9d486f4117f3d82c98233cdab1e\n"
    }
  ],
  "next": "e17aeb31030cfeed339a39a107912ad5e9178390"
}
