From d6ca0d3086e9c123d49fc48797b1b0e4bab842b4 Mon Sep 17 00:00:00 2001 From: Joshua Mccloskey Date: Mon, 1 Feb 2021 17:03:52 -0800 Subject: [PATCH] Added default method to Fingerprint21 Test: Verified adding fingerprints and faces do not cause a bootloop. Fixes: 179082812 Change-Id: Ie74c2fb027cb73a5bafa9a8548656284619a8828 --- .../sensors/fingerprint/ServiceProvider.java | 7 ++----- .../sensors/fingerprint/hidl/Fingerprint21.java | 12 ++++++++++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/ServiceProvider.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/ServiceProvider.java index d3b5b5af32820..303c080c044cd 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/ServiceProvider.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/ServiceProvider.java @@ -114,11 +114,8 @@ public interface ServiceProvider { * Requests for the authenticatorId (whose source of truth is in the TEE or equivalent) to * be invalidated. See {@link com.android.server.biometrics.sensors.InvalidationRequesterClient} */ - default void scheduleInvalidateAuthenticatorId(int sensorId, int userId, - @NonNull IInvalidationCallback callback) { - throw new IllegalStateException("Providers that support invalidation must override" - + " this method"); - } + void scheduleInvalidateAuthenticatorId(int sensorId, int userId, + @NonNull IInvalidationCallback callback); long getAuthenticatorId(int sensorId, int userId); 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 a4a84019bae76..54f8df2829b12 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 @@ -28,6 +28,7 @@ import android.content.pm.UserInfo; import android.hardware.biometrics.BiometricConstants; import android.hardware.biometrics.BiometricManager; import android.hardware.biometrics.BiometricsProtoEnums; +import android.hardware.biometrics.IInvalidationCallback; import android.hardware.biometrics.ITestSession; import android.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint; import android.hardware.biometrics.fingerprint.V2_2.IBiometricsFingerprintClientCallback; @@ -779,6 +780,17 @@ public class Fingerprint21 implements IHwBinder.DeathRecipient, ServiceProvider tracker.clear(); } + @Override + public void scheduleInvalidateAuthenticatorId(int sensorId, int userId, + @NonNull IInvalidationCallback callback) { + // TODO (b/179101888): Remove this temporary workaround. + try { + callback.onCompleted(); + } catch (RemoteException e) { + Slog.e(TAG, "Failed to complete InvalidateAuthenticatorId"); + } + } + @Override public void dumpInternal(int sensorId, @NonNull PrintWriter pw) { PerformanceTracker performanceTracker =