From 5902c444d762c57682ce5807cf6b691343ce7e97 Mon Sep 17 00:00:00 2001 From: Felipe Leme Date: Fri, 20 May 2016 18:04:14 -0700 Subject: [PATCH] Fixed enforceMeteredApnPolicy when Data Saver is on. When enforceMeteredApnPolicy() is called when Data Saver mode is on and the caller's UID is not whitelisted, it should add a NET_CAPABILITY_NOT_METERED to the capabilities. Change-Id: Ieed4f4a7634ee023ec58c91859263655e0ba62d4 Fixes: 28608499 (and https://code.google.com/p/android/issues/detail?id=208478) --- services/core/java/com/android/server/ConnectivityService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index c096fa5f39..95a978124a 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -4066,7 +4066,8 @@ public class ConnectivityService extends IConnectivityManager.Stub synchronized(mRulesLock) { uidRules = mUidRules.get(uid, RULE_ALLOW_ALL); } - if ((uidRules & RULE_ALLOW_ALL) == 0) { + if (mRestrictBackground && (uidRules & RULE_ALLOW_METERED) == 0 + && (uidRules & RULE_TEMPORARY_ALLOW_METERED) == 0) { // we could silently fail or we can filter the available nets to only give // them those they have access to. Chose the more useful option. networkCapabilities.addCapability(NET_CAPABILITY_NOT_METERED);