[KV] PerformBackupTask => KeyValueBackupTask

Test: atest RunFrameworksServicesRoboTests
Test: adb shell bmgr backupnow com.google.android.apps.backupapp
Test: adb shell bmgr backup com.google.android.apps.backupapp
      adb shell bmgr run
Test: atest ScheduledBackupHostSideTest

Change-Id: I30b689538e6301d05416e21abe012a51ef83c5df
diff --git a/services/art-profile b/services/art-profile
index a33527e..24964f3 100644
--- a/services/art-profile
+++ b/services/art-profile
@@ -9258,20 +9258,20 @@
 PLcom/android/server/backup/internal/BackupState;-><init>(Ljava/lang/String;I)V
 PLcom/android/server/backup/internal/BackupState;->values()[Lcom/android/server/backup/internal/BackupState;
 PLcom/android/server/backup/internal/Operation;-><init>(ILcom/android/server/backup/BackupRestoreTask;I)V
-PLcom/android/server/backup/internal/PerformBackupTask;-><init>(Lcom/android/server/backup/BackupManagerService;Lcom/android/server/backup/transport/TransportClient;Ljava/lang/String;Ljava/util/ArrayList;Lcom/android/server/backup/DataChangedJournal;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;Lcom/android/server/backup/internal/OnTaskFinishedListener;Ljava/util/List;ZZ)V
-PLcom/android/server/backup/internal/PerformBackupTask;->backupPm()V
-PLcom/android/server/backup/internal/PerformBackupTask;->beginBackup()V
-PLcom/android/server/backup/internal/PerformBackupTask;->clearAgentState()V
-PLcom/android/server/backup/internal/PerformBackupTask;->execute()V
-PLcom/android/server/backup/internal/PerformBackupTask;->executeNextState(Lcom/android/server/backup/internal/BackupState;)V
-PLcom/android/server/backup/internal/PerformBackupTask;->finalizeBackup()V
-PLcom/android/server/backup/internal/PerformBackupTask;->invokeAgentForBackup(Ljava/lang/String;Landroid/app/IBackupAgent;)I
-PLcom/android/server/backup/internal/PerformBackupTask;->invokeNextAgent()V
-PLcom/android/server/backup/internal/PerformBackupTask;->operationComplete(J)V
-PLcom/android/server/backup/internal/PerformBackupTask;->registerTask()V
-PLcom/android/server/backup/internal/PerformBackupTask;->revertAndEndBackup()V
-PLcom/android/server/backup/internal/PerformBackupTask;->unregisterTask()V
-PLcom/android/server/backup/internal/PerformBackupTask;->writeWidgetPayloadIfAppropriate(Ljava/io/FileDescriptor;Ljava/lang/String;)V
+PLcom/android/server/backup/internal/KeyValueBackupTask;-><init>(Lcom/android/server/backup/BackupManagerService;Lcom/android/server/backup/transport/TransportClient;Ljava/lang/String;Ljava/util/List;Lcom/android/server/backup/DataChangedJournal;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;Lcom/android/server/backup/internal/OnTaskFinishedListener;Ljava/util/List;ZZ)V
+PLcom/android/server/backup/internal/KeyValueBackupTask;->backupPm()V
+PLcom/android/server/backup/internal/KeyValueBackupTask;->beginBackup()V
+PLcom/android/server/backup/internal/KeyValueBackupTask;->clearAgentState()V
+PLcom/android/server/backup/internal/KeyValueBackupTask;->execute()V
+PLcom/android/server/backup/internal/KeyValueBackupTask;->executeNextState(Lcom/android/server/backup/internal/BackupState;)V
+PLcom/android/server/backup/internal/KeyValueBackupTask;->finalizeBackup()V
+PLcom/android/server/backup/internal/KeyValueBackupTask;->invokeAgentForBackup(Ljava/lang/String;Landroid/app/IBackupAgent;)I
+PLcom/android/server/backup/internal/KeyValueBackupTask;->invokeNextAgent()V
+PLcom/android/server/backup/internal/KeyValueBackupTask;->operationComplete(J)V
+PLcom/android/server/backup/internal/KeyValueBackupTask;->registerTask()V
+PLcom/android/server/backup/internal/KeyValueBackupTask;->revertAndEndBackup()V
+PLcom/android/server/backup/internal/KeyValueBackupTask;->unregisterTask()V
+PLcom/android/server/backup/internal/KeyValueBackupTask;->writeWidgetPayloadIfAppropriate(Ljava/io/FileDescriptor;Ljava/lang/String;)V
 PLcom/android/server/backup/internal/ProvisionedObserver;-><init>(Lcom/android/server/backup/BackupManagerService;Landroid/os/Handler;)V
 PLcom/android/server/backup/internal/RunBackupReceiver;-><init>(Lcom/android/server/backup/BackupManagerService;)V
 PLcom/android/server/backup/internal/RunBackupReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
diff --git a/services/backup/java/com/android/server/backup/internal/BackupHandler.java b/services/backup/java/com/android/server/backup/internal/BackupHandler.java
index 66b6b37..6e96fe0 100644
--- a/services/backup/java/com/android/server/backup/internal/BackupHandler.java
+++ b/services/backup/java/com/android/server/backup/internal/BackupHandler.java
@@ -154,7 +154,7 @@
                                 caller ->
                                         transportManager
                                                 .disposeOfTransportClient(transportClient, caller);
-                        PerformBackupTask.start(
+                        KeyValueBackupTask.start(
                                 backupManagerService,
                                 transportClient,
                                 transport.transportDirName(),
@@ -410,7 +410,7 @@
                 backupManagerService.setBackupRunning(true);
                 backupManagerService.getWakelock().acquire();
 
-                PerformBackupTask.start(
+                KeyValueBackupTask.start(
                         backupManagerService,
                         params.transportClient,
                         params.dirName,
diff --git a/services/backup/java/com/android/server/backup/internal/PerformBackupTask.java b/services/backup/java/com/android/server/backup/internal/KeyValueBackupTask.java
similarity index 98%
rename from services/backup/java/com/android/server/backup/internal/PerformBackupTask.java
rename to services/backup/java/com/android/server/backup/internal/KeyValueBackupTask.java
index c5df82e..a4d7bd1 100644
--- a/services/backup/java/com/android/server/backup/internal/PerformBackupTask.java
+++ b/services/backup/java/com/android/server/backup/internal/KeyValueBackupTask.java
@@ -168,8 +168,8 @@
 // TODO: Stop poking into BMS state and doing things for it (e.g. synchronizing on public locks)
 // TODO: Consider having the caller responsible for some clean-up (like resetting state)
 // TODO: Distinguish between cancel and time-out where possible for logging/monitoring/observing
-public class PerformBackupTask implements BackupRestoreTask, Runnable {
-    private static final String TAG = "PerformBackupTask";
+public class KeyValueBackupTask implements BackupRestoreTask, Runnable {
+    private static final String TAG = "KeyValueBackupTask";
     private static final boolean DEBUG = BackupManagerService.DEBUG || true;
     private static final boolean MORE_DEBUG = BackupManagerService.MORE_DEBUG || false;
     private static final int THREAD_PRIORITY = Process.THREAD_PRIORITY_BACKGROUND;
@@ -181,7 +181,7 @@
     public static final String NEW_STATE_FILE_SUFFIX = ".new";
 
     /**
-     * Creates a new {@link PerformBackupTask} for key-value backup operation, spins up a new
+     * Creates a new {@link KeyValueBackupTask} for key-value backup operation, spins up a new
      * dedicated thread and kicks off the operation in it.
      *
      * @param backupManagerService The {@link BackupManagerService} system service.
@@ -201,13 +201,13 @@
      * @param userInitiated Whether this was user-initiated or not.
      * @param nonIncremental If {@code true}, this will be a complete backup for each package,
      *     otherwise it will be just an incremental one over the current dataset.
-     * @return The {@link PerformBackupTask} that was started.
+     * @return The {@link KeyValueBackupTask} that was started.
      */
-    public static PerformBackupTask start(
+    public static KeyValueBackupTask start(
             BackupManagerService backupManagerService,
             TransportClient transportClient,
             String transportDirName,
-            ArrayList<BackupRequest> queue,
+            List<BackupRequest> queue,
             @Nullable DataChangedJournal dataChangedJournal,
             IBackupObserver observer,
             IBackupManagerMonitor monitor,
@@ -215,8 +215,8 @@
             List<String> pendingFullBackups,
             boolean userInitiated,
             boolean nonIncremental) {
-        PerformBackupTask task =
-                new PerformBackupTask(
+        KeyValueBackupTask task =
+                new KeyValueBackupTask(
                         backupManagerService,
                         transportClient,
                         transportDirName,
@@ -245,8 +245,8 @@
     private final boolean mNonIncremental;
     private final int mCurrentOpToken;
     private final File mStateDir;
-    private final ArrayList<BackupRequest> mOriginalQueue;
-    private final ArrayList<BackupRequest> mQueue;
+    private final List<BackupRequest> mOriginalQueue;
+    private final List<BackupRequest> mQueue;
     private final List<String> mPendingFullBackups;
     @Nullable private final DataChangedJournal mJournal;
     private IBackupManagerMonitor mMonitor;
@@ -285,11 +285,11 @@
     @Nullable private volatile RemoteCall mPendingCall;
 
     @VisibleForTesting
-    public PerformBackupTask(
+    public KeyValueBackupTask(
             BackupManagerService backupManagerService,
             TransportClient transportClient,
             String transportDirName,
-            ArrayList<BackupRequest> queue,
+            List<BackupRequest> queue,
             @Nullable DataChangedJournal journal,
             IBackupObserver observer,
             IBackupManagerMonitor monitor,
@@ -453,7 +453,7 @@
         }
         File pmState = new File(mStateDir, PACKAGE_MANAGER_SENTINEL);
         try {
-            IBackupTransport transport = mTransportClient.connectOrThrow("PBT.beginBackup()");
+            IBackupTransport transport = mTransportClient.connectOrThrow("KVBT.beginBackup()");
             String transportName = transport.name();
             EventLog.writeEvent(EventLogTags.BACKUP_START, transportName);
 
@@ -696,7 +696,7 @@
         // If everything actually went through and this is the first time we've
         // done a backup, we can now record what the current backup dataset token
         // is.
-        String callerLogString = "PBT.finalizeBackup()";
+        String callerLogString = "KVBT.finalizeBackup()";
         if ((mBackupManagerService.getCurrentToken() == 0) && (mStatus
                 == BackupTransport.TRANSPORT_OK)) {
             mBackupManagerService.addBackupTrace("success; recording token");
@@ -843,7 +843,7 @@
                             ParcelFileDescriptor.MODE_TRUNCATE);
 
             IBackupTransport transport =
-                    mTransportClient.connectOrThrow("PBT.invokeAgentForBackup()");
+                    mTransportClient.connectOrThrow("KVBT.invokeAgentForBackup()");
 
             final long quota = transport.getBackupQuota(packageName, false /* isFullBackup */);
             callingAgent = true;
@@ -1043,7 +1043,7 @@
         mStatus = BackupTransport.TRANSPORT_OK;
         long size = 0;
         try {
-            IBackupTransport transport = mTransportClient.connectOrThrow("PBT.handleAgentResult()");
+            IBackupTransport transport = mTransportClient.connectOrThrow("KVBT.handleAgentResult()");
             size = mBackupDataFile.length();
             if (size > 0) {
                 if (MORE_DEBUG) {
@@ -1191,7 +1191,7 @@
             if (mAgentBinder != null) {
                 try {
                     IBackupTransport transport =
-                            mTransportClient.connectOrThrow("PBT.handleAgentResult()");
+                            mTransportClient.connectOrThrow("KVBT.handleAgentResult()");
                     long quota = transport.getBackupQuota(mCurrentPackage.packageName, false);
                     mAgentBinder.doQuotaExceeded(size, quota);
                 } catch (Exception e) {
@@ -1287,7 +1287,7 @@
         long delay;
         try {
             IBackupTransport transport =
-                    mTransportClient.connectOrThrow("PBT.revertAndEndBackup()");
+                    mTransportClient.connectOrThrow("KVBT.revertAndEndBackup()");
             delay = transport.requestBackupTime();
         } catch (Exception e) {
             Slog.w(TAG, "Unable to contact transport for recommended backoff: " + e.getMessage());
diff --git a/services/robotests/src/com/android/server/backup/BackupManagerServiceTest.java b/services/robotests/src/com/android/server/backup/BackupManagerServiceTest.java
index abaed7c..ea9967b 100644
--- a/services/robotests/src/com/android/server/backup/BackupManagerServiceTest.java
+++ b/services/robotests/src/com/android/server/backup/BackupManagerServiceTest.java
@@ -56,7 +56,7 @@
 import com.android.server.testing.shadows.ShadowBackupPolicyEnforcer;
 import com.android.server.testing.shadows.ShadowBinder;
 import com.android.server.testing.shadows.ShadowKeyValueBackupJob;
-import com.android.server.testing.shadows.ShadowPerformBackupTask;
+import com.android.server.testing.shadows.ShadowKeyValueBackupTask;
 import java.io.File;
 import java.util.List;
 import org.junit.After;
@@ -72,7 +72,6 @@
 import org.robolectric.shadows.ShadowLooper;
 import org.robolectric.shadows.ShadowPackageManager;
 import org.robolectric.shadows.ShadowSettings;
-import org.robolectric.shadows.ShadowSystemClock;
 
 @RunWith(FrameworkRobolectricTestRunner.class)
 @Config(
@@ -668,7 +667,7 @@
     }
 
     private void tearDownForRequestBackup() {
-        ShadowPerformBackupTask.reset();
+        ShadowKeyValueBackupTask.reset();
     }
 
     @Test
@@ -755,12 +754,12 @@
 
         assertThat(result).isEqualTo(BackupManager.SUCCESS);
         verify(mObserver).onResult(PACKAGE_1, BackupManager.ERROR_BACKUP_NOT_ALLOWED);
-        // TODO: We probably don't need to kick-off PerformBackupTask when list is empty
+        // TODO: We probably don't need to kick-off KeyValueBackupTask when list is empty
         tearDownForRequestBackup();
     }
 
     @Test
-    @Config(shadows = ShadowPerformBackupTask.class)
+    @Config(shadows = ShadowKeyValueBackupTask.class)
     public void testRequestBackup_whenPackageIsKeyValue() throws Exception {
         setUpForRequestBackup(PACKAGE_1);
         BackupManagerService backupManagerService = createBackupManagerServiceForRequestBackup();
@@ -769,15 +768,15 @@
 
         mShadowBackupLooper.runToEndOfTasks();
         assertThat(result).isEqualTo(BackupManager.SUCCESS);
-        ShadowPerformBackupTask shadowTask = ShadowPerformBackupTask.getLastCreated();
+        ShadowKeyValueBackupTask shadowTask = ShadowKeyValueBackupTask.getLastCreated();
         assertThat(shadowTask.getQueue()).containsExactly(new BackupRequest(PACKAGE_1));
         assertThat(shadowTask.getPendingFullBackups()).isEmpty();
-        // TODO: Assert more about PerformBackupTask
+        // TODO: Assert more about KeyValueBackupTask
         tearDownForRequestBackup();
     }
 
     @Test
-    @Config(shadows = ShadowPerformBackupTask.class)
+    @Config(shadows = ShadowKeyValueBackupTask.class)
     public void testRequestBackup_whenPackageIsFullBackup() throws Exception {
         setUpForRequestBackup(PACKAGE_1);
         ShadowAppBackupUtils.setAppGetsFullBackup(PACKAGE_1);
@@ -787,10 +786,10 @@
 
         mShadowBackupLooper.runToEndOfTasks();
         assertThat(result).isEqualTo(BackupManager.SUCCESS);
-        ShadowPerformBackupTask shadowTask = ShadowPerformBackupTask.getLastCreated();
+        ShadowKeyValueBackupTask shadowTask = ShadowKeyValueBackupTask.getLastCreated();
         assertThat(shadowTask.getQueue()).isEmpty();
         assertThat(shadowTask.getPendingFullBackups()).containsExactly(PACKAGE_1);
-        // TODO: Assert more about PerformBackupTask
+        // TODO: Assert more about KeyValueBackupTask
         tearDownForRequestBackup();
     }
 
diff --git a/services/robotests/src/com/android/server/backup/PerformBackupTaskTest.java b/services/robotests/src/com/android/server/backup/KeyValueBackupTaskTest.java
similarity index 93%
rename from services/robotests/src/com/android/server/backup/PerformBackupTaskTest.java
rename to services/robotests/src/com/android/server/backup/KeyValueBackupTaskTest.java
index 1f6ac8d..56f5f15 100644
--- a/services/robotests/src/com/android/server/backup/PerformBackupTaskTest.java
+++ b/services/robotests/src/com/android/server/backup/KeyValueBackupTaskTest.java
@@ -93,7 +93,7 @@
 import com.android.server.backup.internal.BackupHandler;
 import com.android.server.backup.internal.BackupRequest;
 import com.android.server.backup.internal.OnTaskFinishedListener;
-import com.android.server.backup.internal.PerformBackupTask;
+import com.android.server.backup.internal.KeyValueBackupTask;
 import com.android.server.backup.testing.PackageData;
 import com.android.server.backup.testing.TransportData;
 import com.android.server.backup.testing.TransportTestUtils;
@@ -155,7 +155,7 @@
 @SystemLoaderPackages({"com.android.server.backup", "android.app.backup"})
 @SystemLoaderClasses({IBackupTransport.class, IBackupAgent.class, PackageInfo.class})
 @Presubmit
-public class PerformBackupTaskTest {
+public class KeyValueBackupTaskTest {
     private static final PackageData PACKAGE_1 = keyValuePackage(1);
     private static final PackageData PACKAGE_2 = keyValuePackage(2);
 
@@ -233,8 +233,8 @@
     public void testRunTask_whenQueueEmpty_updatesBookkeeping() throws Exception {
         TransportMock transportMock = setUpInitializedTransport(mTransport);
         when(mBackupManagerService.getCurrentToken()).thenReturn(0L);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, true);
 
         runTask(task);
@@ -249,8 +249,8 @@
     public void testRunTask_whenQueueEmpty_releasesWakeLock() throws Exception {
         TransportMock transportMock = setUpInitializedTransport(mTransport);
         when(mBackupManagerService.getCurrentToken()).thenReturn(0L);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, true);
 
         runTask(task);
@@ -262,8 +262,8 @@
     public void testRunTask_whenQueueEmpty_doesNotProduceData() throws Exception {
         TransportMock transportMock = setUpTransport(mTransport);
         when(mBackupManagerService.getCurrentToken()).thenReturn(0L);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, true);
 
         runTask(task);
@@ -276,8 +276,8 @@
     public void testRunTask_whenQueueEmpty_doesNotCallTransport() throws Exception {
         TransportMock transportMock = setUpInitializedTransport(mTransport);
         when(mBackupManagerService.getCurrentToken()).thenReturn(0L);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, true);
 
         runTask(task);
@@ -291,8 +291,8 @@
     public void testRunTask_whenQueueEmpty_notifiesCorrectly() throws Exception {
         TransportMock transportMock = setUpInitializedTransport(mTransport);
         when(mBackupManagerService.getCurrentToken()).thenReturn(0L);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, true);
 
         runTask(task);
@@ -305,8 +305,8 @@
     @Test
     public void testRunTask_whenQueueEmpty_doesNotChangeStateFiles() throws Exception {
         TransportMock transportMock = setUpInitializedTransport(mTransport);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, true);
         Files.write(getStateFile(mTransport, PM_PACKAGE), "pmState".getBytes());
         Files.write(getStateFile(mTransport, PACKAGE_1), "packageState".getBytes());
@@ -323,8 +323,8 @@
     public void testRunTask_whenOnePackageAndTransportUnavailable() throws Exception {
         TransportMock transportMock = setUpInitializedTransport(mTransport.unavailable());
         setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -338,8 +338,8 @@
     public void testRunTask_whenOnePackage_logsBackupStartEvent() throws Exception {
         TransportMock transportMock = setUpInitializedTransport(mTransport);
         setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -351,8 +351,8 @@
     public void testRunTask_whenOnePackage_releasesWakeLock() throws Exception {
         TransportMock transportMock = setUpInitializedTransport(mTransport);
         setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -367,8 +367,8 @@
         mBackupManagerService.setCurrentToken(0L);
         when(transportMock.transport.getCurrentRestoreSet()).thenReturn(1234L);
         setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -386,8 +386,8 @@
             throws Exception {
         TransportMock transportMock = setUpInitializedTransport(mTransport);
         AgentMock agentMock = setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient,
                         mTransport.transportDirName,
                         false,
@@ -404,8 +404,8 @@
             throws Exception {
         TransportMock transportMock = setUpInitializedTransport(mTransport);
         AgentMock agentMock = setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient,
                         mTransport.transportDirName,
                         true,
@@ -423,8 +423,8 @@
         setUpAgentWithData(PACKAGE_1);
         PackageManagerBackupAgent pmAgent = spy(createPmAgent());
         when(mBackupManagerService.makeMetadataAgent()).thenReturn(forward(pmAgent));
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient,
                         mTransport.transportDirName,
                         true,
@@ -441,8 +441,8 @@
         setUpAgentWithData(PACKAGE_1);
         PackageManagerBackupAgent pmAgent = spy(createPmAgent());
         when(mBackupManagerService.makeMetadataAgent()).thenReturn(forward(pmAgent));
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient,
                         mTransport.transportDirName,
                         true,
@@ -460,8 +460,8 @@
         setUpAgentWithData(PACKAGE_1);
         PackageManagerBackupAgent pmAgent = spy(createPmAgent());
         when(mBackupManagerService.makeMetadataAgent()).thenReturn(forward(pmAgent));
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient,
                         mTransport.transportDirName,
                         false,
@@ -478,8 +478,8 @@
         TransportMock transportMock = setUpTransport(mTransport);
         // Need 2 packages to be able to verify state of package not involved in the task
         setUpAgentsWithData(PACKAGE_1, PACKAGE_2);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
         deletePmStateFile();
         Files.write(getStateFile(mTransport, PACKAGE_2), "package2State".getBytes());
@@ -499,8 +499,8 @@
             throws Exception {
         TransportMock transportMock = setUpTransport(mTransport);
         setUpAgentsWithData(PACKAGE_1, PACKAGE_2);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
         createPmStateFile();
         Files.write(getStateFile(mTransport, PACKAGE_2), "package2State".getBytes());
@@ -518,8 +518,8 @@
         when(transportMock.transport.initializeDevice())
                 .thenReturn(BackupTransport.TRANSPORT_ERROR);
         AgentMock agentMock = setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
         deletePmStateFile();
 
@@ -539,8 +539,8 @@
         TransportMock transportMock = setUpTransport(mTransport);
         when(transportMock.transport.initializeDevice()).thenThrow(RemoteException.class);
         AgentMock agentMock = setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
         deletePmStateFile();
 
@@ -558,8 +558,8 @@
     public void testRunTask_whenPackageNotEligibleForBackup() throws Exception {
         TransportMock transportMock = setUpInitializedTransport(mTransport);
         AgentMock agentMock = setUpAgentWithData(PACKAGE_1.backupNotAllowed());
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -577,8 +577,8 @@
         TransportMock transportMock = setUpInitializedTransport(mTransport);
         PackageData packageData = fullBackupPackage(1);
         AgentMock agentMock = setUpAgentWithData(packageData);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, packageData);
 
         runTask(task);
@@ -594,8 +594,8 @@
     public void testRunTask_whenPackageIsStopped() throws Exception {
         TransportMock transportMock = setUpInitializedTransport(mTransport);
         AgentMock agentMock = setUpAgentWithData(PACKAGE_1.stopped());
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -610,8 +610,8 @@
     public void testRunTask_whenPackageUnknown() throws Exception {
         TransportMock transportMock = setUpInitializedTransport(mTransport);
         // Not calling setUpAgent()
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -638,8 +638,8 @@
                                     argThat(workSource -> workSource.get(0) == PACKAGE_1.uid));
                     verify(mBackupManagerService, never()).setWorkSource(null);
                 });
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -658,8 +658,8 @@
     public void testRunTask_whenAgentUnavailable() throws Exception {
         TransportMock transportMock = setUpInitializedTransport(mTransport);
         setUpAgent(PACKAGE_1.unavailable());
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -676,8 +676,8 @@
         doThrow(SecurityException.class)
                 .when(mBackupManagerService)
                 .bindToAgentSynchronous(argThat(applicationInfo(PACKAGE_1)), anyInt());
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -693,8 +693,8 @@
         when(transportMock.transport.getBackupQuota(PACKAGE_1.packageName, false))
                 .thenThrow(DeadObjectException.class);
         setUpAgent(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -710,8 +710,8 @@
         when(transportMock.transport.getBackupQuota(PACKAGE_1.packageName, false))
                 .thenThrow(DeadObjectException.class);
         setUpAgent(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -726,8 +726,8 @@
         when(transportMock.transport.getBackupQuota(PACKAGE_1.packageName, false))
                 .thenThrow(DeadObjectException.class);
         setUpAgent(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
         Files.write(getStateFile(mTransport, PACKAGE_1), "packageState".getBytes());
 
@@ -745,8 +745,8 @@
         when(transportMock.transport.getBackupQuota(PACKAGE_1.packageName, false))
                 .thenThrow(DeadObjectException.class);
         setUpAgent(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -758,7 +758,7 @@
 
     /**
      * For local agents the exception is thrown in our stack, so it hits the catch clause around
-     * invocation earlier than the {@link PerformBackupTask#operationComplete(long)} code-path,
+     * invocation earlier than the {@link KeyValueBackupTask#operationComplete(long)} code-path,
      * invalidating the latter. Note that this happens because {@link
      * BackupManagerService#opComplete(int, long)} schedules the actual execution to the backup
      * handler.
@@ -772,8 +772,8 @@
                 (oldState, dataOutput, newState) -> {
                     throw new RuntimeException();
                 });
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -794,8 +794,8 @@
         int flags = BackupAgent.FLAG_CLIENT_SIDE_ENCRYPTION_ENABLED;
         when(transportMock.transport.getTransportFlags()).thenReturn(flags);
         AgentMock agentMock = setUpAgent(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -808,8 +808,8 @@
     public void testRunTask_whenTransportDoesNotProvidesFlags() throws Exception {
         TransportMock transportMock = setUpInitializedTransport(mTransport);
         AgentMock agentMock = setUpAgent(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -826,8 +826,8 @@
         List<AgentMock> agentMocks = setUpAgents(PACKAGE_1, PACKAGE_2);
         BackupAgent agent1 = agentMocks.get(0).agent;
         BackupAgent agent2 = agentMocks.get(1).agent;
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient,
                         mTransport.transportDirName,
                         PACKAGE_1,
@@ -843,8 +843,8 @@
     public void testRunTask_whenTransportChangeFlagsAfterTaskCreation() throws Exception {
         TransportMock transportMock = setUpInitializedTransport(mTransport);
         AgentMock agentMock = setUpAgent(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
         int flags = BackupAgent.FLAG_CLIENT_SIDE_ENCRYPTION_ENABLED;
         when(transportMock.transport.getTransportFlags()).thenReturn(flags);
@@ -866,8 +866,8 @@
                     writeData(dataOutput, prohibitedChar + "key", "data".getBytes());
                     writeState(newState, "newState".getBytes());
                 });
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -887,8 +887,8 @@
                     writeData(dataOutput, prohibitedChar + "key", "data".getBytes());
                     writeState(newState, "newState".getBytes());
                 });
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
         Files.write(getStateFile(mTransport, PACKAGE_1), "oldState".getBytes());
 
@@ -911,8 +911,8 @@
                     writeData(dataOutput, prohibitedChar + "key", "data".getBytes());
                     writeState(newState, "newState".getBytes());
                 });
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
         Files.write(getStateFile(mTransport, PACKAGE_1), "oldState".getBytes());
 
@@ -933,8 +933,8 @@
                     writeData(dataOutput, prohibitedChar + "key", "data".getBytes());
                     writeState(newState, "newState".getBytes());
                 });
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
         Files.write(getStateFile(mTransport, PACKAGE_1), "oldState".getBytes());
 
@@ -956,8 +956,8 @@
                     writeData(dataOutput, prohibitedChar + "key", "data".getBytes());
                     writeState(newState, "newState".getBytes());
                 });
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
         Files.write(getStateFile(mTransport, PACKAGE_1), "oldState".getBytes());
 
@@ -986,8 +986,8 @@
                     writeData(dataOutput, "key", "data".getBytes());
                     writeState(newState, "newState".getBytes());
                 });
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient,
                         mTransport.transportDirName,
                         PACKAGE_1,
@@ -1011,8 +1011,8 @@
                 (oldState, dataOutput, newState) -> {
                     // No-op
                 });
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1030,8 +1030,8 @@
                 (oldState, dataOutput, newState) -> {
                     // No-op
                 });
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1049,8 +1049,8 @@
                 (oldState, dataOutput, newState) -> {
                     // No-op
                 });
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1068,8 +1068,8 @@
                 (oldState, dataOutput, newState) -> {
                     // No-op
                 });
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1086,8 +1086,8 @@
                 (oldState, dataOutput, newState) -> {
                     // No-op
                 });
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1113,8 +1113,8 @@
                     writeData(dataOutput, "key2", "data2".getBytes());
                     writeState(newState, "newState".getBytes());
                 });
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1138,8 +1138,8 @@
                         argThat(packageInfo(PACKAGE_1)), any(), anyInt()))
                 .thenReturn(BackupTransport.TRANSPORT_OK);
         setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1159,8 +1159,8 @@
                     writeData(dataOutput, "key", "data".getBytes());
                     writeState(newState, "newState".getBytes());
                 });
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1179,8 +1179,8 @@
         when(transportMock.transport.performBackup(
                         argThat(packageInfo(PACKAGE_1)), any(), anyInt()))
                 .then(copyBackupDataTo(backupData));
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1193,8 +1193,8 @@
     public void testRunTask_whenFinishBackupSucceeds_notifiesCorrectly() throws Exception {
         TransportMock transportMock = setUpInitializedTransport(mTransport);
         setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1209,8 +1209,8 @@
     public void testRunTask_whenFinishBackupSucceeds_updatesBookkeeping() throws Exception {
         TransportMock transportMock = setUpInitializedTransport(mTransport);
         setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1225,8 +1225,8 @@
                         argThat(packageInfo(PACKAGE_1)), any(), anyInt()))
                 .thenReturn(BackupTransport.TRANSPORT_PACKAGE_REJECTED);
         setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1242,8 +1242,8 @@
                         argThat(packageInfo(PACKAGE_1)), any(), anyInt()))
                 .thenReturn(BackupTransport.TRANSPORT_PACKAGE_REJECTED);
         setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
         Files.write(getStateFile(mTransport, PACKAGE_1), "oldState".getBytes());
 
@@ -1262,8 +1262,8 @@
                         argThat(packageInfo(PACKAGE_1)), any(), anyInt()))
                 .thenReturn(BackupTransport.TRANSPORT_PACKAGE_REJECTED);
         setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1279,8 +1279,8 @@
                         argThat(packageInfo(PACKAGE_1)), any(), anyInt()))
                 .thenReturn(BackupTransport.TRANSPORT_PACKAGE_REJECTED);
         setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1297,8 +1297,8 @@
                         argThat(packageInfo(PACKAGE_1)), any(), anyInt()))
                 .thenReturn(BackupTransport.TRANSPORT_PACKAGE_REJECTED);
         setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1316,8 +1316,8 @@
                         argThat(packageInfo(PACKAGE_2)), any(), anyInt()))
                 .thenReturn(BackupTransport.TRANSPORT_OK);
         setUpAgentsWithData(PACKAGE_1, PACKAGE_2);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient,
                         mTransport.transportDirName,
                         PACKAGE_1,
@@ -1340,8 +1340,8 @@
                         argThat(packageInfo(PACKAGE_2)), any(), anyInt()))
                 .thenReturn(BackupTransport.TRANSPORT_PACKAGE_REJECTED);
         setUpAgentsWithData(PACKAGE_1, PACKAGE_2);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient,
                         mTransport.transportDirName,
                         PACKAGE_1,
@@ -1363,8 +1363,8 @@
                         argThat(packageInfo(PACKAGE_1)), any(), anyInt()))
                 .thenReturn(BackupTransport.TRANSPORT_QUOTA_EXCEEDED);
         AgentMock agentMock = setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1385,8 +1385,8 @@
                         argThat(packageInfo(PACKAGE_1)), any(), anyInt()))
                 .thenReturn(BackupTransport.TRANSPORT_NON_INCREMENTAL_BACKUP_REQUIRED);
         setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient,
                         mTransport.transportDirName,
                         true,
@@ -1433,8 +1433,8 @@
                         writeState(newState, "stateForNonIncremental".getBytes());
                     }
                 });
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient,
                         mTransport.transportDirName,
                         false,
@@ -1472,8 +1472,8 @@
                         argThat(packageInfo(PACKAGE_1)), any(), anyInt()))
                 .thenReturn(BackupTransport.TRANSPORT_ERROR);
         setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1490,8 +1490,8 @@
                         argThat(packageInfo(PACKAGE_1)), any(), anyInt()))
                 .thenReturn(BackupTransport.TRANSPORT_ERROR);
         setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1506,8 +1506,8 @@
                         argThat(packageInfo(PACKAGE_1)), any(), anyInt()))
                 .thenReturn(BackupTransport.TRANSPORT_ERROR);
         setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1524,8 +1524,8 @@
                         argThat(packageInfo(PACKAGE_1)), any(), anyInt()))
                 .thenReturn(BackupTransport.TRANSPORT_ERROR);
         setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
         Files.write(getStateFile(mTransport, PACKAGE_1), "oldState".getBytes());
 
@@ -1544,8 +1544,8 @@
         when(transportMock.transport.getBackupQuota(PM_PACKAGE.packageName, false))
                 .thenThrow(DeadObjectException.class);
         setUpAgentWithData(PACKAGE_1);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1563,8 +1563,8 @@
         TransportMock transportMock = setUpInitializedTransport(mTransport);
         PackageManagerBackupAgent pmAgent = createThrowingPmAgent(new RuntimeException());
         when(mBackupManagerService.makeMetadataAgent()).thenReturn(pmAgent);
-        PerformBackupTask task =
-                createPerformBackupTask(
+        KeyValueBackupTask task =
+                createKeyValueBackupTask(
                         transportMock.transportClient, mTransport.transportDirName, PACKAGE_1);
 
         runTask(task);
@@ -1577,7 +1577,7 @@
                 new RuntimeException().toString());
     }
 
-    private void runTask(PerformBackupTask task) {
+    private void runTask(KeyValueBackupTask task) {
         // Pretend we are not on the main-thread to prevent RemoteCall from complaining
         mShadowMainLooper.setCurrentThread(false);
         task.run();
@@ -1609,7 +1609,7 @@
 
     private Path getTemporaryStateFile(TransportData transport, PackageData packageData) {
         return getStateDirectory(transport)
-                .resolve(packageData.packageName + PerformBackupTask.NEW_STATE_FILE_SUFFIX);
+                .resolve(packageData.packageName + KeyValueBackupTask.NEW_STATE_FILE_SUFFIX);
     }
 
     private Path getStagingDirectory() {
@@ -1618,7 +1618,7 @@
 
     private Path getStagingFile(PackageData packageData) {
         return getStagingDirectory()
-                .resolve(packageData.packageName + PerformBackupTask.STAGING_FILE_SUFFIX);
+                .resolve(packageData.packageName + KeyValueBackupTask.STAGING_FILE_SUFFIX);
     }
 
     private List<AgentMock> setUpAgents(PackageData... packageNames) {
@@ -1695,12 +1695,12 @@
         return agentMock;
     }
 
-    private PerformBackupTask createPerformBackupTask(
+    private KeyValueBackupTask createKeyValueBackupTask(
             TransportClient transportClient, String transportDirName, PackageData... packages) {
-        return createPerformBackupTask(transportClient, transportDirName, false, packages);
+        return createKeyValueBackupTask(transportClient, transportDirName, false, packages);
     }
 
-    private PerformBackupTask createPerformBackupTask(
+    private KeyValueBackupTask createKeyValueBackupTask(
             TransportClient transportClient,
             String transportDirName,
             boolean nonIncremental,
@@ -1714,8 +1714,8 @@
         // mOldJournal is a mock, but it would be the value returned by BMS.getJournal() now
         mBackupManagerService.setJournal(null);
         mWakeLock.acquire();
-        PerformBackupTask task =
-                new PerformBackupTask(
+        KeyValueBackupTask task =
+                new KeyValueBackupTask(
                         mBackupManagerService,
                         transportClient,
                         transportDirName,
@@ -1884,14 +1884,14 @@
 
     private void assertBackupPendingFor(PackageData packageData) throws IOException {
         String packageName = packageData.packageName;
-        // We verify the current journal, NOT the old one passed to PerformBackupTask constructor
+        // We verify the current journal, NOT the old one passed to KeyValueBackupTask constructor
         assertThat(mBackupManagerService.getJournal().getPackages()).contains(packageName);
         assertThat(mBackupManagerService.getPendingBackups()).containsKey(packageName);
     }
 
     private void assertBackupNotPendingFor(PackageData packageData) throws IOException {
         String packageName = packageData.packageName;
-        // We verify the current journal, NOT the old one passed to PerformBackupTask constructor
+        // We verify the current journal, NOT the old one passed to KeyValueBackupTask constructor
         assertJournalDoesNotContain(mBackupManagerService.getJournal(), packageName);
         assertThat(mBackupManagerService.getPendingBackups()).doesNotContainKey(packageName);
     }
diff --git a/services/robotests/src/com/android/server/testing/shadows/ShadowPerformBackupTask.java b/services/robotests/src/com/android/server/testing/shadows/ShadowKeyValueBackupTask.java
similarity index 82%
rename from services/robotests/src/com/android/server/testing/shadows/ShadowPerformBackupTask.java
rename to services/robotests/src/com/android/server/testing/shadows/ShadowKeyValueBackupTask.java
index 7c10377..f22cdb8 100644
--- a/services/robotests/src/com/android/server/testing/shadows/ShadowPerformBackupTask.java
+++ b/services/robotests/src/com/android/server/testing/shadows/ShadowKeyValueBackupTask.java
@@ -24,7 +24,7 @@
 import com.android.server.backup.DataChangedJournal;
 import com.android.server.backup.internal.BackupRequest;
 import com.android.server.backup.internal.OnTaskFinishedListener;
-import com.android.server.backup.internal.PerformBackupTask;
+import com.android.server.backup.internal.KeyValueBackupTask;
 import com.android.server.backup.transport.TransportClient;
 
 import org.robolectric.annotation.Implementation;
@@ -33,17 +33,17 @@
 import java.util.ArrayList;
 import java.util.List;
 
-@Implements(PerformBackupTask.class)
-public class ShadowPerformBackupTask {
-    @Nullable private static ShadowPerformBackupTask sLastShadow;
+@Implements(KeyValueBackupTask.class)
+public class ShadowKeyValueBackupTask {
+    @Nullable private static ShadowKeyValueBackupTask sLastShadow;
 
     /**
-     * Retrieves the shadow for the last {@link PerformBackupTask} object created.
+     * Retrieves the shadow for the last {@link KeyValueBackupTask} object created.
      *
      * @return The shadow or {@code null} if no object created since last {@link #reset()}.
      */
     @Nullable
-    public static ShadowPerformBackupTask getLastCreated() {
+    public static ShadowKeyValueBackupTask getLastCreated() {
         return sLastShadow;
     }
 
@@ -52,7 +52,7 @@
     }
 
     private OnTaskFinishedListener mListener;
-    private ArrayList<BackupRequest> mQueue;
+    private List<BackupRequest> mQueue;
     private List<String> mPendingFullBackups;
 
     @Implementation
@@ -60,7 +60,7 @@
             BackupManagerService backupManagerService,
             TransportClient transportClient,
             String dirName,
-            ArrayList<BackupRequest> queue,
+            List<BackupRequest> queue,
             @Nullable DataChangedJournal journal,
             IBackupObserver observer,
             IBackupManagerMonitor monitor,
@@ -76,7 +76,7 @@
 
     @Implementation
     public void execute() {
-        mListener.onFinished("ShadowPerformBackupTask.execute()");
+        mListener.onFinished("ShadowKeyValueBackupTask.execute()");
     }
 
     public List<BackupRequest> getQueue() {