Merge "Re-activate backup service after cleaning a profile owner" into qt-qpr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
c1e78426b5
@@ -8058,15 +8058,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
||||
mSecurityLogMonitor.stop();
|
||||
setNetworkLoggingActiveInternal(false);
|
||||
deleteTransferOwnershipBundleLocked(userId);
|
||||
|
||||
try {
|
||||
if (mInjector.getIBackupManager() != null) {
|
||||
// Reactivate backup service.
|
||||
mInjector.getIBackupManager().setBackupServiceActive(UserHandle.USER_SYSTEM, true);
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
throw new IllegalStateException("Failed reactivating backup service.", e);
|
||||
}
|
||||
toggleBackupServiceActive(UserHandle.USER_SYSTEM, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -8126,7 +8118,6 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void toggleBackupServiceActive(int userId, boolean makeActive) {
|
||||
long ident = mInjector.binderClearCallingIdentity();
|
||||
try {
|
||||
@@ -8135,7 +8126,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
||||
.setBackupServiceActive(userId, makeActive);
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
throw new IllegalStateException("Failed deactivating backup service.", e);
|
||||
throw new IllegalStateException(String.format("Failed %s backup service.",
|
||||
makeActive ? "activating" : "deactivating"), e);
|
||||
} finally {
|
||||
mInjector.binderRestoreCallingIdentity(ident);
|
||||
}
|
||||
@@ -8186,6 +8178,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
||||
mOwners.removeProfileOwner(userId);
|
||||
mOwners.writeProfileOwner(userId);
|
||||
deleteTransferOwnershipBundleLocked(userId);
|
||||
toggleBackupServiceActive(userId, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -909,10 +909,6 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
verify(getServices().iactivityManager, times(1)).updateDeviceOwner(
|
||||
eq(admin1.getPackageName()));
|
||||
|
||||
// TODO We should check if the caller has called clearCallerIdentity().
|
||||
verify(getServices().ibackupManager, times(1)).setBackupServiceActive(
|
||||
eq(UserHandle.USER_SYSTEM), eq(false));
|
||||
|
||||
verify(mContext.spiedContext, times(1)).sendBroadcastAsUser(
|
||||
MockUtils.checkIntentAction(DevicePolicyManager.ACTION_DEVICE_OWNER_CHANGED),
|
||||
MockUtils.checkUserHandle(UserHandle.USER_SYSTEM));
|
||||
@@ -1141,6 +1137,37 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
// TODO Check other calls.
|
||||
}
|
||||
|
||||
public void testDeviceOwnerBackupActivateDeactivate() throws Exception {
|
||||
mContext.callerPermissions.add(permission.MANAGE_DEVICE_ADMINS);
|
||||
mContext.callerPermissions.add(permission.MANAGE_PROFILE_AND_DEVICE_OWNERS);
|
||||
|
||||
// Set admin1 as a DA to the secondary user.
|
||||
mContext.binder.callingUid = DpmMockContext.CALLER_SYSTEM_USER_UID;
|
||||
setUpPackageManagerForAdmin(admin1, DpmMockContext.CALLER_SYSTEM_USER_UID);
|
||||
dpm.setActiveAdmin(admin1, /* replace =*/ false);
|
||||
assertTrue(dpm.setDeviceOwner(admin1, "owner-name"));
|
||||
|
||||
verify(getServices().ibackupManager, times(1)).setBackupServiceActive(
|
||||
eq(UserHandle.USER_SYSTEM), eq(false));
|
||||
|
||||
dpm.clearDeviceOwnerApp(admin1.getPackageName());
|
||||
|
||||
verify(getServices().ibackupManager, times(1)).setBackupServiceActive(
|
||||
eq(UserHandle.USER_SYSTEM), eq(true));
|
||||
}
|
||||
|
||||
public void testProfileOwnerBackupActivateDeactivate() throws Exception {
|
||||
setAsProfileOwner(admin1);
|
||||
|
||||
verify(getServices().ibackupManager, times(1)).setBackupServiceActive(
|
||||
eq(DpmMockContext.CALLER_USER_HANDLE), eq(false));
|
||||
|
||||
dpm.clearProfileOwner(admin1);
|
||||
|
||||
verify(getServices().ibackupManager, times(1)).setBackupServiceActive(
|
||||
eq(DpmMockContext.CALLER_USER_HANDLE), eq(true));
|
||||
}
|
||||
|
||||
public void testClearDeviceOwner_fromDifferentUser() throws Exception {
|
||||
mContext.callerPermissions.add(permission.MANAGE_DEVICE_ADMINS);
|
||||
mContext.callerPermissions.add(permission.MANAGE_USERS);
|
||||
|
||||
Reference in New Issue
Block a user