WifiConfigManager: Change to NETWORK_SETTINGS permission check

Bug: 63911026
Test: Unit tests
Change-Id: Iaed6aceb8e8b4e586925a396a420d457d826d8ff
diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java
index 8aaebb2..8d37746 100644
--- a/service/java/com/android/server/wifi/WifiConfigManager.java
+++ b/service/java/com/android/server/wifi/WifiConfigManager.java
@@ -682,10 +682,10 @@
 
         final boolean isCreator = (config.creatorUid == uid);
 
-        // Check if the |uid| holds the |OVERRIDE_CONFIG_WIFI| permission if the caller asks us to
+        // Check if the |uid| holds the |NETWORK_SETTINGS| permission if the caller asks us to
         // bypass the lockdown checks.
         if (ignoreLockdown) {
-            return mWifiPermissionsUtil.checkConfigOverridePermission(uid);
+            return mWifiPermissionsUtil.checkNetworkSettingsPermission(uid);
         }
 
         // Check if device has DPM capability. If it has and |dpmi| is still null, then we
@@ -700,13 +700,14 @@
         final boolean isConfigEligibleForLockdown = dpmi != null && dpmi.isActiveAdminWithPolicy(
                 config.creatorUid, DeviceAdminInfo.USES_POLICY_DEVICE_OWNER);
         if (!isConfigEligibleForLockdown) {
-            return isCreator || mWifiPermissionsUtil.checkConfigOverridePermission(uid);
+            return isCreator || mWifiPermissionsUtil.checkNetworkSettingsPermission(uid);
         }
 
         final ContentResolver resolver = mContext.getContentResolver();
         final boolean isLockdownFeatureEnabled = Settings.Global.getInt(resolver,
                 Settings.Global.WIFI_DEVICE_OWNER_CONFIGS_LOCKDOWN, 0) != 0;
-        return !isLockdownFeatureEnabled && mWifiPermissionsUtil.checkConfigOverridePermission(uid);
+        return !isLockdownFeatureEnabled
+                && mWifiPermissionsUtil.checkNetworkSettingsPermission(uid);
     }
 
     /**
@@ -979,7 +980,7 @@
         if (WifiConfigurationUtil.hasProxyChanged(existingInternalConfig, newInternalConfig)
                 && !canModifyProxySettings(uid)) {
             Log.e(TAG, "UID " + uid + " does not have permission to modify proxy Settings "
-                    + config.configKey() + ". Must have OVERRIDE_WIFI_CONFIG,"
+                    + config.configKey() + ". Must have NETWORK_SETTINGS,"
                     + " or be device or profile owner.");
             return new NetworkUpdateResult(WifiConfiguration.INVALID_NETWORK_ID);
         }
@@ -1525,7 +1526,7 @@
      * @return true if |uid| has the necessary permission to trigger explicit connection to the
      * network, false otherwise.
      * Note: This returns true only for the system settings/sysui app which holds the
-     * {@link android.Manifest.permission#OVERRIDE_WIFI_CONFIG} permission. We don't want to let
+     * {@link android.Manifest.permission#NETWORK_SETTINGS} permission. We don't want to let
      * any other app force connection to a network.
      */
     public boolean checkAndUpdateLastConnectUid(int networkId, int uid) {
@@ -2886,15 +2887,15 @@
                 DeviceAdminInfo.USES_POLICY_PROFILE_OWNER);
         final boolean isUidDeviceOwner = dpmi != null && dpmi.isActiveAdminWithPolicy(uid,
                 DeviceAdminInfo.USES_POLICY_DEVICE_OWNER);
-        final boolean hasConfigOverridePermission =
-                mWifiPermissionsUtil.checkConfigOverridePermission(uid);
+        final boolean hasNetworkSettingsPermission =
+                mWifiPermissionsUtil.checkNetworkSettingsPermission(uid);
         // If |uid| corresponds to the device owner, allow all modifications.
