diff options
author | Peter Qiu <zqiu@google.com> | 2017-03-20 10:02:12 -0700 |
---|---|---|
committer | Peter Qiu <zqiu@google.com> | 2017-03-22 11:51:38 -0700 |
commit | 3a86cc60b6cd3a5eb7b4982ba98f7e71ad45915e (patch) | |
tree | afde76f775f4bd8e79f2b9ef00709b1048622005 /tests | |
parent | 50bc1e851d073d4a986f5b32072f94bbaba86a95 (diff) |
hotspot2: allow Process.WIFI_UID to modify Passpoint networks
Passpoint networks are generated by PasspointManager, and can be
added to WifiConfigManager via either PasspointNetworkEvaluator
(for auto connection) or Settings app (for manual connection).
In either case, the network will need to be removed from
WifiConfigManager once the connection is completed.
Since the Passpoint networks are managed/owned by us, bypass
the permission check for any Passpoint network modifications
made by us (with UID Process.WIFI_UID).
Bug: 36357280
Test: frameworks/opt/net/wifi/tests/wifitests/runtests.sh
Test: manual test
Change-Id: I5b1bcf3cb882a9d63a1643d8db779788c22b8036
Diffstat (limited to 'tests')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java b/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java index 61c74180e..20b89dfc3 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java @@ -35,6 +35,7 @@ import android.net.wifi.WifiEnterpriseConfig; import android.net.wifi.WifiManager; import android.net.wifi.WifiScanner; import android.net.wifi.WifiSsid; +import android.os.Process; import android.os.UserHandle; import android.os.UserManager; import android.telephony.TelephonyManager; @@ -477,6 +478,30 @@ public class WifiConfigManagerTest { } /** + * Verify that a Passpoint network that's added by an app with {@link #TEST_CREATOR_UID} can + * be removed by WiFi Service with {@link Process#WIFI_UID}. + * + * @throws Exception + */ + @Test + public void testRemovePasspointNetworkAddedByOther() throws Exception { + WifiConfiguration passpointNetwork = WifiConfigurationTestUtil.createPasspointNetwork(); + + // Passpoint network is added using TEST_CREATOR_UID. + verifyAddPasspointNetworkToWifiConfigManager(passpointNetwork); + // Ensure that configured network list is not empty. + assertFalse(mWifiConfigManager.getConfiguredNetworks().isEmpty()); + + assertTrue(mWifiConfigManager.removeNetwork(passpointNetwork.networkId, Process.WIFI_UID)); + + // Verify keys are not being removed. + verify(mWifiKeyStore, never()).removeKeys(any(WifiEnterpriseConfig.class)); + verifyNetworkRemoveBroadcast(passpointNetwork); + // Ensure that the write was not invoked for Passpoint network remove. + mContextConfigStoreMockOrder.verify(mWifiConfigStore, never()).write(anyBoolean()); + + } + /** * Verifies the addition & update of multiple networks using * {@link WifiConfigManager#addOrUpdateNetwork(WifiConfiguration, int)} and the * removal of networks using |