diff options
| author | 2022-02-24 09:00:15 +0000 | |
|---|---|---|
| committer | 2022-02-24 09:00:15 +0000 | |
| commit | 9d8609fb489fa005e304c50dad76e54a028bf0c8 (patch) | |
| tree | 8488a58adba86141cc74103b7cfd63b4017c690c | |
| parent | cc2d08db857f8eb62b8a454111398835a453d6c6 (diff) | |
| parent | 362b52cf13ee358cff2b6e0594cc806afa188f5a (diff) | |
Merge "Add some debugs to diagnose test failure." into tm-dev
| -rw-r--r-- | services/core/java/com/android/server/net/NetworkPolicyLogger.java | 56 | ||||
| -rw-r--r-- | services/core/java/com/android/server/net/NetworkPolicyManagerService.java | 6 |
2 files changed, 60 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/net/NetworkPolicyLogger.java b/services/core/java/com/android/server/net/NetworkPolicyLogger.java index 33ac6cdb269e..c9631549cd76 100644 --- a/services/core/java/com/android/server/net/NetworkPolicyLogger.java +++ b/services/core/java/com/android/server/net/NetworkPolicyLogger.java @@ -77,6 +77,8 @@ public class NetworkPolicyLogger { private static final int EVENT_FIREWALL_CHAIN_ENABLED = 12; private static final int EVENT_UPDATE_METERED_RESTRICTED_PKGS = 13; private static final int EVENT_APP_IDLE_WL_CHANGED = 14; + private static final int EVENT_METERED_ALLOWLIST_CHANGED = 15; + private static final int EVENT_METERED_DENYLIST_CHANGED = 16; private final LogBuffer mNetworkBlockedBuffer = new LogBuffer(MAX_NETWORK_BLOCKED_LOG_SIZE); private final LogBuffer mUidStateChangeBuffer = new LogBuffer(MAX_LOG_SIZE); @@ -89,7 +91,7 @@ public class NetworkPolicyLogger { void networkBlocked(int uid, @Nullable UidBlockedState uidBlockedState) { synchronized (mLock) { if (LOGD || uid == mDebugUid) { - Slog.d(TAG, "Blocked state of uid: " + uidBlockedState.toString()); + Slog.d(TAG, "Blocked state of " + uid + ": " + uidBlockedState.toString()); } if (uidBlockedState == null) { mNetworkBlockedBuffer.networkBlocked(uid, BLOCKED_REASON_NONE, ALLOWED_REASON_NONE, @@ -245,6 +247,24 @@ public class NetworkPolicyLogger { } } + void meteredAllowlistChanged(int uid, boolean added) { + synchronized (mLock) { + if (LOGD || mDebugUid == uid) { + Slog.d(TAG, getMeteredAllowlistChangedLog(uid, added)); + } + mEventsBuffer.meteredAllowlistChanged(uid, added); + } + } + + void meteredDenylistChanged(int uid, boolean added) { + synchronized (mLock) { + if (LOGD || mDebugUid == uid) { + Slog.d(TAG, getMeteredDenylistChangedLog(uid, added)); + } + mEventsBuffer.meteredDenylistChanged(uid, added); + } + } + void setDebugUid(int uid) { mDebugUid = uid; } @@ -320,6 +340,14 @@ public class NetworkPolicyLogger { return "Firewall chain " + getFirewallChainName(chain) + " state: " + enabled; } + private static String getMeteredAllowlistChangedLog(int uid, boolean added) { + return "metered-allowlist for " + uid + " changed to " + added; + } + + private static String getMeteredDenylistChangedLog(int uid, boolean added) { + return "metered-denylist for " + uid + " changed to " + added; + } + private static String getFirewallChainName(int chain) { switch (chain) { case FIREWALL_CHAIN_DOZABLE: @@ -520,6 +548,28 @@ public class NetworkPolicyLogger { data.timeStamp = System.currentTimeMillis(); } + public void meteredAllowlistChanged(int uid, boolean added) { + final Data data = getNextSlot(); + if (data == null) return; + + data.reset(); + data.type = EVENT_METERED_ALLOWLIST_CHANGED; + data.ifield1 = uid; + data.bfield1 = added; + data.timeStamp = System.currentTimeMillis(); + } + + public void meteredDenylistChanged(int uid, boolean added) { + final Data data = getNextSlot(); + if (data == null) return; + + data.reset(); + data.type = EVENT_METERED_DENYLIST_CHANGED; + data.ifield1 = uid; + data.bfield1 = added; + data.timeStamp = System.currentTimeMillis(); + } + public void reverseDump(IndentingPrintWriter pw) { final Data[] allData = toArray(); for (int i = allData.length - 1; i >= 0; --i) { @@ -567,6 +617,10 @@ public class NetworkPolicyLogger { return getUidFirewallRuleChangedLog(data.ifield1, data.ifield2, data.ifield3); case EVENT_FIREWALL_CHAIN_ENABLED: return getFirewallChainEnabledLog(data.ifield1, data.bfield1); + case EVENT_METERED_ALLOWLIST_CHANGED: + return getMeteredAllowlistChangedLog(data.ifield1, data.bfield1); + case EVENT_METERED_DENYLIST_CHANGED: + return getMeteredDenylistChangedLog(data.ifield1, data.bfield1); default: return String.valueOf(data.type); } diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java index 60962b122fe7..48ad22cb12ff 100644 --- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java +++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java @@ -4864,7 +4864,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { + ", isAllowed=" + isAllowed + ", isRestrictedByAdmin=" + isRestrictedByAdmin + ", oldBlockedState=" + previousUidBlockedState.toString() - + ", newBlockedState=" + + ", newBlockedState=" + uidBlockedState.toString() + ", oldBlockedMeteredReasons=" + NetworkPolicyManager.blockedReasonsToString( uidBlockedState.blockedReasons & BLOCKED_METERED_REASON_MASK) + ", oldBlockedMeteredEffectiveReasons=" @@ -5420,6 +5420,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { if (LOGV) Slog.v(TAG, "setMeteredNetworkDenylist " + uid + ": " + enable); try { mNetworkManager.setUidOnMeteredNetworkDenylist(uid, enable); + mLogger.meteredAllowlistChanged(uid, enable); } catch (IllegalStateException e) { Log.wtf(TAG, "problem setting denylist (" + enable + ") rules for " + uid, e); } catch (RemoteException e) { @@ -5431,6 +5432,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { if (LOGV) Slog.v(TAG, "setMeteredNetworkAllowlist " + uid + ": " + enable); try { mNetworkManager.setUidOnMeteredNetworkAllowlist(uid, enable); + mLogger.meteredDenylistChanged(uid, enable); } catch (IllegalStateException e) { Log.wtf(TAG, "problem setting allowlist (" + enable + ") rules for " + uid, e); } catch (RemoteException e) { @@ -5563,7 +5565,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { .setFirewallUidRule(FIREWALL_CHAIN_LOW_POWER_STANDBY, uid, FIREWALL_RULE_DEFAULT); mNetworkManager.setUidOnMeteredNetworkAllowlist(uid, false); + mLogger.meteredAllowlistChanged(uid, false); mNetworkManager.setUidOnMeteredNetworkDenylist(uid, false); + mLogger.meteredDenylistChanged(uid, false); } catch (IllegalStateException e) { Log.wtf(TAG, "problem resetting firewall uid rules for " + uid, e); } catch (RemoteException e) { |