Make isCarrierNetworkOffloadEnabled() public

Bug: 182416546
Test: atest FrameworksWifiTests
Change-Id: Ibeb7380093babe743f72eea6ba4b3f24a70d3f98
diff --git a/framework/api/current.txt b/framework/api/current.txt
index 98ba512..09857d5 100644
--- a/framework/api/current.txt
+++ b/framework/api/current.txt
@@ -357,6 +357,7 @@
     method public boolean is6GHzBandSupported();
     method @RequiresPermission(android.Manifest.permission.ACCESS_WIFI_STATE) public boolean isAutoWakeupEnabled();
     method public boolean isBridgedApConcurrencySupported();
+    method @RequiresPermission(android.Manifest.permission.ACCESS_WIFI_STATE) public boolean isCarrierNetworkOffloadEnabled(int, boolean);
     method public boolean isDecoratedIdentitySupported();
     method @Deprecated public boolean isDeviceToApRttSupported();
     method public boolean isEasyConnectEnrolleeResponderModeSupported();
diff --git a/framework/api/system-current.txt b/framework/api/system-current.txt
index 96a6f89..e90a910 100644
--- a/framework/api/system-current.txt
+++ b/framework/api/system-current.txt
@@ -527,7 +527,6 @@
     method @RequiresPermission(android.Manifest.permission.ACCESS_WIFI_STATE) public int getWifiApState();
     method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public java.util.List<android.net.wifi.WifiConfiguration> getWifiConfigForMatchedNetworkSuggestionsSharedWithUser(@NonNull java.util.List<android.net.wifi.ScanResult>);
     method public boolean isApMacRandomizationSupported();
-    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public boolean isCarrierNetworkOffloadEnabled(int, boolean);
     method public boolean isConnectedMacRandomizationSupported();
     method @Deprecated public boolean isDeviceToDeviceRttSupported();
     method public boolean isPortableHotspotSupported();
diff --git a/framework/java/android/net/wifi/WifiManager.java b/framework/java/android/net/wifi/WifiManager.java
index bada2c9..f1de199 100644
--- a/framework/java/android/net/wifi/WifiManager.java
+++ b/framework/java/android/net/wifi/WifiManager.java
@@ -7727,13 +7727,8 @@
      * @param merged True for carrier merged network, false otherwise.
      *               See {@link WifiNetworkSuggestion.Builder#setCarrierMerged(boolean)}
      * @return True to indicate that carrier network offload is enabled, false otherwise.
-     * @see #setCarrierNetworkOffloadEnabled(int, boolean, boolean)
-     * @hide
      */
-    @SystemApi
-    @RequiresPermission(anyOf = {
-            android.Manifest.permission.NETWORK_SETTINGS,
-            android.Manifest.permission.NETWORK_SETUP_WIZARD})
+    @RequiresPermission(ACCESS_WIFI_STATE)
     public boolean isCarrierNetworkOffloadEnabled(int subscriptionId, boolean merged) {
         if (!SdkLevel.isAtLeastS()) {
             throw new UnsupportedOperationException();
diff --git a/service/java/com/android/server/wifi/WifiServiceImpl.java b/service/java/com/android/server/wifi/WifiServiceImpl.java
index 1df882f..13b3281 100644
--- a/service/java/com/android/server/wifi/WifiServiceImpl.java
+++ b/service/java/com/android/server/wifi/WifiServiceImpl.java
@@ -5044,9 +5044,7 @@
      */
     @Override
     public boolean isCarrierNetworkOffloadEnabled(int subId, boolean merged) {
-        if (!isSettingsOrSuw(Binder.getCallingPid(), Binder.getCallingUid())) {
-            throw new SecurityException(TAG + ": Permission denied");
-        }
+        enforceAccessPermission();
         if (mVerboseLoggingEnabled) {
             mLog.info("isCarrierNetworkOffload uid=%").c(Binder.getCallingUid()).flush();
         }