From 5beafca660e8ec4cf685f8acf20c84fb2a9f6c43 Mon Sep 17 00:00:00 2001 From: Ilya Matyukhin Date: Wed, 21 Jul 2021 18:57:36 -0700 Subject: [PATCH 1/3] IFace: annotate the previewSurface as @nullable in enroll Bug: 194346408 Test: android.hardware.biometrics.face-update-api Change-Id: Id8809b27f121a738a41abeee66f5c1fd3840cc44 --- .../face/aidl/aidl_api/android.hardware.biometrics.face/1/.hash | 2 +- .../1/android/hardware/biometrics/face/ISession.aidl | 2 +- .../current/android/hardware/biometrics/face/ISession.aidl | 2 +- .../face/aidl/android/hardware/biometrics/face/ISession.aidl | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/biometrics/face/aidl/aidl_api/android.hardware.biometrics.face/1/.hash b/biometrics/face/aidl/aidl_api/android.hardware.biometrics.face/1/.hash index b8d5097cc9..f5ad87fca7 100644 --- a/biometrics/face/aidl/aidl_api/android.hardware.biometrics.face/1/.hash +++ b/biometrics/face/aidl/aidl_api/android.hardware.biometrics.face/1/.hash @@ -1 +1 @@ -945de3635b7f5a09244820eef56035c92fdbd324 +3b10f5094c5af9fe551093597fab007d1e148256 diff --git a/biometrics/face/aidl/aidl_api/android.hardware.biometrics.face/1/android/hardware/biometrics/face/ISession.aidl b/biometrics/face/aidl/aidl_api/android.hardware.biometrics.face/1/android/hardware/biometrics/face/ISession.aidl index d1c2c1dd47..78178642cd 100644 --- a/biometrics/face/aidl/aidl_api/android.hardware.biometrics.face/1/android/hardware/biometrics/face/ISession.aidl +++ b/biometrics/face/aidl/aidl_api/android.hardware.biometrics.face/1/android/hardware/biometrics/face/ISession.aidl @@ -37,7 +37,7 @@ interface ISession { void generateChallenge(); void revokeChallenge(in long challenge); android.hardware.biometrics.face.EnrollmentStageConfig[] getEnrollmentConfig(in android.hardware.biometrics.face.EnrollmentType enrollmentType); - android.hardware.biometrics.common.ICancellationSignal enroll(in android.hardware.keymaster.HardwareAuthToken hat, in android.hardware.biometrics.face.EnrollmentType type, in android.hardware.biometrics.face.Feature[] features, in android.hardware.common.NativeHandle previewSurface); + android.hardware.biometrics.common.ICancellationSignal enroll(in android.hardware.keymaster.HardwareAuthToken hat, in android.hardware.biometrics.face.EnrollmentType type, in android.hardware.biometrics.face.Feature[] features, in @nullable android.hardware.common.NativeHandle previewSurface); android.hardware.biometrics.common.ICancellationSignal authenticate(in long operationId); android.hardware.biometrics.common.ICancellationSignal detectInteraction(); void enumerateEnrollments(); diff --git a/biometrics/face/aidl/aidl_api/android.hardware.biometrics.face/current/android/hardware/biometrics/face/ISession.aidl b/biometrics/face/aidl/aidl_api/android.hardware.biometrics.face/current/android/hardware/biometrics/face/ISession.aidl index d1c2c1dd47..78178642cd 100644 --- a/biometrics/face/aidl/aidl_api/android.hardware.biometrics.face/current/android/hardware/biometrics/face/ISession.aidl +++ b/biometrics/face/aidl/aidl_api/android.hardware.biometrics.face/current/android/hardware/biometrics/face/ISession.aidl @@ -37,7 +37,7 @@ interface ISession { void generateChallenge(); void revokeChallenge(in long challenge); android.hardware.biometrics.face.EnrollmentStageConfig[] getEnrollmentConfig(in android.hardware.biometrics.face.EnrollmentType enrollmentType); - android.hardware.biometrics.common.ICancellationSignal enroll(in android.hardware.keymaster.HardwareAuthToken hat, in android.hardware.biometrics.face.EnrollmentType type, in android.hardware.biometrics.face.Feature[] features, in android.hardware.common.NativeHandle previewSurface); + android.hardware.biometrics.common.ICancellationSignal enroll(in android.hardware.keymaster.HardwareAuthToken hat, in android.hardware.biometrics.face.EnrollmentType type, in android.hardware.biometrics.face.Feature[] features, in @nullable android.hardware.common.NativeHandle previewSurface); android.hardware.biometrics.common.ICancellationSignal authenticate(in long operationId); android.hardware.biometrics.common.ICancellationSignal detectInteraction(); void enumerateEnrollments(); diff --git a/biometrics/face/aidl/android/hardware/biometrics/face/ISession.aidl b/biometrics/face/aidl/android/hardware/biometrics/face/ISession.aidl index 2a57e3aa46..5f06b408e8 100644 --- a/biometrics/face/aidl/android/hardware/biometrics/face/ISession.aidl +++ b/biometrics/face/aidl/android/hardware/biometrics/face/ISession.aidl @@ -154,7 +154,7 @@ interface ISession { * operation. */ ICancellationSignal enroll(in HardwareAuthToken hat, in EnrollmentType type, - in Feature[] features, in NativeHandle previewSurface); + in Feature[] features, in @nullable NativeHandle previewSurface); /** * authenticate: From bde61ca1d32ddde39989f0bcd944a51349bbcdad Mon Sep 17 00:00:00 2001 From: Ilya Matyukhin Date: Wed, 21 Jul 2021 19:01:07 -0700 Subject: [PATCH 2/3] IFace: update default implementation to use optional previewSurface Bug: 194346408 Test: atest VtsHalBiometricsFaceTargetTest Change-Id: I72d3d6d638a1662ebd1a53a7029ea3bf200efe48 --- biometrics/face/aidl/default/Session.cpp | 3 ++- biometrics/face/aidl/default/Session.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/biometrics/face/aidl/default/Session.cpp b/biometrics/face/aidl/default/Session.cpp index 0cb7c95de8..bf5202850a 100644 --- a/biometrics/face/aidl/default/Session.cpp +++ b/biometrics/face/aidl/default/Session.cpp @@ -63,7 +63,8 @@ ndk::ScopedAStatus Session::getEnrollmentConfig(EnrollmentType /*enrollmentType* ndk::ScopedAStatus Session::enroll( const keymaster::HardwareAuthToken& /*hat*/, EnrollmentType /*enrollmentType*/, - const std::vector& /*features*/, const NativeHandle& /*previewSurface*/, + const std::vector& /*features*/, + const std::optional& /*previewSurface*/, std::shared_ptr* /*return_val*/) { LOG(INFO) << "enroll"; if (cb_) { diff --git a/biometrics/face/aidl/default/Session.h b/biometrics/face/aidl/default/Session.h index 4d213e3860..4152909a49 100644 --- a/biometrics/face/aidl/default/Session.h +++ b/biometrics/face/aidl/default/Session.h @@ -41,7 +41,7 @@ class Session : public BnSession { ndk::ScopedAStatus enroll(const keymaster::HardwareAuthToken& hat, EnrollmentType enrollmentType, const std::vector& features, - const NativeHandle& previewSurface, + const std::optional& previewSurface, std::shared_ptr* return_val) override; ndk::ScopedAStatus authenticate( From 88796f4992dc308102be052c9ab980ac51ed43ee Mon Sep 17 00:00:00 2001 From: Ilya Matyukhin Date: Wed, 21 Jul 2021 22:54:40 -0700 Subject: [PATCH 3/3] IFace: update VTS test to pass std::nullopt for previewSurface Bug: 194346408 Test: atest VtsHalBiometricsFaceTargetTest Change-Id: I1e945d821d4b91b9a9ea8f74ae6f817ef04a0f85 --- biometrics/face/aidl/vts/VtsHalBiometricsFaceTargetTest.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/biometrics/face/aidl/vts/VtsHalBiometricsFaceTargetTest.cpp b/biometrics/face/aidl/vts/VtsHalBiometricsFaceTargetTest.cpp index 4dc44f16c7..f3eac8f460 100644 --- a/biometrics/face/aidl/vts/VtsHalBiometricsFaceTargetTest.cpp +++ b/biometrics/face/aidl/vts/VtsHalBiometricsFaceTargetTest.cpp @@ -212,7 +212,7 @@ TEST_P(Face, EnrollWithBadHatResultsInErrorTest) { auto hat = keymaster::HardwareAuthToken{}; std::shared_ptr cancellationSignal; ASSERT_TRUE( - mSession->enroll(hat, EnrollmentType::DEFAULT, {}, NativeHandle{}, &cancellationSignal) + mSession->enroll(hat, EnrollmentType::DEFAULT, {}, std::nullopt, &cancellationSignal) .isOk()); // Make sure an error is returned.