Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a54743a2 authored by Sudheer Shanka's avatar Sudheer Shanka
Browse files

Add some debugs to diagnose test failure.

Bug: 218308105
Test: atest com.android.cts.net.HostsideRestrictBackgroundNetworkTests
Change-Id: I29d117a20905c065e50a21591a763fdadd8d2a7b
Merged-In: I29d117a20905c065e50a21591a763fdadd8d2a7b
parent 2c630f88
Loading
Loading
Loading
Loading
+55 −1
Original line number Original line Diff line number Diff line
@@ -77,6 +77,8 @@ public class NetworkPolicyLogger {
    private static final int EVENT_FIREWALL_CHAIN_ENABLED = 12;
    private static final int EVENT_FIREWALL_CHAIN_ENABLED = 12;
    private static final int EVENT_UPDATE_METERED_RESTRICTED_PKGS = 13;
    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_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 mNetworkBlockedBuffer = new LogBuffer(MAX_NETWORK_BLOCKED_LOG_SIZE);
    private final LogBuffer mUidStateChangeBuffer = new LogBuffer(MAX_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) {
    void networkBlocked(int uid, @Nullable UidBlockedState uidBlockedState) {
        synchronized (mLock) {
        synchronized (mLock) {
            if (LOGD || uid == mDebugUid) {
            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) {
            if (uidBlockedState == null) {
                mNetworkBlockedBuffer.networkBlocked(uid, BLOCKED_REASON_NONE, ALLOWED_REASON_NONE,
                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) {
    void setDebugUid(int uid) {
        mDebugUid = uid;
        mDebugUid = uid;
    }
    }
@@ -320,6 +340,14 @@ public class NetworkPolicyLogger {
        return "Firewall chain " + getFirewallChainName(chain) + " state: " + enabled;
        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) {
    private static String getFirewallChainName(int chain) {
        switch (chain) {
        switch (chain) {
            case FIREWALL_CHAIN_DOZABLE:
            case FIREWALL_CHAIN_DOZABLE:
@@ -520,6 +548,28 @@ public class NetworkPolicyLogger {
            data.timeStamp = System.currentTimeMillis();
            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) {
        public void reverseDump(IndentingPrintWriter pw) {
            final Data[] allData = toArray();
            final Data[] allData = toArray();
            for (int i = allData.length - 1; i >= 0; --i) {
            for (int i = allData.length - 1; i >= 0; --i) {
@@ -567,6 +617,10 @@ public class NetworkPolicyLogger {
                    return getUidFirewallRuleChangedLog(data.ifield1, data.ifield2, data.ifield3);
                    return getUidFirewallRuleChangedLog(data.ifield1, data.ifield2, data.ifield3);
                case EVENT_FIREWALL_CHAIN_ENABLED:
                case EVENT_FIREWALL_CHAIN_ENABLED:
                    return getFirewallChainEnabledLog(data.ifield1, data.bfield1);
                    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:
                default:
                    return String.valueOf(data.type);
                    return String.valueOf(data.type);
            }
            }
+5 −1
Original line number Original line Diff line number Diff line
@@ -4881,7 +4881,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
                    + ", isAllowed=" + isAllowed
                    + ", isAllowed=" + isAllowed
                    + ", isRestrictedByAdmin=" + isRestrictedByAdmin
                    + ", isRestrictedByAdmin=" + isRestrictedByAdmin
                    + ", oldBlockedState=" + previousUidBlockedState.toString()
                    + ", oldBlockedState=" + previousUidBlockedState.toString()
                    + ", newBlockedState="
                    + ", newBlockedState=" + uidBlockedState.toString()
                    + ", oldBlockedMeteredReasons=" + NetworkPolicyManager.blockedReasonsToString(
                    + ", oldBlockedMeteredReasons=" + NetworkPolicyManager.blockedReasonsToString(
                    uidBlockedState.blockedReasons & BLOCKED_METERED_REASON_MASK)
                    uidBlockedState.blockedReasons & BLOCKED_METERED_REASON_MASK)
                    + ", oldBlockedMeteredEffectiveReasons="
                    + ", oldBlockedMeteredEffectiveReasons="
@@ -5437,6 +5437,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
        if (LOGV) Slog.v(TAG, "setMeteredNetworkDenylist " + uid + ": " + enable);
        if (LOGV) Slog.v(TAG, "setMeteredNetworkDenylist " + uid + ": " + enable);
        try {
        try {
            mNetworkManager.setUidOnMeteredNetworkDenylist(uid, enable);
            mNetworkManager.setUidOnMeteredNetworkDenylist(uid, enable);
            mLogger.meteredAllowlistChanged(uid, enable);
        } catch (IllegalStateException e) {
        } catch (IllegalStateException e) {
            Log.wtf(TAG, "problem setting denylist (" + enable + ") rules for " + uid, e);
            Log.wtf(TAG, "problem setting denylist (" + enable + ") rules for " + uid, e);
        } catch (RemoteException e) {
        } catch (RemoteException e) {
@@ -5448,6 +5449,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
        if (LOGV) Slog.v(TAG, "setMeteredNetworkAllowlist " + uid + ": " + enable);
        if (LOGV) Slog.v(TAG, "setMeteredNetworkAllowlist " + uid + ": " + enable);
        try {
        try {
            mNetworkManager.setUidOnMeteredNetworkAllowlist(uid, enable);
            mNetworkManager.setUidOnMeteredNetworkAllowlist(uid, enable);
            mLogger.meteredDenylistChanged(uid, enable);
        } catch (IllegalStateException e) {
        } catch (IllegalStateException e) {
            Log.wtf(TAG, "problem setting allowlist (" + enable + ") rules for " + uid, e);
            Log.wtf(TAG, "problem setting allowlist (" + enable + ") rules for " + uid, e);
        } catch (RemoteException e) {
        } catch (RemoteException e) {
@@ -5580,7 +5582,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
                    .setFirewallUidRule(FIREWALL_CHAIN_LOW_POWER_STANDBY, uid,
                    .setFirewallUidRule(FIREWALL_CHAIN_LOW_POWER_STANDBY, uid,
                            FIREWALL_RULE_DEFAULT);
                            FIREWALL_RULE_DEFAULT);
            mNetworkManager.setUidOnMeteredNetworkAllowlist(uid, false);
            mNetworkManager.setUidOnMeteredNetworkAllowlist(uid, false);
            mLogger.meteredAllowlistChanged(uid, false);
            mNetworkManager.setUidOnMeteredNetworkDenylist(uid, false);
            mNetworkManager.setUidOnMeteredNetworkDenylist(uid, false);
            mLogger.meteredDenylistChanged(uid, false);
        } catch (IllegalStateException e) {
        } catch (IllegalStateException e) {
            Log.wtf(TAG, "problem resetting firewall uid rules for " + uid, e);
            Log.wtf(TAG, "problem resetting firewall uid rules for " + uid, e);
        } catch (RemoteException e) {
        } catch (RemoteException e) {