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

Commit cb3d6528 authored by Roshan Pius's avatar Roshan Pius
Browse files

Wifi/WifiAware NetworkSpecifier: Stop storing uid/packageName

The uid/packageName is stored in the container NetworkRequest object.
Hence, this info will still be available to WifiNetworkFactory for
it's usages.

Note: Setting the uid/package name in the capabilities of the
network agent will restrict access to the created networks.

Bug: 144102365
Test: atest android.net.wifi
Test: Verified that wifi network request related CTS verifier tests
pass.
Change-Id: Ibb2ca652fa510343efd0352578c3d0b2b6f2dbb0
parent e38acab5
Loading
Loading
Loading
Loading
+4 −46
Original line number Diff line number Diff line
@@ -27,7 +27,6 @@ import android.net.NetworkRequest;
import android.net.NetworkSpecifier;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.TextUtils;

import java.util.Objects;

@@ -41,33 +40,10 @@ public final class WifiNetworkAgentSpecifier extends NetworkSpecifier implements
     */
    private final WifiConfiguration mWifiConfiguration;

    /**
     * The UID of the app that requested a specific wifi network using {@link WifiNetworkSpecifier}.
     *
     * Will only be filled when the device connects to a wifi network as a result of a
     * {@link NetworkRequest} with {@link WifiNetworkSpecifier}. Will be set to -1 if the device
     * auto-connected to a wifi network.
     */
    private final int mOriginalRequestorUid;

    /**
     * The package name of the app that requested a specific wifi network using
     * {@link WifiNetworkSpecifier}.
     *
     * Will only be filled when the device connects to a wifi network as a result of a
     * {@link NetworkRequest} with {@link WifiNetworkSpecifier}. Will be set to null if the device
     * auto-connected to a wifi network.
     */
    private final String mOriginalRequestorPackageName;

    public WifiNetworkAgentSpecifier(@NonNull WifiConfiguration wifiConfiguration,
                                     int originalRequestorUid,
                                     @Nullable String originalRequestorPackageName) {
    public WifiNetworkAgentSpecifier(@NonNull WifiConfiguration wifiConfiguration) {
        checkNotNull(wifiConfiguration);

        mWifiConfiguration = wifiConfiguration;
        mOriginalRequestorUid = originalRequestorUid;
        mOriginalRequestorPackageName = originalRequestorPackageName;
    }

    /**
@@ -78,10 +54,7 @@ public final class WifiNetworkAgentSpecifier extends NetworkSpecifier implements
                @Override
                public WifiNetworkAgentSpecifier createFromParcel(@NonNull Parcel in) {
                    WifiConfiguration wifiConfiguration = in.readParcelable(null);
                    int originalRequestorUid = in.readInt();
                    String originalRequestorPackageName = in.readString();
                    return new WifiNetworkAgentSpecifier(
                            wifiConfiguration, originalRequestorUid, originalRequestorPackageName);
                    return new WifiNetworkAgentSpecifier(wifiConfiguration);
                }

                @Override
@@ -98,8 +71,6 @@ public final class WifiNetworkAgentSpecifier extends NetworkSpecifier implements
    @Override
    public void writeToParcel(@NonNull Parcel dest, int flags) {
        dest.writeParcelable(mWifiConfiguration, flags);
        dest.writeInt(mOriginalRequestorUid);
        dest.writeString(mOriginalRequestorPackageName);
    }

    @Override
@@ -149,12 +120,6 @@ public final class WifiNetworkAgentSpecifier extends NetworkSpecifier implements
                this.mWifiConfiguration.allowedKeyManagement)) {
            return false;
        }
        if (ns.requestorUid != this.mOriginalRequestorUid) {
            return false;
        }
        if (!TextUtils.equals(ns.requestorPackageName, this.mOriginalRequestorPackageName)) {
            return false;
        }
        return true;
    }

@@ -163,9 +128,7 @@ public final class WifiNetworkAgentSpecifier extends NetworkSpecifier implements
        return Objects.hash(
                mWifiConfiguration.SSID,
                mWifiConfiguration.BSSID,
                mWifiConfiguration.allowedKeyManagement,
                mOriginalRequestorUid,
                mOriginalRequestorPackageName);
                mWifiConfiguration.allowedKeyManagement);
    }

    @Override
@@ -180,10 +143,7 @@ public final class WifiNetworkAgentSpecifier extends NetworkSpecifier implements
        return Objects.equals(this.mWifiConfiguration.SSID, lhs.mWifiConfiguration.SSID)
                && Objects.equals(this.mWifiConfiguration.BSSID, lhs.mWifiConfiguration.BSSID)
                && Objects.equals(this.mWifiConfiguration.allowedKeyManagement,
                    lhs.mWifiConfiguration.allowedKeyManagement)
                && mOriginalRequestorUid == lhs.mOriginalRequestorUid
                && TextUtils.equals(mOriginalRequestorPackageName,
                lhs.mOriginalRequestorPackageName);
                    lhs.mWifiConfiguration.allowedKeyManagement);
    }

    @Override
@@ -192,8 +152,6 @@ public final class WifiNetworkAgentSpecifier extends NetworkSpecifier implements
        sb.append("WifiConfiguration=")
                .append(", SSID=").append(mWifiConfiguration.SSID)
                .append(", BSSID=").append(mWifiConfiguration.BSSID)
                .append(", mOriginalRequestorUid=").append(mOriginalRequestorUid)
                .append(", mOriginalRequestorPackageName=").append(mOriginalRequestorPackageName)
                .append("]");
        return sb.toString();
    }
+6 −57
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ import static com.android.internal.util.Preconditions.checkNotNull;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.Application;
import android.net.MacAddress;
import android.net.MatchAllNetworkSpecifier;
import android.net.NetworkRequest;
@@ -28,13 +27,9 @@ import android.net.NetworkSpecifier;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.PatternMatcher;
import android.os.Process;
import android.text.TextUtils;
import android.util.Log;
import android.util.Pair;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.nio.charset.CharsetEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Objects;
@@ -438,24 +433,7 @@ public final class WifiNetworkSpecifier extends NetworkSpecifier implements Parc
            return new WifiNetworkSpecifier(
                    mSsidPatternMatcher,
                    mBssidPatternMatcher,
                    buildWifiConfiguration(),
                    Process.myUid(),
                    getCurrentApplicationReflectively().getApplicationContext().getOpPackageName());
        }

        // TODO(b/144102365): Remove once refactor is complete
        private static Application getCurrentApplicationReflectively() {
            try {
                // reflection for static method android.app.ActivityThread#currentApplication()
                Class<?> klass = Class.forName("android.app.ActivityThread");
                Method currentApplicationMethod = klass.getDeclaredMethod("currentApplication");
                Object result = currentApplicationMethod.invoke(null);
                return (Application) result;
            } catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException
                    | InvocationTargetException e) {
                Log.e(TAG, "Failed to call ActivityThread#currentApplication() reflectively!", e);
                throw new RuntimeException(e);
            }
                    buildWifiConfiguration());
        }
    }

@@ -483,20 +461,6 @@ public final class WifiNetworkSpecifier extends NetworkSpecifier implements Parc
     */
    public final WifiConfiguration wifiConfiguration;

    /**
     * The UID of the process initializing this network specifier. Validated by receiver using
     * checkUidIfNecessary() and is used by satisfiedBy() to determine whether the specifier
     * matches the offered network.
     * @hide
     */
    public final int requestorUid;

    /**
     * The package name of the app initializing this network specifier.
     * @hide
     */
    public final String requestorPackageName;

    /** @hide */
    public WifiNetworkSpecifier() throws IllegalAccessException {
        throw new IllegalAccessException("Use the builder to create an instance");
@@ -505,18 +469,14 @@ public final class WifiNetworkSpecifier extends NetworkSpecifier implements Parc
    /** @hide */
    public WifiNetworkSpecifier(@NonNull PatternMatcher ssidPatternMatcher,
                                @NonNull Pair<MacAddress, MacAddress> bssidPatternMatcher,
                                @NonNull WifiConfiguration wifiConfiguration,
                                int requestorUid, @NonNull String requestorPackageName) {
                                @NonNull WifiConfiguration wifiConfiguration) {
        checkNotNull(ssidPatternMatcher);
        checkNotNull(bssidPatternMatcher);
        checkNotNull(wifiConfiguration);
        checkNotNull(requestorPackageName);

        this.ssidPatternMatcher = ssidPatternMatcher;
        this.bssidPatternMatcher = bssidPatternMatcher;
        this.wifiConfiguration = wifiConfiguration;
        this.requestorUid = requestorUid;
        this.requestorPackageName = requestorPackageName;
    }

    public static final @NonNull Creator<WifiNetworkSpecifier> CREATOR =
@@ -529,10 +489,8 @@ public final class WifiNetworkSpecifier extends NetworkSpecifier implements Parc
                    Pair<MacAddress, MacAddress> bssidPatternMatcher =
                            Pair.create(baseAddress, mask);
                    WifiConfiguration wifiConfiguration = in.readParcelable(null);
                    int requestorUid = in.readInt();
                    String requestorPackageName = in.readString();
                    return new WifiNetworkSpecifier(ssidPatternMatcher, bssidPatternMatcher,
                            wifiConfiguration, requestorUid, requestorPackageName);
                            wifiConfiguration);
                }

                @Override
