Loading services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +8 −0 Original line number Diff line number Diff line Loading @@ -5396,6 +5396,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } synchronized (this) { enforceCanSetDeviceOwnerLocked(userId); if (getActiveAdminUncheckedLocked(admin, userId) == null) { throw new IllegalArgumentException("Not active admin: " + admin); } // Shutting down backup manager service permanently. long ident = mInjector.binderClearCallingIdentity(); Loading Loading @@ -5571,6 +5574,11 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } synchronized (this) { enforceCanSetProfileOwnerLocked(userHandle); if (getActiveAdminUncheckedLocked(who, userHandle) == null) { throw new IllegalArgumentException("Not active admin: " + who); } mOwners.setProfileOwner(who, ownerName, userHandle); mOwners.writeProfileOwner(userHandle); return true; Loading services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java +6 −1 Original line number Diff line number Diff line Loading @@ -1668,7 +1668,12 @@ public class DevicePolicyManagerTest extends DpmTestBase { // that the test user is not affiliated anymore. dpm.clearProfileOwner(admin2); final ComponentName admin = new ComponentName("test", "test"); markPackageAsInstalled(admin.getPackageName(), null, DpmMockContext.CALLER_USER_HANDLE); setUpPackageManagerForFakeAdmin(admin, DpmMockContext.CALLER_UID, /* enabledSetting =*/ PackageManager.COMPONENT_ENABLED_STATE_ENABLED, /* appTargetSdk = */ null, admin2); dpm.setActiveAdmin(admin, /* refreshing =*/ true, DpmMockContext.CALLER_USER_HANDLE); assertTrue(dpm.setProfileOwner(admin, "owner-name", DpmMockContext.CALLER_USER_HANDLE)); assertFalse(dpm.isAffiliatedUser()); Loading services/tests/servicestests/src/com/android/server/devicepolicy/DpmTestBase.java +23 −3 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.server.devicepolicy; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; Loading Loading @@ -96,12 +97,26 @@ public abstract class DpmTestBase extends AndroidTestCase { protected void setUpPackageManagerForAdmin(ComponentName admin, int packageUid, Integer enabledSetting, Integer appTargetSdk) throws Exception { setUpPackageManagerForFakeAdmin(admin, packageUid, enabledSetting, appTargetSdk, admin); } /** * Set up a component in the mock package manager to be an active admin. * * @param admin ComponentName that's visible to the test code, which doesn't have to exist. * @param copyFromAdmin package information for {@code admin} will be built based on this * component's information. */ protected void setUpPackageManagerForFakeAdmin(ComponentName admin, int packageUid, Integer enabledSetting, Integer appTargetSdk, ComponentName copyFromAdmin) throws Exception { // Set up getApplicationInfo(). final ApplicationInfo ai = DpmTestUtils.cloneParcelable( mRealTestContext.getPackageManager().getApplicationInfo( admin.getPackageName(), copyFromAdmin.getPackageName(), PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS)); ai.enabledSetting = enabledSetting == null Loading @@ -111,6 +126,8 @@ public abstract class DpmTestBase extends AndroidTestCase { ai.targetSdkVersion = appTargetSdk; } ai.uid = packageUid; ai.packageName = admin.getPackageName(); ai.name = admin.getClassName(); doReturn(ai).when(mMockContext.ipackageManager).getApplicationInfo( eq(admin.getPackageName()), Loading @@ -120,7 +137,7 @@ public abstract class DpmTestBase extends AndroidTestCase { // Set up queryBroadcastReceivers(). final Intent resolveIntent = new Intent(); resolveIntent.setComponent(admin); resolveIntent.setComponent(copyFromAdmin); final List<ResolveInfo> realResolveInfo = mRealTestContext.getPackageManager().queryBroadcastReceivers( resolveIntent, Loading @@ -132,7 +149,10 @@ public abstract class DpmTestBase extends AndroidTestCase { realResolveInfo.set(0, DpmTestUtils.cloneParcelable(realResolveInfo.get(0))); // We need to rewrite the UID in the activity info. realResolveInfo.get(0).activityInfo.applicationInfo = ai; final ActivityInfo aci = realResolveInfo.get(0).activityInfo; aci.applicationInfo = ai; aci.packageName = admin.getPackageName(); aci.name = admin.getClassName(); doReturn(realResolveInfo).when(mMockContext.packageManager).queryBroadcastReceiversAsUser( MockUtils.checkIntentComponent(admin), Loading Loading
services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +8 −0 Original line number Diff line number Diff line Loading @@ -5396,6 +5396,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } synchronized (this) { enforceCanSetDeviceOwnerLocked(userId); if (getActiveAdminUncheckedLocked(admin, userId) == null) { throw new IllegalArgumentException("Not active admin: " + admin); } // Shutting down backup manager service permanently. long ident = mInjector.binderClearCallingIdentity(); Loading Loading @@ -5571,6 +5574,11 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } synchronized (this) { enforceCanSetProfileOwnerLocked(userHandle); if (getActiveAdminUncheckedLocked(who, userHandle) == null) { throw new IllegalArgumentException("Not active admin: " + who); } mOwners.setProfileOwner(who, ownerName, userHandle); mOwners.writeProfileOwner(userHandle); return true; Loading
services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java +6 −1 Original line number Diff line number Diff line Loading @@ -1668,7 +1668,12 @@ public class DevicePolicyManagerTest extends DpmTestBase { // that the test user is not affiliated anymore. dpm.clearProfileOwner(admin2); final ComponentName admin = new ComponentName("test", "test"); markPackageAsInstalled(admin.getPackageName(), null, DpmMockContext.CALLER_USER_HANDLE); setUpPackageManagerForFakeAdmin(admin, DpmMockContext.CALLER_UID, /* enabledSetting =*/ PackageManager.COMPONENT_ENABLED_STATE_ENABLED, /* appTargetSdk = */ null, admin2); dpm.setActiveAdmin(admin, /* refreshing =*/ true, DpmMockContext.CALLER_USER_HANDLE); assertTrue(dpm.setProfileOwner(admin, "owner-name", DpmMockContext.CALLER_USER_HANDLE)); assertFalse(dpm.isAffiliatedUser()); Loading
services/tests/servicestests/src/com/android/server/devicepolicy/DpmTestBase.java +23 −3 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.server.devicepolicy; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; Loading Loading @@ -96,12 +97,26 @@ public abstract class DpmTestBase extends AndroidTestCase { protected void setUpPackageManagerForAdmin(ComponentName admin, int packageUid, Integer enabledSetting, Integer appTargetSdk) throws Exception { setUpPackageManagerForFakeAdmin(admin, packageUid, enabledSetting, appTargetSdk, admin); } /** * Set up a component in the mock package manager to be an active admin. * * @param admin ComponentName that's visible to the test code, which doesn't have to exist. * @param copyFromAdmin package information for {@code admin} will be built based on this * component's information. */ protected void setUpPackageManagerForFakeAdmin(ComponentName admin, int packageUid, Integer enabledSetting, Integer appTargetSdk, ComponentName copyFromAdmin) throws Exception { // Set up getApplicationInfo(). final ApplicationInfo ai = DpmTestUtils.cloneParcelable( mRealTestContext.getPackageManager().getApplicationInfo( admin.getPackageName(), copyFromAdmin.getPackageName(), PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS)); ai.enabledSetting = enabledSetting == null Loading @@ -111,6 +126,8 @@ public abstract class DpmTestBase extends AndroidTestCase { ai.targetSdkVersion = appTargetSdk; } ai.uid = packageUid; ai.packageName = admin.getPackageName(); ai.name = admin.getClassName(); doReturn(ai).when(mMockContext.ipackageManager).getApplicationInfo( eq(admin.getPackageName()), Loading @@ -120,7 +137,7 @@ public abstract class DpmTestBase extends AndroidTestCase { // Set up queryBroadcastReceivers(). final Intent resolveIntent = new Intent(); resolveIntent.setComponent(admin); resolveIntent.setComponent(copyFromAdmin); final List<ResolveInfo> realResolveInfo = mRealTestContext.getPackageManager().queryBroadcastReceivers( resolveIntent, Loading @@ -132,7 +149,10 @@ public abstract class DpmTestBase extends AndroidTestCase { realResolveInfo.set(0, DpmTestUtils.cloneParcelable(realResolveInfo.get(0))); // We need to rewrite the UID in the activity info. realResolveInfo.get(0).activityInfo.applicationInfo = ai; final ActivityInfo aci = realResolveInfo.get(0).activityInfo; aci.applicationInfo = ai; aci.packageName = admin.getPackageName(); aci.name = admin.getClassName(); doReturn(realResolveInfo).when(mMockContext.packageManager).queryBroadcastReceiversAsUser( MockUtils.checkIntentComponent(admin), Loading