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 a6d836ba8ef1..e8f12767d5c6 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -5791,8 +5791,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( |