From b6d71bb0833c1ab5573af0e7d51151ea220915b9 Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Tue, 9 Mar 2021 13:13:29 -0800 Subject: [PATCH 1/2] Consolidate revokeChallenge methods Fixes: 181977689 Test: manual Change-Id: Id26588836535f03566d93f073ef73cde946272b2 --- .../android/hardware/face/FaceManager.java | 23 +++---------------- .../locksettings/BiometricDeferredQueue.java | 6 ++++- 2 files changed, 8 insertions(+), 21 deletions(-) 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/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"); From 817be68013ebef5b71bfbb5453d3411f7510e75a Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Tue, 9 Mar 2021 17:17:45 -0800 Subject: [PATCH 2/2] Consolidate FingerprintManager revokeChallenge Bug: 181977689 Test: inspect logs Change-Id: Ie26d49b4feda627964358166100f53a41b5fee20 --- .../hardware/fingerprint/FingerprintManager.java | 11 ----------- 1 file changed, 11 deletions(-) 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