diff --git a/core/java/android/hardware/face/FaceManager.java b/core/java/android/hardware/face/FaceManager.java index 0256b7bc6de03..8dc8d5b60943b 100644 --- a/core/java/android/hardware/face/FaceManager.java +++ b/core/java/android/hardware/face/FaceManager.java @@ -475,28 +475,11 @@ public class FaceManager implements BiometricAuthenticator, BiometricFaceConstan * @hide */ @RequiresPermission(MANAGE_BIOMETRIC) - public void revokeChallenge() { - final List faceSensorProperties = - getSensorPropertiesInternal(); - if (faceSensorProperties.isEmpty()) { - Slog.e(TAG, "No sensors during revokeChallenge"); - } - revokeChallenge(faceSensorProperties.get(0).sensorId); - } - - /** - * Invalidates the current challenge. - * - * TODO(b/171335732): should take userId and challenge - * - * @hide - */ - @RequiresPermission(MANAGE_BIOMETRIC) - public void revokeChallenge(int sensorId) { + public void revokeChallenge(int sensorId, int userId, long challenge) { if (mService != null) { try { - mService.revokeChallenge(mToken, sensorId, 0 /* userId */, - mContext.getOpPackageName(), 0 /* challenge */); + mService.revokeChallenge(mToken, sensorId, userId, + mContext.getOpPackageName(), challenge); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } diff --git a/core/java/android/hardware/fingerprint/FingerprintManager.java b/core/java/android/hardware/fingerprint/FingerprintManager.java index fc795d8a04881..1c33b26dfa18a 100644 --- a/core/java/android/hardware/fingerprint/FingerprintManager.java +++ b/core/java/android/hardware/fingerprint/FingerprintManager.java @@ -685,17 +685,6 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing generateChallenge(sensorProps.sensorId, userId, callback); } - /** - * Revokes the current challenge. - * @hide - */ - @RequiresPermission(MANAGE_FINGERPRINT) - public void revokeChallenge(int userId) { - // On HALs with only single in-flight challenge such as IBiometricsFingerprint@2.1, - // this parameter is ignored. - revokeChallenge(userId, 0L); - } - /** * Revokes the specified challenge. * @hide diff --git a/services/core/java/com/android/server/locksettings/BiometricDeferredQueue.java b/services/core/java/com/android/server/locksettings/BiometricDeferredQueue.java index 82b0f9c05b6bf..6d250ecb9fa44 100644 --- a/services/core/java/com/android/server/locksettings/BiometricDeferredQueue.java +++ b/services/core/java/com/android/server/locksettings/BiometricDeferredQueue.java @@ -135,7 +135,11 @@ public class BiometricDeferredQueue { } sensorIds.remove(sensorId); - faceManager.revokeChallenge(sensorId); + // Challenge is only required for IBiometricsFace@1.0 (and not IFace AIDL). The + // IBiometricsFace@1.0 HAL does not require userId to revokeChallenge, so passing + // in 0 is OK. + final int userId = 0; + faceManager.revokeChallenge(sensorId, userId, challenge); if (sensorIds.isEmpty()) { Slog.d(TAG, "Done requesting resetLockout for all face sensors");