Remove duplicate code in initializing transports

Use enforceCallingOrSelfPermission which is the same as
enforceCallingPermission except it grants own permissions
when not processing an IPC.

Also remove unused private field from KeyValueBackupTask

Bug: 146939599
Bug: 136738613

Test: 1) adb shell bmgr enable true
2) adb shell bmgr enable false
3) adb shell am broadcast -a "android.app.backup.intent.INIT"
logcat is as expected:
BackupManagerService: Backup enabled => false
BackupManagerService: Running a device init; 3 pending
BackupManagerService: initializeTransport(): [com.android.localtransport/.LocalTransport, com.google.android.gms/.backup.migrate.service.D2dTransport, com.google.android.gms/.backup.BackupTransportService]
BackupManagerService: Initializing (wiping) backup transport storage: com.android.localtransport/.LocalTransport
....
BackupManagerService: Initializing (wiping) backup transport storage: com.google.android.gms/.backup.migrate.service.D2dTransport
...
BackupManagerService: Initializing (wiping) backup transport storage: com.google.android.gms/.backup.BackupTransportService

Change-Id: I98d87f3163cd7fbc1f7aa6712ec421cc8efd5d29
This commit is contained in:
nathch
2019-12-27 23:54:25 +00:00
parent cd87f72f02
commit 84c99f332e
3 changed files with 2 additions and 18 deletions

View File

@@ -2409,7 +2409,7 @@ public class UserBackupManagerService {
/** Run an initialize operation for the given transport. */
public void initializeTransports(String[] transportNames, IBackupObserver observer) {
mContext.enforceCallingPermission(android.Manifest.permission.BACKUP,
mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
"initializeTransport");
Slog.v(TAG, "initializeTransport(): " + Arrays.asList(transportNames));

View File

@@ -53,21 +53,8 @@ public class RunInitializeReceiver extends BroadcastReceiver {
if (pendingInits.size() > 0) {
String[] transports = pendingInits.toArray(new String[pendingInits.size()]);
mUserBackupManagerService.clearPendingInits();
UserBackupManagerService.BackupWakeLock wakelock =
mUserBackupManagerService.getWakelock();
wakelock.acquire();
OnTaskFinishedListener listener = caller -> wakelock.release();
Runnable task =
new PerformInitializeTask(
mUserBackupManagerService,
transports,
/* observer */ null,
listener);
mUserBackupManagerService.getBackupHandler().post(task);
mUserBackupManagerService.initializeTransports(transports, null);
}
}
}

View File

@@ -57,7 +57,6 @@ import com.android.server.backup.BackupAgentTimeoutParameters;
import com.android.server.backup.BackupRestoreTask;
import com.android.server.backup.DataChangedJournal;
import com.android.server.backup.KeyValueBackupJob;
import com.android.server.backup.TransportManager;
import com.android.server.backup.UserBackupManagerService;
import com.android.server.backup.fullbackup.PerformFullTransportBackupTask;
import com.android.server.backup.internal.OnTaskFinishedListener;
@@ -233,7 +232,6 @@ public class KeyValueBackupTask implements BackupRestoreTask, Runnable {
private final UserBackupManagerService mBackupManagerService;
private final PackageManager mPackageManager;
private final TransportManager mTransportManager;
private final TransportClient mTransportClient;
private final BackupAgentTimeoutParameters mAgentTimeoutParameters;
private final KeyValueBackupReporter mReporter;
@@ -300,7 +298,6 @@ public class KeyValueBackupTask implements BackupRestoreTask, Runnable {
boolean userInitiated,
boolean nonIncremental) {
mBackupManagerService = backupManagerService;
mTransportManager = backupManagerService.getTransportManager();
mPackageManager = backupManagerService.getPackageManager();
mTransportClient = transportClient;
mOriginalQueue = queue;