summaryrefslogtreecommitdiff
path: root/services/java/com/android/server/SystemBackupAgent.java
diff options
context:
space:
mode:
Diffstat (limited to 'services/java/com/android/server/SystemBackupAgent.java')
-rw-r--r--services/java/com/android/server/SystemBackupAgent.java20
1 files changed, 18 insertions, 2 deletions
diff --git a/services/java/com/android/server/SystemBackupAgent.java b/services/java/com/android/server/SystemBackupAgent.java
index 80b0174b22c3..54555bb19689 100644
--- a/services/java/com/android/server/SystemBackupAgent.java
+++ b/services/java/com/android/server/SystemBackupAgent.java
@@ -20,6 +20,7 @@ package com.android.server;
import android.app.backup.BackupDataInput;
import android.app.backup.BackupDataOutput;
import android.app.backup.BackupAgentHelper;
+import android.app.backup.FullBackup;
import android.app.backup.WallpaperBackupHelper;
import android.content.Context;
import android.os.ParcelFileDescriptor;
@@ -37,12 +38,19 @@ public class SystemBackupAgent extends BackupAgentHelper {
private static final String TAG = "SystemBackupAgent";
// These paths must match what the WallpaperManagerService uses
- private static final String WALLPAPER_IMAGE = "/data/data/com.android.settings/files/wallpaper";
- private static final String WALLPAPER_INFO = "/data/system/wallpaper_info.xml";
+ private static final String WALLPAPER_IMAGE_DIR = "/data/data/com.android.settings/files";
+ private static final String WALLPAPER_IMAGE = WALLPAPER_IMAGE_DIR + "/wallpaper";
+ private static final String WALLPAPER_INFO_DIR = "/data/system";
+ private static final String WALLPAPER_INFO = WALLPAPER_INFO_DIR + "/wallpaper_info.xml";
@Override
public void onBackup(ParcelFileDescriptor oldState, BackupDataOutput data,
ParcelFileDescriptor newState) throws IOException {
+ if (oldState == null) {
+ runFullBackup(data);
+ return;
+ }
+
// We only back up the data under the current "wallpaper" schema with metadata
WallpaperManagerService wallpaper = (WallpaperManagerService)ServiceManager.getService(
Context.WALLPAPER_SERVICE);
@@ -57,6 +65,14 @@ public class SystemBackupAgent extends BackupAgentHelper {
super.onBackup(oldState, data, newState);
}
+ private void runFullBackup(BackupDataOutput output) {
+ // Back up the data files directly
+ FullBackup.backupToTar(getPackageName(), null, null,
+ WALLPAPER_IMAGE_DIR, WALLPAPER_IMAGE, output);
+ FullBackup.backupToTar(getPackageName(), null, null,
+ WALLPAPER_INFO_DIR, WALLPAPER_INFO, output);
+ }
+
@Override
public void onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState)
throws IOException {