From 0433dd20b7707958d7f6756f7061f8d2e0757d89 Mon Sep 17 00:00:00 2001 From: paulhu Date: Mon, 19 Jul 2021 16:43:40 +0800 Subject: [PATCH] Temporarily change uid to appId Due to b/192431153, PermissionMonitor only apply permission to app id which is listed in settings. Thus, temporarily change uid to appId. Bug: 192116643 Test: atest ConnectivityManagerTest#testUidsAllowedOnRestricted\ Networks with system & secondary user. Change-Id: Iadec66344d88bd80170cd5441270b768cdbe0917 --- .../android/server/connectivity/PermissionMonitor.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/service/src/com/android/server/connectivity/PermissionMonitor.java b/service/src/com/android/server/connectivity/PermissionMonitor.java index 512d76772d..b7afcba91a 100755 --- a/service/src/com/android/server/connectivity/PermissionMonitor.java +++ b/service/src/com/android/server/connectivity/PermissionMonitor.java @@ -281,7 +281,14 @@ public class PermissionMonitor { @VisibleForTesting synchronized void updateUidsAllowedOnRestrictedNetworks(final Set uids) { mUidsAllowedOnRestrictedNetworks.clear(); - mUidsAllowedOnRestrictedNetworks.addAll(uids); + // This is necessary for the app id to match in isUidAllowedOnRestrictedNetworks, and will + // grant the permission to all uids associated with the app ID. This is safe even if the app + // is only installed on some users because the uid cannot match some other app – this uid is + // in effect not installed and can't be run. + // TODO (b/192431153): Change appIds back to uids. + for (int uid : uids) { + mUidsAllowedOnRestrictedNetworks.add(UserHandle.getAppId(uid)); + } } @VisibleForTesting