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

Commit e854a65a authored by Philip P. Moltmann's avatar Philip P. Moltmann Committed by Android (Google) Code Review
Browse files

Merge changes I74745f89,Ia70f966c

* changes:
  Grant permissions to updated system packages
  Revert "Revert "Reduce coupling between DefaultPermissionGrantPolicy and PM""
parents 6f92f521 c701e7e6
Loading
Loading
Loading
Loading
+32 −36
Original line number Diff line number Diff line
@@ -135,24 +135,6 @@ public abstract class PackageManagerInternal {
     */
    public abstract void setVoiceInteractionPackagesProvider(PackagesProvider provider);

    /**
     * Sets the SMS packages provider.
     * @param provider The packages provider.
     */
    public abstract void setSmsAppPackagesProvider(PackagesProvider provider);

    /**
     * Sets the dialer packages provider.
     * @param provider The packages provider.
     */
    public abstract void setDialerAppPackagesProvider(PackagesProvider provider);

    /**
     * Sets the sim call manager packages provider.
     * @param provider The packages provider.
     */
    public abstract void setSimCallManagerPackagesProvider(PackagesProvider provider);

    /**
     * Sets the Use Open Wifi packages provider.
     * @param provider The packages provider.
@@ -166,26 +148,28 @@ public abstract class PackageManagerInternal {
    public abstract void setSyncAdapterPackagesprovider(SyncAdapterPackagesProvider provider);

    /**
     * Requests granting of the default permissions to the current default SMS app.
     * @param packageName The default SMS package name.
     * @param userId The user for which to grant the permissions.
     * Called when the package for the default dialer changed
     *
     * @param packageName the new dialer package
     * @param userId user for which the change was made
     */
    public abstract void grantDefaultPermissionsToDefaultSmsApp(String packageName, int userId);
    public void onDefaultDialerAppChanged(String packageName, int userId) {}

    /**
     * Requests granting of the default permissions to the current default dialer app.
     * @param packageName The default dialer package name.
     * @param userId The user for which to grant the permissions.
     * Called when the package for the default SMS handler changed
     *
     * @param packageName the new sms package
     * @param userId user for which the change was made
     */
    public abstract void grantDefaultPermissionsToDefaultDialerApp(String packageName, int userId);
    public void onDefaultSmsAppChanged(String packageName, int userId) {}

    /**
     * Requests granting of the default permissions to the current default sim call manager.
     * @param packageName The default sim call manager package name.
     * @param userId The user for which to grant the permissions.
     * Called when the package for the default sim call manager changed
     *
     * @param packageName the new sms package
     * @param userId user for which the change was made
     */
    public abstract void grantDefaultPermissionsToDefaultSimCallManager(String packageName,
            int userId);
    public void onDefaultSimCallManagerAppChanged(String packageName, int userId) {}

    /**
     * Requests granting of the default permissions to the current default Use Open Wifi app.
@@ -446,8 +430,8 @@ public abstract class PackageManagerInternal {
         *
         * @param packageName The package to check for
         * @param uid the uid in which the package is running
         * @return {@link USER_TRUSTED} if the user has trusted the package, {@link USER_BLOCKED}
         * if user has blocked requests from the package, {@link USER_DEFAULT} if the user response
         * @return {@link #USER_TRUSTED} if the user has trusted the package, {@link #USER_BLOCKED}
         * if user has blocked requests from the package, {@link #USER_DEFAULT} if the user response
         * is not yet available
         */
        int getPackageTrustedToInstallApps(String packageName, int uid);
@@ -561,7 +545,7 @@ public abstract class PackageManagerInternal {
    /**
     * Returns a list without a change observer.
     *
     * {@see #getPackageList(PackageListObserver)}
     * @see #getPackageList(PackageListObserver)
     */
    public @NonNull PackageList getPackageList() {
        return getPackageList(null);
@@ -590,7 +574,16 @@ public abstract class PackageManagerInternal {
    /**
     * Returns a package object for the disabled system package name.
     */
    public abstract @Nullable PackageParser.Package getDisabledPackage(@NonNull String packageName);
    public abstract @Nullable PackageParser.Package getDisabledSystemPackage(
            @NonNull String packageName);

    /**
     * Returns the package name for the disabled system package.
     *
     * This is equivalent to
     * {@link #getDisabledSystemPackage(String)}.{@link PackageParser.Package#packageName}
     */
    public abstract @Nullable String getDisabledSystemPackageName(@NonNull String packageName);

    /**
     * Returns whether or not the component is the resolver activity.
@@ -619,7 +612,7 @@ public abstract class PackageManagerInternal {
     * Access may be limited based upon whether the calling or target applications
     * are instant applications.
     *
     * @see #canAccessInstantApps(int)
     * @see #canAccessInstantApps
     */
    public abstract boolean filterAppAccess(
            @Nullable PackageParser.Package pkg, int callingUid, int userId);
@@ -635,6 +628,9 @@ public abstract class PackageManagerInternal {
    public abstract void updatePermissionFlagsTEMP(@NonNull String permName,
            @NonNull String packageName, int flagMask, int flagValues, int userId);

    /** Returns whether the given package was signed by the platform */
    public abstract boolean isPlatformSigned(String pkg);

    /**
     * Returns true if it's still safe to restore data backed up from this app's version
     * that was signed with restoringFromSigHash.
+1 −1
Original line number Diff line number Diff line
@@ -378,7 +378,7 @@ public class ComponentResolver {
        for (int i = newIntents.size() - 1; i >= 0; --i) {
            final PackageParser.ActivityIntentInfo intentInfo = newIntents.get(i);
            final PackageParser.Package disabledPkg = sPackageManagerInternal
                    .getDisabledPackage(intentInfo.activity.info.packageName);
                    .getDisabledSystemPackage(intentInfo.activity.info.packageName);
            final List<PackageParser.Activity> systemActivities =
                    disabledPkg != null ? disabledPkg.activities : null;
            adjustPriority(systemActivities, intentInfo, setupWizardPackage);
+26 −29
Original line number Diff line number Diff line
@@ -718,6 +718,8 @@ public class PackageManagerService extends IPackageManager.Stub
    @GuardedBy("mPackages")
    final private ArraySet<PackageListObserver> mPackageListObservers = new ArraySet<>();
    private PackageManager mPackageManager;
    class PackageParserCallback implements PackageParser.Callback {
        @Override public final boolean hasFeature(String feature) {
            return PackageManagerService.this.hasSystemFeature(feature, 0);
@@ -22235,6 +22237,22 @@ public class PackageManagerService extends IPackageManager.Stub
                    permName, packageName, flagMask, flagValues, userId);
        }
        @Override
        public boolean isPlatformSigned(String packageName) {
            PackageSetting packageSetting = mSettings.mPackages.get(packageName);
            if (packageSetting == null) {
                return false;
            }
            PackageParser.Package pkg = packageSetting.pkg;
            if (pkg == null) {
                // May happen if package in on a removable sd card
                return false;
            }
            return pkg.mSigningDetails.hasAncestorOrSelf(mPlatformPackage.mSigningDetails)
                    || mPlatformPackage.mSigningDetails.checkCapability(pkg.mSigningDetails,
                    PackageParser.SigningDetails.CertCapabilities.PERMISSION);
        }
        @Override
        public boolean isDataRestoreSafe(byte[] restoringFromSigHash, String packageName) {
            SigningDetails sd = getSigningDetails(packageName);
@@ -22347,13 +22365,19 @@ public class PackageManagerService extends IPackageManager.Stub
        }
        @Override
        public PackageParser.Package getDisabledPackage(String packageName) {
        public PackageParser.Package getDisabledSystemPackage(String packageName) {
            synchronized (mPackages) {
                final PackageSetting ps = mSettings.getDisabledSystemPkgLPr(packageName);
                return (ps != null) ? ps.pkg : null;
            }
        }
        @Override
        public @Nullable String getDisabledSystemPackageName(@NonNull String packageName) {
            PackageParser.Package pkg = getDisabledSystemPackage(packageName);
            return pkg == null ? null : pkg.packageName;
        }
        @Override
        public String getKnownPackageName(int knownPackage, int userId) {
            switch(knownPackage) {
@@ -22391,21 +22415,6 @@ public class PackageManagerService extends IPackageManager.Stub
            mDefaultPermissionPolicy.setVoiceInteractionPackagesProvider(provider);
        }
        @Override
        public void setSmsAppPackagesProvider(PackagesProvider provider) {
            mDefaultPermissionPolicy.setSmsAppPackagesProvider(provider);
        }
        @Override
        public void setDialerAppPackagesProvider(PackagesProvider provider) {
            mDefaultPermissionPolicy.setDialerAppPackagesProvider(provider);
        }
        @Override
        public void setSimCallManagerPackagesProvider(PackagesProvider provider) {
            mDefaultPermissionPolicy.setSimCallManagerPackagesProvider(provider);
        }
        @Override
        public void setUseOpenWifiAppPackagesProvider(PackagesProvider provider) {
            mDefaultPermissionPolicy.setUseOpenWifiAppPackagesProvider(provider);
@@ -22417,22 +22426,10 @@ public class PackageManagerService extends IPackageManager.Stub
        }
        @Override
        public void grantDefaultPermissionsToDefaultSmsApp(String packageName, int userId) {
            mDefaultPermissionPolicy.grantDefaultPermissionsToDefaultSmsApp(packageName, userId);
        }
        @Override
        public void grantDefaultPermissionsToDefaultDialerApp(String packageName, int userId) {
        public void onDefaultDialerAppChanged(String packageName, int userId) {
            synchronized (mPackages) {
                mSettings.setDefaultDialerPackageNameLPw(packageName, userId);
            }
            mDefaultPermissionPolicy.grantDefaultPermissionsToDefaultDialerApp(packageName, userId);
        }
        @Override
        public void grantDefaultPermissionsToDefaultSimCallManager(String packageName, int userId) {
            mDefaultPermissionPolicy.grantDefaultPermissionsToDefaultSimCallManager(
                    packageName, userId);
        }
        @Override
+401 −584

File changed.

Preview size limit exceeded, changes collapsed.

+3 −3
Original line number Diff line number Diff line
@@ -1189,7 +1189,7 @@ public class PermissionManagerService {
                // is granted only if it had been defined by the original application.
                if (pkg.isUpdatedSystemApp()) {
                    final PackageParser.Package disabledPkg =
                            mPackageManagerInt.getDisabledPackage(pkg.packageName);
                            mPackageManagerInt.getDisabledSystemPackage(pkg.packageName);
                    final PackageSetting disabledPs =
                            (disabledPkg != null) ? (PackageSetting) disabledPkg.mExtras : null;
                    if (disabledPs != null
@@ -1221,7 +1221,7 @@ public class PermissionManagerService {
                        // packages can also get the permission.
                        if (pkg.parentPackage != null) {
                            final PackageParser.Package disabledParentPkg = mPackageManagerInt
                                    .getDisabledPackage(pkg.parentPackage.packageName);
                                    .getDisabledSystemPackage(pkg.parentPackage.packageName);
                            final PackageSetting disabledParentPs = (disabledParentPkg != null)
                                    ? (PackageSetting) disabledParentPkg.mExtras : null;
                            if (disabledParentPkg != null
@@ -1372,7 +1372,7 @@ public class PermissionManagerService {
            return;
        }
        final PackageParser.Package disabledPkg =
                mPackageManagerInt.getDisabledPackage(pkg.parentPackage.packageName);
                mPackageManagerInt.getDisabledSystemPackage(pkg.parentPackage.packageName);
        if (disabledPkg == null || disabledPkg.mExtras == null) {
            return;
        }
Loading