From 42f3c9496ef1b0291e01d72363fc3b2db20804bd Mon Sep 17 00:00:00 2001 From: xiamengsen Date: Fri, 25 Sep 2020 17:07:27 +0800 Subject: [PATCH] Check UID's process state before restricting its network. It is possible that an app which is in fg-service process state to be considered idle. Since we don't want to block connectivity of apps in the foreground state, we should check the uid process state in addition to its idle state when deciding whether to block its network or not. Test: atest com.android.cts.net.HostsideRestrictBackgroundNetworkTests#testAppIdleMetered_enabled Signed-off-by: xiamengsen Change-Id: If7e42605eb162abf6f88f03f28f7245659a7748c --- .../com/android/server/net/NetworkPolicyManagerService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java index 2d7e79a7073c4..a31aacbde46fe 100644 --- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java +++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java @@ -3867,7 +3867,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { // quick check: if this uid doesn't have INTERNET permission, it // doesn't have network access anyway, so it is a waste to mess // with it here. - if (hasInternetPermissionUL(uid)) { + if (hasInternetPermissionUL(uid) && !isUidForegroundOnRestrictPowerUL(uid)) { uidRules.put(uid, FIREWALL_RULE_DENY); } }