Merge "Support network slicing permission check in multi-user environment" into main

This commit is contained in:
Treehugger Robot 2023-12-07 12:32:18 +00:00 • committed by Gerrit Code Review
commit 38f871c8e0

View file

@ -7654,7 +7654,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
}
private void enforceRequestCapabilitiesDeclaration(@NonNull final String callerPackageName,
@NonNull final NetworkCapabilities networkCapabilities) {
@NonNull final NetworkCapabilities networkCapabilities, int callingUid) {
// This check is added to fix the linter error for "current min is 30", which is not going
// to happen because Connectivity service always run in S+.
if (!mDeps.isAtLeastS()) {
@ -7668,7 +7668,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
applicationNetworkCapabilities = mSelfCertifiedCapabilityCache.get(
callerPackageName);
if (applicationNetworkCapabilities == null) {
final PackageManager packageManager = mContext.getPackageManager();
final PackageManager packageManager =
mContext.createContextAsUser(UserHandle.getUserHandleForUid(
callingUid), 0 /* flags */).getPackageManager();
final PackageManager.Property networkSliceProperty = packageManager.getProperty(
ConstantsShim.PROPERTY_SELF_CERTIFIED_NETWORK_CAPABILITIES,
callerPackageName
@ -7700,7 +7702,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
String callingPackageName, String callingAttributionTag, final int callingUid) {
if (shouldCheckCapabilitiesDeclaration(networkCapabilities, callingUid,
callingPackageName)) {
enforceRequestCapabilitiesDeclaration(callingPackageName, networkCapabilities);
enforceRequestCapabilitiesDeclaration(callingPackageName, networkCapabilities,
callingUid);
}
if (networkCapabilities.hasCapability(NET_CAPABILITY_NOT_RESTRICTED) == false) {
// For T+ devices, callers with carrier privilege could request with CBS capabilities.