From 3d7cd13e772bde1c4a72fa4e740baa03cb042e6c Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Tue, 7 Jul 2009 14:23:07 -0700 Subject: [PATCH] Fix the metadata-available test during restore --- services/java/com/android/server/BackupManagerService.java | 3 +-- .../java/com/android/server/PackageManagerBackupAgent.java | 7 +++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/services/java/com/android/server/BackupManagerService.java b/services/java/com/android/server/BackupManagerService.java index 2ae9fc506c723..80697a1795e78 100644 --- a/services/java/com/android/server/BackupManagerService.java +++ b/services/java/com/android/server/BackupManagerService.java @@ -985,8 +985,7 @@ class BackupManagerService extends IBackupManager.Stub { // Verify that the backup set includes metadata. If not, we can't do // signature/version verification etc, so we simply do not proceed with // the restore operation. - Metadata pmMeta = pmAgent.getRestoredMetadata(packageName); - if (pmMeta == null) { + if (!pmAgent.hasMetadata()) { Log.i(TAG, "No restore metadata available, so not restoring settings"); return; } diff --git a/services/java/com/android/server/PackageManagerBackupAgent.java b/services/java/com/android/server/PackageManagerBackupAgent.java index a1b4c26833dea..786f42305c96a 100644 --- a/services/java/com/android/server/PackageManagerBackupAgent.java +++ b/services/java/com/android/server/PackageManagerBackupAgent.java @@ -67,6 +67,7 @@ public class PackageManagerBackupAgent extends BackupAgent { private final HashSet mExisting = new HashSet(); private int mStoredSdkVersion; private String mStoredIncrementalVersion; + private boolean mHasMetadata; public class Metadata { public int versionCode; @@ -84,6 +85,11 @@ public class PackageManagerBackupAgent extends BackupAgent { mPackageManager = packageMgr; mAllPackages = packages; mRestoredSignatures = null; + mHasMetadata = false; + } + + public boolean hasMetadata() { + return mHasMetadata; } public Metadata getRestoredMetadata(String packageName) { @@ -259,6 +265,7 @@ public class PackageManagerBackupAgent extends BackupAgent { } mStoredSdkVersion = storedSdkVersion; mStoredIncrementalVersion = in.readUTF(); + mHasMetadata = true; // !!! TODO: remove this debugging output if (DEBUG) { Log.i(TAG, "Restore set version " + storedSystemVersion