)]}'
{
  "log": [
    {
      "commit": "cc84c69726507a85116f5664e20e2ebfac76edbe",
      "tree": "1f58e9d718d8694d2b22f925a7e79263991d0c74",
      "parents": [
        "89d4e2dd7888913d3eb1f4f669bd756a3b85f2c1"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Mar 29 14:54:02 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Mar 29 15:48:14 2010 -0700"
      },
      "message": "API CHANGE: rename BackupHelperAgent \u003d\u003e BackupAgentHelper per API Council\n\nPart of bug #2545514\n\nChange-Id: Ic775e3b942c485252149c1b6c15c88517fa4e3e5\n"
    },
    {
      "commit": "4528186e0d65fc68ef0dd1941aa2ac8aefcd55a3",
      "tree": "3f1276aef1448aad75a0d44ad1abbbd1478a4937",
      "parents": [
        "931bf89d327ecf07301231fd86b17deac535feaa"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 05 15:46:30 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 05 16:27:15 2010 -0800"
      },
      "message": "Refactor android.backup \u003d\u003e android.app.backup\n\nChange-Id: I0b21316ff890d7f3c7d4b82837bb60670724c2e8\n"
    },
    {
      "commit": "c8daa769256b039b6bc4c5acbe6b558cd776c00a",
      "tree": "0d80f28b806f273f3efb221890aca170da731548",
      "parents": [
        "dbee95cacff9d2faf30638e64abe26fbeb128787"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jul 06 19:04:57 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jul 07 11:40:07 2009 -0700"
      },
      "message": "BackupManager wrapper class improvements\n\n+ Now rechecks the cached IBinder each time the wrapper is used, and if it\u0027s\nstill null (i.e. the BackupManager was constructed before the system service\ncame up) it\u0027s refetched.  This lets even system code cache a single\nBackupManager instance and just keep making calls through it without worrying\nabout interactions with the life cycle of the backup service.\n\n+ Added a static dataChanged(packageName) method as a convenience for code that\nneeds to indicate that some other package needs a backup pass.  This is useful\neven for third party code in the case of multiple packages in a shared-uid\nsituation.\n"
    },
    {
      "commit": "dc355a90a3d9d34f66316928a53f61ac35ab4781",
      "tree": "7b9de72bba6ed97ff81b600073cbbed46a0cf7a1",
      "parents": [
        "aae628b44518f0886a7f33b88c1131f47d853e70"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri Jun 26 14:45:25 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri Jun 26 14:45:25 2009 -0400"
      },
      "message": "Add a test for SharedPreferencesBackupHelper\n\n(which nobody had ever tested.  I like it when stuff\njust works the first time).\n"
    },
    {
      "commit": "aae628b44518f0886a7f33b88c1131f47d853e70",
      "tree": "cda1538d47201354c82116b5025c1e3dd8fddb71",
      "parents": [
        "7d619f18a277ee3114624df7301db94db83936b9"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri Jun 26 12:57:45 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri Jun 26 12:57:45 2009 -0400"
      },
      "message": "Test that we correctly back up an empty file.\n\n(It turns out that we do.  It didn\u0027t used to work, I\u0027m not\nsure what changed)\n"
    },
    {
      "commit": "4a64bded06a0299785c295a975e2818308eb53e2",
      "tree": "a24057a8f82108aae7f8e6fcb5067c2ed7fe9690",
      "parents": [
        "5e8a4b842c20dd47b82e9915f1bd730ee1b0d46d"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 25 23:53:29 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 25 23:53:29 2009 -0400"
      },
      "message": "Add some helpful tests scripts for backup and make bmgr restore wait until the backup is done.\n"
    },
    {
      "commit": "4ababd922eac5931e0222862ff082dc29e012816",
      "tree": "9b7ed494cd38bed3ded7c34ce93425d35d42fc04",
      "parents": [
        "5cb400bd72726c22f641f334951b35ce2ddcfeef"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 25 18:29:18 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 25 20:36:09 2009 -0400"
      },
      "message": "Make the BackupHelperDispatcher properly handle multiple helpers.\n"
    },
    {
      "commit": "5cbbf5652a78902ac3382dc4a3583bc5b0351027",
      "tree": "58a0d7260ed8c441b638f6197b885d3b16656465",
      "parents": [
        "3a31a93b8a195ae2d0180e6dfbf292da2e581f50"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 22 16:44:51 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 22 16:44:51 2009 -0700"
      },
      "message": "Pass the originating app\u0027s versionCode along with a restore set\n\nThis change amends the doRestore() / onRestore() interface to backup agents to\nprovide the integer android:versionCode of the app that stored the backup set.\nThis should help agents figure out how to handle whatever historical data set\nthey\u0027re handed at restore time.\n"
    },
    {
      "commit": "06290a4bb9b280fa14a2bbeb2d3ceb09396a78c3",
      "tree": "15fccf5ce4e9c42bba3fc7581ac2ddc0d8363dc9",
      "parents": [
        "eed76b2a8ddc41af01cd3ae87c4722f3784c975c"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 18 20:10:37 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Jun 22 13:02:24 2009 -0700"
      },
      "message": "Helper API cleanup.  Allows multiple helpers to function,\nbecause they\u0027ll always go in the same order, and this lets\nus not have to write headers to keep them paired.\n"
    },
    {
      "commit": "d2d9ceb7305d593c1b767bbb05de0082a9af4109",
      "tree": "1ba39c3c5901d65a18855286e240f177820a6ec6",
      "parents": [
        "abce4e8714bed26a2b37b20ad3f02cf619d71c9a"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 18 13:11:18 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 18 18:41:11 2009 -0700"
      },
      "message": "Make RestoreHelper and friends also write out the snapshot state.\n"
    },
    {
      "commit": "83248c432ffe2e2a17abbc8e4960c26574b46bca",
      "tree": "9e8de2f1eb84d52481573c9c1d824c6be4a6fdc0",
      "parents": [
        "6ce1983a2b5e9f5e735ac09b270b400084edb7db"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 17 17:55:20 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 17 17:57:30 2009 -0700"
      },
      "message": "backup fixes:\n\n- BackupTestAgent calls the DispatchHelper\n- Make BackupAgent.onRestore take a BackupDataInput, not just a\n  generic ParcelFileDescriptor.\n"
    },
    {
      "commit": "efd0fab04b96d7ab0c1d8bf3b79397c8621e31c5",
      "tree": "f4b5afd53736822e9dc9e4c0f08140cd6fac8d60",
      "parents": [
        "2cf3971ea4d22f8981ae71e6ba358f19e1628d09"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 17 16:20:55 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 17 16:20:55 2009 -0700"
      },
      "message": "FileRestoreHelper and RestoreHelperDispatcher work.\n"
    },
    {
      "commit": "1cf587496fcb1d652bab9fc6792fb106b6fefaa4",
      "tree": "96e989c088b0e2fb8560d5b2e24562188a128e19",
      "parents": [
        "6599426f74371c823fcfe570f61577262eb0df44"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri Jun 12 11:06:24 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri Jun 12 16:21:24 2009 -0700"
      },
      "message": "Add RestoreFileHelper, BackupDataInput, and add java wrappers for the methods on BackupDataOutput.\n"
    },
    {
      "commit": "181fafaf48208978b8ba2022683ffa78aaeddde1",
      "tree": "7c062847d418415e28813e70aac53c8c47e4ff69",
      "parents": [
        "c01159bb00f7273f9b051dfbbe6bc10d54d3a846"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu May 14 11:12:14 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Sun May 31 13:10:03 2009 -0700"
      },
      "message": "Retool the backup process to use a new \u0027BackupAgent\u0027 class\n\nBackups will be handled by launching the application in a special\nmode under which no activities or services will be started, only\nthe BackupAgent subclass named in the app\u0027s android:backupAgent\nmanifest property.  This takes the place of the BackupService class\nused earlier during development.\n\nIn the cases of *full* backup or restore, an application that does\nnot supply its own BackupAgent will be launched in a restricted\nmanner; in particular, it will be using the default Application\nclass rather than any manifest-declared one.  This ensures that the\napp is not running any code that may try to manipulate its data\nwhile the backup system reads/writes its data set.\n"
    },
    {
      "commit": "290bb011c5c1a9ba1f2116810b06cf52a9c36b3e",
      "tree": "cfb9ce077d79021e86c1b8d7951f3655520f368d",
      "parents": [
        "ec2d74d40f9b7a8bf96feeb45a5d054d8b0ce0dd"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 13 18:57:29 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu May 14 09:39:32 2009 -0400"
      },
      "message": "Get the backup calling through to the file backup helper.\n\nThis includes some cleanup to make the parameters match\nbetween BackupService.onBackup and FileBackupHelper.performBackup.\n"
    },
    {
      "commit": "8ad028117d4b99883bbc52b29f097b2fb1d9b0c2",
      "tree": "a51bb51a34be08f2e5ac408de902bb07a3f293a3",
      "parents": [
        "d39afbdc92e95e597c311e78ac32edaad27fcf0d"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 13 01:41:44 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 13 01:41:44 2009 -0400"
      },
      "message": "With this, the BackupService onBackup method is called.\n\nIt took a bunch of refactoring inside BackupManagerService,\nwhich is unfortunately all temporary anyway, but it unblocks\na bunch of stuff.\n"
    },
    {
      "commit": "b1a7ffef3a0007b6991b8338460f6aac8cbb11e8",
      "tree": "cd7745a25c1ab0d4c7c136672a8a87634d5fee4c",
      "parents": [
        "fedf566b9e00f18588fc104caafd047af069844a"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 06 18:06:21 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu May 07 15:32:48 2009 -0700"
      },
      "message": "More backup tests\n"
    },
    {
      "commit": "f9225f89aafa13dcbc3a69a721acf9b76c34485c",
      "tree": "dd3f94bdce3db4108883517f446c3e503cb3a867",
      "parents": [
        "3ad977b41c6e4ef30c2f4f316b909b742ffc04aa"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue May 05 18:34:31 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue May 05 18:34:31 2009 -0700"
      },
      "message": "Add a test app for the backup\n"
    }
  ]
}
