From 4fee93109a61d03126e7798641316cd7e641e5aa Mon Sep 17 00:00:00 2001 From: Bryan Mawhinney Date: Fri, 16 Jun 2017 14:29:48 +0100 Subject: [PATCH] Start agent in correct mode for adb k/v restore Previously we always started the agent in "dolly" mode, which meant that the application context might not be what the agent was expecting. Bug: 62524964 Test: Manual Change-Id: I6cd2fafcac97f7ca01a6e172325968d79cc01194 --- .../java/com/android/server/backup/BackupManagerService.java | 4 +++- .../android/server/backup/restore/PerformAdbRestoreTask.java | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java index f1f8757824161..4bfe10fdd8c59 100644 --- a/services/backup/java/com/android/server/backup/BackupManagerService.java +++ b/services/backup/java/com/android/server/backup/BackupManagerService.java @@ -7562,7 +7562,9 @@ if (MORE_DEBUG) Slog.v(TAG, " + got " + nRead + "; now wanting " + (size - soF // All set; now set up the IPC and launch the agent setUpPipes(); mAgent = bindToAgentSynchronous(mTargetApp, - ApplicationThreadConstants.BACKUP_MODE_RESTORE_FULL); + FullBackup.KEY_VALUE_DATA_TOKEN.equals(info.domain) + ? ApplicationThreadConstants.BACKUP_MODE_INCREMENTAL + : ApplicationThreadConstants.BACKUP_MODE_RESTORE_FULL); mAgentPackage = pkg; } catch (IOException e) { // fall through to error handling diff --git a/services/backup/java/com/android/server/backup/restore/PerformAdbRestoreTask.java b/services/backup/java/com/android/server/backup/restore/PerformAdbRestoreTask.java index d5c62af05aac1..b1d6afcbd63c1 100644 --- a/services/backup/java/com/android/server/backup/restore/PerformAdbRestoreTask.java +++ b/services/backup/java/com/android/server/backup/restore/PerformAdbRestoreTask.java @@ -610,7 +610,9 @@ public class PerformAdbRestoreTask implements Runnable { // All set; now set up the IPC and launch the agent setUpPipes(); mAgent = mBackupManagerService.bindToAgentSynchronous(mTargetApp, - ApplicationThreadConstants.BACKUP_MODE_RESTORE_FULL); + FullBackup.KEY_VALUE_DATA_TOKEN.equals(info.domain) + ? ApplicationThreadConstants.BACKUP_MODE_INCREMENTAL + : ApplicationThreadConstants.BACKUP_MODE_RESTORE_FULL); mAgentPackage = pkg; } catch (IOException e) { // fall through to error handling