@@ -552,18 +510,13 @@ public final class WifiNetworkSpecifier extends NetworkSpecifier implements Parc
        dest.writeParcelable(bssidPatternMatcher.first, flags);
        dest.writeParcelable(bssidPatternMatcher.second, flags);
        dest.writeParcelable(wifiConfiguration, flags);
        dest.writeInt(requestorUid);
        dest.writeString(requestorPackageName);
    }

    @Override
    public int hashCode() {
        return Objects.hash(
                ssidPatternMatcher.getPath(),
                ssidPatternMatcher.getType(),
                bssidPatternMatcher,
                wifiConfiguration.allowedKeyManagement,
                requestorUid, requestorPackageName);
                ssidPatternMatcher.getPath(), ssidPatternMatcher.getType(), bssidPatternMatcher,
                wifiConfiguration.allowedKeyManagement);
    }

    @Override
@@ -582,9 +535,7 @@ public final class WifiNetworkSpecifier extends NetworkSpecifier implements Parc
                && Objects.equals(this.bssidPatternMatcher,
                    lhs.bssidPatternMatcher)
                && Objects.equals(this.wifiConfiguration.allowedKeyManagement,
                    lhs.wifiConfiguration.allowedKeyManagement)
                && requestorUid == lhs.requestorUid
                && TextUtils.equals(requestorPackageName, lhs.requestorPackageName);
                    lhs.wifiConfiguration.allowedKeyManagement);
    }

    @Override
