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

Commit 4c515357 authored by Svetoslav Ganov's avatar Svetoslav Ganov Committed by android-build-merger
Browse files

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

Merge "Enforce weaker grant if app is default handler for miltiple action" am: 035374d7 am: a9b62e13
am: 1809ccc6

* commit '1809ccc6':
  Enforce weaker grant if app is default handler for miltiple action
parents 51a94238 1809ccc6
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -842,8 +842,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;
@@ -854,6 +854,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
@@ -3785,12 +3785,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)) {