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:
@@ -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));
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user