From 7bbffbd7d8227a9935232a9b3ec109b1110bf155 Mon Sep 17 00:00:00 2001 From: paulhu Date: Fri, 26 Nov 2021 16:14:47 +0800 Subject: [PATCH] Simplify the permission update conditions Bug: 192431153 Test: atest FrameworksNetTests Change-Id: Ibef4f3b26932a3d12959e2e1d585e184a4ec73cb --- .../connectivity/PermissionMonitor.java | 29 +++++++------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/service/src/com/android/server/connectivity/PermissionMonitor.java b/service/src/com/android/server/connectivity/PermissionMonitor.java index 67846bc93c..439db89166 100755 --- a/service/src/com/android/server/connectivity/PermissionMonitor.java +++ b/service/src/com/android/server/connectivity/PermissionMonitor.java @@ -648,24 +648,17 @@ public class PermissionMonitor { + ", nPerm=(" + permissionToString(permission) + "/" + permissionToString(currentPermission) + ")" + ", tPerm=" + permissionToString(trafficPerm)); - if (permission == PERMISSION_SYSTEM) { - // An app with this UID still has the SYSTEM permission. - // Therefore, this UID must already have the SYSTEM permission. - // Nothing to do. - return; - } - // If the permissions of this UID have not changed, do nothing. - if (permission == currentPermission) return; - - final SparseIntArray apps = new SparseIntArray(); - if (permission != PERMISSION_NONE) { - mUidToNetworkPerm.put(uid, permission); - apps.put(uid, permission); - sendUidsNetworkPermission(apps, true); - } else { - mUidToNetworkPerm.delete(uid); - apps.put(uid, PERMISSION_NETWORK); // doesn't matter which permission we pick here - sendUidsNetworkPermission(apps, false); + if (permission != currentPermission) { + final SparseIntArray apps = new SparseIntArray(); + if (permission == PERMISSION_NONE) { + mUidToNetworkPerm.delete(uid); + apps.put(uid, PERMISSION_NETWORK); // doesn't matter which permission we pick here + sendUidsNetworkPermission(apps, false); + } else { + mUidToNetworkPerm.put(uid, permission); + apps.put(uid, permission); + sendUidsNetworkPermission(apps, true); + } } }