Loading services/core/java/com/android/server/net/NetworkPolicyManagerService.java +88 −28 Original line number Diff line number Diff line Loading @@ -2524,10 +2524,16 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { // adjust stats accounting based on foreground status private void updateNetworkStats(int uid, boolean uidForeground) { if (Trace.isTagEnabled(Trace.TRACE_TAG_NETWORK)) { Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateNetworkStats: " + uid + "/" + (uidForeground ? "F" : "B")); } try { mNetworkStats.setUidForeground(uid, uidForeground); } catch (RemoteException e) { // ignored; service lives in system_server } finally { Trace.traceEnd(Trace.TRACE_TAG_NETWORK); } } Loading Loading @@ -2655,6 +2661,10 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { void updateRuleForAppIdleUL(int uid) { if (!isUidValidForBlacklistRules(uid)) return; if (Trace.isTagEnabled(Trace.TRACE_TAG_NETWORK)) { Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateRuleForAppIdleUL: " + uid ); } try { int appId = UserHandle.getAppId(uid); if (!mPowerSaveTempWhitelistAppIds.get(appId) && isUidIdle(uid) && !isUidForegroundOnRestrictPowerUL(uid)) { Loading @@ -2662,6 +2672,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } else { setUidFirewallRule(FIREWALL_CHAIN_STANDBY, uid, FIREWALL_RULE_DEFAULT); } } finally { Trace.traceEnd(Trace.TRACE_TAG_NETWORK); } } /** Loading Loading @@ -2696,7 +2709,10 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { * {@link #mRestrictPower}, or {@link #mDeviceIdleMode} value. */ private void updateRulesForGlobalChangeAL(boolean restrictedNetworksChanged) { Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateRulesForGlobalChangeAL"); if (Trace.isTagEnabled(Trace.TRACE_TAG_NETWORK)) { Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateRulesForGlobalChangeAL: " + (restrictedNetworksChanged ? "R" : "-")); } try { updateRulesForAppIdleUL(); updateRulesForRestrictPowerUL(); Loading Loading @@ -2749,14 +2765,27 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateRulesForRestrictPowerUL-" + type); } try { // update rules for all installed applications final PackageManager pm = mContext.getPackageManager(); final List<UserInfo> users; final List<ApplicationInfo> apps; // update rules for all installed applications final List<UserInfo> users = mUserManager.getUsers(); final List<ApplicationInfo> apps = pm.getInstalledApplications( Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "list-users"); try { users = mUserManager.getUsers(); } finally { Trace.traceEnd(Trace.TRACE_TAG_NETWORK); } Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "list-uids"); try { apps = pm.getInstalledApplications( PackageManager.MATCH_ANY_USER | PackageManager.MATCH_DISABLED_COMPONENTS | PackageManager.MATCH_DIRECT_BOOT_AWARE | PackageManager.MATCH_DIRECT_BOOT_UNAWARE); } finally { Trace.traceEnd(Trace.TRACE_TAG_NETWORK); } final int usersSize = users.size(); final int appsSize = apps.size(); Loading @@ -2778,11 +2807,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } } } finally { if (Trace.isTagEnabled(Trace.TRACE_TAG_NETWORK)) { Trace.traceEnd(Trace.TRACE_TAG_NETWORK); } } } private void updateRulesForTempWhitelistChangeUL() { final List<UserInfo> users = mUserManager.getUsers(); Loading Loading @@ -2931,6 +2958,18 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { * */ private void updateRulesForDataUsageRestrictionsUL(int uid) { if (Trace.isTagEnabled(Trace.TRACE_TAG_NETWORK)) { Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateRulesForDataUsageRestrictionsUL: " + uid); } try { updateRulesForDataUsageRestrictionsULInner(uid); } finally { Trace.traceEnd(Trace.TRACE_TAG_NETWORK); } } private void updateRulesForDataUsageRestrictionsULInner(int uid) { if (!isUidValidForWhitelistRules(uid)) { if (LOGD) Slog.d(TAG, "no need to update restrict data rules for uid " + uid); return; Loading Loading @@ -3073,6 +3112,19 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { * @return the new computed rules for the uid */ private int updateRulesForPowerRestrictionsUL(int uid, int oldUidRules, boolean paroled) { if (Trace.isTagEnabled(Trace.TRACE_TAG_NETWORK)) { Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateRulesForPowerRestrictionsUL: " + uid + "/" + oldUidRules + "/" + (paroled ? "P" : "-")); } try { return updateRulesForPowerRestrictionsULInner(uid, oldUidRules, paroled); } finally { Trace.traceEnd(Trace.TRACE_TAG_NETWORK); } } private int updateRulesForPowerRestrictionsULInner(int uid, int oldUidRules, boolean paroled) { if (!isUidValidForBlacklistRules(uid)) { if (LOGD) Slog.d(TAG, "no need to update restrict power rules for uid " + uid); return RULE_NONE; Loading Loading @@ -3432,6 +3484,11 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { * Add or remove a uid to the firewall blacklist for all network ifaces. */ private void setUidFirewallRule(int chain, int uid, int rule) { if (Trace.isTagEnabled(Trace.TRACE_TAG_NETWORK)) { Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "setUidFirewallRule: " + chain + "/" + uid + "/" + rule); } try { if (chain == FIREWALL_CHAIN_DOZABLE) { mUidFirewallDozableRules.put(uid, rule); } else if (chain == FIREWALL_CHAIN_STANDBY) { Loading @@ -3447,6 +3504,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } catch (RemoteException e) { // ignored; service lives in system_server } } finally { Trace.traceEnd(Trace.TRACE_TAG_NETWORK); } } /** Loading Loading
services/core/java/com/android/server/net/NetworkPolicyManagerService.java +88 −28 Original line number Diff line number Diff line Loading @@ -2524,10 +2524,16 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { // adjust stats accounting based on foreground status private void updateNetworkStats(int uid, boolean uidForeground) { if (Trace.isTagEnabled(Trace.TRACE_TAG_NETWORK)) { Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateNetworkStats: " + uid + "/" + (uidForeground ? "F" : "B")); } try { mNetworkStats.setUidForeground(uid, uidForeground); } catch (RemoteException e) { // ignored; service lives in system_server } finally { Trace.traceEnd(Trace.TRACE_TAG_NETWORK); } } Loading Loading @@ -2655,6 +2661,10 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { void updateRuleForAppIdleUL(int uid) { if (!isUidValidForBlacklistRules(uid)) return; if (Trace.isTagEnabled(Trace.TRACE_TAG_NETWORK)) { Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateRuleForAppIdleUL: " + uid ); } try { int appId = UserHandle.getAppId(uid); if (!mPowerSaveTempWhitelistAppIds.get(appId) && isUidIdle(uid) && !isUidForegroundOnRestrictPowerUL(uid)) { Loading @@ -2662,6 +2672,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } else { setUidFirewallRule(FIREWALL_CHAIN_STANDBY, uid, FIREWALL_RULE_DEFAULT); } } finally { Trace.traceEnd(Trace.TRACE_TAG_NETWORK); } } /** Loading Loading @@ -2696,7 +2709,10 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { * {@link #mRestrictPower}, or {@link #mDeviceIdleMode} value. */ private void updateRulesForGlobalChangeAL(boolean restrictedNetworksChanged) { Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateRulesForGlobalChangeAL"); if (Trace.isTagEnabled(Trace.TRACE_TAG_NETWORK)) { Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateRulesForGlobalChangeAL: " + (restrictedNetworksChanged ? "R" : "-")); } try { updateRulesForAppIdleUL(); updateRulesForRestrictPowerUL(); Loading Loading @@ -2749,14 +2765,27 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateRulesForRestrictPowerUL-" + type); } try { // update rules for all installed applications final PackageManager pm = mContext.getPackageManager(); final List<UserInfo> users; final List<ApplicationInfo> apps; // update rules for all installed applications final List<UserInfo> users = mUserManager.getUsers(); final List<ApplicationInfo> apps = pm.getInstalledApplications( Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "list-users"); try { users = mUserManager.getUsers(); } finally { Trace.traceEnd(Trace.TRACE_TAG_NETWORK); } Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "list-uids"); try { apps = pm.getInstalledApplications( PackageManager.MATCH_ANY_USER | PackageManager.MATCH_DISABLED_COMPONENTS | PackageManager.MATCH_DIRECT_BOOT_AWARE | PackageManager.MATCH_DIRECT_BOOT_UNAWARE); } finally { Trace.traceEnd(Trace.TRACE_TAG_NETWORK); } final int usersSize = users.size(); final int appsSize = apps.size(); Loading @@ -2778,11 +2807,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } } } finally { if (Trace.isTagEnabled(Trace.TRACE_TAG_NETWORK)) { Trace.traceEnd(Trace.TRACE_TAG_NETWORK); } } } private void updateRulesForTempWhitelistChangeUL() { final List<UserInfo> users = mUserManager.getUsers(); Loading Loading @@ -2931,6 +2958,18 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { * */ private void updateRulesForDataUsageRestrictionsUL(int uid) { if (Trace.isTagEnabled(Trace.TRACE_TAG_NETWORK)) { Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateRulesForDataUsageRestrictionsUL: " + uid); } try { updateRulesForDataUsageRestrictionsULInner(uid); } finally { Trace.traceEnd(Trace.TRACE_TAG_NETWORK); } } private void updateRulesForDataUsageRestrictionsULInner(int uid) { if (!isUidValidForWhitelistRules(uid)) { if (LOGD) Slog.d(TAG, "no need to update restrict data rules for uid " + uid); return; Loading Loading @@ -3073,6 +3112,19 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { * @return the new computed rules for the uid */ private int updateRulesForPowerRestrictionsUL(int uid, int oldUidRules, boolean paroled) { if (Trace.isTagEnabled(Trace.TRACE_TAG_NETWORK)) { Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "updateRulesForPowerRestrictionsUL: " + uid + "/" + oldUidRules + "/" + (paroled ? "P" : "-")); } try { return updateRulesForPowerRestrictionsULInner(uid, oldUidRules, paroled); } finally { Trace.traceEnd(Trace.TRACE_TAG_NETWORK); } } private int updateRulesForPowerRestrictionsULInner(int uid, int oldUidRules, boolean paroled) { if (!isUidValidForBlacklistRules(uid)) { if (LOGD) Slog.d(TAG, "no need to update restrict power rules for uid " + uid); return RULE_NONE; Loading Loading @@ -3432,6 +3484,11 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { * Add or remove a uid to the firewall blacklist for all network ifaces. */ private void setUidFirewallRule(int chain, int uid, int rule) { if (Trace.isTagEnabled(Trace.TRACE_TAG_NETWORK)) { Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "setUidFirewallRule: " + chain + "/" + uid + "/" + rule); } try { if (chain == FIREWALL_CHAIN_DOZABLE) { mUidFirewallDozableRules.put(uid, rule); } else if (chain == FIREWALL_CHAIN_STANDBY) { Loading @@ -3447,6 +3504,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } catch (RemoteException e) { // ignored; service lives in system_server } } finally { Trace.traceEnd(Trace.TRACE_TAG_NETWORK); } } /** Loading