Loading services/core/java/com/android/server/pm/permission/AccessCheckDelegate.java +16 −9 Original line number Diff line number Diff line Loading @@ -308,17 +308,23 @@ public interface AccessCheckDelegate extends CheckPermissionDelegate, CheckOpsDe @NonNull String persistentDeviceId, @UserIdInt int userId, @NonNull QuadFunction<String, String, String, Integer, Integer> superImpl) { boolean useShellDelegate; boolean hasOverridePermissionStates; synchronized (mLock) { useShellDelegate = !SHELL_PKG.equals(packageName) && TextUtils.equals(mDelegatePackage, packageName) && isDelegatePermission(permissionName); hasOverridePermissionStates = mOverridePermissionStates != null; } if (!useShellDelegate && mOverridePermissionStates != null) { if (!useShellDelegate && hasOverridePermissionStates) { int uid = LocalServices.getService(PackageManagerInternal.class) .getPackageUid(packageName, 0, userId); if (uid >= 0) { Map<String, Integer> permissionGrants = mOverridePermissionStates.get(uid); synchronized (mLock) { if (mOverridePermissionStates != null) { Map<String, Integer> permissionGrants = mOverridePermissionStates.get(uid); if (permissionGrants != null && permissionGrants.containsKey(permissionName)) { return permissionGrants.get(permissionName); Loading @@ -326,6 +332,7 @@ public interface AccessCheckDelegate extends CheckPermissionDelegate, CheckOpsDe } } } } if (useShellDelegate) { final long identity = Binder.clearCallingIdentity(); Loading Loading
services/core/java/com/android/server/pm/permission/AccessCheckDelegate.java +16 −9 Original line number Diff line number Diff line Loading @@ -308,17 +308,23 @@ public interface AccessCheckDelegate extends CheckPermissionDelegate, CheckOpsDe @NonNull String persistentDeviceId, @UserIdInt int userId, @NonNull QuadFunction<String, String, String, Integer, Integer> superImpl) { boolean useShellDelegate; boolean hasOverridePermissionStates; synchronized (mLock) { useShellDelegate = !SHELL_PKG.equals(packageName) && TextUtils.equals(mDelegatePackage, packageName) && isDelegatePermission(permissionName); hasOverridePermissionStates = mOverridePermissionStates != null; } if (!useShellDelegate && mOverridePermissionStates != null) { if (!useShellDelegate && hasOverridePermissionStates) { int uid = LocalServices.getService(PackageManagerInternal.class) .getPackageUid(packageName, 0, userId); if (uid >= 0) { Map<String, Integer> permissionGrants = mOverridePermissionStates.get(uid); synchronized (mLock) { if (mOverridePermissionStates != null) { Map<String, Integer> permissionGrants = mOverridePermissionStates.get(uid); if (permissionGrants != null && permissionGrants.containsKey(permissionName)) { return permissionGrants.get(permissionName); Loading @@ -326,6 +332,7 @@ public interface AccessCheckDelegate extends CheckPermissionDelegate, CheckOpsDe } } } } if (useShellDelegate) { final long identity = Binder.clearCallingIdentity(); Loading