)]}'
{
  "log": [
    {
      "commit": "46cc43c6fa7623820d4ae9149496cf96bb15f8a3",
      "tree": "fe3a33bcdf0dc82414eb274aedefaef53aace059",
      "parents": [
        "32884c376fd06799f46ea3b1ded89ba9d21f8f14"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 19 14:08:59 2013 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Mar 07 13:47:20 2013 -0800"
      },
      "message": "Full backup/restore now handles OBBs sensibly\n\nOBB backup/ restore is no longer handled within the target app\nprocess.  This is done to avoid having to require that OBB-using\napps have full read/write permission for external storage.\n\nThe new OBB backup service is a new component running in the\nsame app as the already-existing shared storage backup agent.\nThe backup infrastructure delegates backup/restore of apps\u0027\nOBB contents to this component (because the system process\nmay not itself read/write external storage).\n\nFrom the command line, OBB backup is enabled by using new\n-obb / -noobb flags with adb backup.  The default is noobb.\n\nFinally, a couple of nit fixes:\n\n- buffer-size mismatch between the writer and reader of chunked\n  file data has been corrected; now the reading side won\u0027t be\n  issuing an extra pipe read per chunk.\n\n- bu now explicitly closes the transport socket fd after\n  adopting it. This was benign but triggered a logged\n  warning about leaked fds.\n\nBug: 6718844\nChange-Id: Ie252494e2327e9ab97cf9ed87c298410a8618492\n"
    },
    {
      "commit": "fb2ea43112bdf5a7dc121b59e2ef7e8b411bd019",
      "tree": "c1edb5a390815ad31cce3b42f81a2d0804e3bd73",
      "parents": [
        "7c3a18398f8cd8977079fad34a6bfc3fdab6378e"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Oct 17 16:35:58 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Oct 18 15:47:59 2011 -0700"
      },
      "message": "Fix full backup of shared storage\n\nThe manifest said android:allowBackup\u003d\"false\" for vestigal reasons;\noriginally, the incremental and full backup agents were separate, and\nit was not possible to opt out of full backup.  When that got fixed,\nunfortunately this one manifest was not corrected to the new regime.\n\nBug 5411789\n\nChange-Id: Iafc8f1fdefc312dff59454485604b6c5c400f469\n"
    },
    {
      "commit": "79ec80db70d788f35aa13346e4684ecbd401bd84",
      "tree": "fd18f64033def7461692f9542bf9e5f01afe2fe0",
      "parents": [
        "be87cc945b5b094060cbc77b77383aefc60265e4"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jun 24 14:58:49 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jul 06 14:40:32 2011 -0700"
      },
      "message": "Make full backup API available to apps\n\nNew methods for full backup/restore have been added to BackupAgent\n(still hidden): onFullBackup() and onRestoreFile().  The former is the\nentry point for a full app backup to adb/socket/etc: the app then writes\nall of its files, entire, to the output.  During restore, the latter\nnew callback is invoked, once for each file being restored.\n\nThe full backup/restore interface does not use the previously-defined\nBackupDataInput / BackupDataOutput classes, because those classes\nprovide an API designed for incremental key/value data structuring.\nInstead, a new FullBackupDataOutput class has been introduced, through\nwhich we restrict apps\u0027 abilities to write data during a full backup\noperation to *only* writing entire on-disk files via a new BackupAgent\nmethod called fullBackupFile().\n\n\"FullBackupAgent\" exists now solely as a concrete shell class that\ncan be instantiated in the case of apps that do not have their own\nBackupAgent implementations.\n\nAlong with the API change, responsibility for backing up the .apk\nfile and OBB container has been moved into the framework rather than\nhave the application side of the transaction do it.\n\nChange-Id: I12849b06b1a6e4c44d080587c1e9828a52b70dae\n"
    },
    {
      "commit": "b0628bfd5aac480a0d412ac96b8af1d97ac01c30",
      "tree": "1b7854cfc31f7f25ec1879e1d83192ed2b7f5244",
      "parents": [
        "5c54f4b3cb6d0e402a0db122f741b488ef95792c"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 02 15:08:13 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 07 12:16:27 2011 -0700"
      },
      "message": "Implement shared-storage full backup/restore\n\nEvery available shared-storage volume is backed up, tagged with its\nordinal in the set of mounted shared volumes.  This is an approximation\nof \"internal + the external card\".  This lets us restore things to the\nsame volume [or \"equivalent\" volume, in the case of a cross-model\nrestore] as they originated on.\n\nAlso fixed a bug in the handling of files/dirs with spaces in\ntheir names.\n\nChange-Id: I380019da8d0bb5b3699bd7c11eeff621a88e78c3\n"
    }
  ]
}
