Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 84c99f33 authored by nathch's avatar nathch
Browse files

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
parent cd87f72f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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));

+1 −14
Original line number Diff line number Diff line
@@ -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);
            }
        }
    }
+0 −3
Original line number Diff line number Diff line
@@ -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;