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

Commit 389e4cf7 authored by Soonil Nagarkar's avatar Soonil Nagarkar
Browse files

Add permissions check to isInSignificantPlace()

Require the ACCESS_FINE_LOCATION permission for this API.

Flag: EXEMPT bugfix
Bug: 374257207
Test: manual
Change-Id: I1c5ef857c750dbbd0577f5aadc43e9b6122de790
parent d871f0d9
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -41,5 +41,6 @@ interface ITrustManager {
    void unlockedByBiometricForUser(int userId, in BiometricSourceType source);
    void clearAllBiometricRecognized(in BiometricSourceType target, int unlockedUser);
    boolean isActiveUnlockRunning(int userId);
    @EnforcePermission("ACCESS_FINE_LOCATION")
    boolean isInSignificantPlace();
}
+1 −0
Original line number Diff line number Diff line
@@ -305,6 +305,7 @@ public class TrustManager {
     *
     * @hide
     */
    @RequiresPermission(Manifest.permission.ACCESS_FINE_LOCATION)
    public boolean isInSignificantPlace() {
        try {
            return mService.isInSignificantPlace();
+4 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import static android.service.trust.GrantTrustResult.STATUS_UNLOCKED_BY_GRANT;
import static android.service.trust.TrustAgentService.FLAG_GRANT_TRUST_TEMPORARY_AND_RENEWABLE;

import android.Manifest;
import android.annotation.EnforcePermission;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.UserIdInt;
@@ -1896,8 +1897,11 @@ public class TrustManagerService extends SystemService {
            }
        }

        @EnforcePermission(Manifest.permission.ACCESS_FINE_LOCATION)
        @Override
        public boolean isInSignificantPlace() {
            super.isInSignificantPlace_enforcePermission();

            if (android.security.Flags.significantPlaces()) {
                mSignificantPlaceServiceWatcher.runOnBinder(
                        binder -> ISignificantPlaceProvider.Stub.asInterface(binder)