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

Commit b3cf50a3 authored by Kevin Chyn's avatar Kevin Chyn
Browse files

4/n: Add RevokeChallenge and ResetLockout for IFingerprint

Bug: 168843828
Test: Builds

Change-Id: I73631dd82498975044997ee623fdec61fd6b4599
parent 50b13e53
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -617,13 +617,24 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing
    }

    /**
     * Finishes enrollment and cancels the current auth token.
     * Revokes the current challenge.
     * @hide
     */
    @RequiresPermission(MANAGE_FINGERPRINT)
    public void revokeChallenge() {
        // On HALs with only single in-flight challenge such as IBiometricsFingerprint@2.1,
        // this parameter is ignored.
        revokeChallenge(0L);
    }

    /**
     * Revokes the specified challenge.
     * @hide
     */
    @RequiresPermission(MANAGE_FINGERPRINT)
    public void revokeChallenge(long challenge) {
        if (mService != null) try {
            mService.revokeChallenge(mToken, mContext.getOpPackageName());
            mService.revokeChallenge(mToken, mContext.getOpPackageName(), challenge);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
+1 −1
Original line number Diff line number Diff line
@@ -91,7 +91,7 @@ interface IFingerprintService {
    void generateChallenge(IBinder token, int sensorId, IFingerprintServiceReceiver receiver, String opPackageName);

    // Finish an enrollment sequence and invalidate the authentication token
    void revokeChallenge(IBinder token, String opPackageName);
    void revokeChallenge(IBinder token, String opPackageName, long challenge);

    // Determine if a user has at least one enrolled fingerprint
    boolean hasEnrolledFingerprints(int userId, String opPackageName);
+3 −2
Original line number Diff line number Diff line
@@ -121,7 +121,7 @@ public class FingerprintService extends SystemService {
        }

        @Override // Binder call
        public void revokeChallenge(IBinder token, String opPackageName) {
        public void revokeChallenge(IBinder token, String opPackageName, long challenge) {
            Utils.checkPermission(getContext(), MANAGE_FINGERPRINT);

            final Pair<Integer, ServiceProvider> provider = getSingleProvider();
@@ -130,7 +130,8 @@ public class FingerprintService extends SystemService {
                return;
            }

            provider.second.scheduleRevokeChallenge(provider.first, token, opPackageName);
            provider.second.scheduleRevokeChallenge(provider.first, token, opPackageName,
                    challenge);
        }

        @Override // Binder call
+1 −1
Original line number Diff line number Diff line
@@ -68,7 +68,7 @@ public interface ServiceProvider {
            @NonNull IFingerprintServiceReceiver receiver, String opPackageName);

    void scheduleRevokeChallenge(int sensorId, @NonNull IBinder token,
            @NonNull String opPackageName);
            @NonNull String opPackageName, long challenge);

    void scheduleEnroll(int sensorId, @NonNull IBinder token, byte[] hardwareAuthToken, int userId,
            @NonNull IFingerprintServiceReceiver receiver, @NonNull String opPackageName,
+1 −1
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ public class FingerprintGenerateChallengeClient extends GenerateChallengeClient<
    private static final String TAG = "FingerprintGenerateChallengeClient";
    private static final int CHALLENGE_TIMEOUT_SEC = 600; // 10 minutes

    private IGenerateChallengeCallback mGenerateChallengeCallback =
    private final IGenerateChallengeCallback mGenerateChallengeCallback =
            new IGenerateChallengeCallback.Stub() {
        @Override
        public void onChallengeGenerated(int sensorId, int userId, long challenge) {
Loading