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

Commit 035374d7 authored by Svetoslav Ganov's avatar Svetoslav Ganov Committed by Gerrit Code Review
Browse files

Merge "Enforce weaker grant if app is default handler for miltiple action"

parents ebbdabdb 5db602fd
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -819,8 +819,8 @@ final class DefaultPermissionGrantPolicy {

                    mService.grantRuntimePermission(pkg.packageName, permission, userId);
                    if (DEBUG) {
                        Log.i(TAG, "Granted " + permission + " to default handler "
                                + pkg.packageName);
                        Log.i(TAG, "Granted " + (systemFixed ? "fixed " : "not fixed ")
                                + permission + " to default handler " + pkg.packageName);
                    }

                    int newFlags = PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT;
@@ -831,6 +831,19 @@ final class DefaultPermissionGrantPolicy {
                    mService.updatePermissionFlags(permission, pkg.packageName,
                            newFlags, newFlags, userId);
                }

                // If a component gets a permission for being the default handler A
                // and also default handler B, we grant the weaker grant form.
                if ((flags & PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT) != 0
                        && (flags & PackageManager.FLAG_PERMISSION_SYSTEM_FIXED) != 0
                        && !systemFixed) {
                    if (DEBUG) {
                        Log.i(TAG, "Granted not fixed " + permission + " to default handler "
                                + pkg.packageName);
                    }
                    mService.updatePermissionFlags(permission, pkg.packageName,
                            PackageManager.FLAG_PERMISSION_SYSTEM_FIXED, 0, userId);
                }
            }
        }
    }
+0 −6
Original line number Diff line number Diff line
@@ -3716,12 +3716,6 @@ public class PackageManagerService extends IPackageManager.Stub {
            PermissionsState permissionsState = sb.getPermissionsState();
            // Only the package manager can change flags for system component permissions.
            final int flags = permissionsState.getPermissionFlags(bp.name, userId);
            if ((flags & PackageManager.FLAG_PERMISSION_SYSTEM_FIXED) != 0) {
                return;
            }
            boolean hadState = permissionsState.getRuntimePermissionState(name, userId) != null;
            if (permissionsState.updatePermissionFlags(bp, userId, flagMask, flagValues)) {