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

Commit 7acd4c1c authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "ConnectivityManager: Address review comments from aosp/1595396" am:...

Merge "ConnectivityManager: Address review comments from aosp/1595396" am: e3aff37e am: 1d73c810

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1633279

Change-Id: I9fe5fb1cbbbae44e91efe90107c220a7b64d9755
parents d7d903b3 1d73c810
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -3418,6 +3418,8 @@ public class ConnectivityManager {
         * not include location sensitive info.
         * </p>
         */
        // Note: Some existing fields which are location sensitive may still be included without
        // this flag if the app targets SDK < S (to maintain backwards compatibility).
        public static final int FLAG_INCLUDE_LOCATION_INFO = 1 << 0;

        /** @hide */
+3 −1
Original line number Diff line number Diff line
@@ -1111,7 +1111,9 @@ public final class NetworkCapabilities implements Parcelable {
     * app needs to hold {@link android.Manifest.permission#ACCESS_FINE_LOCATION} permission. If the
     * app targets SDK version greater than or equal to {@link Build.VERSION_CODES#S}, then they
     * also need to use {@link NetworkCallback#FLAG_INCLUDE_LOCATION_INFO} to get the info in their
     * callback. The app will be blamed for location access if this field is included.
     * callback. If the apps targets SDK version equal to {{@link Build.VERSION_CODES#R}, this field
     * will always be included. The app will be blamed for location access if this field is
     * included.
     * </p>
     */
    public int getOwnerUid() {
+33 −52
Original line number Diff line number Diff line
@@ -9152,7 +9152,7 @@ public class ConnectivityServiceTest {
        final int expectedOwnerUidWithoutIncludeFlag =
                shouldInclLocationSensitiveOwnerUidWithoutIncludeFlag
                        ? Process.myUid() : INVALID_UID;
                        ? myUid : INVALID_UID;
        assertEquals(expectedOwnerUidWithoutIncludeFlag, getOwnerUidNetCapsPermission(
                myUid, myUid, false /* includeLocationSensitiveInfo */));
@@ -9171,40 +9171,35 @@ public class ConnectivityServiceTest {
    }
    @Test
    public void testCreateWithLocationInfoSanitizedWithFineLocationAfterQ()
            throws Exception {
        setupLocationPermissions(Build.VERSION_CODES.Q, true, AppOpsManager.OPSTR_FINE_LOCATION,
                Manifest.permission.ACCESS_FINE_LOCATION);
    private void verifyOwnerUidAndTransportInfoNetCapsPermissionPreS() {
        verifyOwnerUidAndTransportInfoNetCapsPermission(
                // Ensure that we include owner uid even if the request asks to remove it since the
                // app has necessary permissions and targetSdk < S.
                // Ensure that owner uid is included even if the request asks to remove it (which is
                // the default) since the app has necessary permissions and targetSdk < S.
                true, /* shouldInclLocationSensitiveOwnerUidWithoutIncludeFlag */
                true, /* shouldInclLocationSensitiveOwnerUidWithIncludeFlag */
                false, /* shouldInclLocationSensitiveTransportInfoWithoutIncludeFlag */
                // Ensure that we remove location info if the request asks to remove it even if the
                // Ensure that location info is removed if the request asks to remove it even if the
                // app has necessary permissions.
                false, /* shouldInclLocationSensitiveTransportInfoWithoutIncludeFlag */
                true /* shouldInclLocationSensitiveTransportInfoWithIncludeFlag */
        );
    }
    @Test
    public void testCreateWithLocationInfoSanitizedWithFineLocationAfterQPreS()
            throws Exception {
        setupLocationPermissions(Build.VERSION_CODES.Q, true, AppOpsManager.OPSTR_FINE_LOCATION,
                Manifest.permission.ACCESS_FINE_LOCATION);
        verifyOwnerUidAndTransportInfoNetCapsPermissionPreS();
    }
    @Test
    public void testCreateWithLocationInfoSanitizedWithFineLocationPreSWithAndWithoutCallbackFlag()
            throws Exception {
        setupLocationPermissions(Build.VERSION_CODES.R, true, AppOpsManager.OPSTR_FINE_LOCATION,
                Manifest.permission.ACCESS_FINE_LOCATION);
        verifyOwnerUidAndTransportInfoNetCapsPermission(
                // Ensure that we include owner uid even if the request asks to remove it since the
                // app has necessary permissions and targetSdk < S.
                true, /* shouldInclLocationSensitiveOwnerUidWithoutIncludeFlag */
                true, /* shouldInclLocationSensitiveOwnerUidWithIncludeFlag */
                false, /* shouldInclLocationSensitiveTransportInfoWithoutIncludeFlag */
                // Ensure that we remove location info if the request asks to remove it even if the
                // app has necessary permissions.
                true /* shouldInclLocationSensitiveTransportInfoWithIncludeFlag */
        );
        verifyOwnerUidAndTransportInfoNetCapsPermissionPreS();
    }
    @Test
@@ -9215,13 +9210,13 @@ public class ConnectivityServiceTest {
                Manifest.permission.ACCESS_FINE_LOCATION);
        verifyOwnerUidAndTransportInfoNetCapsPermission(
                // Ensure that we owner UID if the request asks us to remove it even if the app
                // has necessary permissions since targetSdk >= S.
                // Ensure that the owner UID is removed if the request asks us to remove it even
                // if the app has necessary permissions since targetSdk >= S.
                false, /* shouldInclLocationSensitiveOwnerUidWithoutIncludeFlag */
                true, /* shouldInclLocationSensitiveOwnerUidWithIncludeFlag */
                false, /* shouldInclLocationSensitiveTransportInfoWithoutIncludeFlag */
                // Ensure that we remove location info if the request asks to remove it even if the
                // Ensure that location info is removed if the request asks to remove it even if the
                // app has necessary permissions.
                false, /* shouldInclLocationSensitiveTransportInfoWithoutIncludeFlag */
                true /* shouldInclLocationSensitiveTransportInfoWithIncludeFlag */
        );
    }
@@ -9232,15 +9227,15 @@ public class ConnectivityServiceTest {
        setupLocationPermissions(Build.VERSION_CODES.P, true, AppOpsManager.OPSTR_COARSE_LOCATION,
                Manifest.permission.ACCESS_COARSE_LOCATION);
        verifyOwnerUidAndTransportInfoNetCapsPermissionPreS();
    }
    private void verifyOwnerUidAndTransportInfoNetCapsNotIncluded() {
        verifyOwnerUidAndTransportInfoNetCapsPermission(
                // Ensure that we owner UID if the request asks us to remove it even if the app
                // has necessary permissions since targetSdk >= S.
                true, /* shouldInclLocationSensitiveOwnerUidWithoutIncludeFlag */
                true, /* shouldInclLocationSensitiveOwnerUidWithIncludeFlag */
                false, /* shouldInclLocationSensitiveOwnerUidWithoutIncludeFlag */
                false, /* shouldInclLocationSensitiveOwnerUidWithIncludeFlag */
                false, /* shouldInclLocationSensitiveTransportInfoWithoutIncludeFlag */
                // Ensure that we remove location info if the request asks to remove it even if the
                // app has necessary permissions.
                true /* shouldInclLocationSensitiveTransportInfoWithIncludeFlag */
                false /* shouldInclLocationSensitiveTransportInfoWithIncludeFlag */
        );
    }
@@ -9250,12 +9245,7 @@ public class ConnectivityServiceTest {
        setupLocationPermissions(Build.VERSION_CODES.Q, false, AppOpsManager.OPSTR_FINE_LOCATION,
                Manifest.permission.ACCESS_FINE_LOCATION);
        verifyOwnerUidAndTransportInfoNetCapsPermission(
                false, /* shouldInclLocationSensitiveOwnerUidWithoutIncludeFlag */
                false, /* shouldInclLocationSensitiveOwnerUidWithIncludeFlag */
                false, /* shouldInclLocationSensitiveTransportInfoWithoutIncludeFlag */
                false /* shouldInclLocationSensitiveTransportInfoWithIncludeFlag */
        );
        verifyOwnerUidAndTransportInfoNetCapsNotIncluded();
    }
    @Test
@@ -9277,26 +9267,17 @@ public class ConnectivityServiceTest {
        setupLocationPermissions(Build.VERSION_CODES.Q, true, AppOpsManager.OPSTR_COARSE_LOCATION,
                Manifest.permission.ACCESS_COARSE_LOCATION);
        verifyOwnerUidAndTransportInfoNetCapsPermission(
                false, /* shouldInclLocationSensitiveOwnerUidWithoutIncludeFlag */
                false, /* shouldInclLocationSensitiveOwnerUidWithIncludeFlag */
                false, /* shouldInclLocationSensitiveTransportInfoWithoutIncludeFlag */
                false /* shouldInclLocationSensitiveTransportInfoWithIncludeFlag */
        );
        verifyOwnerUidAndTransportInfoNetCapsNotIncluded();
    }
    @Test
    public void testCreateWithLocationInfoSanitizedWithoutLocationPermission()
    public void testCreateWithLocationInfoSanitizedWithCoarseLocationAfterS()
            throws Exception {
        // Test that not having fine location permission leads to sanitization.
        setupLocationPermissions(Build.VERSION_CODES.Q, true, null /* op */, null /* perm */);
        setupLocationPermissions(Build.VERSION_CODES.S, true, AppOpsManager.OPSTR_COARSE_LOCATION,
                Manifest.permission.ACCESS_COARSE_LOCATION);
        verifyOwnerUidAndTransportInfoNetCapsPermission(
                false, /* shouldInclLocationSensitiveOwnerUidWithoutIncludeFlag */
                false, /* shouldInclLocationSensitiveOwnerUidWithIncludeFlag */
                false, /* shouldInclLocationSensitiveTransportInfoWithoutIncludeFlag */
                false /* shouldInclLocationSensitiveTransportInfoWithIncludeFlag */
        );
        verifyOwnerUidAndTransportInfoNetCapsNotIncluded();
    }
    @Test
+1 −1

File changed.

Contains only whitespace changes.