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

Commit ffb94e69 authored by Wei Wang's avatar Wei Wang
Browse files

Pre-grant location permisson to location extra packages.

Grant location permission to extra packages configurated in xml config
file. This is necessary as pre-grant happens right after system starts,
before location provider sets the *real* location extra package.

Bug: 119225658
Test: Manual, atest GtsPermissionTestCases:com.google.android.permission.gts.DefaultPermissionGrantPolicyTest

Change-Id: Ibbfbfb78aa062fa6dc013a1001ea3486d62f4331
parent 6ec5ba9a
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -136,6 +136,12 @@ public abstract class PackageManagerInternal {
     */
    public abstract void setLocationPackagesProvider(PackagesProvider provider);

    /**
     * Set the location extra packages provider.
     * @param provider The packages provider.
     */
    public abstract  void setLocationExtraPackagesProvider(PackagesProvider provider);

    /**
     * Sets the voice interaction packages provider.
     * @param provider The packages provider.
+2 −0
Original line number Diff line number Diff line
@@ -1654,6 +1654,8 @@
         config_enableFusedLocationOverlay is false. -->
    <string name="config_fusedLocationProviderPackageName" translatable="false">com.android.location.fused</string>

    <string-array name="config_locationExtraPackageNames" translatable="false"></string-array>

    <!-- The package name of the default network recommendation app.
         A network recommendation provider must:
             * Be granted the SCORE_NETWORKS permission.
+1 −0
Original line number Diff line number Diff line
@@ -1840,6 +1840,7 @@
  <java-symbol type="array" name="radioAttributes" />
  <java-symbol type="array" name="config_oemUsbModeOverride" />
  <java-symbol type="array" name="config_locationProviderPackageNames" />
  <java-symbol type="array" name="config_locationExtraPackageNames" />
  <java-symbol type="array" name="config_testLocationProviders" />
  <java-symbol type="array" name="config_defaultNotificationVibePattern" />
  <java-symbol type="array" name="config_notificationFallbackVibePattern" />
+3 −0
Original line number Diff line number Diff line
@@ -257,6 +257,9 @@ public class LocationManagerService extends ILocationManager.Stub {
        packageManagerInternal.setLocationPackagesProvider(
                userId -> mContext.getResources().getStringArray(
                        com.android.internal.R.array.config_locationProviderPackageNames));
        packageManagerInternal.setLocationExtraPackagesProvider(
                userId -> mContext.getResources().getStringArray(
                      com.android.internal.R.array.config_locationExtraPackageNames));

        // most startup is deferred until systemRunning()
    }
+5 −0
Original line number Diff line number Diff line
@@ -23131,6 +23131,11 @@ public class PackageManagerService extends IPackageManager.Stub
            mDefaultPermissionPolicy.setLocationPackagesProvider(provider);
        }
        @Override
        public void setLocationExtraPackagesProvider(PackagesProvider provider) {
            mDefaultPermissionPolicy.setLocationExtraPackagesProvider(provider);
        }
        @Override
        public void setVoiceInteractionPackagesProvider(PackagesProvider provider) {
            mDefaultPermissionPolicy.setVoiceInteractionPackagesProvider(provider);
Loading