summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorChristopher Tate <ctate@google.com>2014-10-03 18:26:29 -0700
committerChristopher Tate <ctate@google.com>2014-10-03 18:26:29 -0700
commitecae2116169e4cc7c109fcfc2aa9f5be1d105995 (patch)
treeb568e3afb4969c444aa26d335e4807401962fe49 /services
parent7caa51e6ec6443d5c1fdb96f7e42508b074b4278 (diff)
downloadframeworks_base-ecae2116169e4cc7c109fcfc2aa9f5be1d105995.zip
frameworks_base-ecae2116169e4cc7c109fcfc2aa9f5be1d105995.tar.gz
frameworks_base-ecae2116169e4cc7c109fcfc2aa9f5be1d105995.tar.bz2
adb backup/restore fixes
Bug 17811327 : teach adb restore about the new widget metadata entries Bug 14165872 : -nosystem should not act like -onlysystem Change-Id: I39da0ba80df7c5309a78ec1fa38016cebd80aa5f
Diffstat (limited to 'services')
-rw-r--r--services/backup/java/com/android/server/backup/BackupManagerService.java18
1 files changed, 12 insertions, 6 deletions
diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java
index f6e2e67..9a5ffbd 100644
--- a/services/backup/java/com/android/server/backup/BackupManagerService.java
+++ b/services/backup/java/com/android/server/backup/BackupManagerService.java
@@ -3511,7 +3511,7 @@ public class BackupManagerService extends IBackupManager.Stub {
PackageInfo pkg = allPackages.get(i);
// Exclude system apps if we've been asked to do so
if (mIncludeSystem == true
- || ((pkg.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0)) {
+ || ((pkg.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0)) {
packagesToBackup.put(pkg.packageName, pkg);
}
}
@@ -4344,6 +4344,7 @@ public class BackupManagerService extends IBackupManager.Stub {
} else if (info.path.equals(BACKUP_METADATA_FILENAME)) {
// Metadata blobs!
readMetadata(info, instream);
+ skipTarPadding(info.size, instream);
} else {
// Non-manifest, so it's actual file data. Is this a package
// we're ignoring?
@@ -5160,8 +5161,10 @@ public class BackupManagerService extends IBackupManager.Stub {
info.packageName = info.path.substring(0, slash);
info.path = info.path.substring(slash+1);
- // if it's a manifest we're done, otherwise parse out the domains
- if (!info.path.equals(BACKUP_MANIFEST_FILENAME)) {
+ // if it's a manifest or metadata payload we're done, otherwise parse
+ // out the domain into which the file will be restored
+ if (!info.path.equals(BACKUP_MANIFEST_FILENAME)
+ && !info.path.equals(BACKUP_METADATA_FILENAME)) {
slash = info.path.indexOf('/');
if (slash < 0) {
throw new IOException("Illegal semantic path in non-manifest "
@@ -5706,6 +5709,7 @@ if (MORE_DEBUG) Slog.v(TAG, " + got " + nRead + "; now wanting " + (size - soF
} else if (info.path.equals(BACKUP_METADATA_FILENAME)) {
// Metadata blobs!
readMetadata(info, instream);
+ skipTarPadding(info.size, instream);
} else {
// Non-manifest, so it's actual file data. Is this a package
// we're ignoring?
@@ -6482,8 +6486,10 @@ if (MORE_DEBUG) Slog.v(TAG, " + got " + nRead + "; now wanting " + (size - soF
info.packageName = info.path.substring(0, slash);
info.path = info.path.substring(slash+1);
- // if it's a manifest we're done, otherwise parse out the domains
- if (!info.path.equals(BACKUP_MANIFEST_FILENAME)) {
+ // if it's a manifest or metadata payload we're done, otherwise parse
+ // out the domain into which the file will be restored
+ if (!info.path.equals(BACKUP_MANIFEST_FILENAME)
+ && !info.path.equals(BACKUP_METADATA_FILENAME)) {
slash = info.path.indexOf('/');
if (slash < 0) throw new IOException("Illegal semantic path in non-manifest " + info.path);
info.domain = info.path.substring(0, slash);
@@ -8160,7 +8166,7 @@ if (MORE_DEBUG) Slog.v(TAG, " + got " + nRead + "; now wanting " + (size - soF
if (DEBUG) Slog.v(TAG, "Requesting full backup: apks=" + includeApks
+ " obb=" + includeObbs + " shared=" + includeShared + " all=" + doAllApps
- + " pkgs=" + pkgList);
+ + " system=" + includeSystem + " pkgs=" + pkgList);
Slog.i(TAG, "Beginning full backup...");
FullBackupParams params = new FullBackupParams(fd, includeApks, includeObbs,