-        if (isUidDeviceOwner || isUidProfileOwner || hasConfigOverridePermission) {
+        if (isUidDeviceOwner || isUidProfileOwner || hasNetworkSettingsPermission) {
             return true;
         }
         if (mVerboseLoggingEnabled) {
             Log.v(TAG, "UID: " + uid + " cannot modify WifiConfiguration proxy settings."
-                    + " ConfigOverride=" + hasConfigOverridePermission
+                    + " ConfigOverride=" + hasNetworkSettingsPermission
                     + " DeviceOwner=" + isUidDeviceOwner
                     + " ProfileOwner=" + isUidProfileOwner);
         }
diff --git a/service/java/com/android/server/wifi/WifiServiceImpl.java b/service/java/com/android/server/wifi/WifiServiceImpl.java
index 1c0b640..97e5ee7 100644
--- a/service/java/com/android/server/wifi/WifiServiceImpl.java
+++ b/service/java/com/android/server/wifi/WifiServiceImpl.java
@@ -768,12 +768,6 @@
         mWifiPermissionsUtil.enforceLocationPermission(pkgName, uid);
     }
 
-    private boolean checkNetworkSettingsPermission() {
-        int result = mContext.checkCallingOrSelfPermission(
-                android.Manifest.permission.NETWORK_SETTINGS);
-        return result == PackageManager.PERMISSION_GRANTED;
-    }
-
     /**
      * see {@link android.net.wifi.WifiManager#setWifiEnabled(boolean)}
      * @param enable {@code true} to enable, {@code false} to disable.
@@ -792,7 +786,8 @@
         // If SoftAp is enabled, only Settings is allowed to toggle wifi
         boolean apEnabled =
                 mWifiStateMachine.syncGetWifiApState() != WifiManager.WIFI_AP_STATE_DISABLED;
-        boolean isFromSettings = checkNetworkSettingsPermission();
+        boolean isFromSettings =
+                mWifiPermissionsUtil.checkNetworkSettingsPermission(Binder.getCallingUid());
         if (apEnabled && !isFromSettings) {
             mLog.trace("setWifiEnabled SoftAp not disabled: only Settings can enable wifi").flush();
             return false;
diff --git a/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java b/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java
index 95529b1..c5eea7d 100644
--- a/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java
+++ b/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java
@@ -256,4 +256,13 @@
         return (mSettingsStore.getLocationModeSetting(mContext)
                  != Settings.Secure.LOCATION_MODE_OFF);
     }
+
+    /**
+     * Returns true if the |uid| holds NETWORK_SETTINGS permission.
+     */
+    public boolean checkNetworkSettingsPermission(int uid) {
+        return mWifiPermissionsWrapper.getUidPermission(
+                android.Manifest.permission.NETWORK_SETTINGS, uid)
+                == PackageManager.PERMISSION_GRANTED;
+    }
 }
diff --git a/service/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java b/service/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java
index aa858c8..7509c18 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java
@@ -176,7 +176,7 @@
 
         when(mDevicePolicyManagerInternal.isActiveAdminWithPolicy(anyInt(), anyInt()))
                 .thenReturn(false);
-        when(mWifiPermissionsUtil.checkConfigOverridePermission(anyInt())).thenReturn(true);
+        when(mWifiPermissionsUtil.checkNetworkSettingsPermission(anyInt())).thenReturn(true);
         when(mWifiPermissionsWrapper.getDevicePolicyManagerInternal())
                 .thenReturn(mDevicePolicyManagerInternal);
         createWifiConfigManager();
@@ -325,7 +325,7 @@
         // Now change BSSID of the network.
         assertAndSetNetworkBSSID(openNetwork, TEST_BSSID);
 
-        when(mWifiPermissionsUtil.checkConfigOverridePermission(anyInt())).thenReturn(false);
+        when(mWifiPermissionsUtil.checkNetworkSettingsPermission(anyInt())).thenReturn(false);
 
         // Update the same configuration and ensure that the operation failed.
         NetworkUpdateResult result = updateNetworkToWifiConfigManager(openNetwork);
@@ -781,7 +781,7 @@
         assertTrue(retrievedStatus.isNetworkEnabled());
         verifyUpdateNetworkStatus(retrievedNetwork, WifiConfiguration.Status.ENABLED);
 
-        when(mWifiPermissionsUtil.checkConfigOverridePermission(anyInt())).thenReturn(false);
+        when(mWifiPermissionsUtil.checkNetworkSettingsPermission(anyInt())).thenReturn(false);
 
         // Now try to set it disabled with |TEST_UPDATE_UID|, it should fail and the network
         // should remain enabled.
