)]}'
{
  "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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d009a64f355c12cde7a6f90c38aabf6febb0d1fe",
      "old_mode": 33188,
      "old_path": "api/current.txt",
      "new_id": "d7e3cb30e8ac8210edede3c2a2713afaa5f06745",
      "new_mode": 33188,
      "new_path": "api/current.txt"
    },
    {
      "type": "modify",
      "old_id": "1ec7a964e5cdaff5fa9b3e8323aa2031d1fda443",
      "old_mode": 33188,
      "old_path": "core/java/android/app/ActivityThread.java",
      "new_id": "eee14fb1a5b3b1165ab1d22bdd9d3a5c0110f0fb",
      "new_mode": 33188,
      "new_path": "core/java/android/app/ActivityThread.java"
    },
    {
      "type": "modify",
      "old_id": "8af78fadfc449c64d8a2da80ba290a246164b1a1",
      "old_mode": 33188,
      "old_path": "core/java/android/app/IBackupAgent.aidl",
      "new_id": "087f83c396dd1a94801f19f99fcb20c94b02ef1b",
      "new_mode": 33188,
      "new_path": "core/java/android/app/IBackupAgent.aidl"
    },
    {
      "type": "modify",
      "old_id": "63f325870f91ebc04fbd9a07ed5b6335b14200c2",
      "old_mode": 33188,
      "old_path": "core/java/android/app/backup/BackupAgent.java",
      "new_id": "65c73f9b5eb89003d615428a2edc33dda7a68f87",
      "new_mode": 33188,
      "new_path": "core/java/android/app/backup/BackupAgent.java"
    },
    {
      "type": "modify",
      "old_id": "3b70e19ad24425c8638bcd2493266b41c2d8f6a0",
      "old_mode": 33188,
      "old_path": "core/java/android/app/backup/FullBackup.java",
      "new_id": "d7f1c9f0fab411c14f9face9fa3532e19ebb1b5c",
      "new_mode": 33188,
      "new_path": "core/java/android/app/backup/FullBackup.java"
    },
    {
      "type": "modify",
      "old_id": "df1c3639bc5871cc414c7e0009d3f7e665c5e981",
      "old_mode": 33188,
      "old_path": "core/java/android/app/backup/FullBackupAgent.java",
      "new_id": "faea76aee148d801ca0071b56f2d93383da756ba",
      "new_mode": 33188,
      "new_path": "core/java/android/app/backup/FullBackupAgent.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "99dab1f7601894493c0777301cd6128aba58890d",
      "new_mode": 33188,
      "new_path": "core/java/android/app/backup/FullBackupDataOutput.java"
    },
    {
      "type": "modify",
      "old_id": "454cb31953164fe6dd001a4c487558a08592dfff",
      "old_mode": 33188,
      "old_path": "core/java/android/content/pm/ApplicationInfo.java",
      "new_id": "ddb6ef0d2f53d937e98138fcff04721847d24065",
      "new_mode": 33188,
      "new_path": "core/java/android/content/pm/ApplicationInfo.java"
    },
    {
      "type": "modify",
      "old_id": "208869b6c2fdb2632e0b750a941461f1e9d1bf5f",
      "old_mode": 33188,
      "old_path": "core/java/android/content/pm/PackageParser.java",
      "new_id": "53d6bb17a55122c99752a0e61bdc2a53f31e945d",
      "new_mode": 33188,
      "new_path": "core/java/android/content/pm/PackageParser.java"
    },
    {
      "type": "modify",
      "old_id": "1a320608efae6533fff2f1c0c81543894b02ca83",
      "old_mode": 33188,
      "old_path": "core/res/AndroidManifest.xml",
      "new_id": "49eaf19126175375bec3143e3ef5a9f7da0b296e",
      "new_mode": 33188,
      "new_path": "core/res/AndroidManifest.xml"
    },
    {
      "type": "modify",
      "old_id": "03b332ee75b61aa363beae2be46b4f856351f941",
      "old_mode": 33188,
      "old_path": "core/res/res/values/attrs_manifest.xml",
      "new_id": "dd16bd072df61de406e619ae1ed9cc6e9497a43f",
      "new_mode": 33188,
      "new_path": "core/res/res/values/attrs_manifest.xml"
    },
    {
      "type": "modify",
      "old_id": "54e484ee95ded3aebf2c7986298993f33432bb2b",
      "old_mode": 33188,
      "old_path": "core/res/res/values/public.xml",
      "new_id": "20f5e7cf2eede9d382bf7278443960f12663c349",
      "new_mode": 33188,
      "new_path": "core/res/res/values/public.xml"
    },
    {
      "type": "modify",
      "old_id": "e5f52e24e8074f076de963b24f7761b44db05b60",
      "old_mode": 33188,
      "old_path": "packages/SettingsProvider/AndroidManifest.xml",
      "new_id": "dd0d064ceeef3241c31841c4ba880113baa89107",
      "new_mode": 33188,
      "new_path": "packages/SettingsProvider/AndroidManifest.xml"
    },
    {
      "type": "modify",
      "old_id": "94696012256516aaa6ed699c642f9bea98aeabdf",
      "old_mode": 33188,
      "old_path": "packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java",
      "new_id": "3a7a6e153803d2c3d719eb898cded1e5581c1c29",
      "new_mode": 33188,
      "new_path": "packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java"
    },
    {
      "type": "modify",
      "old_id": "258059c54fce37e1645b2efb1a94269868a292ba",
      "old_mode": 33188,
      "old_path": "packages/SharedStorageBackup/AndroidManifest.xml",
      "new_id": "39c36f1b2ec60a4deb9ad1084f3ba947cae54bc7",
      "new_mode": 33188,
      "new_path": "packages/SharedStorageBackup/AndroidManifest.xml"
    },
    {
      "type": "modify",
      "old_id": "b02ca2e761ecf63c69fe1e2cba4d4893e9ccba43",
      "old_mode": 33188,
      "old_path": "packages/SharedStorageBackup/src/com/android/sharedstoragebackup/SharedStorageAgent.java",
      "new_id": "6c677b8785019399a53e96e9f10b398188299c03",
      "new_mode": 33188,
      "new_path": "packages/SharedStorageBackup/src/com/android/sharedstoragebackup/SharedStorageAgent.java"
    },
    {
      "type": "modify",
      "old_id": "3aa1239c8df9c42eafade25ed3a8ebfbc8d3f83b",
      "old_mode": 33188,
      "old_path": "services/java/com/android/server/BackupManagerService.java",
      "new_id": "6afccec4df04f94eb17c7855a275a48636545a51",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/BackupManagerService.java"
    },
    {
      "type": "modify",
      "old_id": "08c66996128e66f7248dacfbb0492d838dc828a6",
      "old_mode": 33188,
      "old_path": "services/java/com/android/server/SystemBackupAgent.java",
      "new_id": "950f3b68f6d51d36912abf03e68679c98685d8ee",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/SystemBackupAgent.java"
    }
  ]
}
