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

Commit cd1a5490 authored by Hall Liu's avatar Hall Liu Committed by Android (Google) Code Review
Browse files

Merge "Remove fixed grant of READ_PHONE_STATE and cleanup" into sc-dev

parents 9341d832 f4562b5c
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -205,9 +205,6 @@
    <split-permission name="android.permission.WRITE_EXTERNAL_STORAGE">
        <new-permission name="android.permission.READ_EXTERNAL_STORAGE" />
    </split-permission>
    <split-permission name="android.permission.READ_PRIVILEGED_PHONE_STATE">
        <new-permission name="android.permission.READ_PHONE_STATE" />
    </split-permission>
    <split-permission name="android.permission.READ_CONTACTS"
                      targetSdk="16">
        <new-permission name="android.permission.READ_CALL_LOG" />
+12 −7
Original line number Diff line number Diff line
@@ -422,19 +422,24 @@ final class DefaultPermissionGrantPolicy {
            grantRuntimePermissionsForSystemPackage(pm, userId, pkg);
        }

        // Grant READ_PHONE_STATE to all system apps that have READ_PRIVILEGED_PHONE_STATE
        // Re-grant READ_PHONE_STATE as non-fixed to all system apps that have
        // READ_PRIVILEGED_PHONE_STATE and READ_PHONE_STATE granted -- this is to undo the fixed
        // grant from R.
        for (PackageInfo pkg : packages) {
            if (pkg == null
                    || !doesPackageSupportRuntimePermissions(pkg)
                    || ArrayUtils.isEmpty(pkg.requestedPermissions)
                    || !pm.isGranted(Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
                            pkg, UserHandle.of(userId))) {
                            pkg, UserHandle.of(userId))
                    || !pm.isGranted(Manifest.permission.READ_PHONE_STATE, pkg,
                            UserHandle.of(userId))) {
                continue;
            }
            grantRuntimePermissions(pm, pkg,
                    Collections.singleton(Manifest.permission.READ_PHONE_STATE),
                    true, // systemFixed
                    userId);

            pm.updatePermissionFlags(Manifest.permission.READ_PHONE_STATE, pkg,
                    PackageManager.FLAG_PERMISSION_SYSTEM_FIXED,
                    0,
                    UserHandle.of(userId));
        }

    }
@@ -1723,7 +1728,7 @@ final class DefaultPermissionGrantPolicy {
                int flagMask, int flagValues, @NonNull UserHandle user) {
            PermissionState state = getPermissionState(permission, pkg, user);
            state.initFlags();
            state.newFlags |= flagValues & flagMask;
            state.newFlags = (state.newFlags & ~flagMask) | (flagValues & flagMask);
        }

        @Override