diff --git a/services/core/Android.bp b/services/core/Android.bp index 052026c2746aa..69d6c5678075b 100644 --- a/services/core/Android.bp +++ b/services/core/Android.bp @@ -118,7 +118,7 @@ java_library_static { "android.hardware.health-V2.1-java", "android.hardware.light-java", "android.hardware.weaver-V1.0-java", - "android.hardware.biometrics.face-V1.0-java", + "android.hardware.biometrics.face-V1.1-java", "android.hardware.biometrics.fingerprint-V2.2-java", "android.hardware.oemlock-V1.0-java", "android.hardware.configstore-V1.0-java", diff --git a/services/core/java/com/android/server/biometrics/face/FaceService.java b/services/core/java/com/android/server/biometrics/face/FaceService.java index bdcea3767678f..a540759847ecd 100644 --- a/services/core/java/com/android/server/biometrics/face/FaceService.java +++ b/services/core/java/com/android/server/biometrics/face/FaceService.java @@ -1043,7 +1043,18 @@ public class FaceService extends BiometricServiceBase { for (int i = 0; i < cryptoToken.length; i++) { token.add(cryptoToken[i]); } - return daemon.enroll(token, timeout, disabledFeatures); + android.hardware.biometrics.face.V1_1.IBiometricsFace daemon11 = + android.hardware.biometrics.face.V1_1.IBiometricsFace.castFrom( + daemon); + if (daemon11 != null) { + return daemon11.enroll_1_1(token, timeout, disabledFeatures, + convertSurfaceToNativeHandle(surface)); + } else if (surface == null) { + return daemon.enroll(token, timeout, disabledFeatures); + } else { + Slog.e(TAG, "enroll(): surface is only supported in @1.1 HAL"); + return ERROR_ESRCH; + } } @Override