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

Commit 7074a3bc authored by Eric Biggers's avatar Eric Biggers Committed by Android (Google) Code Review
Browse files

Merge "LockSettingsService: remove unnecessary permission constants" into main

parents 2d4cbbfd 2474ded3
Loading
Loading
Loading
Loading
+14 −12
Original line number Diff line number Diff line
@@ -241,8 +241,6 @@ import javax.crypto.spec.GCMParameterSpec;
 */
public class LockSettingsService extends ILockSettings.Stub {
    private static final String TAG = "LockSettingsService";
    private static final String PERMISSION = ACCESS_KEYGUARD_SECURE_STORAGE;
    private static final String BIOMETRIC_PERMISSION = MANAGE_BIOMETRIC;

    private static final int PROFILE_KEY_IV_SIZE = 12;
    private static final String SEPARATE_PROFILE_CHALLENGE_KEY = "lockscreen.profilechallenge";
@@ -1274,26 +1272,28 @@ public class LockSettingsService extends ILockSettings.Stub {
    }

    private final void checkWritePermission() {
        mContext.enforceCallingOrSelfPermission(PERMISSION, "LockSettingsWrite");
        mContext.enforceCallingOrSelfPermission(ACCESS_KEYGUARD_SECURE_STORAGE,
                "LockSettingsWrite");
    }

    private final void checkPasswordReadPermission() {
        mContext.enforceCallingOrSelfPermission(PERMISSION, "LockSettingsRead");
        mContext.enforceCallingOrSelfPermission(ACCESS_KEYGUARD_SECURE_STORAGE, "LockSettingsRead");
    }

    private final void checkPasswordHavePermission() {
        mContext.enforceCallingOrSelfPermission(PERMISSION, "LockSettingsHave");
        mContext.enforceCallingOrSelfPermission(ACCESS_KEYGUARD_SECURE_STORAGE, "LockSettingsHave");
    }

    private final void checkDatabaseReadPermission(String requestedKey, int userId) {
        if (!hasPermission(PERMISSION)) {
        if (!hasPermission(ACCESS_KEYGUARD_SECURE_STORAGE)) {
            throw new SecurityException("uid=" + getCallingUid() + " needs permission "
                    + PERMISSION + " to read " + requestedKey + " for user " + userId);
                    + ACCESS_KEYGUARD_SECURE_STORAGE + " to read " + requestedKey
                    + " for user " + userId);
        }
    }

    private final void checkBiometricPermission() {
        mContext.enforceCallingOrSelfPermission(BIOMETRIC_PERMISSION, "LockSettingsBiometric");
        mContext.enforceCallingOrSelfPermission(MANAGE_BIOMETRIC, "LockSettingsBiometric");
    }

    private boolean hasPermission(String permission) {
@@ -1825,13 +1825,14 @@ public class LockSettingsService extends ILockSettings.Stub {
            throw new UnsupportedOperationException(
                    "This operation requires secure lock screen feature");
        }
        if (!hasPermission(PERMISSION) && !hasPermission(SET_AND_VERIFY_LOCKSCREEN_CREDENTIALS)) {
        if (!hasPermission(ACCESS_KEYGUARD_SECURE_STORAGE)
                && !hasPermission(SET_AND_VERIFY_LOCKSCREEN_CREDENTIALS)) {
            if (hasPermission(SET_INITIAL_LOCK) && savedCredential.isNone()) {
                // SET_INITIAL_LOCK can only be used if credential is not set.
            } else {
                throw new SecurityException(
                        "setLockCredential requires SET_AND_VERIFY_LOCKSCREEN_CREDENTIALS or "
                                + PERMISSION);
                                + "ACCESS_KEYGUARD_SECURE_STORAGE");
            }
        }
        credential.validateBasicRequirements();
@@ -2329,10 +2330,11 @@ public class LockSettingsService extends ILockSettings.Stub {
    @Nullable
    public VerifyCredentialResponse verifyCredential(LockscreenCredential credential,
            int userId, int flags) {
        if (!hasPermission(PERMISSION) && !hasPermission(SET_AND_VERIFY_LOCKSCREEN_CREDENTIALS)) {
        if (!hasPermission(ACCESS_KEYGUARD_SECURE_STORAGE)
                && !hasPermission(SET_AND_VERIFY_LOCKSCREEN_CREDENTIALS)) {
            throw new SecurityException(
                    "verifyCredential requires SET_AND_VERIFY_LOCKSCREEN_CREDENTIALS or "
                            + PERMISSION);
                            + "ACCESS_KEYGUARD_SECURE_STORAGE");
        }
        final long identity = Binder.clearCallingIdentity();
        try {