@@ -595,8 +546,6 @@ public final class WifiNetworkSpecifier extends NetworkSpecifier implements Parc
                .append(", BSSID Match pattern=").append(bssidPatternMatcher)
                .append(", SSID=").append(wifiConfiguration.SSID)
                .append(", BSSID=").append(wifiConfiguration.BSSID)
                .append(", requestorUid=").append(requestorUid)
                .append(", requestorPackageName=").append(requestorPackageName)
                .append("]")
                .toString();
    }
+2 −5
Original line number Diff line number Diff line
@@ -34,7 +34,6 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.os.Process;
import android.os.RemoteException;
import android.util.Log;

@@ -447,8 +446,7 @@ public class WifiAwareManager {
                pmk,
                passphrase,
                0, // no port info for deprecated IB APIs
                -1, // no transport info for deprecated IB APIs
                Process.myUid());
                -1); // no transport info for deprecated IB APIs
    }

    /** @hide */
@@ -488,8 +486,7 @@ public class WifiAwareManager {
                pmk,
                passphrase,
                0, // no port info for OOB APIs
                -1, // no transport protocol info for OOB APIs
                Process.myUid());
                -1); // no transport protocol info for OOB APIs
    }

    private static class WifiAwareEventCallbackProxy extends IWifiAwareEventCallback.Stub {
+6 −21
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import android.annotation.NonNull;
import android.net.NetworkSpecifier;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.Process;
import android.text.TextUtils;

import java.util.Arrays;
@@ -144,19 +143,9 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements
     */
    public final int transportProtocol;

    /**
     * The UID of the process initializing this network specifier. Validated by receiver using
     * checkUidIfNecessary() and is used by satisfiedBy() to determine whether matches the
     * offered network.
     *
     * @hide
     */
    public final int requestorUid;

    /** @hide */
    public WifiAwareNetworkSpecifier(int type, int role, int clientId, int sessionId, int peerId,
            byte[] peerMac, byte[] pmk, String passphrase, int port, int transportProtocol,
            int requestorUid) {
            byte[] peerMac, byte[] pmk, String passphrase, int port, int transportProtocol) {
        this.type = type;
        this.role = role;
        this.clientId = clientId;
@@ -167,7 +156,6 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements
        this.passphrase = passphrase;
        this.port = port;
        this.transportProtocol = transportProtocol;
        this.requestorUid = requestorUid;
    }

    public static final @android.annotation.NonNull Creator<WifiAwareNetworkSpecifier> CREATOR =
@@ -184,8 +172,7 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements
                        in.createByteArray(), // pmk
                        in.readString(), // passphrase
                        in.readInt(), // port
                        in.readInt(), // transportProtocol
                        in.readInt()); // requestorUid
                        in.readInt()); // transportProtocol
                }

                @Override
