Merge "Ignore system apps on enforceMeteredApnPolicy()." into nyc-dev

This commit is contained in:
TreeHugger Robot
2016-06-21 19:50:59 +00:00
committed by Android (Google) Code Review
2 changed files with 9 additions and 4 deletions

View File

@@ -30,8 +30,6 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED;
import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED; import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
import static android.net.NetworkPolicyManager.RULE_ALLOW_ALL; import static android.net.NetworkPolicyManager.RULE_ALLOW_ALL;
import static android.net.NetworkPolicyManager.RULE_ALLOW_METERED; import static android.net.NetworkPolicyManager.RULE_ALLOW_METERED;
import static android.net.NetworkPolicyManager.MASK_METERED_NETWORKS;
import static android.net.NetworkPolicyManager.MASK_ALL_NETWORKS;
import static android.net.NetworkPolicyManager.RULE_NONE; import static android.net.NetworkPolicyManager.RULE_NONE;
import static android.net.NetworkPolicyManager.RULE_REJECT_ALL; import static android.net.NetworkPolicyManager.RULE_REJECT_ALL;
import static android.net.NetworkPolicyManager.RULE_REJECT_METERED; import static android.net.NetworkPolicyManager.RULE_REJECT_METERED;
@@ -921,7 +919,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
// Networks aren't blocked when ignoring blocked status // Networks aren't blocked when ignoring blocked status
if (ignoreBlocked) return false; if (ignoreBlocked) return false;
// Networks are never blocked for system services // Networks are never blocked for system services
if (uid < Process.FIRST_APPLICATION_UID) return false; if (isSystem(uid)) return false;
final boolean networkMetered; final boolean networkMetered;
final int uidRules; final int uidRules;
@@ -4032,12 +4030,18 @@ public class ConnectivityService extends IConnectivityManager.Stub
return false; return false;
} }
private boolean isSystem(int uid) {
return uid < Process.FIRST_APPLICATION_UID;
}
private void enforceMeteredApnPolicy(NetworkCapabilities networkCapabilities) { private void enforceMeteredApnPolicy(NetworkCapabilities networkCapabilities) {
final int uid = Binder.getCallingUid();
if (isSystem(uid)) {
return;
}
// if UID is restricted, don't allow them to bring up metered APNs // if UID is restricted, don't allow them to bring up metered APNs
if (networkCapabilities.hasCapability(NET_CAPABILITY_NOT_METERED) == false) { if (networkCapabilities.hasCapability(NET_CAPABILITY_NOT_METERED) == false) {
final int uidRules; final int uidRules;
final int uid = Binder.getCallingUid();
synchronized(mRulesLock) { synchronized(mRulesLock) {
uidRules = mUidRules.get(uid, RULE_ALLOW_ALL); uidRules = mUidRules.get(uid, RULE_ALLOW_ALL);
} }

View File

@@ -1989,6 +1989,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
} }
private void setRestrictBackgroundLocked(boolean restrictBackground) { private void setRestrictBackgroundLocked(boolean restrictBackground) {
Slog.d(TAG, "setRestrictBackgroundLocked(): " + restrictBackground);
final boolean oldRestrictBackground = mRestrictBackground; final boolean oldRestrictBackground = mRestrictBackground;
mRestrictBackground = restrictBackground; mRestrictBackground = restrictBackground;
// Must whitelist foreground apps before turning data saver mode on. // Must whitelist foreground apps before turning data saver mode on.