Clear caller identity before calls to PlatformCompat
This is a pre-emptive fix for http://b/142942524 before the compat change permissions are re-added. Bug: 142942524 Test: atest DevicePolicyManagerTest Test: 1. Install TestDPC via adb 2. Invoke "Set up Te..." from the launcher to create a work profile and follow "next" button and select "skip adding an account" 3. Select TestDPC from the "work" tab of the list of all apps in launcher. 4. Using built-in search look for "Password constraints" and tap it. 5. tap "Minimum password length" and try to set it to 5. Before change: Neither user 1010193 nor current process has android.permission.INTERACT_ACROSS_USERS. After Change: password quality should be at least 131072 for setPasswordMinimumLength Change-Id: I026b15f0c2562293402bb8de55b0c63a4bb22a85
This commit is contained in:
@@ -4680,12 +4680,15 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
||||
|
||||
private void ensureMinimumQuality(
|
||||
int userId, ActiveAdmin admin, int minimumQuality, String operation) {
|
||||
if (admin.mPasswordPolicy.quality < minimumQuality
|
||||
&& passwordQualityInvocationOrderCheckEnabled(admin.info.getPackageName(),
|
||||
userId)) {
|
||||
throw new IllegalStateException(String.format(
|
||||
"password quality should be at least %d for %s", minimumQuality, operation));
|
||||
}
|
||||
mInjector.binderWithCleanCallingIdentity(() -> {
|
||||
if (admin.mPasswordPolicy.quality < minimumQuality
|
||||
&& passwordQualityInvocationOrderCheckEnabled(admin.info.getPackageName(),
|
||||
userId)) {
|
||||
throw new IllegalStateException(String.format(
|
||||
"password quality should be at least %d for %s",
|
||||
minimumQuality, operation));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user