Merge "Changing the targetSdkVersion for RESTRICT_LOCAL_NETWORK" into main

This commit is contained in:
Sarup Dalwani 2025-03-20 23:13:12 -07:00 • committed by Gerrit Code Review
commit d43a4fdbfd
3 changed files with 48 additions and 16 deletions

View file

@ -139,13 +139,13 @@ public final class ConnectivityCompatChanges {
/**
* Restrict local network access.
*
* Apps targeting a release after V will require permissions to access the local network.
*
* ToDo: Update the target SDK version once it's finalized.
* @hide
*/
@ChangeId
@EnabledAfter(targetSdkVersion = Build.VERSION_CODES.CUR_DEVELOPMENT)
@EnabledAfter(targetSdkVersion = 36)
public static final long RESTRICT_LOCAL_NETWORK = 365139289L;
private ConnectivityCompatChanges() {

View file

@ -26,6 +26,7 @@
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.NEARBY_WIFI_DEVICES" />
<uses-permission android:name="android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />

View file

@ -15,6 +15,7 @@
*/
package android.net.cts
import android.Manifest.permission.NEARBY_WIFI_DEVICES
import android.Manifest.permission.NETWORK_SETTINGS
import android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE
import android.app.Instrumentation
@ -237,6 +238,12 @@ class NetworkAgentTest {
@Before
fun setUp() {
instrumentation.getUiAutomation().adoptShellPermissionIdentity()
if (SdkLevel.isAtLeastT()) {
instrumentation.getUiAutomation().grantRuntimePermission(
"android.net.cts",
NEARBY_WIFI_DEVICES
)
}
mHandlerThread.start()
}
@ -741,12 +748,24 @@ class NetworkAgentTest {
tryTest {
// This process is not the carrier service UID, so allowedUids should be ignored in all
// the following cases.
doTestAllowedUidsWithSubId(defaultSubId, TRANSPORT_CELLULAR, uid,
expectUidsPresent = false)
doTestAllowedUidsWithSubId(defaultSubId, TRANSPORT_WIFI, uid,
expectUidsPresent = false)
doTestAllowedUidsWithSubId(defaultSubId, TRANSPORT_BLUETOOTH, uid,
expectUidsPresent = false)
doTestAllowedUidsWithSubId(
defaultSubId,
TRANSPORT_CELLULAR,
uid,
expectUidsPresent = false
)
doTestAllowedUidsWithSubId(
defaultSubId,
TRANSPORT_WIFI,
uid,
expectUidsPresent = false
)
doTestAllowedUidsWithSubId(
defaultSubId,
TRANSPORT_BLUETOOTH,
uid,
expectUidsPresent = false
)
// The tools to set the carrier service package override do not exist before U,
// so there is no way to test the rest of this test on < U.
@ -764,9 +783,11 @@ class NetworkAgentTest {
val timeout = SystemClock.elapsedRealtime() + DEFAULT_TIMEOUT_MS
while (true) {
if (SystemClock.elapsedRealtime() > timeout) {
fail("Couldn't make $servicePackage the service package for $defaultSubId: " +
fail(
"Couldn't make $servicePackage the service package for $defaultSubId: " +
"dumpsys connectivity".execute().split("\n")
.filter { it.contains("Logical slot = $defaultSlotIndex.*") })
.filter { it.contains("Logical slot = $defaultSlotIndex.*") }
)
}
if ("dumpsys connectivity"
.execute()
@ -789,10 +810,18 @@ class NetworkAgentTest {
// TODO(b/315136340): Allow ownerUid to see allowedUids and enable below test case
// doTestAllowedUids(defaultSubId, TRANSPORT_WIFI, uid, expectUidsPresent = true)
}
doTestAllowedUidsWithSubId(defaultSubId, TRANSPORT_BLUETOOTH, uid,
expectUidsPresent = false)
doTestAllowedUidsWithSubId(defaultSubId, intArrayOf(TRANSPORT_CELLULAR, TRANSPORT_WIFI),
uid, expectUidsPresent = false)
doTestAllowedUidsWithSubId(
defaultSubId,
TRANSPORT_BLUETOOTH,
uid,
expectUidsPresent = false
)
doTestAllowedUidsWithSubId(
defaultSubId,
intArrayOf(TRANSPORT_CELLULAR, TRANSPORT_WIFI),
uid,
expectUidsPresent = false
)
}
}
@ -1848,8 +1877,10 @@ class NetworkAgentTest {
it.setTransportInfo(VpnTransportInfo(
VpnManager.TYPE_VPN_PLATFORM,
sessionId,
/*bypassable=*/ false,
/*longLivedTcpConnectionsExpensive=*/ false
/*bypassable=*/
false,
/*longLivedTcpConnectionsExpensive=*/
false
))
it.underlyingNetworks = listOf()
}