diff options
6 files changed, 20 insertions, 15 deletions
diff --git a/services/core/java/com/android/server/biometrics/AuthSession.java b/services/core/java/com/android/server/biometrics/AuthSession.java index f1f5251e59bb..bfb42f81bb4d 100644 --- a/services/core/java/com/android/server/biometrics/AuthSession.java +++ b/services/core/java/com/android/server/biometrics/AuthSession.java @@ -366,10 +366,9 @@ public final class AuthSession implements IBinder.DeathRecipient { // sending the final error callback to the application. for (BiometricSensor sensor : mPreAuthInfo.eligibleSensors) { try { - if (filter.apply(sensor)) { - if (DEBUG) { - Slog.v(TAG, "Canceling sensor: " + sensor.id); - } + final boolean shouldCancel = filter.apply(sensor); + Slog.d(TAG, "sensorId: " + sensor.id + ", shouldCancel: " + shouldCancel); + if (shouldCancel) { sensor.goToStateCancelling(mToken, mOpPackageName); } } catch (RemoteException e) { diff --git a/services/core/java/com/android/server/biometrics/BiometricService.java b/services/core/java/com/android/server/biometrics/BiometricService.java index e8e25f16d5af..fed320d3cf23 100644 --- a/services/core/java/com/android/server/biometrics/BiometricService.java +++ b/services/core/java/com/android/server/biometrics/BiometricService.java @@ -1369,11 +1369,11 @@ public class BiometricService extends SystemService { /** * handleAuthenticate() (above) which is called from BiometricPrompt determines which * modality/modalities to start authenticating with. authenticateInternal() should only be - * used for: - * 1) Preparing <Biometric>Services for authentication when BiometricPrompt#authenticate is, - * invoked, shortly after which BiometricPrompt is shown and authentication starts - * 2) Preparing <Biometric>Services for authentication when BiometricPrompt is already shown - * and the user has pressed "try again" + * used for preparing <Biometric>Services for authentication when BiometricPrompt#authenticate + * is invoked, shortly after which BiometricPrompt is shown and authentication starts. + * + * Note that this path is NOT invoked when the BiometricPrompt "Try again" button is pressed. + * In that case, see {@link #handleOnTryAgainPressed()}. */ private void authenticateInternal(IBinder token, long operationId, int userId, IBiometricServiceReceiver receiver, String opPackageName, PromptInfo promptInfo, diff --git a/services/core/java/com/android/server/biometrics/PreAuthInfo.java b/services/core/java/com/android/server/biometrics/PreAuthInfo.java index c4bd18b59745..cd0ff10168bb 100644 --- a/services/core/java/com/android/server/biometrics/PreAuthInfo.java +++ b/services/core/java/com/android/server/biometrics/PreAuthInfo.java @@ -408,22 +408,22 @@ class PreAuthInfo { public String toString() { StringBuilder string = new StringBuilder( "BiometricRequested: " + mBiometricRequested - + "\nStrengthRequested: " + mBiometricStrengthRequested - + "\nCredentialRequested: " + credentialRequested); - string.append("\nEligible:{"); + + ", StrengthRequested: " + mBiometricStrengthRequested + + ", CredentialRequested: " + credentialRequested); + string.append(", Eligible:{"); for (BiometricSensor sensor: eligibleSensors) { string.append(sensor.id).append(" "); } string.append("}"); - string.append("\nIneligible:{"); + string.append(", Ineligible:{"); for (Pair<BiometricSensor, Integer> ineligible : ineligibleSensors) { string.append(ineligible.first).append(":").append(ineligible.second).append(" "); } string.append("}"); - string.append("\nCredentialAvailable: ").append(credentialAvailable); - string.append("\n"); + string.append(", CredentialAvailable: ").append(credentialAvailable); + string.append(", "); return string.toString(); } } diff --git a/services/core/java/com/android/server/biometrics/sensors/BiometricScheduler.java b/services/core/java/com/android/server/biometrics/sensors/BiometricScheduler.java index b52cb70d90e3..adda10eb109f 100644 --- a/services/core/java/com/android/server/biometrics/sensors/BiometricScheduler.java +++ b/services/core/java/com/android/server/biometrics/sensors/BiometricScheduler.java @@ -579,6 +579,9 @@ public class BiometricScheduler { final boolean isCorrectClient = isAuthenticationOrDetectionOperation(mCurrentOperation); final boolean tokenMatches = mCurrentOperation.mClientMonitor.getToken() == token; + Slog.d(getTag(), "cancelAuthenticationOrDetection, isCorrectClient: " + isCorrectClient + + ", tokenMatches: " + tokenMatches); + if (isCorrectClient && tokenMatches) { Slog.d(getTag(), "Cancelling: " + mCurrentOperation); cancelInternal(mCurrentOperation); diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java index 54abc639ad55..012e47e425f6 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java @@ -498,6 +498,8 @@ public class FingerprintService extends SystemService { Utils.checkPermission(getContext(), MANAGE_BIOMETRIC); + Slog.d(TAG, "cancelAuthenticationFromService, sensorId: " + sensorId); + final ServiceProvider provider = getProviderForSensor(sensorId); if (provider == null) { Slog.w(TAG, "Null provider for cancelAuthenticationFromService"); diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java index 102aeccc6bbe..7daea88f0f22 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java @@ -632,6 +632,7 @@ public class Fingerprint21 implements IHwBinder.DeathRecipient, ServiceProvider @Override public void cancelAuthentication(int sensorId, @NonNull IBinder token) { + Slog.d(TAG, "cancelAuthentication, sensorId: " + sensorId); mHandler.post(() -> mScheduler.cancelAuthenticationOrDetection(token)); } |