@@ -810,7 +810,7 @@
                 mWifiConfigManager.getConfiguredNetwork(result.getNetworkId());
         assertEquals(TEST_CREATOR_UID, retrievedNetwork.lastConnectUid);
 
-        when(mWifiPermissionsUtil.checkConfigOverridePermission(anyInt())).thenReturn(false);
+        when(mWifiPermissionsUtil.checkNetworkSettingsPermission(anyInt())).thenReturn(false);
 
         // Now try to update the last connect UID with |TEST_UPDATE_UID|, it should fail and
         // the lastConnectUid should remain the same.
@@ -2977,14 +2977,14 @@
     @Test
     public void testAddNetworkWithProxyFails() {
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false, // withConfOverride
+                false, // withNetworkSettings
                 false, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 WifiConfigurationTestUtil.createDHCPIpConfigurationWithPacProxy(),
                 false, // assertSuccess
                 WifiConfiguration.INVALID_NETWORK_ID); // Update networkID
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false, // withConfOverride
+                false, // withNetworkSettings
                 false, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 WifiConfigurationTestUtil.createDHCPIpConfigurationWithStaticProxy(),
@@ -2999,14 +2999,14 @@
     @Test
     public void testAddNetworkWithProxyWithConfOverride() {
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                true,  // withConfOverride
+                true,  // withNetworkSettings
                 false, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 WifiConfigurationTestUtil.createDHCPIpConfigurationWithPacProxy(),
                 true, // assertSuccess
                 WifiConfiguration.INVALID_NETWORK_ID); // Update networkID
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                true,  // withConfOverride
+                true,  // withNetworkSettings
                 false, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 WifiConfigurationTestUtil.createDHCPIpConfigurationWithStaticProxy(),
@@ -3021,14 +3021,14 @@
     @Test
     public void testAddNetworkWithProxyAsProfileOwner() {
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false,  // withConfOverride
+                false,  // withNetworkSettings
                 true, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 WifiConfigurationTestUtil.createDHCPIpConfigurationWithPacProxy(),
                 true, // assertSuccess
                 WifiConfiguration.INVALID_NETWORK_ID); // Update networkID
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false,  // withConfOverride
+                false,  // withNetworkSettings
                 true, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 WifiConfigurationTestUtil.createDHCPIpConfigurationWithStaticProxy(),
@@ -3042,14 +3042,14 @@
     @Test
     public void testAddNetworkWithProxyAsDeviceOwner() {
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false,  // withConfOverride
+                false,  // withNetworkSettings
                 false, // withProfileOwnerPolicy
                 true, // withDeviceOwnerPolicy
                 WifiConfigurationTestUtil.createDHCPIpConfigurationWithPacProxy(),
                 true, // assertSuccess
                 WifiConfiguration.INVALID_NETWORK_ID); // Update networkID
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false,  // withConfOverride
+                false,  // withNetworkSettings
                 false, // withProfileOwnerPolicy
                 true, // withDeviceOwnerPolicy
                 WifiConfigurationTestUtil.createDHCPIpConfigurationWithStaticProxy(),
@@ -3065,14 +3065,14 @@
         WifiConfiguration network = WifiConfigurationTestUtil.createOpenHiddenNetwork();
         NetworkUpdateResult result = verifyAddNetworkToWifiConfigManager(network);
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false, // withConfOverride
+                false, // withNetworkSettings
                 false, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 WifiConfigurationTestUtil.createDHCPIpConfigurationWithPacProxy(),
                 false, // assertSuccess
                 result.getNetworkId()); // Update networkID
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false, // withConfOverride
+                false, // withNetworkSettings
                 false, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 WifiConfigurationTestUtil.createDHCPIpConfigurationWithStaticProxy(),
@@ -3092,7 +3092,7 @@
         NetworkUpdateResult result = addNetworkToWifiConfigManager(network, TEST_CREATOR_UID);
         assertTrue(result.getNetworkId() != WifiConfiguration.INVALID_NETWORK_ID);
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                true, // withConfOverride
+                true, // withNetworkSettings
                 false, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 WifiConfigurationTestUtil.createDHCPIpConfigurationWithPacProxy(),
