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

Commit 8700a941 authored by Nikhar Agrawal's avatar Nikhar Agrawal Committed by Android (Google) Code Review
Browse files

Merge "Enforce BACKUP permission for BackupManager#excludeKeysFromRestore()" into rvc-dev

parents 34ef20fa 7f87c194
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -3120,6 +3120,8 @@ public class UserBackupManagerService {
     * to the backup agent during restore.
     */
    public void excludeKeysFromRestore(String packageName, List<String> keys) {
        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
                "excludeKeysFromRestore");
        mBackupPreferences.addExcludedKeys(packageName, keys);
    }

+18 −0
Original line number Diff line number Diff line
@@ -85,6 +85,7 @@ import java.io.FileDescriptor;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;

/**
@@ -519,6 +520,23 @@ public class UserBackupManagerServiceTest {
        expectThrows(SecurityException.class, backupManagerService::getCurrentTransportComponent);
    }

    /**
     * Test verifying that {@link UserBackupManagerService#excludeKeysFromRestore(String, List)}
     * throws a {@link SecurityException} if the caller does not have backup permission.
     */
    @Test
    public void testExcludeKeysFromRestore_withoutPermission() throws Exception {
        mShadowContext.denyPermissions(android.Manifest.permission.BACKUP);
        UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks();

        expectThrows(
                SecurityException.class,
                () ->
                        backupManagerService.excludeKeysFromRestore(
                                PACKAGE_1,
                                new ArrayList<String>(){}));
    }

    /* Tests for updating transport attributes */

    private static final int PACKAGE_UID = 10;