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

Commit 24136098 authored by Soonil Nagarkar's avatar Soonil Nagarkar
Browse files

Guard isProviderPackage with permission

Add READ_DEVICE_CONFIG permission requirement for using
isProviderPackage().

Bug: 126614252
Test: manual
Change-Id: Iba68994e0faecda075ad37db6e1b9fe457bbaaef
parent c2a1b3f4
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -3403,7 +3403,7 @@ package android.location {
    method public boolean isExtraLocationControllerPackageEnabled();
    method public boolean isLocationEnabledForUser(@NonNull android.os.UserHandle);
    method public boolean isProviderEnabledForUser(@NonNull String, @NonNull android.os.UserHandle);
    method public boolean isProviderPackage(@NonNull String);
    method @RequiresPermission(android.Manifest.permission.READ_DEVICE_CONFIG) public boolean isProviderPackage(@NonNull String);
    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean registerGnssBatchedLocationCallback(long, boolean, @NonNull android.location.BatchedLocationCallback, @Nullable android.os.Handler);
    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@NonNull android.location.LocationRequest, @NonNull android.location.LocationListener, @Nullable android.os.Looper);
    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@NonNull android.location.LocationRequest, @NonNull android.app.PendingIntent);
+1 −0
Original line number Diff line number Diff line
@@ -2314,6 +2314,7 @@ public class LocationManager {
     * @hide
     */
    @SystemApi
    @RequiresPermission(Manifest.permission.READ_DEVICE_CONFIG)
    public boolean isProviderPackage(@NonNull String packageName) {
        try {
            return mService.isProviderPackage(packageName);
+2 −0
Original line number Diff line number Diff line
@@ -3049,6 +3049,8 @@ public class LocationManagerService extends ILocationManager.Stub {

    @Override
    public boolean isProviderPackage(String packageName) {
        mContext.enforceCallingPermission(Manifest.permission.READ_DEVICE_CONFIG,
                Manifest.permission.READ_DEVICE_CONFIG + " permission required");
        synchronized (mLock) {
            for (LocationProvider provider : mProviders) {
                if (provider.getPackagesLocked().contains(packageName)) {