Merge "Filter package visibility in checkExistsAndEnforceCannotModifyImmutablyRestrictedPermission()." into sc-dev am: 4c2c1530bf am: e9d7139c21
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14390030 Change-Id: Ied06fd4e586d05618754131968797f3dee791912
This commit is contained in:
@@ -1216,6 +1216,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);
|
||||
@@ -1223,15 +1224,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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user