Define biometrics.fingerprint@2.2

This interface allows to pass a hardware window ID to the enroll and
authenticate methods. Also, FingerprintAcquiredInfo::START is
introduced to make latency measurements possible.

Bug: 139317981
Test: hidl-gen -L check android.hardware.biometrics.fingerprint@2.2

Change-Id: Ie044764984776d32ab52ca941cfa008202eca2c6
This commit is contained in:
Ilya Matyukhin
2020-01-21 15:44:10 -08:00
parent 9e397467a3
commit 671c59917d
4 changed files with 154 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
// This file is autogenerated by hidl-gen -Landroidbp.
hidl_interface {
name: "android.hardware.biometrics.fingerprint@2.2",
root: "android.hardware",
vndk: {
enabled: true,
},
srcs: [
"types.hal",
"IBiometricsFingerprint.hal",
"IBiometricsFingerprintClientCallback.hal",
],
interfaces: [
"android.hardware.biometrics.fingerprint@2.1",
"android.hidl.base@1.0",
],
gen_java: true,
}

View File

@@ -0,0 +1,58 @@
/*
* Copyright 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.hardware.biometrics.fingerprint@2.2;
import @2.1::IBiometricsFingerprint;
import @2.1::RequestStatus;
interface IBiometricsFingerprint extends @2.1::IBiometricsFingerprint {
/**
* Fingerprint enroll request:
* Switches the HAL state machine to collect and store a new fingerprint
* template. Switches back as soon as enroll is complete, signalled by
* (fingerprintMsg.type == FINGERPRINT_TEMPLATE_ENROLLING &&
* fingerprintMsg.data.enroll.samplesRemaining == 0)
* or after timeoutSec seconds.
* The fingerprint template must be assigned to the group gid.
*
* @param hat a valid Hardware Authentication Token (HAT), generated
* as a result of a preEnroll() call.
* @param gid a framework defined fingerprint set (group) id.
* @param timeoutSec a timeout in seconds.
* @param windowId optional ID of an illumination window for optical under
* display fingerprint sensors. Must contain a null pointer if not used.
*
* @return debugErrno is a value the framework logs in case it is not 0.
*
* A notify() function may be called with a more detailed error structure.
*/
enroll_2_2(vec<uint8_t> hat, uint32_t gid, uint32_t timeoutSec, handle windowId)
generates (RequestStatus debugErrno);
/**
* Authenticates an operation identified by operationId
*
* @param operationId operation id.
* @param gid fingerprint group id.
* @param windowId optional ID of an illumination window for optical under
* display fingerprint sensors. Must contain a null pointer if not used.
*
* @return debugErrno is a value the framework logs in case it is not 0.
*/
authenticate_2_2(uint64_t operationId, uint32_t gid, handle windowId)
generates (RequestStatus debugErrno);
};

View File

@@ -0,0 +1,35 @@
/*
* Copyright 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.hardware.biometrics.fingerprint@2.2;
import @2.1::IBiometricsFingerprintClientCallback;
/*
* This HAL interface communicates asynchronous results from the
* fingerprint driver in response to user actions on the fingerprint sensor
*/
interface IBiometricsFingerprintClientCallback extends @2.1::IBiometricsFingerprintClientCallback {
/**
* Sent when a fingerprint image is acquired by the sensor
* @param deviceId the instance of this fingerprint device
* @param acquiredInfo a message about the quality of the acquired image
* @param vendorCode a vendor-specific message about the quality of the image. Only
* valid when acquiredInfo == ACQUIRED_VENDOR
*/
oneway onAcquired_2_2(uint64_t deviceId, FingerprintAcquiredInfo acquiredInfo,
int32_t vendorCode);
};

View File

@@ -0,0 +1,42 @@
/*
* Copyright 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.hardware.biometrics.fingerprint@2.2;
import @2.1::FingerprintAcquiredInfo;
/**
* Fingerprint acquisition info is meant as feedback for the current operation.
* Anything but START and ACQUIRED_GOOD must be shown to the user as feedback on
* how to take action on the current operation. For example,
* ACQUIRED_IMAGER_DIRTY may be used to tell the user to clean the sensor if it
* is detected to be dirty.
* If this causes the current operation to fail, an additional ERROR_CANCELED
* must be sent to stop the operation in progress (e.g. enrollment).
* In general, these messages will result in a "Try again" message.
*/
enum FingerprintAcquiredInfo : @2.1::FingerprintAcquiredInfo {
/**
* This message represents the earliest message sent at the beginning of the
* authentication pipeline. It is expected to be used to measure latency. For
* example, in a camera-based authentication system it's expected to be sent
* prior to camera initialization. Note this should be sent whenever
* authentication is restarted (see IBiometricsFace#userActivity).
* The framework will measure latency based on the time between the last START
* message and the onAuthenticated callback.
*/
START = 7,
};