@@ -221,7 +208,6 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements
        dest.writeString(passphrase);
        dest.writeInt(port);
        dest.writeInt(transportProtocol);
        dest.writeInt(requestorUid);
    }

    /** @hide */
@@ -238,7 +224,7 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements
    @Override
    public int hashCode() {
        return Objects.hash(type, role, clientId, sessionId, peerId, Arrays.hashCode(peerMac),
                Arrays.hashCode(pmk), passphrase, port, transportProtocol, requestorUid);
                Arrays.hashCode(pmk), passphrase, port, transportProtocol);
    }

    /** @hide */
@@ -263,8 +249,7 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements
                && Arrays.equals(pmk, lhs.pmk)
                && Objects.equals(passphrase, lhs.passphrase)
                && port == lhs.port
                && transportProtocol == lhs.transportProtocol
                && requestorUid == lhs.requestorUid;
                && transportProtocol == lhs.transportProtocol;
    }

    /** @hide */
@@ -283,7 +268,7 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements
                // masking PII
                .append(", passphrase=").append((passphrase == null) ? "<null>" : "<non-null>")
                .append(", port=").append(port).append(", transportProtocol=")
                .append(transportProtocol).append(", requestorUid=").append(requestorUid)
                .append(transportProtocol)
                .append("]");
        return sb.toString();
    }
@@ -455,7 +440,7 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements
            return new WifiAwareNetworkSpecifier(
                    WifiAwareNetworkSpecifier.NETWORK_SPECIFIER_TYPE_IB, role,
                    mDiscoverySession.mClientId, mDiscoverySession.mSessionId, mPeerHandle.peerId,
                    null, mPmk, mPskPassphrase, mPort, mTransportProtocol, Process.myUid());
                    null, mPmk, mPskPassphrase, mPort, mTransportProtocol);
        }
    }
}
+17 −77
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ import static org.junit.Assert.assertTrue;

import android.net.MacAddress;
import android.net.MatchAllNetworkSpecifier;
import android.net.NetworkRequest;
import android.os.Parcel;
import android.os.PatternMatcher;
import android.util.Pair;
@@ -36,10 +35,6 @@ import org.junit.Test;
 */
@SmallTest
public class WifiNetworkAgentSpecifierTest {
    private static final int TEST_UID = 5;
    private static final int TEST_UID_1 = 8;
    private static final String TEST_PACKAGE = "com.test";
    private static final String TEST_PACKAGE_1 = "com.test.1";
    private static final String TEST_SSID = "Test123";
    private static final String TEST_SSID_PATTERN = "Test";
    private static final String TEST_SSID_1 = "456test";
@@ -70,16 +65,6 @@ public class WifiNetworkAgentSpecifierTest {
        assertEquals(specifier, parcelSpecifier);
    }

    /**
     * Validate that the NetworkAgentSpecifier cannot be used in a {@link NetworkRequest} by apps.
     */
    @Test(expected = IllegalStateException.class)
    public void testWifiNetworkAgentSpecifierNotUsedInNetworkRequest() {
        WifiNetworkAgentSpecifier specifier = createDefaultNetworkAgentSpecifier();

        specifier.assertValidFromUid(TEST_UID);
    }

