Merge "Enhanced MAC randomization API for passpoint"
This commit is contained in:
@@ -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");
|
||||
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
*
|
||||
@@ -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.
|
||||
*/
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
@@ -651,7 +686,7 @@ public final class PasspointConfiguration implements Parcelable {
|
||||
mSubscriptionExpirationTimeMillis, mUsageLimitUsageTimePeriodInMinutes,
|
||||
mUsageLimitStartTimeInMillis, mUsageLimitDataLimit, mUsageLimitTimeLimitInMinutes,
|
||||
mServiceFriendlyNames, mCarrierId, mIsAutojoinEnabled, mIsMacRandomizationEnabled,
|
||||
mMeteredOverride);
|
||||
mIsEnhancedMacRandomizationEnabled, mMeteredOverride);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -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();
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user