Use string for CREATE_APP_SPECIFIC_NETWORK permission
This allows using the permission in 25Q4 before it becomes a public API in 26Q2. Flag: android.net.platform.flags.create_app_specific_network_permission Test: TH Bug: 435313135 Cherrypick-From: https://googleplex-android-review.googlesource.com/q/commit:60f7743f773b05a98e651c953631e93957291bf5 Merged-In: I8d336a588eddf9a027079e208b2b96bb6c163e86 Change-Id: I8d336a588eddf9a027079e208b2b96bb6c163e86
This commit is contained in:
parent
fcc9df03ab
commit
c4fea9d31c
3 changed files with 16 additions and 4 deletions
|
|
@ -3967,6 +3967,10 @@ public class ConnectivityManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Use android.Manifest.permission.CREATE_APP_SPECIFIC_NETWORK once it's available.
|
||||||
|
private static final String PERMISSION_CREATE_APP_SPECIFIC_NETWORK =
|
||||||
|
"android.permission.CREATE_APP_SPECIFIC_NETWORK";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @hide
|
* @hide
|
||||||
* Register a NetworkAgent with ConnectivityService.
|
* Register a NetworkAgent with ConnectivityService.
|
||||||
|
|
@ -3975,7 +3979,7 @@ public class ConnectivityManager {
|
||||||
@RequiresPermission(anyOf = {
|
@RequiresPermission(anyOf = {
|
||||||
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
||||||
android.Manifest.permission.NETWORK_FACTORY,
|
android.Manifest.permission.NETWORK_FACTORY,
|
||||||
android.Manifest.permission.CREATE_APP_SPECIFIC_NETWORK})
|
PERMISSION_CREATE_APP_SPECIFIC_NETWORK})
|
||||||
public NetworkAndAgentRegistryParcelable registerNetworkAgent(
|
public NetworkAndAgentRegistryParcelable registerNetworkAgent(
|
||||||
@NonNull INetworkAgent na, @NonNull NetworkInfo ni,
|
@NonNull INetworkAgent na, @NonNull NetworkInfo ni,
|
||||||
@NonNull LinkProperties lp, @NonNull NetworkCapabilities nc,
|
@NonNull LinkProperties lp, @NonNull NetworkCapabilities nc,
|
||||||
|
|
@ -3992,7 +3996,7 @@ public class ConnectivityManager {
|
||||||
@RequiresPermission(anyOf = {
|
@RequiresPermission(anyOf = {
|
||||||
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
||||||
android.Manifest.permission.NETWORK_FACTORY,
|
android.Manifest.permission.NETWORK_FACTORY,
|
||||||
android.Manifest.permission.CREATE_APP_SPECIFIC_NETWORK})
|
PERMISSION_CREATE_APP_SPECIFIC_NETWORK})
|
||||||
public NetworkAndAgentRegistryParcelable registerNetworkAgent(
|
public NetworkAndAgentRegistryParcelable registerNetworkAgent(
|
||||||
@NonNull INetworkAgent na, @NonNull NetworkInfo ni,
|
@NonNull INetworkAgent na, @NonNull NetworkInfo ni,
|
||||||
@NonNull LinkProperties lp, @NonNull NetworkCapabilities nc,
|
@NonNull LinkProperties lp, @NonNull NetworkCapabilities nc,
|
||||||
|
|
|
||||||
|
|
@ -531,6 +531,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||||
// CONNECTIVITY_ACTION broadcast.
|
// CONNECTIVITY_ACTION broadcast.
|
||||||
private static final char DELIVERY_GROUP_KEY_DELIMITER = ';';
|
private static final char DELIVERY_GROUP_KEY_DELIMITER = ';';
|
||||||
|
|
||||||
|
// TODO: Use android.Manifest.permission.CREATE_APP_SPECIFIC_NETWORK once it's available.
|
||||||
|
private static final String PERMISSION_CREATE_APP_SPECIFIC_NETWORK =
|
||||||
|
"android.permission.CREATE_APP_SPECIFIC_NETWORK";
|
||||||
|
|
||||||
// The maximum value for the blocking validation result, in milliseconds.
|
// The maximum value for the blocking validation result, in milliseconds.
|
||||||
public static final int MAX_VALIDATION_IGNORE_AFTER_ROAM_TIME_MS = 10000;
|
public static final int MAX_VALIDATION_IGNORE_AFTER_ROAM_TIME_MS = 10000;
|
||||||
|
|
||||||
|
|
@ -4144,7 +4148,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||||
// The CREATE_APP_SPECIFIC_NETWORK permission was introduced in 25Q4.
|
// The CREATE_APP_SPECIFIC_NETWORK permission was introduced in 25Q4.
|
||||||
// It must not be granted on earlier platform versions, even if an app declares it.
|
// It must not be granted on earlier platform versions, even if an app declares it.
|
||||||
return mDeps.isAtLeast25Q4() && hasAnyPermissionOf(mContext,
|
return mDeps.isAtLeast25Q4() && hasAnyPermissionOf(mContext,
|
||||||
android.Manifest.permission.CREATE_APP_SPECIFIC_NETWORK);
|
PERMISSION_CREATE_APP_SPECIFIC_NETWORK);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean hasNetworkFactoryPermission() {
|
private boolean hasNetworkFactoryPermission() {
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,10 @@ import com.android.testutils.TestableNetworkCallback.Event.CapabilitiesChanged
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
|
|
||||||
|
// TODO: Use android.Manifest.permission.CREATE_APP_SPECIFIC_NETWORK once it's available.
|
||||||
|
private const val PERMISSION_CREATE_APP_SPECIFIC_NETWORK =
|
||||||
|
"android.permission.CREATE_APP_SPECIFIC_NETWORK"
|
||||||
|
|
||||||
@RunWith(DevSdkIgnoreRunner::class)
|
@RunWith(DevSdkIgnoreRunner::class)
|
||||||
@IgnoreUpTo(Build.VERSION_CODES.R)
|
@IgnoreUpTo(Build.VERSION_CODES.R)
|
||||||
class CSCreateAppSpecificNetworkPermissionTest : CSTest() {
|
class CSCreateAppSpecificNetworkPermissionTest : CSTest() {
|
||||||
|
|
@ -47,7 +51,7 @@ class CSCreateAppSpecificNetworkPermissionTest : CSTest() {
|
||||||
PERMISSION_DENIED
|
PERMISSION_DENIED
|
||||||
)
|
)
|
||||||
context.setPermission(
|
context.setPermission(
|
||||||
android.Manifest.permission.CREATE_APP_SPECIFIC_NETWORK,
|
PERMISSION_CREATE_APP_SPECIFIC_NETWORK,
|
||||||
PERMISSION_GRANTED
|
PERMISSION_GRANTED
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue