Loading wifi/java/android/net/wifi/WifiNetworkSuggestion.java +2 −0 Original line number Diff line number Diff line Loading @@ -732,6 +732,8 @@ public final class WifiNetworkSuggestion implements Parcelable { + "suggestion with Passpoint configuration"); } wifiConfiguration = buildWifiConfigurationForPasspoint(); mPasspointConfiguration.setEnhancedMacRandomizationEnabled( mIsEnhancedMacRandomizationEnabled); } else { if (mSsid == null) { throw new IllegalStateException("setSsid should be invoked for suggestion"); Loading wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java +38 −1 Original line number Diff line number Diff line Loading @@ -443,6 +443,11 @@ public final class PasspointConfiguration implements Parcelable { */ private boolean mIsMacRandomizationEnabled = true; /** * Whether this passpoint configuration should use enhanced MAC randomization. */ private boolean mIsEnhancedMacRandomizationEnabled = false; /** * Indicates if the end user has expressed an explicit opinion about the * meteredness of this network, such as through the Settings app. Loading Loading @@ -480,6 +485,20 @@ public final class PasspointConfiguration implements Parcelable { mIsMacRandomizationEnabled = enabled; } /** * This setting is only applicable if MAC randomization is enabled. * If set to true, the framework will periodically generate new MAC addresses for new * connections. * If set to false (the default), the framework will use the same locally generated MAC address * for connections to this passpoint configuration. * @param enabled true to use enhanced MAC randomization, false to use persistent MAC * randomization. * @hide */ public void setEnhancedMacRandomizationEnabled(boolean enabled) { mIsEnhancedMacRandomizationEnabled = enabled; } /** * Sets the metered override setting for this Passpoint configuration. * Loading Loading @@ -530,6 +549,19 @@ public final class PasspointConfiguration implements Parcelable { return mIsMacRandomizationEnabled; } /** * When MAC randomization is enabled, this indicates whether enhanced MAC randomization or * persistent MAC randomization will be used for connections to this Passpoint network. * If true, the MAC address used for connections will periodically change. Otherwise, the same * locally generated MAC will be used for all connections to this passpoint configuration. * * @return true for enhanced MAC randomization enabled. False for disabled. * @hide */ public boolean isEnhancedMacRandomizationEnabled() { return mIsEnhancedMacRandomizationEnabled; } /** * Constructor for creating PasspointConfiguration with default values. */ Loading Loading @@ -574,6 +606,7 @@ public final class PasspointConfiguration implements Parcelable { mCarrierId = source.mCarrierId; mIsAutojoinEnabled = source.mIsAutojoinEnabled; mIsMacRandomizationEnabled = source.mIsMacRandomizationEnabled; mIsEnhancedMacRandomizationEnabled = source.mIsEnhancedMacRandomizationEnabled; mMeteredOverride = source.mMeteredOverride; } Loading Loading @@ -606,6 +639,7 @@ public final class PasspointConfiguration implements Parcelable { dest.writeInt(mCarrierId); dest.writeBoolean(mIsAutojoinEnabled); dest.writeBoolean(mIsMacRandomizationEnabled); dest.writeBoolean(mIsEnhancedMacRandomizationEnabled); dest.writeInt(mMeteredOverride); } Loading Loading @@ -639,6 +673,7 @@ public final class PasspointConfiguration implements Parcelable { && mCarrierId == that.mCarrierId && mIsAutojoinEnabled == that.mIsAutojoinEnabled && mIsMacRandomizationEnabled == that.mIsMacRandomizationEnabled && mIsEnhancedMacRandomizationEnabled == that.mIsEnhancedMacRandomizationEnabled && mMeteredOverride == that.mMeteredOverride && (mServiceFriendlyNames == null ? that.mServiceFriendlyNames == null : mServiceFriendlyNames.equals(that.mServiceFriendlyNames)); Loading @@ -651,7 +686,7 @@ public final class PasspointConfiguration implements Parcelable { mSubscriptionExpirationTimeMillis, mUsageLimitUsageTimePeriodInMinutes, mUsageLimitStartTimeInMillis, mUsageLimitDataLimit, mUsageLimitTimeLimitInMinutes, mServiceFriendlyNames, mCarrierId, mIsAutojoinEnabled, mIsMacRandomizationEnabled, mMeteredOverride); mIsEnhancedMacRandomizationEnabled, mMeteredOverride); } @Override Loading Loading @@ -707,6 +742,7 @@ public final class PasspointConfiguration implements Parcelable { builder.append("CarrierId:" + mCarrierId); builder.append("IsAutojoinEnabled:" + mIsAutojoinEnabled); builder.append("mIsMacRandomizationEnabled:" + mIsMacRandomizationEnabled); builder.append("mIsEnhancedMacRandomizationEnabled:" + mIsEnhancedMacRandomizationEnabled); builder.append("mMeteredOverride:" + mMeteredOverride); return builder.toString(); } Loading Loading @@ -815,6 +851,7 @@ public final class PasspointConfiguration implements Parcelable { config.mCarrierId = in.readInt(); config.mIsAutojoinEnabled = in.readBoolean(); config.mIsMacRandomizationEnabled = in.readBoolean(); config.mIsEnhancedMacRandomizationEnabled = in.readBoolean(); config.mMeteredOverride = in.readInt(); return config; } Loading wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -708,6 +708,31 @@ public class WifiNetworkSuggestionTest { suggestion.wifiConfiguration.macRandomizationSetting); } /** * Verify that the builder creates the appropriate PasspointConfiguration according to the * enhanced MAC randomization setting. */ @Test public void testWifiNetworkSuggestionBuilderSetMacRandomizationPasspoint() { PasspointConfiguration passpointConfiguration = PasspointTestUtils.createConfig(); WifiNetworkSuggestion suggestion = new WifiNetworkSuggestion.Builder() .setPasspointConfig(passpointConfiguration) .build(); assertEquals(false, suggestion.passpointConfiguration.isEnhancedMacRandomizationEnabled()); suggestion = new WifiNetworkSuggestion.Builder() .setPasspointConfig(passpointConfiguration) .setIsEnhancedMacRandomizationEnabled(false) .build(); assertEquals(false, suggestion.passpointConfiguration.isEnhancedMacRandomizationEnabled()); suggestion = new WifiNetworkSuggestion.Builder() .setPasspointConfig(passpointConfiguration) .setIsEnhancedMacRandomizationEnabled(true) .build(); assertEquals(true, suggestion.passpointConfiguration.isEnhancedMacRandomizationEnabled()); } /** * Check that parcel marshalling/unmarshalling works */ Loading wifi/tests/src/android/net/wifi/hotspot2/PasspointConfigurationTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -186,6 +186,7 @@ public class PasspointConfigurationTest { assertFalse(config.validateForR2()); assertTrue(config.isAutojoinEnabled()); assertTrue(config.isMacRandomizationEnabled()); assertFalse(config.isEnhancedMacRandomizationEnabled()); assertTrue(config.getMeteredOverride() == METERED_OVERRIDE_NONE); } Loading Loading
wifi/java/android/net/wifi/WifiNetworkSuggestion.java +2 −0 Original line number Diff line number Diff line Loading @@ -732,6 +732,8 @@ public final class WifiNetworkSuggestion implements Parcelable { + "suggestion with Passpoint configuration"); } wifiConfiguration = buildWifiConfigurationForPasspoint(); mPasspointConfiguration.setEnhancedMacRandomizationEnabled( mIsEnhancedMacRandomizationEnabled); } else { if (mSsid == null) { throw new IllegalStateException("setSsid should be invoked for suggestion"); Loading
wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java +38 −1 Original line number Diff line number Diff line Loading @@ -443,6 +443,11 @@ public final class PasspointConfiguration implements Parcelable { */ private boolean mIsMacRandomizationEnabled = true; /** * Whether this passpoint configuration should use enhanced MAC randomization. */ private boolean mIsEnhancedMacRandomizationEnabled = false; /** * Indicates if the end user has expressed an explicit opinion about the * meteredness of this network, such as through the Settings app. Loading Loading @@ -480,6 +485,20 @@ public final class PasspointConfiguration implements Parcelable { mIsMacRandomizationEnabled = enabled; } /** * This setting is only applicable if MAC randomization is enabled. * If set to true, the framework will periodically generate new MAC addresses for new * connections. * If set to false (the default), the framework will use the same locally generated MAC address * for connections to this passpoint configuration. * @param enabled true to use enhanced MAC randomization, false to use persistent MAC * randomization. * @hide */ public void setEnhancedMacRandomizationEnabled(boolean enabled) { mIsEnhancedMacRandomizationEnabled = enabled; } /** * Sets the metered override setting for this Passpoint configuration. * Loading Loading @@ -530,6 +549,19 @@ public final class PasspointConfiguration implements Parcelable { return mIsMacRandomizationEnabled; } /** * When MAC randomization is enabled, this indicates whether enhanced MAC randomization or * persistent MAC randomization will be used for connections to this Passpoint network. * If true, the MAC address used for connections will periodically change. Otherwise, the same * locally generated MAC will be used for all connections to this passpoint configuration. * * @return true for enhanced MAC randomization enabled. False for disabled. * @hide */ public boolean isEnhancedMacRandomizationEnabled() { return mIsEnhancedMacRandomizationEnabled; } /** * Constructor for creating PasspointConfiguration with default values. */ Loading Loading @@ -574,6 +606,7 @@ public final class PasspointConfiguration implements Parcelable { mCarrierId = source.mCarrierId; mIsAutojoinEnabled = source.mIsAutojoinEnabled; mIsMacRandomizationEnabled = source.mIsMacRandomizationEnabled; mIsEnhancedMacRandomizationEnabled = source.mIsEnhancedMacRandomizationEnabled; mMeteredOverride = source.mMeteredOverride; } Loading Loading @@ -606,6 +639,7 @@ public final class PasspointConfiguration implements Parcelable { dest.writeInt(mCarrierId); dest.writeBoolean(mIsAutojoinEnabled); dest.writeBoolean(mIsMacRandomizationEnabled); dest.writeBoolean(mIsEnhancedMacRandomizationEnabled); dest.writeInt(mMeteredOverride); } Loading Loading @@ -639,6 +673,7 @@ public final class PasspointConfiguration implements Parcelable { && mCarrierId == that.mCarrierId && mIsAutojoinEnabled == that.mIsAutojoinEnabled && mIsMacRandomizationEnabled == that.mIsMacRandomizationEnabled && mIsEnhancedMacRandomizationEnabled == that.mIsEnhancedMacRandomizationEnabled && mMeteredOverride == that.mMeteredOverride && (mServiceFriendlyNames == null ? that.mServiceFriendlyNames == null : mServiceFriendlyNames.equals(that.mServiceFriendlyNames)); Loading @@ -651,7 +686,7 @@ public final class PasspointConfiguration implements Parcelable { mSubscriptionExpirationTimeMillis, mUsageLimitUsageTimePeriodInMinutes, mUsageLimitStartTimeInMillis, mUsageLimitDataLimit, mUsageLimitTimeLimitInMinutes, mServiceFriendlyNames, mCarrierId, mIsAutojoinEnabled, mIsMacRandomizationEnabled, mMeteredOverride); mIsEnhancedMacRandomizationEnabled, mMeteredOverride); } @Override Loading Loading @@ -707,6 +742,7 @@ public final class PasspointConfiguration implements Parcelable { builder.append("CarrierId:" + mCarrierId); builder.append("IsAutojoinEnabled:" + mIsAutojoinEnabled); builder.append("mIsMacRandomizationEnabled:" + mIsMacRandomizationEnabled); builder.append("mIsEnhancedMacRandomizationEnabled:" + mIsEnhancedMacRandomizationEnabled); builder.append("mMeteredOverride:" + mMeteredOverride); return builder.toString(); } Loading Loading @@ -815,6 +851,7 @@ public final class PasspointConfiguration implements Parcelable { config.mCarrierId = in.readInt(); config.mIsAutojoinEnabled = in.readBoolean(); config.mIsMacRandomizationEnabled = in.readBoolean(); config.mIsEnhancedMacRandomizationEnabled = in.readBoolean(); config.mMeteredOverride = in.readInt(); return config; } Loading
wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -708,6 +708,31 @@ public class WifiNetworkSuggestionTest { suggestion.wifiConfiguration.macRandomizationSetting); } /** * Verify that the builder creates the appropriate PasspointConfiguration according to the * enhanced MAC randomization setting. */ @Test public void testWifiNetworkSuggestionBuilderSetMacRandomizationPasspoint() { PasspointConfiguration passpointConfiguration = PasspointTestUtils.createConfig(); WifiNetworkSuggestion suggestion = new WifiNetworkSuggestion.Builder() .setPasspointConfig(passpointConfiguration) .build(); assertEquals(false, suggestion.passpointConfiguration.isEnhancedMacRandomizationEnabled()); suggestion = new WifiNetworkSuggestion.Builder() .setPasspointConfig(passpointConfiguration) .setIsEnhancedMacRandomizationEnabled(false) .build(); assertEquals(false, suggestion.passpointConfiguration.isEnhancedMacRandomizationEnabled()); suggestion = new WifiNetworkSuggestion.Builder() .setPasspointConfig(passpointConfiguration) .setIsEnhancedMacRandomizationEnabled(true) .build(); assertEquals(true, suggestion.passpointConfiguration.isEnhancedMacRandomizationEnabled()); } /** * Check that parcel marshalling/unmarshalling works */ Loading
wifi/tests/src/android/net/wifi/hotspot2/PasspointConfigurationTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -186,6 +186,7 @@ public class PasspointConfigurationTest { assertFalse(config.validateForR2()); assertTrue(config.isAutojoinEnabled()); assertTrue(config.isMacRandomizationEnabled()); assertFalse(config.isEnhancedMacRandomizationEnabled()); assertTrue(config.getMeteredOverride() == METERED_OVERRIDE_NONE); } Loading