Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 45feed9b authored by Lorenzo Colitti's avatar Lorenzo Colitti
Browse files

Allow tests to create TRANSPORT_TEST|TRANSPORT_VPN networks.

This CL allows an app that has the MANAGE_TEST_NETWORKS
permission to create test VPN networks.

The code enforces that such networks can never apply to any UIDs
and thus will never carry any traffic.

Bug: 173331190
Test: passes existing tests, moved tests pass
Change-Id: I5befea0e3b4b6dce4ca0c6a04471a055186b644c
parent d182c40d
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -712,6 +712,7 @@ public final class NetworkCapabilities implements Parcelable {
        if (ArrayUtils.contains(originalAdministratorUids, creatorUid)) {
            setAdministratorUids(new int[] {creatorUid});
        }
        // There is no need to clear the UIDs, they have already been cleared by clearAll() above.
    }

    /**
@@ -805,7 +806,9 @@ public final class NetworkCapabilities implements Parcelable {
     */
    private static final int TEST_NETWORKS_ALLOWED_TRANSPORTS = 1 << TRANSPORT_TEST
            // Test ethernet networks can be created with EthernetManager#setIncludeTestInterfaces
            | 1 << TRANSPORT_ETHERNET;
            | 1 << TRANSPORT_ETHERNET
            // Test VPN networks can be created but their UID ranges must be empty.
            | 1 << TRANSPORT_VPN;

    /**
     * Adds the given transport type to this {@code NetworkCapability} instance.