Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8ffd5114 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Filter package visibility in...

Merge "Filter package visibility in checkExistsAndEnforceCannotModifyImmutablyRestrictedPermission()." into sc-dev am: 4c2c1530 am: 695b2a1b

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14390030

Change-Id: I7b88a9c398e0c38f8823de3e96453ab57d1afd39
parents 3a87db23 695b2a1b
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -1215,6 +1215,7 @@ public class PermissionManagerService extends IPermissionManager.Stub {

    private boolean checkExistsAndEnforceCannotModifyImmutablyRestrictedPermission(
            @NonNull String permName) {
        final String permissionPackageName;
        final boolean isImmutablyRestrictedPermission;
        synchronized (mLock) {
            final Permission bp = mRegistry.getPermission(permName);
@@ -1222,15 +1223,25 @@ public class PermissionManagerService extends IPermissionManager.Stub {
                Slog.w(TAG, "No such permissions: " + permName);
                return false;
            }
            permissionPackageName = bp.getPackageName();
            isImmutablyRestrictedPermission = bp.isHardOrSoftRestricted()
                    && bp.isImmutablyRestricted();
        }

        final int callingUid = getCallingUid();
        final int callingUserId = UserHandle.getUserId(callingUid);
        if (mPackageManagerInt.filterAppAccess(permissionPackageName, callingUid, callingUserId)) {
            EventLog.writeEvent(0x534e4554, "186404356", callingUid, permName);
            return false;
        }

        if (isImmutablyRestrictedPermission && mContext.checkCallingOrSelfPermission(
                Manifest.permission.WHITELIST_RESTRICTED_PERMISSIONS)
                != PackageManager.PERMISSION_GRANTED) {
            throw new SecurityException("Cannot modify allowlisting of an immutably "
                    + "restricted permission: " + permName);
        }

        return true;
    }