Update common and face AIDL for session logging.
Bug: 204585936
Bug: 204584403
Test: atest VtsHalBiometricsFaceTargetTest
Change-Id: Icba064c5c48f808327323ab64b7b63f68737a2f8
diff --git a/biometrics/face/aidl/Android.bp b/biometrics/face/aidl/Android.bp
index 3f53fc8..fff2c1d 100644
--- a/biometrics/face/aidl/Android.bp
+++ b/biometrics/face/aidl/Android.bp
@@ -16,7 +16,7 @@
imports: [
"android.hardware.biometrics.common",
"android.hardware.common-V2",
- "android.hardware.keymaster",
+ "android.hardware.keymaster-V3",
],
stability: "vintf",
backend: {
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 7817864..4b51bb1 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
@@ -48,4 +48,7 @@
void invalidateAuthenticatorId();
void resetLockout(in android.hardware.keymaster.HardwareAuthToken hat);
void close();
+ android.hardware.biometrics.common.ICancellationSignal authenticateWithContext(in long operationId, in android.hardware.biometrics.common.OperationContext context);
+ android.hardware.biometrics.common.ICancellationSignal enrollWithContext(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, in android.hardware.biometrics.common.OperationContext context);
+ android.hardware.biometrics.common.ICancellationSignal detectInteractionWithContext(in android.hardware.biometrics.common.OperationContext context);
}
diff --git a/biometrics/face/aidl/android/hardware/biometrics/face/ISession.aidl b/biometrics/face/aidl/android/hardware/biometrics/face/ISession.aidl
index 5f06b40..bbe3632 100644
--- a/biometrics/face/aidl/android/hardware/biometrics/face/ISession.aidl
+++ b/biometrics/face/aidl/android/hardware/biometrics/face/ISession.aidl
@@ -17,6 +17,7 @@
package android.hardware.biometrics.face;
import android.hardware.biometrics.common.ICancellationSignal;
+import android.hardware.biometrics.common.OperationContext;
import android.hardware.biometrics.face.EnrollmentStageConfig;
import android.hardware.biometrics.face.EnrollmentType;
import android.hardware.biometrics.face.Feature;
@@ -441,4 +442,23 @@
* - ISessionCallback#onSessionClosed
*/
void close();
+
+ /**
+ * These are alternative methods for some operations to allow the HAL to make optional
+ * optimizations during execution.
+ *
+ * HALs may ignore the additional context and treat all *WithContext methods the same as
+ * the original methods.
+ */
+
+ /* See ISession#authenticateWithContext(long) */
+ ICancellationSignal authenticateWithContext(in long operationId, in OperationContext context);
+
+ /* See ISession#enroll(HardwareAuthToken, EnrollmentType, Feature[], NativeHandle) */
+ ICancellationSignal enrollWithContext(in HardwareAuthToken hat, in EnrollmentType type,
+ in Feature[] features, in @nullable NativeHandle previewSurface,
+ in OperationContext context);
+
+ /* See ISession#detectInteraction() */
+ ICancellationSignal detectInteractionWithContext(in OperationContext context);
}
diff --git a/biometrics/face/aidl/default/Android.bp b/biometrics/face/aidl/default/Android.bp
index 5092318..7f66eca 100644
--- a/biometrics/face/aidl/default/Android.bp
+++ b/biometrics/face/aidl/default/Android.bp
@@ -16,8 +16,8 @@
shared_libs: [
"libbase",
"libbinder_ndk",
- "android.hardware.biometrics.face-V1-ndk",
- "android.hardware.biometrics.common-V1-ndk",
+ "android.hardware.biometrics.face-V2-ndk",
+ "android.hardware.biometrics.common-V2-ndk",
],
srcs: [
"main.cpp",
diff --git a/biometrics/face/aidl/default/Session.cpp b/biometrics/face/aidl/default/Session.cpp
index 01cb620..9e753e5 100644
--- a/biometrics/face/aidl/default/Session.cpp
+++ b/biometrics/face/aidl/default/Session.cpp
@@ -151,4 +151,25 @@
return ndk::ScopedAStatus::ok();
}
+ndk::ScopedAStatus Session::authenticateWithContext(
+ int64_t operationId, const common::OperationContext& /*context*/,
+ std::shared_ptr<common::ICancellationSignal>* out) {
+ return authenticate(operationId, out);
+}
+
+ndk::ScopedAStatus Session::enrollWithContext(const keymaster::HardwareAuthToken& hat,
+ EnrollmentType enrollmentType,
+ const std::vector<Feature>& features,
+ const std::optional<NativeHandle>& previewSurface,
+ const common::OperationContext& /*context*/,
+ std::shared_ptr<common::ICancellationSignal>* out) {
+ return enroll(hat, enrollmentType, features, previewSurface, out);
+}
+
+ndk::ScopedAStatus Session::detectInteractionWithContext(
+ const common::OperationContext& /*context*/,
+ std::shared_ptr<common::ICancellationSignal>* out) {
+ return detectInteraction(out);
+}
+
} // namespace aidl::android::hardware::biometrics::face
diff --git a/biometrics/face/aidl/default/Session.h b/biometrics/face/aidl/default/Session.h
index 4152909..0ce9e20 100644
--- a/biometrics/face/aidl/default/Session.h
+++ b/biometrics/face/aidl/default/Session.h
@@ -68,6 +68,20 @@
ndk::ScopedAStatus close() override;
+ ndk::ScopedAStatus authenticateWithContext(
+ int64_t operationId, const common::OperationContext& context,
+ std::shared_ptr<common::ICancellationSignal>* out) override;
+
+ ndk::ScopedAStatus enrollWithContext(
+ const keymaster::HardwareAuthToken& hat, EnrollmentType enrollmentType,
+ const std::vector<Feature>& features, const std::optional<NativeHandle>& previewSurface,
+ const common::OperationContext& context,
+ std::shared_ptr<common::ICancellationSignal>* out) override;
+
+ ndk::ScopedAStatus detectInteractionWithContext(
+ const common::OperationContext& context,
+ std::shared_ptr<common::ICancellationSignal>* out) override;
+
private:
std::shared_ptr<ISessionCallback> cb_;
std::mt19937 mRandom;
diff --git a/biometrics/face/aidl/default/face-default.xml b/biometrics/face/aidl/default/face-default.xml
index 6915ad0..e6ef842 100644
--- a/biometrics/face/aidl/default/face-default.xml
+++ b/biometrics/face/aidl/default/face-default.xml
@@ -1,6 +1,7 @@
<manifest version="1.0" type="device">
<hal format="aidl">
<name>android.hardware.biometrics.face</name>
+ <version>2</version>
<fqname>IFace/default</fqname>
</hal>
</manifest>
diff --git a/biometrics/face/aidl/vts/Android.bp b/biometrics/face/aidl/vts/Android.bp
index 09ec4d0..4171ac3 100644
--- a/biometrics/face/aidl/vts/Android.bp
+++ b/biometrics/face/aidl/vts/Android.bp
@@ -15,8 +15,8 @@
],
srcs: ["VtsHalBiometricsFaceTargetTest.cpp"],
static_libs: [
- "android.hardware.biometrics.common-V1-ndk",
- "android.hardware.biometrics.face-V1-ndk",
+ "android.hardware.biometrics.common-V2-ndk",
+ "android.hardware.biometrics.face-V2-ndk",
"android.hardware.common-V2-ndk",
"android.hardware.keymaster-V3-ndk",
],
diff --git a/compatibility_matrices/compatibility_matrix.current.xml b/compatibility_matrices/compatibility_matrix.current.xml
index cf85688..2762bf1 100644
--- a/compatibility_matrices/compatibility_matrix.current.xml
+++ b/compatibility_matrices/compatibility_matrix.current.xml
@@ -110,6 +110,7 @@
</hal>
<hal format="aidl" optional="true">
<name>android.hardware.biometrics.face</name>
+ <version>2</version>
<interface>
<name>IFace</name>
<instance>default</instance>