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

Unverified Commit 45142c9c authored by Chirayu Desai's avatar Chirayu Desai Committed by Michael Bestas
Browse files

frameworks: Exempt location packages from location indicators

Author: Chirayu Desai <chirayudesai1@gmail.com>
Date:   Wed Feb 9 03:46:53 2022 +0530

    frameworks: Exempt location packages from location indicators

    * Otherwise it gets pretty spammy

    config_locationProviderPackageNames:
    * Pretty obvious, location providers, e.g. GMS

    config_locationExtraPackageNames:
    * Pixel 6 IMS package
    * https://cs.android.com/android/_/android/platform/frameworks/base/+/ffb94e69c3fc308d6d4164e2309f74442282fc84
    * This grants location permissions, however we're excluding these apps from
      location indicators - they already have location permissions!
    * https://cs.android.com/search?q=config_locationExtraPackageNames&sq=
    * It isn't used for much else, so it's fine to re-use it for this

    TODO: Figure something out for user-installed UnifiedNlp plugins

    Test:
    1. Open app with location access such as OrganicMaps, verify apps shown as using location
    2. No more regular in background location indicators from UnifiedNlp, or Nearby

    Change-Id: I395335b858a2ec8fc4879139afcdaa590523d994

Author: Timi Rautamäki <timi.rautamaki@gmail.com>
Date:   Wed May 4 12:31:56 2022 +0000

    PermissionManager: fix NPE in getIndicatorExemptedPackages

    sLocationProviderPkgNames and sLocationExtraPkgNames can be null
    because they're static.
    Also rename them from member to static variable to follow code style.

    Change-Id: I7d08e02047ccf183cc75ce18b3ebd2086b2831b3

Change-Id: Ib16c4b2e182f273bf2a22884180913763dc6a9a7
parent ae83ed03
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -217,6 +217,9 @@ public final class PermissionManager {

    private List<SplitPermissionInfo> mSplitPermissionInfos;

    private static String[] sLocationProviderPkgNames;
    private static String[] sLocationExtraPkgNames;

    /**
     * Creates a new instance.
     *
@@ -1165,6 +1168,16 @@ public final class PermissionManager {
                pkgNames.add(exemptedPackage);
            }
        }
        for (String pkgName: sLocationProviderPkgNames) {
            if (pkgName != null) {
                pkgNames.add(pkgName);
            }
        }
        for (String pkgName: sLocationExtraPkgNames) {
            if (pkgName != null) {
                pkgNames.add(pkgName);
            }
        }
        return pkgNames;
    }

@@ -1180,6 +1193,10 @@ public final class PermissionManager {
            for (int i = 0; i < EXEMPTED_ROLES.length; i++) {
                INDICATOR_EXEMPTED_PACKAGES[i] = context.getString(EXEMPTED_ROLES[i]);
            }
            sLocationProviderPkgNames = context.getResources().getStringArray(
                    R.array.config_locationProviderPackageNames);
            sLocationExtraPkgNames = context.getResources().getStringArray(
                    R.array.config_locationExtraPackageNames);
        }
    }
    /**