diff options
| -rw-r--r-- | services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index a253f778744a..866d6503960e 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -5788,8 +5788,9 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { public boolean isAlwaysOnVpnLockdownEnabled(ComponentName admin) throws SecurityException { Objects.requireNonNull(admin, "ComponentName is null"); - final CallerIdentity caller = getCallerIdentity(admin); - Preconditions.checkCallAuthorization(isDeviceOwner(caller) || isProfileOwner(caller) + final CallerIdentity caller = getNonPrivilegedOrAdminCallerIdentity(admin); + Preconditions.checkCallAuthorization((caller.hasAdminComponent() + && (isDeviceOwner(caller) || isProfileOwner(caller))) || hasCallingPermission(PERMISSION_MAINLINE_NETWORK_STACK)); return mInjector.binderWithCleanCallingIdentity( |