Loading services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +4 −11 Original line number Diff line number Diff line Loading @@ -8076,15 +8076,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 Loading Loading @@ -8144,7 +8136,6 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { } } private void toggleBackupServiceActive(int userId, boolean makeActive) { long ident = mInjector.binderClearCallingIdentity(); try { Loading @@ -8153,7 +8144,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); } Loading Loading @@ -8204,6 +8196,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { mOwners.removeProfileOwner(userId); mOwners.writeProfileOwner(userId); deleteTransferOwnershipBundleLocked(userId); toggleBackupServiceActive(userId, true); } @Override Loading services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java +31 −4 Original line number Diff line number Diff line Loading @@ -912,10 +912,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)); Loading Loading @@ -1144,6 +1140,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); Loading Loading
services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +4 −11 Original line number Diff line number Diff line Loading @@ -8076,15 +8076,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 Loading Loading @@ -8144,7 +8136,6 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { } } private void toggleBackupServiceActive(int userId, boolean makeActive) { long ident = mInjector.binderClearCallingIdentity(); try { Loading @@ -8153,7 +8144,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); } Loading Loading @@ -8204,6 +8196,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { mOwners.removeProfileOwner(userId); mOwners.writeProfileOwner(userId); deleteTransferOwnershipBundleLocked(userId); toggleBackupServiceActive(userId, true); } @Override Loading
services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java +31 −4 Original line number Diff line number Diff line Loading @@ -912,10 +912,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)); Loading Loading @@ -1144,6 +1140,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); Loading