@@ -3104,7 +3104,7 @@
         result = addNetworkToWifiConfigManager(network, TEST_NO_PERM_UID);
         assertTrue(result.getNetworkId() != WifiConfiguration.INVALID_NETWORK_ID);
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false, // withConfOverride
+                false, // withNetworkSettings
                 true, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 WifiConfigurationTestUtil.createDHCPIpConfigurationWithPacProxy(),
@@ -3116,7 +3116,7 @@
         result = addNetworkToWifiConfigManager(network, TEST_NO_PERM_UID);
         assertTrue(result.getNetworkId() != WifiConfiguration.INVALID_NETWORK_ID);
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false, // withConfOverride
+                false, // withNetworkSettings
                 false, // withProfileOwnerPolicy
                 true, // withDeviceOwnerPolicy
                 WifiConfigurationTestUtil.createDHCPIpConfigurationWithPacProxy(),
@@ -3133,7 +3133,7 @@
         IpConfiguration ipConf = WifiConfigurationTestUtil.createDHCPIpConfigurationWithPacProxy();
         // First create a WifiConfiguration with proxy
         NetworkUpdateResult result = verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                        false, // withConfOverride
+                        false, // withNetworkSettings
                         true, // withProfileOwnerPolicy
                         false, // withDeviceOwnerPolicy
                         ipConf,
@@ -3141,7 +3141,7 @@
                         WifiConfiguration.INVALID_NETWORK_ID); // Update networkID
         // Update the network while using the same ipConf, and no proxy specific permissions
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                        false, // withConfOverride
+                        false, // withNetworkSettings
                         false, // withProfileOwnerPolicy
                         false, // withDeviceOwnerPolicy
                         ipConf,
@@ -3175,14 +3175,14 @@
 
         // Update with Conf Override
         NetworkUpdateResult result = verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                true, // withConfOverride
+                true, // withNetworkSettings
                 false, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 ipConf1,
                 true, // assertSuccess
                 WifiConfiguration.INVALID_NETWORK_ID); // Update networkID
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                true, // withConfOverride
+                true, // withNetworkSettings
                 false, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 ipConf2,
@@ -3191,14 +3191,14 @@
 
         // Update as Device Owner
         result = verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false, // withConfOverride
+                false, // withNetworkSettings
                 false, // withProfileOwnerPolicy
                 true, // withDeviceOwnerPolicy
                 ipConf1,
                 true, // assertSuccess
                 WifiConfiguration.INVALID_NETWORK_ID); // Update networkID
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false, // withConfOverride
+                false, // withNetworkSettings
                 false, // withProfileOwnerPolicy
                 true, // withDeviceOwnerPolicy
                 ipConf2,
@@ -3207,14 +3207,14 @@
 
         // Update as Profile Owner
         result = verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false, // withConfOverride
+                false, // withNetworkSettings
                 true, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 ipConf1,
                 true, // assertSuccess
                 WifiConfiguration.INVALID_NETWORK_ID); // Update networkID
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false, // withConfOverride
+                false, // withNetworkSettings
                 true, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 ipConf2,
@@ -3223,14 +3223,14 @@
 
         // Update with no permissions (should fail)
         result = verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false, // withConfOverride
+                false, // withNetworkSettings
                 true, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 ipConf1,
                 true, // assertSuccess
                 WifiConfiguration.INVALID_NETWORK_ID); // Update networkID
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false, // withConfOverride
+                false, // withNetworkSettings
                 false, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 ipConf2,
@@ -3263,14 +3263,14 @@
 
         // Update with Conf Override
         NetworkUpdateResult result = verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                true, // withConfOverride
+                true, // withNetworkSettings
                 false, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 ipConf1,
                 true, // assertSuccess
                 WifiConfiguration.INVALID_NETWORK_ID); // Update networkID
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                true, // withConfOverride
+                true, // withNetworkSettings
                 false, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 ipConf2,
@@ -3279,14 +3279,14 @@
 
         // Update as Device Owner
         result = verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false, // withConfOverride
+                false, // withNetworkSettings
                 false, // withProfileOwnerPolicy
                 true, // withDeviceOwnerPolicy
                 ipConf1,
                 true, // assertSuccess
                 WifiConfiguration.INVALID_NETWORK_ID); // Update networkID
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false, // withConfOverride
+                false, // withNetworkSettings
                 false, // withProfileOwnerPolicy
                 true, // withDeviceOwnerPolicy
                 ipConf2,
