diff --git a/api/system-current.txt b/api/system-current.txt index dc0a880dd0c46..c978ef8b700ca 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -4368,7 +4368,7 @@ package android.net { public class CaptivePortal implements android.os.Parcelable { method public void logEvent(int, @NonNull String); - method public void reevaluateNetwork(); + method @RequiresPermission(android.Manifest.permission.NETWORK_STACK) public void reevaluateNetwork(); method public void useNetwork(); field public static final int APP_REQUEST_REEVALUATION_REQUIRED = 100; // 0x64 field public static final int APP_RETURN_DISMISSED = 0; // 0x0 diff --git a/api/test-current.txt b/api/test-current.txt index a806b642928c4..308afdc7dcee1 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -1398,7 +1398,7 @@ package android.net { public class CaptivePortal implements android.os.Parcelable { method public void logEvent(int, @NonNull String); - method public void reevaluateNetwork(); + method @RequiresPermission(android.Manifest.permission.NETWORK_STACK) public void reevaluateNetwork(); method public void useNetwork(); field public static final int APP_REQUEST_REEVALUATION_REQUIRED = 100; // 0x64 field public static final int APP_RETURN_DISMISSED = 0; // 0x0 diff --git a/core/java/android/net/CaptivePortal.java b/core/java/android/net/CaptivePortal.java index fb35b4bde3039..448fe5a0511e4 100644 --- a/core/java/android/net/CaptivePortal.java +++ b/core/java/android/net/CaptivePortal.java @@ -16,6 +16,7 @@ package android.net; import android.annotation.NonNull; +import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.TestApi; import android.os.IBinder; @@ -153,6 +154,7 @@ public class CaptivePortal implements Parcelable { */ @SystemApi @TestApi + @RequiresPermission(android.Manifest.permission.NETWORK_STACK) public void reevaluateNetwork() { try { ICaptivePortal.Stub.asInterface(mBinder).appRequest(APP_REQUEST_REEVALUATION_REQUIRED); diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 9d30222a2ec9c..e2b8ad948d3c7 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -3739,6 +3739,7 @@ public class ConnectivityService extends IConnectivityManager.Stub if (nm == null) return; if (request == CaptivePortal.APP_REQUEST_REEVALUATION_REQUIRED) { + checkNetworkStackPermission(); nm.forceReevaluation(Binder.getCallingUid()); } }