summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntoan Angelov <arangelov@google.com>2020-06-24 18:33:42 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-06-24 18:33:42 +0000
commit273c4e562d1cdbed562811c617b56b568883bd39 (patch)
tree633ee65617c980c72d59b1817bee0bd680cd5a6a
parent698c277154b762ecd788d7d1be69d05899710e28 (diff)
parent8dfba0e35b584fe4a1a1fad1110168009d4dbef1 (diff)
Merge "Allow NETWORK_MANAGED_PROVISIONING to modify proxy settings." into rvc-dev
-rw-r--r--service/java/com/android/server/wifi/WifiConfigManager.java4
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java36
2 files changed, 36 insertions, 4 deletions
diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java
index 99de9277e..6d04b7a68 100644
--- a/service/java/com/android/server/wifi/WifiConfigManager.java
+++ b/service/java/com/android/server/wifi/WifiConfigManager.java
@@ -3240,9 +3240,11 @@ public class WifiConfigManager {
mWifiPermissionsUtil.checkNetworkSettingsPermission(uid);
final boolean hasNetworkSetupWizardPermission =
mWifiPermissionsUtil.checkNetworkSetupWizardPermission(uid);
+ final boolean hasNetworkManagedProvisioningPermission =
+ mWifiPermissionsUtil.checkNetworkManagedProvisioningPermission(uid);
// If |uid| corresponds to the device owner, allow all modifications.
if (isProfileOwner || isDeviceOwner || hasNetworkSettingsPermission
- || hasNetworkSetupWizardPermission) {
+ || hasNetworkSetupWizardPermission || hasNetworkManagedProvisioningPermission) {
return true;
}
if (mVerboseLoggingEnabled) {
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java b/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java
index 815b3ad0b..d2584adbc 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java
@@ -4003,6 +4003,33 @@ public class WifiConfigManagerTest extends WifiBaseTest {
true, // assertSuccess
WifiConfiguration.INVALID_NETWORK_ID); // Update networkID
}
+
+ /**
+ * Verifies that adding a network with a PAC or STATIC proxy, while having the
+ * {@link android.Manifest.permission#NETWORK_MANAGED_PROVISIONING} permission is successful
+ */
+ @Test
+ public void testAddNetworkWithProxyWithNetworkManagedPermission() {
+ verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
+ false, // withNetworkSettings
+ false, // withNetworkSetupWizard
+ true, // withNetworkManagedProvisioning
+ false, // withProfileOwnerPolicy
+ false, // withDeviceOwnerPolicy
+ WifiConfigurationTestUtil.createDHCPIpConfigurationWithPacProxy(),
+ true, // assertSuccess
+ WifiConfiguration.INVALID_NETWORK_ID); // Update networkID
+ verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
+ false, // withNetworkSettings
+ false, // withNetworkSetupWizard
+ true, // withNetworkManagedProvisioning
+ false, // withProfileOwnerPolicy
+ false, // withDeviceOwnerPolicy
+ WifiConfigurationTestUtil.createDHCPIpConfigurationWithStaticProxy(),
+ true, // assertSuccess
+ WifiConfiguration.INVALID_NETWORK_ID); // Update networkID
+ }
+
/**
* Verifies that updating a network (that has no proxy) and adding a PAC or STATIC proxy fails
* without being able to override configs, or holding Device or Profile owner policies.
@@ -4052,7 +4079,7 @@ public class WifiConfigManagerTest extends WifiBaseTest {
verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
false, // withNetworkSettings
true, // withNetworkSetupWizard
- false, // withProfileOwnerPolicy
+ false, false, // withProfileOwnerPolicy
false, // withDeviceOwnerPolicy
WifiConfigurationTestUtil.createDHCPIpConfigurationWithPacProxy(),
true, // assertSuccess
@@ -4633,13 +4660,14 @@ public class WifiConfigManagerTest extends WifiBaseTest {
boolean assertSuccess,
int networkId) {
return verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(withNetworkSettings,
- false, withProfileOwnerPolicy, withDeviceOwnerPolicy, ipConfiguration,
+ false, false, withProfileOwnerPolicy, withDeviceOwnerPolicy, ipConfiguration,
assertSuccess, networkId);
}
private NetworkUpdateResult verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
boolean withNetworkSettings,
boolean withNetworkSetupWizard,
+ boolean withNetworkManagedProvisioning,
boolean withProfileOwnerPolicy,
boolean withDeviceOwnerPolicy,
IpConfiguration ipConfiguration,
@@ -4660,7 +4688,9 @@ public class WifiConfigManagerTest extends WifiBaseTest {
.thenReturn(withNetworkSettings);
when(mWifiPermissionsUtil.checkNetworkSetupWizardPermission(anyInt()))
.thenReturn(withNetworkSetupWizard);
- int uid = withNetworkSettings || withNetworkSetupWizard
+ when(mWifiPermissionsUtil.checkNetworkManagedProvisioningPermission(anyInt()))
+ .thenReturn(withNetworkManagedProvisioning);
+ int uid = withNetworkSettings || withNetworkSetupWizard || withNetworkManagedProvisioning
? TEST_CREATOR_UID
: TEST_NO_PERM_UID;
NetworkUpdateResult result = addNetworkToWifiConfigManager(network, uid);