Revert the mandatory backups feature.
Bug: 79736299
Test: make RunFrameworksServicesRoboTests
Test: cts-tradefed run cts -m CtsBackupHostTestCase
Change-Id: I1209174c9f6aa794c7ca67f4a8737c0589d5fd69
diff --git a/config/boot-image-profile.txt b/config/boot-image-profile.txt
index 04b33b1..08b4705 100644
--- a/config/boot-image-profile.txt
+++ b/config/boot-image-profile.txt
@@ -15605,7 +15605,6 @@
HSPLandroid/app/admin/IDevicePolicyManager;->getLockTaskPackages(Landroid/content/ComponentName;)[Ljava/lang/String;
HSPLandroid/app/admin/IDevicePolicyManager;->getLongSupportMessage(Landroid/content/ComponentName;)Ljava/lang/CharSequence;
HSPLandroid/app/admin/IDevicePolicyManager;->getLongSupportMessageForUser(Landroid/content/ComponentName;I)Ljava/lang/CharSequence;
-HSPLandroid/app/admin/IDevicePolicyManager;->getMandatoryBackupTransport()Landroid/content/ComponentName;
HSPLandroid/app/admin/IDevicePolicyManager;->getMaximumFailedPasswordsForWipe(Landroid/content/ComponentName;IZ)I
HSPLandroid/app/admin/IDevicePolicyManager;->getMaximumTimeToLock(Landroid/content/ComponentName;IZ)J
HSPLandroid/app/admin/IDevicePolicyManager;->getMeteredDataDisabledPackages(Landroid/content/ComponentName;)Ljava/util/List;
@@ -15747,7 +15746,6 @@
HSPLandroid/app/admin/IDevicePolicyManager;->setLockTaskPackages(Landroid/content/ComponentName;[Ljava/lang/String;)V
HSPLandroid/app/admin/IDevicePolicyManager;->setLogoutEnabled(Landroid/content/ComponentName;Z)V
HSPLandroid/app/admin/IDevicePolicyManager;->setLongSupportMessage(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
-HSPLandroid/app/admin/IDevicePolicyManager;->setMandatoryBackupTransport(Landroid/content/ComponentName;Landroid/content/ComponentName;)Z
HSPLandroid/app/admin/IDevicePolicyManager;->setMasterVolumeMuted(Landroid/content/ComponentName;Z)V
HSPLandroid/app/admin/IDevicePolicyManager;->setMaximumFailedPasswordsForWipe(Landroid/content/ComponentName;IZ)V
HSPLandroid/app/admin/IDevicePolicyManager;->setMaximumTimeToLock(Landroid/content/ComponentName;JZ)V
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index d1ecf1e..bd7a2dd 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -1183,14 +1183,6 @@
public static final String POLICY_DISABLE_SCREEN_CAPTURE = "policy_disable_screen_capture";
/**
- * Constant to indicate the feature of mandatory backups. Used as argument to
- * {@link #createAdminSupportIntent(String)}.
- * @see #setMandatoryBackupTransport(ComponentName, ComponentName)
- * @hide
- */
- public static final String POLICY_MANDATORY_BACKUPS = "policy_mandatory_backups";
-
- /**
* Constant to indicate the feature of suspending app. Use it as the value of
* {@link #EXTRA_RESTRICTION}.
* @hide
@@ -1200,8 +1192,7 @@
/**
* A String indicating a specific restricted feature. Can be a user restriction from the
* {@link UserManager}, e.g. {@link UserManager#DISALLOW_ADJUST_VOLUME}, or one of the values
- * {@link #POLICY_DISABLE_CAMERA}, {@link #POLICY_DISABLE_SCREEN_CAPTURE} or
- * {@link #POLICY_MANDATORY_BACKUPS}.
+ * {@link #POLICY_DISABLE_CAMERA} or {@link #POLICY_DISABLE_SCREEN_CAPTURE}.
* @see #createAdminSupportIntent(String)
* @hide
*/
@@ -6919,7 +6910,7 @@
* @param restriction Indicates for which feature the dialog should be displayed. Can be a
* user restriction from {@link UserManager}, e.g.
* {@link UserManager#DISALLOW_ADJUST_VOLUME}, or one of the constants
- * {@link #POLICY_DISABLE_CAMERA}, {@link #POLICY_DISABLE_SCREEN_CAPTURE}.
+ * {@link #POLICY_DISABLE_CAMERA} or {@link #POLICY_DISABLE_SCREEN_CAPTURE}.
* @return Intent An intent to be used to start the dialog-activity if the restriction is
* set by an admin, or null if the restriction does not exist or no admin set it.
*/
@@ -8917,55 +8908,6 @@
}
/**
- * Makes backups mandatory and enforces the usage of the specified backup transport.
- *
- * <p>When a {@code null} backup transport is specified, backups are made optional again.
- * <p>Only device owner can call this method.
- * <p>If backups were disabled and a non-null backup transport {@link ComponentName} is
- * specified, backups will be enabled.
- * <p> If the backup service is disabled after the mandatory backup transport has been set, the
- * mandatory backup transport is cleared.
- *
- * <p>NOTE: The method shouldn't be called on the main thread.
- *
- * @param admin admin Which {@link DeviceAdminReceiver} this request is associated with.
- * @param backupTransportComponent The backup transport layer to be used for mandatory backups.
- * @return {@code true} if the backup transport was successfully set; {@code false} otherwise.
- * @throws SecurityException if {@code admin} is not a device owner.
- * @hide
- */
- @WorkerThread
- public boolean setMandatoryBackupTransport(
- @NonNull ComponentName admin,
- @Nullable ComponentName backupTransportComponent) {
- throwIfParentInstance("setMandatoryBackupTransport");
- try {
- return mService.setMandatoryBackupTransport(admin, backupTransportComponent);
- } catch (RemoteException re) {
- throw re.rethrowFromSystemServer();
- }
- }
-
- /**
- * Returns the backup transport which has to be used for backups if backups are mandatory or
- * {@code null} if backups are not mandatory.
- *
- * @return a {@link ComponentName} of the backup transport layer to be used if backups are
- * mandatory or {@code null} if backups are not mandatory.
- * @hide
- */
- @UnsupportedAppUsage
- public ComponentName getMandatoryBackupTransport() {
- throwIfParentInstance("getMandatoryBackupTransport");
- try {
- return mService.getMandatoryBackupTransport();
- } catch (RemoteException re) {
- throw re.rethrowFromSystemServer();
- }
- }
-
-
- /**
* Called by a device owner to control the network logging feature.
*
* <p> Network logs contain DNS lookup and connect() library call events. The following library
diff --git a/core/java/android/app/admin/IDevicePolicyManager.aidl b/core/java/android/app/admin/IDevicePolicyManager.aidl
index 6a5f3de..35ea250 100644
--- a/core/java/android/app/admin/IDevicePolicyManager.aidl
+++ b/core/java/android/app/admin/IDevicePolicyManager.aidl
@@ -362,8 +362,6 @@
void setBackupServiceEnabled(in ComponentName admin, boolean enabled);
boolean isBackupServiceEnabled(in ComponentName admin);
- boolean setMandatoryBackupTransport(in ComponentName admin, in ComponentName backupTransportComponent);
- ComponentName getMandatoryBackupTransport();
void setNetworkLoggingEnabled(in ComponentName admin, boolean enabled);
boolean isNetworkLoggingEnabled(in ComponentName admin);
diff --git a/core/java/android/app/backup/IBackupManager.aidl b/core/java/android/app/backup/IBackupManager.aidl
index 1c55d8a..3e20748 100644
--- a/core/java/android/app/backup/IBackupManager.aidl
+++ b/core/java/android/app/backup/IBackupManager.aidl
@@ -299,8 +299,7 @@
*
* @param transport ComponentName of the service hosting the transport. This is different from
* the transport's name that is returned by {@link BackupTransport#name()}.
- * @param listener A listener object to get a callback on the transport being selected. It may
- * be {@code null}.
+ * @param listener A listener object to get a callback on the transport being selected.
*/
void selectBackupTransportAsync(in ComponentName transport, ISelectBackupTransportCallback listener);
diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java
index c26ac17..1b97926 100644
--- a/services/backup/java/com/android/server/backup/BackupManagerService.java
+++ b/services/backup/java/com/android/server/backup/BackupManagerService.java
@@ -698,8 +698,6 @@
@GuardedBy("mQueueLock")
private ArrayList<FullBackupEntry> mFullBackupQueue;
- private BackupPolicyEnforcer mBackupPolicyEnforcer;
-
// Utility: build a new random integer token. The low bits are the ordinal of the
// operation for near-time uniqueness, and the upper bits are random for app-
// side unpredictability.
@@ -899,8 +897,6 @@
// Power management
mWakelock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "*backup*");
-
- mBackupPolicyEnforcer = new BackupPolicyEnforcer(context);
}
private void initPackageTracking() {
@@ -2827,10 +2823,6 @@
public void setBackupEnabled(boolean enable) {
mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
"setBackupEnabled");
- if (!enable && mBackupPolicyEnforcer.getMandatoryBackupTransport() != null) {
- Slog.w(TAG, "Cannot disable backups when the mandatory backups policy is active.");
- return;
- }
Slog.i(TAG, "Backup enabled => " + enable);
@@ -3085,12 +3077,6 @@
mContext.enforceCallingOrSelfPermission(
android.Manifest.permission.BACKUP, "selectBackupTransport");
- if (!isAllowedByMandatoryBackupTransportPolicy(transportName)) {
- // Don't change the transport if it is not allowed.
- Slog.w(TAG, "Failed to select transport - disallowed by device owner policy.");
- return mTransportManager.getCurrentTransportName();
- }
-
final long oldId = Binder.clearCallingIdentity();
try {
String previousTransportName = mTransportManager.selectTransport(transportName);
@@ -3105,20 +3091,10 @@
@Override
public void selectBackupTransportAsync(
- ComponentName transportComponent, @Nullable ISelectBackupTransportCallback listener) {
+ ComponentName transportComponent, ISelectBackupTransportCallback listener) {
mContext.enforceCallingOrSelfPermission(
android.Manifest.permission.BACKUP, "selectBackupTransportAsync");
- if (!isAllowedByMandatoryBackupTransportPolicy(transportComponent)) {
- try {
- if (listener != null) {
- Slog.w(TAG, "Failed to select transport - disallowed by device owner policy.");
- listener.onFailure(BackupManager.ERROR_BACKUP_NOT_ALLOWED);
- }
- } catch (RemoteException e) {
- Slog.e(TAG, "ISelectBackupTransportCallback listener not available");
- }
- return;
- }
+
final long oldId = Binder.clearCallingIdentity();
try {
String transportString = transportComponent.flattenToShortString();
@@ -3140,12 +3116,10 @@
}
try {
- if (listener != null) {
- if (transportName != null) {
- listener.onSuccess(transportName);
- } else {
- listener.onFailure(result);
- }
+ if (transportName != null) {
+ listener.onSuccess(transportName);
+ } else {
+ listener.onFailure(result);
}
} catch (RemoteException e) {
Slog.e(TAG, "ISelectBackupTransportCallback listener not available");
@@ -3156,38 +3130,6 @@
}
}
- /**
- * Returns if the specified transport can be set as the current transport without violating the
- * mandatory backup transport policy.
- */
- private boolean isAllowedByMandatoryBackupTransportPolicy(String transportName) {
- ComponentName mandatoryBackupTransport = mBackupPolicyEnforcer.getMandatoryBackupTransport();
- if (mandatoryBackupTransport == null) {
- return true;
- }
- final String mandatoryBackupTransportName;
- try {
- mandatoryBackupTransportName =
- mTransportManager.getTransportName(mandatoryBackupTransport);
- } catch (TransportNotRegisteredException e) {
- Slog.e(TAG, "mandatory backup transport not registered!");
- return false;
- }
- return TextUtils.equals(mandatoryBackupTransportName, transportName);
- }
-
- /**
- * Returns if the specified transport can be set as the current transport without violating the
- * mandatory backup transport policy.
- */
- private boolean isAllowedByMandatoryBackupTransportPolicy(ComponentName transport) {
- ComponentName mandatoryBackupTransport = mBackupPolicyEnforcer.getMandatoryBackupTransport();
- if (mandatoryBackupTransport == null) {
- return true;
- }
- return mandatoryBackupTransport.equals(transport);
- }
-
private void updateStateForTransport(String newTransportName) {
// Publish the name change
Settings.Secure.putString(mContext.getContentResolver(),
diff --git a/services/backup/java/com/android/server/backup/BackupPolicyEnforcer.java b/services/backup/java/com/android/server/backup/BackupPolicyEnforcer.java
deleted file mode 100644
index 158084a..0000000
--- a/services/backup/java/com/android/server/backup/BackupPolicyEnforcer.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.android.server.backup;
-
-import android.app.admin.DevicePolicyManager;
-import android.content.ComponentName;
-import android.content.Context;
-
-import com.android.internal.annotations.VisibleForTesting;
-
-/**
- * A helper class to decouple this service from {@link DevicePolicyManager} in order to improve
- * testability.
- */
-@VisibleForTesting
-public class BackupPolicyEnforcer {
- private DevicePolicyManager mDevicePolicyManager;
-
- public BackupPolicyEnforcer(Context context) {
- mDevicePolicyManager =
- (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
- }
-
- public ComponentName getMandatoryBackupTransport() {
- return mDevicePolicyManager.getMandatoryBackupTransport();
- }
-}
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index a1132d7..0ca0835 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -114,7 +114,6 @@
import android.app.admin.SystemUpdateInfo;
import android.app.admin.SystemUpdatePolicy;
import android.app.backup.IBackupManager;
-import android.app.backup.ISelectBackupTransportCallback;
import android.app.trust.TrustManager;
import android.app.usage.UsageStatsManagerInternal;
import android.content.BroadcastReceiver;
@@ -262,7 +261,6 @@
import java.util.Map.Entry;
import java.util.Objects;
import java.util.Set;
-import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Function;
@@ -895,7 +893,6 @@
private static final String ATTR_LAST_NETWORK_LOGGING_NOTIFICATION = "last-notification";
private static final String ATTR_NUM_NETWORK_LOGGING_NOTIFICATIONS = "num-notifications";
private static final String TAG_IS_LOGOUT_ENABLED = "is_logout_enabled";
- private static final String TAG_MANDATORY_BACKUP_TRANSPORT = "mandatory_backup_transport";
private static final String TAG_START_USER_SESSION_MESSAGE = "start_user_session_message";
private static final String TAG_END_USER_SESSION_MESSAGE = "end_user_session_message";
private static final String TAG_METERED_DATA_DISABLED_PACKAGES
@@ -1016,10 +1013,6 @@
// Default title of confirm credentials screen
String organizationName = null;
- // The component name of the backup transport which has to be used if backups are mandatory
- // or null if backups are not mandatory.
- ComponentName mandatoryBackupTransport = null;
-
// Message for user switcher
String startUserSessionMessage = null;
String endUserSessionMessage = null;
@@ -1283,11 +1276,6 @@
out.attribute(null, ATTR_VALUE, Boolean.toString(isLogoutEnabled));
out.endTag(null, TAG_IS_LOGOUT_ENABLED);
}
- if (mandatoryBackupTransport != null) {
- out.startTag(null, TAG_MANDATORY_BACKUP_TRANSPORT);
- out.attribute(null, ATTR_VALUE, mandatoryBackupTransport.flattenToString());
- out.endTag(null, TAG_MANDATORY_BACKUP_TRANSPORT);
- }
if (startUserSessionMessage != null) {
out.startTag(null, TAG_START_USER_SESSION_MESSAGE);
out.text(startUserSessionMessage);
@@ -1476,9 +1464,6 @@
} else if (TAG_IS_LOGOUT_ENABLED.equals(tag)) {
isLogoutEnabled = Boolean.parseBoolean(
parser.getAttributeValue(null, ATTR_VALUE));
- } else if (TAG_MANDATORY_BACKUP_TRANSPORT.equals(tag)) {
- mandatoryBackupTransport = ComponentName.unflattenFromString(
- parser.getAttributeValue(null, ATTR_VALUE));
} else if (TAG_START_USER_SESSION_MESSAGE.equals(tag)) {
type = parser.next();
if (type == XmlPullParser.TEXT) {
@@ -10538,8 +10523,7 @@
final int userId = UserHandle.getUserId(uid);
Intent intent = null;
if (DevicePolicyManager.POLICY_DISABLE_CAMERA.equals(restriction) ||
- DevicePolicyManager.POLICY_DISABLE_SCREEN_CAPTURE.equals(restriction) ||
- DevicePolicyManager.POLICY_MANDATORY_BACKUPS.equals(restriction)) {
+ DevicePolicyManager.POLICY_DISABLE_SCREEN_CAPTURE.equals(restriction)) {
synchronized (getLockObject()) {
final DevicePolicyData policy = getUserData(userId);
final int N = policy.mAdminList.size();
@@ -10548,9 +10532,7 @@
if ((admin.disableCamera &&
DevicePolicyManager.POLICY_DISABLE_CAMERA.equals(restriction)) ||
(admin.disableScreenCapture && DevicePolicyManager
- .POLICY_DISABLE_SCREEN_CAPTURE.equals(restriction)) ||
- (admin.mandatoryBackupTransport != null && DevicePolicyManager
- .POLICY_MANDATORY_BACKUPS.equals(restriction))) {
+ .POLICY_DISABLE_SCREEN_CAPTURE.equals(restriction))) {
intent = createShowAdminSupportIntent(admin.info.getComponent(), userId);
break;
}
@@ -11960,12 +11942,7 @@
}
Preconditions.checkNotNull(admin);
synchronized (getLockObject()) {
- ActiveAdmin activeAdmin = getActiveAdminForCallerLocked(
- admin, DeviceAdminInfo.USES_POLICY_DEVICE_OWNER);
- if (!enabled) {
- activeAdmin.mandatoryBackupTransport = null;
- saveSettingsLocked(UserHandle.USER_SYSTEM);
- }
+ getActiveAdminForCallerLocked(admin, DeviceAdminInfo.USES_POLICY_DEVICE_OWNER);
}
final long ident = mInjector.binderClearCallingIdentity();
@@ -12000,87 +11977,6 @@
}
@Override
- public boolean setMandatoryBackupTransport(
- ComponentName admin,
- ComponentName backupTransportComponent) {
- if (!mHasFeature) {
- return false;
- }
- Preconditions.checkNotNull(admin);
- enforceDeviceOwner(admin);
-
- final int callingUid = mInjector.binderGetCallingUid();
- final AtomicBoolean success = new AtomicBoolean(false);
- final CountDownLatch countDownLatch = new CountDownLatch(1);
- final ISelectBackupTransportCallback selectBackupTransportCallbackInternal =
- new ISelectBackupTransportCallback.Stub() {
- public void onSuccess(String transportName) {
- saveMandatoryBackupTransport(admin, callingUid, backupTransportComponent);
- success.set(true);
- countDownLatch.countDown();
- }
-
- public void onFailure(int reason) {
- countDownLatch.countDown();
- }
- };
- final long identity = mInjector.binderClearCallingIdentity();
- try {
- IBackupManager ibm = mInjector.getIBackupManager();
- if (ibm != null && backupTransportComponent != null) {
- if (!ibm.isBackupServiceActive(UserHandle.USER_SYSTEM)) {
- ibm.setBackupServiceActive(UserHandle.USER_SYSTEM, true);
- }
- ibm.selectBackupTransportAsync(
- backupTransportComponent, selectBackupTransportCallbackInternal);
- countDownLatch.await();
- if (success.get()) {
- ibm.setBackupEnabled(true);
- }
- } else if (backupTransportComponent == null) {
- saveMandatoryBackupTransport(admin, callingUid, backupTransportComponent);
- success.set(true);
- }
- } catch (RemoteException e) {
- throw new IllegalStateException("Failed to set mandatory backup transport.", e);
- } catch (InterruptedException e) {
- throw new IllegalStateException("Failed to set mandatory backup transport.", e);
- } finally {
- mInjector.binderRestoreCallingIdentity(identity);
- }
- return success.get();
- }
-
- private void saveMandatoryBackupTransport(
- ComponentName admin, int callingUid, ComponentName backupTransportComponent) {
- synchronized (getLockObject()) {
- ActiveAdmin activeAdmin =
- getActiveAdminWithPolicyForUidLocked(
- admin,
- DeviceAdminInfo.USES_POLICY_DEVICE_OWNER,
- callingUid);
- if (!Objects.equals(backupTransportComponent,
- activeAdmin.mandatoryBackupTransport)) {
- activeAdmin.mandatoryBackupTransport =
- backupTransportComponent;
- saveSettingsLocked(UserHandle.USER_SYSTEM);
- }
- }
- }
-
- @Override
- public ComponentName getMandatoryBackupTransport() {
- if (!mHasFeature) {
- return null;
- }
- synchronized (getLockObject()) {
- ActiveAdmin activeAdmin = getDeviceOwnerAdminLocked();
- return activeAdmin == null ? null : activeAdmin.mandatoryBackupTransport;
- }
- }
-
-
- @Override
public boolean bindDeviceAdminServiceAsUser(
@NonNull ComponentName admin, @NonNull IApplicationThread caller,
@Nullable IBinder activtiyToken, @NonNull Intent serviceIntent,
diff --git a/services/robotests/src/com/android/server/backup/BackupManagerServiceTest.java b/services/robotests/src/com/android/server/backup/BackupManagerServiceTest.java
index 91a8857..57ebbfc 100644
--- a/services/robotests/src/com/android/server/backup/BackupManagerServiceTest.java
+++ b/services/robotests/src/com/android/server/backup/BackupManagerServiceTest.java
@@ -52,7 +52,6 @@
import com.android.server.testing.FrameworkRobolectricTestRunner;
import com.android.server.testing.SystemLoaderPackages;
import com.android.server.testing.shadows.ShadowAppBackupUtils;
-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.ShadowKeyValueBackupTask;
@@ -73,10 +72,7 @@
import org.robolectric.shadows.ShadowSettings;
@RunWith(FrameworkRobolectricTestRunner.class)
-@Config(
- manifest = Config.NONE,
- sdk = 26,
- shadows = {ShadowAppBackupUtils.class, ShadowBackupPolicyEnforcer.class})
+@Config(manifest = Config.NONE, sdk = 26, shadows = {ShadowAppBackupUtils.class})
@SystemLoaderPackages({"com.android.server.backup"})
@Presubmit
public class BackupManagerServiceTest {
@@ -118,15 +114,12 @@
mBaseStateDir = new File(cacheDir, "base_state");
// Corresponds to /cache/backup_stage
mDataDir = new File(cacheDir, "data");
-
- ShadowBackupPolicyEnforcer.setMandatoryBackupTransport(null);
}
@After
public void tearDown() throws Exception {
mBackupThread.quit();
ShadowAppBackupUtils.reset();
- ShadowBackupPolicyEnforcer.setMandatoryBackupTransport(null);
}
/* Tests for destination string */
@@ -252,7 +245,6 @@
private ComponentName mNewTransportComponent;
private TransportData mNewTransport;
private TransportMock mNewTransportMock;
- private ComponentName mOldTransportComponent;
private TransportData mOldTransport;
private TransportMock mOldTransportMock;
@@ -260,7 +252,6 @@
mNewTransport = backupTransport();
mNewTransportComponent = mNewTransport.getTransportComponent();
mOldTransport = d2dTransport();
- mOldTransportComponent = mOldTransport.getTransportComponent();
List<TransportMock> transportMocks =
setUpTransports(mTransportManager, mNewTransport, mOldTransport, localTransport());
mNewTransportMock = transportMocks.get(0);
@@ -314,42 +305,6 @@
}
@Test
- public void testSelectBackupTransportAsync_whenMandatoryTransport() throws Exception {
- setUpForSelectTransport();
- ShadowBackupPolicyEnforcer.setMandatoryBackupTransport(mNewTransportComponent);
- mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
- when(mTransportManager.registerAndSelectTransport(eq(mNewTransportComponent)))
- .thenReturn(BackupManager.SUCCESS);
- ISelectBackupTransportCallback callback = mock(ISelectBackupTransportCallback.class);
- BackupManagerService backupManagerService = createInitializedBackupManagerService();
-
- backupManagerService.selectBackupTransportAsync(mNewTransportComponent, callback);
-
- mShadowBackupLooper.runToEndOfTasks();
- assertThat(getSettingsTransport()).isEqualTo(mNewTransport.transportName);
- verify(callback).onSuccess(eq(mNewTransport.transportName));
- verify(mTransportManager)
- .disposeOfTransportClient(eq(mNewTransportMock.transportClient), any());
- }
-
- @Test
- public void testSelectBackupTransportAsync_whenOtherThanMandatoryTransport() throws Exception {
- setUpForSelectTransport();
- ShadowBackupPolicyEnforcer.setMandatoryBackupTransport(mOldTransportComponent);
- mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
- when(mTransportManager.registerAndSelectTransport(eq(mNewTransportComponent)))
- .thenReturn(BackupManager.SUCCESS);
- ISelectBackupTransportCallback callback = mock(ISelectBackupTransportCallback.class);
- BackupManagerService backupManagerService = createInitializedBackupManagerService();
-
- backupManagerService.selectBackupTransportAsync(mNewTransportComponent, callback);
-
- mShadowBackupLooper.runToEndOfTasks();
- assertThat(getSettingsTransport()).isNotEqualTo(mNewTransport.transportName);
- verify(callback).onFailure(eq(BackupManager.ERROR_BACKUP_NOT_ALLOWED));
- }
-
- @Test
public void testSelectBackupTransportAsync_whenRegistrationFails() throws Exception {
setUpForSelectTransport();
mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
diff --git a/services/robotests/src/com/android/server/testing/shadows/ShadowBackupPolicyEnforcer.java b/services/robotests/src/com/android/server/testing/shadows/ShadowBackupPolicyEnforcer.java
deleted file mode 100644
index e76b9d1..0000000
--- a/services/robotests/src/com/android/server/testing/shadows/ShadowBackupPolicyEnforcer.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.android.server.testing.shadows;
-
-import android.annotation.Nullable;
-import android.content.ComponentName;
-
-import com.android.server.backup.BackupPolicyEnforcer;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-
-@Implements(BackupPolicyEnforcer.class)
-public class ShadowBackupPolicyEnforcer {
- @Nullable private static ComponentName sMandatoryBackupTransport;
-
- public static void setMandatoryBackupTransport(
- @Nullable ComponentName backupTransportComponent) {
- sMandatoryBackupTransport = backupTransportComponent;
- }
-
- @Implementation
- @Nullable
- public ComponentName getMandatoryBackupTransport() {
- return sMandatoryBackupTransport;
- }
-}
diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
index d94a5f345..16b127c 100644
--- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
@@ -57,7 +57,6 @@
import android.app.admin.DevicePolicyManager;
import android.app.admin.DevicePolicyManagerInternal;
import android.app.admin.PasswordMetrics;
-import android.app.backup.ISelectBackupTransportCallback;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Intent;
@@ -2251,8 +2250,8 @@
assertEquals(UserManager.DISALLOW_ADJUST_VOLUME,
intent.getStringExtra(DevicePolicyManager.EXTRA_RESTRICTION));
- // Try with POLICY_DISABLE_CAMERA, POLICY_DISABLE_SCREEN_CAPTURE and
- // POLICY_MANDATORY_BACKUPS, which are not user restrictions
+ // Try with POLICY_DISABLE_CAMERA and POLICY_DISABLE_SCREEN_CAPTURE, which are not
+ // user restrictions
// Camera is not disabled
intent = dpm.createAdminSupportIntent(DevicePolicyManager.POLICY_DISABLE_CAMERA);
@@ -2276,34 +2275,6 @@
assertEquals(DevicePolicyManager.POLICY_DISABLE_SCREEN_CAPTURE,
intent.getStringExtra(DevicePolicyManager.EXTRA_RESTRICTION));
- // Make the backup transport selection succeed
- doAnswer(new Answer<Void>() {
- @Override
- public Void answer(InvocationOnMock invocation) throws Throwable {
- ISelectBackupTransportCallback callback =
- (ISelectBackupTransportCallback) invocation.getArguments()[1];
- if (callback != null) {
- callback.onSuccess("");
- }
- return null;
- }
- }).when(getServices().ibackupManager).selectBackupTransportAsync(
- any(ComponentName.class), any(ISelectBackupTransportCallback.class));
-
-
- // Backups are not mandatory
- intent = dpm.createAdminSupportIntent(DevicePolicyManager.POLICY_MANDATORY_BACKUPS);
- assertNull(intent);
-
- // Backups are mandatory
- ComponentName transportComponent = ComponentName.unflattenFromString(
- "android/com.android.internal.backup.LocalTransport");
- dpm.setMandatoryBackupTransport(admin1, transportComponent);
- intent = dpm.createAdminSupportIntent(DevicePolicyManager.POLICY_MANDATORY_BACKUPS);
- assertNotNull(intent);
- assertEquals(DevicePolicyManager.POLICY_MANDATORY_BACKUPS,
- intent.getStringExtra(DevicePolicyManager.EXTRA_RESTRICTION));
-
// Same checks for different user
mContext.binder.callingUid = DpmMockContext.CALLER_UID;
// Camera should be disabled by device owner