Fix the metadata-available test during restore
This commit is contained in:
@ -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;
|
||||
}
|
||||
|
@ -67,6 +67,7 @@ public class PackageManagerBackupAgent extends BackupAgent {
|
||||
private final HashSet<String> mExisting = new HashSet<String>();
|
||||
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
|
||||
|
Reference in New Issue
Block a user