    /**
     * Validate NetworkAgentSpecifier equals with itself.
     * a) Create network agent specifier 1 for WPA_PSK network
@@ -105,15 +90,13 @@ public class WifiNetworkAgentSpecifierTest {
        WifiConfiguration wifiConfiguration1 = createDefaultWifiConfiguration();
        WifiNetworkAgentSpecifier specifier1 =
                new WifiNetworkAgentSpecifier(
                        wifiConfiguration1,
                        TEST_UID, TEST_PACKAGE);
                        wifiConfiguration1);

        WifiConfiguration wifiConfiguration2 = new WifiConfiguration(wifiConfiguration1);
        wifiConfiguration2.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
        WifiNetworkAgentSpecifier specifier2 =
                new WifiNetworkAgentSpecifier(
                        wifiConfiguration2,
                        TEST_UID, TEST_PACKAGE);
                        wifiConfiguration2);

        assertFalse(specifier2.equals(specifier1));
    }
@@ -129,15 +112,13 @@ public class WifiNetworkAgentSpecifierTest {
        WifiConfiguration wifiConfiguration1 = createDefaultWifiConfiguration();
        WifiNetworkAgentSpecifier specifier1 =
                new WifiNetworkAgentSpecifier(
                        wifiConfiguration1,
                        TEST_UID, TEST_PACKAGE);
                        wifiConfiguration1);

        WifiConfiguration wifiConfiguration2 = new WifiConfiguration(wifiConfiguration1);
        wifiConfiguration2.SSID = TEST_SSID_1;
        WifiNetworkAgentSpecifier specifier2 =
                new WifiNetworkAgentSpecifier(
                        wifiConfiguration2,
                        TEST_UID, TEST_PACKAGE);
                        wifiConfiguration2);

        assertFalse(specifier2.equals(specifier1));
    }
@@ -153,15 +134,13 @@ public class WifiNetworkAgentSpecifierTest {
        WifiConfiguration wifiConfiguration1 = createDefaultWifiConfiguration();
        WifiNetworkAgentSpecifier specifier1 =
                new WifiNetworkAgentSpecifier(
                        wifiConfiguration1,
                        TEST_UID, TEST_PACKAGE);
                        wifiConfiguration1);

        WifiConfiguration wifiConfiguration2 = new WifiConfiguration(wifiConfiguration1);
        wifiConfiguration2.BSSID = TEST_BSSID_1;
        WifiNetworkAgentSpecifier specifier2 =
                new WifiNetworkAgentSpecifier(
                        wifiConfiguration2,
                        TEST_UID, TEST_PACKAGE);
                        wifiConfiguration2);

        assertFalse(specifier2.equals(specifier1));
    }
@@ -215,8 +194,7 @@ public class WifiNetworkAgentSpecifierTest {
        WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier(
                ssidPattern,
                bssidPattern,
                wificonfigurationNetworkSpecifier,
                TEST_UID, TEST_PACKAGE);
                wificonfigurationNetworkSpecifier);

        assertTrue(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
        assertTrue(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
@@ -244,8 +222,7 @@ public class WifiNetworkAgentSpecifierTest {
        WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier(
                ssidPattern,
                bssidPattern,
                wificonfigurationNetworkSpecifier,
                TEST_UID, TEST_PACKAGE);
                wificonfigurationNetworkSpecifier);

        assertTrue(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
        assertTrue(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
@@ -273,8 +250,7 @@ public class WifiNetworkAgentSpecifierTest {
        WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier(
                ssidPattern,
                bssidPattern,
                wificonfigurationNetworkSpecifier,
                TEST_UID, TEST_PACKAGE);
                wificonfigurationNetworkSpecifier);

        assertTrue(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
        assertTrue(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
@@ -293,8 +269,7 @@ public class WifiNetworkAgentSpecifierTest {
        wifiConfigurationNetworkAgent.SSID = "\"" + TEST_SSID_1 + "\"";
        WifiNetworkAgentSpecifier wifiNetworkAgentSpecifier =
                new WifiNetworkAgentSpecifier(
                        wifiConfigurationNetworkAgent,
                        TEST_UID, TEST_PACKAGE);
                        wifiConfigurationNetworkAgent);

        PatternMatcher ssidPattern =
                new PatternMatcher(TEST_SSID_PATTERN, PatternMatcher.PATTERN_PREFIX);
@@ -306,8 +281,7 @@ public class WifiNetworkAgentSpecifierTest {
        WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier(
                ssidPattern,
                bssidPattern,
                wificonfigurationNetworkSpecifier,
                TEST_UID, TEST_PACKAGE);
                wificonfigurationNetworkSpecifier);

        assertFalse(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
        assertFalse(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
@@ -326,8 +300,7 @@ public class WifiNetworkAgentSpecifierTest {
        wifiConfigurationNetworkAgent.BSSID = TEST_BSSID_1;
        WifiNetworkAgentSpecifier wifiNetworkAgentSpecifier =
                new WifiNetworkAgentSpecifier(
                        wifiConfigurationNetworkAgent,
                        TEST_UID, TEST_PACKAGE);
                        wifiConfigurationNetworkAgent);

        PatternMatcher ssidPattern =
                new PatternMatcher(".*", PatternMatcher.PATTERN_SIMPLE_GLOB);
@@ -340,8 +313,7 @@ public class WifiNetworkAgentSpecifierTest {
        WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier(
                ssidPattern,
                bssidPattern,
                wificonfigurationNetworkSpecifier,
                TEST_UID, TEST_PACKAGE);
                wificonfigurationNetworkSpecifier);

        assertFalse(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
        assertFalse(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
@@ -360,8 +332,7 @@ public class WifiNetworkAgentSpecifierTest {
        wifiConfigurationNetworkAgent.BSSID = TEST_BSSID_1;
        WifiNetworkAgentSpecifier wifiNetworkAgentSpecifier =
                new WifiNetworkAgentSpecifier(
                        wifiConfigurationNetworkAgent,
                        TEST_UID, TEST_PACKAGE);
                        wifiConfigurationNetworkAgent);

        PatternMatcher ssidPattern =
                new PatternMatcher(TEST_SSID_PATTERN, PatternMatcher.PATTERN_PREFIX);
@@ -374,8 +345,7 @@ public class WifiNetworkAgentSpecifierTest {
        WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier(
                ssidPattern,
                bssidPattern,
                wificonfigurationNetworkSpecifier,
                TEST_UID, TEST_PACKAGE);
                wificonfigurationNetworkSpecifier);

        assertFalse(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
        assertFalse(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
@@ -402,41 +372,12 @@ public class WifiNetworkAgentSpecifierTest {
        WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier(
                ssidPattern,
                bssidPattern,
                wificonfigurationNetworkSpecifier,
                TEST_UID, TEST_PACKAGE);
                wificonfigurationNetworkSpecifier);

        assertFalse(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
        assertFalse(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
    }

    /**
     * Validate {@link WifiNetworkAgentSpecifier} with {@link WifiNetworkSpecifier} matching.
     * a) Create network agent specifier for WPA_PSK network
     * b) Create network specifier with matching SSID and BSSID pattern, but different UID.
     * c) Ensure that the agent specifier is not satisfied by specifier.
     */
    @Test
    public void
            testWifiNetworkAgentSpecifierDoesNotSatisfyNetworkSpecifierWithDifferentUid() {
        WifiNetworkAgentSpecifier wifiNetworkAgentSpecifier = createDefaultNetworkAgentSpecifier();

        PatternMatcher ssidPattern =
                new PatternMatcher(TEST_SSID_PATTERN, PatternMatcher.PATTERN_PREFIX);
        Pair<MacAddress, MacAddress> bssidPattern =
                Pair.create(MacAddress.fromString(TEST_BSSID_OUI_BASE_ADDRESS),
                        MacAddress.fromString(TEST_BSSID_OUI_MASK));
        WifiConfiguration wificonfigurationNetworkSpecifier = new WifiConfiguration();
        wificonfigurationNetworkSpecifier.allowedKeyManagement
                .set(WifiConfiguration.KeyMgmt.WPA_PSK);
        WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier(
                ssidPattern,
                bssidPattern,
                wificonfigurationNetworkSpecifier,
                TEST_UID_1, TEST_PACKAGE_1);

        assertFalse(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
        assertFalse(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
    }

    private WifiConfiguration createDefaultWifiConfiguration() {
        WifiConfiguration wifiConfiguration = new WifiConfiguration();
@@ -448,8 +389,7 @@ public class WifiNetworkAgentSpecifierTest {
    }

    private WifiNetworkAgentSpecifier createDefaultNetworkAgentSpecifier() {
        return new WifiNetworkAgentSpecifier(createDefaultWifiConfiguration(), TEST_UID,
                TEST_PACKAGE);
        return new WifiNetworkAgentSpecifier(createDefaultWifiConfiguration());
    }

}
Loading