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

Commit 5ed48c4a authored by Brian Delwiche's avatar Brian Delwiche Committed by Automerger Merge Worker
Browse files

Fix permission bypasses to multiple methods am: 5fe72f93

parents 3bf2d71d 5fe72f93
Loading
Loading
Loading
Loading
+16 −16
Original line number Original line Diff line number Diff line
@@ -532,9 +532,9 @@ public final class Utils {
        }
        }
        // STOPSHIP(b/188391719): enable this security enforcement
        // STOPSHIP(b/188391719): enable this security enforcement
        // attributionSource.enforceCallingUid();
        // attributionSource.enforceCallingUid();
        AttributionSource currentAttribution = new AttributionSource
        AttributionSource currentAttribution =
                .Builder(context.getAttributionSource())
                new AttributionSource.Builder(context.getAttributionSource())
                .setNext(attributionSource)
                        .setNext(Objects.requireNonNull(attributionSource))
                        .build();
                        .build();
        PermissionManager pm = context.getSystemService(PermissionManager.class);
        PermissionManager pm = context.getSystemService(PermissionManager.class);
        if (pm == null) {
        if (pm == null) {
@@ -807,9 +807,9 @@ public final class Utils {
            Log.e(TAG, "Permission denial: Location is off.");
            Log.e(TAG, "Permission denial: Location is off.");
            return false;
            return false;
        }
        }
        AttributionSource currentAttribution = new AttributionSource
        AttributionSource currentAttribution =
                .Builder(context.getAttributionSource())
                new AttributionSource.Builder(context.getAttributionSource())
                .setNext(attributionSource)
                        .setNext(Objects.requireNonNull(attributionSource))
                        .build();
                        .build();
        // STOPSHIP(b/188391719): enable this security enforcement
        // STOPSHIP(b/188391719): enable this security enforcement
        // attributionSource.enforceCallingUid();
        // attributionSource.enforceCallingUid();
@@ -841,9 +841,9 @@ public final class Utils {
            return false;
            return false;
        }
        }


        final AttributionSource currentAttribution = new AttributionSource
        final AttributionSource currentAttribution =
                .Builder(context.getAttributionSource())
                new AttributionSource.Builder(context.getAttributionSource())
                .setNext(attributionSource)
                        .setNext(Objects.requireNonNull(attributionSource))
                        .build();
                        .build();
        // STOPSHIP(b/188391719): enable this security enforcement
        // STOPSHIP(b/188391719): enable this security enforcement
        // attributionSource.enforceCallingUid();
        // attributionSource.enforceCallingUid();
@@ -879,9 +879,9 @@ public final class Utils {
            return false;
            return false;
        }
        }


        AttributionSource currentAttribution = new AttributionSource
        AttributionSource currentAttribution =
                .Builder(context.getAttributionSource())
                new AttributionSource.Builder(context.getAttributionSource())
                .setNext(attributionSource)
                        .setNext(Objects.requireNonNull(attributionSource))
                        .build();
                        .build();
        // STOPSHIP(b/188391719): enable this security enforcement
        // STOPSHIP(b/188391719): enable this security enforcement
        // attributionSource.enforceCallingUid();
        // attributionSource.enforceCallingUid();
+9 −4
Original line number Original line Diff line number Diff line
@@ -120,10 +120,12 @@ public class UtilsTest {
        boolean enabledStatus = locationManager.isLocationEnabledForUser(userHandle);
        boolean enabledStatus = locationManager.isLocationEnabledForUser(userHandle);


        locationManager.setLocationEnabledForUser(false, userHandle);
        locationManager.setLocationEnabledForUser(false, userHandle);
        assertThat(Utils.checkCallerHasCoarseLocation(context, null, userHandle)).isFalse();
        assertThat(Utils.checkCallerHasCoarseLocation(
                       context, context.getAttributionSource(), userHandle))
                .isFalse();


        locationManager.setLocationEnabledForUser(true, userHandle);
        locationManager.setLocationEnabledForUser(true, userHandle);
        Utils.checkCallerHasCoarseLocation(context, null, userHandle);
        Utils.checkCallerHasCoarseLocation(context, context.getAttributionSource(), userHandle);
        if (!enabledStatus) {
        if (!enabledStatus) {
            locationManager.setLocationEnabledForUser(false, userHandle);
            locationManager.setLocationEnabledForUser(false, userHandle);
        }
        }
@@ -137,10 +139,13 @@ public class UtilsTest {
        boolean enabledStatus = locationManager.isLocationEnabledForUser(userHandle);
        boolean enabledStatus = locationManager.isLocationEnabledForUser(userHandle);


        locationManager.setLocationEnabledForUser(false, userHandle);
        locationManager.setLocationEnabledForUser(false, userHandle);
        assertThat(Utils.checkCallerHasCoarseOrFineLocation(context, null, userHandle)).isFalse();
        assertThat(Utils.checkCallerHasCoarseOrFineLocation(
                       context, context.getAttributionSource(), userHandle))
                .isFalse();


        locationManager.setLocationEnabledForUser(true, userHandle);
        locationManager.setLocationEnabledForUser(true, userHandle);
        Utils.checkCallerHasCoarseOrFineLocation(context, null, userHandle);
        Utils.checkCallerHasCoarseOrFineLocation(
                context, context.getAttributionSource(), userHandle);
        if (!enabledStatus) {
        if (!enabledStatus) {
            locationManager.setLocationEnabledForUser(false, userHandle);
            locationManager.setLocationEnabledForUser(false, userHandle);
        }
        }