@@ -3295,14 +3295,14 @@
 
         // Update as Profile Owner
         result = verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false, // withConfOverride
+                false, // withNetworkSettings
                 true, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 ipConf1,
                 true, // assertSuccess
                 WifiConfiguration.INVALID_NETWORK_ID); // Update networkID
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false, // withConfOverride
+                false, // withNetworkSettings
                 true, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 ipConf2,
@@ -3311,14 +3311,14 @@
 
         // Update with no permissions (should fail)
         result = verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false, // withConfOverride
+                false, // withNetworkSettings
                 true, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 ipConf1,
                 true, // assertSuccess
                 WifiConfiguration.INVALID_NETWORK_ID); // Update networkID
         verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-                false, // withConfOverride
+                false, // withNetworkSettings
                 false, // withProfileOwnerPolicy
                 false, // withDeviceOwnerPolicy
                 ipConf2,
@@ -3345,7 +3345,7 @@
     }
 
     private NetworkUpdateResult verifyAddOrUpdateNetworkWithProxySettingsAndPermissions(
-            boolean withConfOverride,
+            boolean withNetworkSettings,
             boolean withProfileOwnerPolicy,
             boolean withDeviceOwnerPolicy,
             IpConfiguration ipConfiguration,
@@ -3364,9 +3364,9 @@
         when(mDevicePolicyManagerInternal.isActiveAdminWithPolicy(anyInt(),
                 eq(DeviceAdminInfo.USES_POLICY_DEVICE_OWNER)))
                 .thenReturn(withDeviceOwnerPolicy);
-        when(mWifiPermissionsUtil.checkConfigOverridePermission(anyInt()))
-                .thenReturn(withConfOverride);
-        int uid = withConfOverride ? TEST_CREATOR_UID : TEST_NO_PERM_UID;
+        when(mWifiPermissionsUtil.checkNetworkSettingsPermission(anyInt()))
+                .thenReturn(withNetworkSettings);
+        int uid = withNetworkSettings ? TEST_CREATOR_UID : TEST_NO_PERM_UID;
         NetworkUpdateResult result = addNetworkToWifiConfigManager(network, uid);
         assertEquals(assertSuccess, result.getNetworkId() != WifiConfiguration.INVALID_NETWORK_ID);
         return result;
diff --git a/service/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java b/service/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java
index f6115ce..ce4556d 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java
@@ -400,9 +400,7 @@
     public void testSetWifiEnabledFromNetworkSettingsHolderWhenApEnabled() throws Exception {
         when(mWifiStateMachine.syncGetWifiApState()).thenReturn(WifiManager.WIFI_AP_STATE_ENABLED);
         when(mSettingsStore.handleWifiToggled(eq(true))).thenReturn(true);
-        when(mContext.checkCallingOrSelfPermission(
-                eq(android.Manifest.permission.NETWORK_SETTINGS)))
-                        .thenReturn(PackageManager.PERMISSION_GRANTED);
+        when(mWifiPermissionsUtil.checkNetworkSettingsPermission(anyInt())).thenReturn(true);
         assertTrue(mWifiServiceImpl.setWifiEnabled(SYSUI_PACKAGE_NAME, true));
         verify(mWifiController).sendMessage(eq(CMD_WIFI_TOGGLED));
     }
@@ -413,9 +411,7 @@
     @Test
     public void testSetWifiEnabledFromAppFailsWhenApEnabled() throws Exception {
         when(mWifiStateMachine.syncGetWifiApState()).thenReturn(WifiManager.WIFI_AP_STATE_ENABLED);
-        when(mContext.checkCallingOrSelfPermission(
-                eq(android.Manifest.permission.NETWORK_SETTINGS)))
-                        .thenReturn(PackageManager.PERMISSION_DENIED);
+        when(mWifiPermissionsUtil.checkNetworkSettingsPermission(anyInt())).thenReturn(false);
         assertFalse(mWifiServiceImpl.setWifiEnabled(TEST_PACKAGE_NAME, true));
         verify(mSettingsStore, never()).handleWifiToggled(anyBoolean());
         verify(mWifiController, never()).sendMessage(eq(CMD_WIFI_TOGGLED));