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

Commit 79a85ae2 authored by Eugene Susla's avatar Eugene Susla Committed by Android (Google) Code Review
Browse files

Merge "Reduce coupling between DefaultPermissionGrantPolicy and PM"

parents 72343888 47e88208
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
@@ -716,6 +716,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);
@@ -21978,6 +21980,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);
@@ -22090,13 +22108,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) {
@@ -22134,21 +22158,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);
@@ -22160,22 +22169,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