mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
Remove SessionState from IFace
Bug: 183570051 Test: atest VtsHalBiometricsFaceTargetTest Change-Id: I87a1610b280072e3ccc3d280ae492ae5f6f2b6cc
This commit is contained in:
@@ -34,17 +34,17 @@
|
||||
package android.hardware.biometrics.face;
|
||||
@VintfStability
|
||||
interface ISession {
|
||||
void generateChallenge(in int cookie);
|
||||
void revokeChallenge(in int cookie, in long challenge);
|
||||
android.hardware.biometrics.common.ICancellationSignal enroll(in int cookie, 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 authenticate(in int cookie, in long operationId);
|
||||
android.hardware.biometrics.common.ICancellationSignal detectInteraction(in int cookie);
|
||||
void enumerateEnrollments(in int cookie);
|
||||
void removeEnrollments(in int cookie, in int[] enrollmentIds);
|
||||
void getFeatures(in int cookie, in int enrollmentId);
|
||||
void setFeature(in int cookie, in android.hardware.keymaster.HardwareAuthToken hat, in int enrollmentId, in android.hardware.biometrics.face.Feature feature, boolean enabled);
|
||||
void getAuthenticatorId(in int cookie);
|
||||
void invalidateAuthenticatorId(in int cookie);
|
||||
void resetLockout(in int cookie, in android.hardware.keymaster.HardwareAuthToken hat);
|
||||
void close(in int cookie);
|
||||
void generateChallenge();
|
||||
void revokeChallenge(in long challenge);
|
||||
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 authenticate(in long operationId);
|
||||
android.hardware.biometrics.common.ICancellationSignal detectInteraction();
|
||||
void enumerateEnrollments();
|
||||
void removeEnrollments(in int[] enrollmentIds);
|
||||
void getFeatures(in int enrollmentId);
|
||||
void setFeature(in android.hardware.keymaster.HardwareAuthToken hat, in int enrollmentId, in android.hardware.biometrics.face.Feature feature, boolean enabled);
|
||||
void getAuthenticatorId();
|
||||
void invalidateAuthenticatorId();
|
||||
void resetLockout(in android.hardware.keymaster.HardwareAuthToken hat);
|
||||
void close();
|
||||
}
|
||||
|
||||
@@ -34,7 +34,6 @@
|
||||
package android.hardware.biometrics.face;
|
||||
@VintfStability
|
||||
interface ISessionCallback {
|
||||
void onStateChanged(in int cookie, in android.hardware.biometrics.face.SessionState state);
|
||||
void onChallengeGenerated(in long challenge);
|
||||
void onChallengeRevoked(in long challenge);
|
||||
void onAuthenticationFrame(in android.hardware.biometrics.face.AuthenticationFrame frame);
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2021 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.
|
||||
*/
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// This file is a snapshot of an AIDL file. Do not edit it manually. There are
|
||||
// two cases:
|
||||
// 1). this is a frozen version file - do not edit this in any case.
|
||||
// 2). this is a 'current' file. If you make a backwards compatible change to
|
||||
// the interface (from the latest frozen version), the build system will
|
||||
// prompt you to update this file with `m <name>-update-api`.
|
||||
//
|
||||
// You must not make a backward incompatible change to any AIDL file built
|
||||
// with the aidl_interface module type with versions property set. The module
|
||||
// type is used to build AIDL files in a way that they can be used across
|
||||
// independently updatable components of the system. If a device is shipped
|
||||
// with such a backward incompatible change, it has a high risk of breaking
|
||||
// later when a module using the interface is updated, e.g., Mainline modules.
|
||||
|
||||
package android.hardware.biometrics.face;
|
||||
@Backing(type="byte") @VintfStability
|
||||
enum SessionState {
|
||||
IDLING = 0,
|
||||
CLOSED = 1,
|
||||
GENERATING_CHALLENGE = 2,
|
||||
REVOKING_CHALLENGE = 3,
|
||||
ENROLLING = 4,
|
||||
AUTHENTICATING = 5,
|
||||
DETECTING_INTERACTION = 6,
|
||||
ENUMERATING_ENROLLMENTS = 7,
|
||||
REMOVING_ENROLLMENTS = 8,
|
||||
GETTING_FEATURES = 9,
|
||||
SETTING_FEATURE = 10,
|
||||
GETTING_AUTHENTICATOR_ID = 11,
|
||||
INVALIDATING_AUTHENTICATOR_ID = 12,
|
||||
RESETTING_LOCKOUT = 13,
|
||||
}
|
||||
@@ -23,11 +23,25 @@ import android.hardware.common.NativeHandle;
|
||||
import android.hardware.keymaster.HardwareAuthToken;
|
||||
|
||||
/**
|
||||
* A session is a collection of immutable state (sensorId, userId), mutable state (SessionState),
|
||||
* methods available for the framework to call, and a callback (ISessionCallback) to notify the
|
||||
* framework about the events and results. A session is used to establish communication between
|
||||
* the framework and the HAL.
|
||||
* Operations that can be performed for unique sessions retrieved via IFace#createSession.
|
||||
* Operations defined within this interface can be divided into the following categories:
|
||||
* 1) Cancellable operations. These are usually the operations that can execute for several
|
||||
* minutes. To allow for cancellation, they return an instance of ICancellationSignal that
|
||||
* lets the framework cancel them by calling ICancellationSignal#cancel. If such an operation
|
||||
* is cancelled, it must notify the framework by calling ISessionCallback#onError with
|
||||
* Error::CANCELED.
|
||||
* 2) Non-cancellable operations. Such operations cannot be cancelled once started.
|
||||
*
|
||||
* The lifecycle of an operation ends when one of its terminal callbacks is called. For example,
|
||||
* ISession#authenticate is considered completed when any of the following callbacks is called:
|
||||
* ISessionCallback#onError, ISessionCallback#onAuthenticationSucceeded,
|
||||
* ISessionCallback#onAuthenticationFailed.
|
||||
*
|
||||
* ISession only supports execution of one operation at a time, regardless of whether it's
|
||||
* cancellable or not. The framework must wait for a corresponding callback indicating the end of
|
||||
* the current operation before a new operation can be started.
|
||||
*/
|
||||
|
||||
@VintfStability
|
||||
interface ISession {
|
||||
/**
|
||||
@@ -68,9 +82,8 @@ interface ISession {
|
||||
* | 0 | 10 | <Time4> | <Random4> |
|
||||
* ----------------------------------------------
|
||||
*
|
||||
* @param cookie A unique number identifying this operation
|
||||
*/
|
||||
void generateChallenge(in int cookie);
|
||||
void generateChallenge();
|
||||
|
||||
/**
|
||||
* revokeChallenge:
|
||||
@@ -79,10 +92,9 @@ interface ISession {
|
||||
* parameters is requested, the implementation must still notify the framework using the
|
||||
* provided callback.
|
||||
*
|
||||
* @param cookie A unique number identifying this operation
|
||||
* @param challenge Challenge that should be revoked.
|
||||
*/
|
||||
void revokeChallenge(in int cookie, in long challenge);
|
||||
void revokeChallenge(in long challenge);
|
||||
|
||||
/**
|
||||
* getEnrollmentConfig:
|
||||
@@ -101,19 +113,13 @@ interface ISession {
|
||||
*
|
||||
* A request to add a face enrollment.
|
||||
*
|
||||
* Once the HAL is able to start processing the enrollment request, it must notify the framework
|
||||
* via ISessionCallback#onStateChanged with SessionState::ENROLLING.
|
||||
*
|
||||
* At any point during enrollment, if a non-recoverable error occurs, the HAL must notify the
|
||||
* framework via ISessionCallback#onError with the applicable enrollment-specific error, and
|
||||
* then send ISessionCallback#onStateChanged(cookie, SessionState::IDLING) if no subsequent
|
||||
* operation is in the queue.
|
||||
* framework via ISessionCallback#onError with the applicable enrollment-specific error.
|
||||
*
|
||||
* Before capturing face data, the implementation must first verify the authenticity and
|
||||
* integrity of the provided HardwareAuthToken. In addition, it must check that the challenge
|
||||
* within the provided HardwareAuthToken is valid. See ISession#generateChallenge. If any of
|
||||
* the above checks fail, the framework must be notified via ISessionCallback#onError and the
|
||||
* HAL must notify the framework when it returns to the idle state. See
|
||||
* the above checks fail, the framework must be notified using ISessionCallback#onError with
|
||||
* Error::UNABLE_TO_PROCESS.
|
||||
*
|
||||
* During enrollment, the implementation may notify the framework via
|
||||
@@ -121,15 +127,12 @@ interface ISession {
|
||||
* can be invoked multiple times if necessary. Similarly, the framework may be notified of
|
||||
* enrollment progress changes via ISessionCallback#onEnrollmentProgress. Once the framework is
|
||||
* notified that there are 0 "remaining" steps, the framework may cache the "enrollmentId". See
|
||||
* ISessionCallback#onEnrollmentProgress for more info. The HAL must notify the framework once
|
||||
* it returns to the idle state.
|
||||
* ISessionCallback#onEnrollmentProgress for more info.
|
||||
*
|
||||
* When a finger is successfully added and before the framework is notified of remaining=0, the
|
||||
* implementation MUST update and associate this (sensorId, userId) pair with a new new
|
||||
* When a face is successfully added and before the framework is notified of remaining=0, the
|
||||
* implementation MUST update and associate this (sensorId, userId) pair with a new
|
||||
* entropy-encoded random identifier. See ISession#getAuthenticatorId for more information.
|
||||
*
|
||||
* @param cookie An identifier used to track subsystem operations related to this call path. The
|
||||
* client must guarantee that it is unique per ISession.
|
||||
* @param hat See above documentation.
|
||||
* @param enrollmentType See the EnrollmentType enum.
|
||||
* @param features See the Feature enum.
|
||||
@@ -139,7 +142,7 @@ interface ISession {
|
||||
* @return ICancellationSignal An object that can be used by the framework to cancel this
|
||||
* operation.
|
||||
*/
|
||||
ICancellationSignal enroll(in int cookie, in HardwareAuthToken hat, in EnrollmentType type,
|
||||
ICancellationSignal enroll(in HardwareAuthToken hat, in EnrollmentType type,
|
||||
in Feature[] features, in NativeHandle previewSurface);
|
||||
|
||||
/**
|
||||
@@ -147,13 +150,8 @@ interface ISession {
|
||||
*
|
||||
* A request to start looking for faces to authenticate.
|
||||
*
|
||||
* Once the HAL is able to start processing the authentication request, it must notify framework
|
||||
* via ISessionCallback#onStateChanged with SessionState::AUTHENTICATING.
|
||||
*
|
||||
* At any point during authentication, if a non-recoverable error occurs, the HAL must notify
|
||||
* the framework via ISessionCallback#onError with the applicable authentication-specific error,
|
||||
* and then send ISessionCallback#onStateChanged(cookie, SessionState::IDLING) if no
|
||||
* subsequent operation is in the queue.
|
||||
* the framework via ISessionCallback#onError with the applicable authentication-specific error.
|
||||
*
|
||||
* During authentication, the implementation may notify the framework via
|
||||
* ISessionCallback#onAcquired with messages that may be used to guide the user. This callback
|
||||
@@ -175,8 +173,6 @@ interface ISession {
|
||||
* must be set with the operationId passed in during #authenticate. If the sensor is NOT
|
||||
* SensorStrength::STRONG, the HardwareAuthToken MUST be null.
|
||||
*
|
||||
* @param cookie An identifier used to track subsystem operations related to this call path. The
|
||||
* client must guarantee that it is unique per ISession.
|
||||
* @param operationId For sensors configured as SensorStrength::STRONG, this must be used ONLY
|
||||
* upon successful authentication and wrapped in the HardwareAuthToken's
|
||||
* "challenge" field and sent to the framework via
|
||||
@@ -190,7 +186,7 @@ interface ISession {
|
||||
* @return ICancellationSignal An object that can be used by the framework to cancel this
|
||||
* operation.
|
||||
*/
|
||||
ICancellationSignal authenticate(in int cookie, in long operationId);
|
||||
ICancellationSignal authenticate(in long operationId);
|
||||
|
||||
/**
|
||||
* detectInteraction:
|
||||
@@ -199,17 +195,12 @@ interface ISession {
|
||||
* SensorProps#supportsDetectInteraction is true. If invoked on implementations that do not
|
||||
* support this functionality, the HAL must respond with ISession#onError(UNABLE_TO_PROCESS, 0).
|
||||
*
|
||||
* Once the HAL is able to start processing this request, it must notify the framework via
|
||||
* ISessionCallback#onStateChanged with SessionState::DETECTING_INTERACTION.
|
||||
*
|
||||
* The framework will use this method in cases where determing user presence is required, but
|
||||
* identifying/authentication is not. For example, when the device is encrypted (first boot) or
|
||||
* in lockdown mode.
|
||||
*
|
||||
* At any point during detectInteraction, if a non-recoverable error occurs, the HAL must notify
|
||||
* the framework via ISessionCallback#onError with the applicable error, and then send
|
||||
* ISessionCallback#onStateChanged(cookie, SessionState::IDLING) if no subsequent operation is
|
||||
* in the queue.
|
||||
* the framework via ISessionCallback#onError with the applicable error.
|
||||
*
|
||||
* The implementation must only check for a face-like image was detected (e.g. to
|
||||
* minimize interactions due to non-face objects), and the lockout counter must not
|
||||
@@ -222,17 +213,14 @@ interface ISession {
|
||||
* 1) Any face is detected and the framework is notified via
|
||||
* ISessionCallback#onInteractiondetected
|
||||
* 2) The operation was cancelled by the framework (see ICancellationSignal)
|
||||
* 3) The HAL ends the operation, for example when a subsequent operation pre-empts this one.
|
||||
*
|
||||
* Note that if the operation is canceled, the implementation must notify the framework via
|
||||
* ISessionCallback#onError with Error::CANCELED.
|
||||
*
|
||||
* @param cookie An identifier used to track subsystem operations related to this call path.
|
||||
* The framework will guarantee that it is unique per ISession.
|
||||
* @return ICancellationSignal An object that can be used by the framework to cancel this
|
||||
* operation.
|
||||
*/
|
||||
ICancellationSignal detectInteraction(in int cookie);
|
||||
ICancellationSignal detectInteraction();
|
||||
|
||||
/*
|
||||
* enumerateEnrollments:
|
||||
@@ -240,32 +228,22 @@ interface ISession {
|
||||
* A request to enumerate (list) the enrollments for this (sensorId, userId) pair. The
|
||||
* framework typically uses this to ensure that its cache is in sync with the HAL.
|
||||
*
|
||||
* Once the HAL is able to start processing this request, it must notify the framework via
|
||||
* ISessionCallback#onStateChanged with SessionState::ENUMERATING_ENROLLMENTS.
|
||||
*
|
||||
* The implementation must then notify the framework with a list of enrollments applicable
|
||||
* for the current session via ISessionCallback#onEnrollmentsEnumerated.
|
||||
*
|
||||
* @param cookie An identifier used to track subsystem operations related to this call path.
|
||||
* The framework will guarantee that it is unique per ISession.
|
||||
*/
|
||||
void enumerateEnrollments(in int cookie);
|
||||
void enumerateEnrollments();
|
||||
|
||||
/**
|
||||
* removeEnrollments:
|
||||
*
|
||||
* A request to remove the enrollments for this (sensorId, userId) pair.
|
||||
*
|
||||
* Once the HAL is able to start processing this request, it must notify the framework via
|
||||
* ISessionCallback#onStateChanged with SessionState::REMOVING_ENROLLMENTS.
|
||||
*
|
||||
* After removing the enrollmentIds from everywhere necessary (filesystem, secure subsystems,
|
||||
* etc), the implementation must notify the framework via ISessionCallback#onEnrollmentsRemoved.
|
||||
*
|
||||
* @param cookie An identifier used to track subsystem operations related to this call path.
|
||||
* The framework will guarantee that it is unique per ISession.
|
||||
*/
|
||||
void removeEnrollments(in int cookie, in int[] enrollmentIds);
|
||||
void removeEnrollments(in int[] enrollmentIds);
|
||||
|
||||
/**
|
||||
* getFeatures:
|
||||
@@ -273,20 +251,14 @@ interface ISession {
|
||||
* Returns a list of currently enabled features for the provided enrollmentId.
|
||||
*
|
||||
* If the enrollmentId is invalid, the HAL must invoke ISessionCallback#onError with
|
||||
* Error::UNABLE_TO_PROCESS and return to SessionState::IDLING if no subsequent work is in the
|
||||
* queue.
|
||||
*
|
||||
* Once the HAL is able to start processing this request, it must notify the framework by using
|
||||
* ISessionCallback#onStateChanged with SessionState::GETTING_FEATURES.
|
||||
* Error::UNABLE_TO_PROCESS.
|
||||
*
|
||||
* The HAL must notify the framework about the result by calling
|
||||
* ISessionCallback#onFeaturesRetrieved.
|
||||
*
|
||||
* @param cookie An identifier used to track subsystem operations related to this call path. The
|
||||
* client must guarantee that it is unique per ISession.
|
||||
* @param enrollmentId the ID of the enrollment for which the features are requested.
|
||||
*/
|
||||
void getFeatures(in int cookie, in int enrollmentId);
|
||||
void getFeatures(in int enrollmentId);
|
||||
|
||||
/**
|
||||
* setFeature:
|
||||
@@ -296,24 +268,18 @@ interface ISession {
|
||||
* (see @param hat). The HAL must verify the hat before changing any feature state.
|
||||
*
|
||||
* If either the hat or enrollmentId is invalid, the HAL must invoke ISessionCallback#onError
|
||||
* with Error::UNABLE_TO_PROCESS and return to SessionState::IDLING if no subsequent work is in
|
||||
* the queue.
|
||||
*
|
||||
* Once the HAL is able to start processing this request, it must notify the framework by using
|
||||
* ISessionCallback#onStateChanged with SessionState::SETTING_FEATURE.
|
||||
* with Error::UNABLE_TO_PROCESS.
|
||||
*
|
||||
* After the feature is successfully set, the HAL must notify the framework by calling
|
||||
* ISessionCallback#onFeatureSet.
|
||||
*
|
||||
* @param cookie An identifier used to track subsystem operations related to this call path. The
|
||||
* client must guarantee that it is unique per ISession.
|
||||
* @param hat HardwareAuthToken See above documentation.
|
||||
* @param enrollmentId the ID of the enrollment for which the feature update is requested.
|
||||
* @param feature The feature to be enabled or disabled.
|
||||
* @param enabled Whether the provided features should be enabled or disabled.
|
||||
*/
|
||||
void setFeature(in int cookie, in HardwareAuthToken hat, in int enrollmentId,
|
||||
in Feature feature, boolean enabled);
|
||||
void setFeature(
|
||||
in HardwareAuthToken hat, in int enrollmentId, in Feature feature, boolean enabled);
|
||||
|
||||
/**
|
||||
* getAuthenticatorId:
|
||||
@@ -341,10 +307,8 @@ interface ISession {
|
||||
* 3) MUST not change if a face is deleted.
|
||||
* 4) MUST be an entropy-encoded random number
|
||||
*
|
||||
* @param cookie An identifier used to track subsystem operations related to this call path. The
|
||||
* client must guarantee that it is unique per ISession.
|
||||
*/
|
||||
void getAuthenticatorId(in int cookie);
|
||||
void getAuthenticatorId();
|
||||
|
||||
/**
|
||||
* invalidateAuthenticatorId:
|
||||
@@ -368,10 +332,8 @@ interface ISession {
|
||||
* for more details). As such, the framework would coordinate invalidation across multiple
|
||||
* biometric HALs as necessary.
|
||||
*
|
||||
* @param cookie An identifier used to track subsystem operations related to this call path. The
|
||||
* client must guarantee that it is unique per ISession.
|
||||
*/
|
||||
void invalidateAuthenticatorId(in int cookie);
|
||||
void invalidateAuthenticatorId();
|
||||
|
||||
/**
|
||||
* resetLockout:
|
||||
@@ -382,8 +344,7 @@ interface ISession {
|
||||
* 2) Verify that the timestamp provided within the HAT is relatively recent (e.g. on the
|
||||
* order of minutes, not hours).
|
||||
* If either of the checks fail, the HAL must invoke ISessionCallback#onError with
|
||||
* Error::UNABLE_TO_PROCESS and return to SessionState::IDLING if no subsequent work is in the
|
||||
* queue.
|
||||
* Error::UNABLE_TO_PROCESS.
|
||||
*
|
||||
* Upon successful verification, the HAL must clear the lockout counter and notify the framework
|
||||
* via ISessionCallback#onLockoutCleared.
|
||||
@@ -414,27 +375,20 @@ interface ISession {
|
||||
* See the Android CDD section 7.3.10 for the full set of lockout and rate-limiting
|
||||
* requirements.
|
||||
*
|
||||
* @param cookie An identifier used to track subsystem operations related to this call path. The
|
||||
* client must guarantee that it is unique per ISession.
|
||||
* @param hat HardwareAuthToken See above documentation.
|
||||
*/
|
||||
void resetLockout(in int cookie, in HardwareAuthToken hat);
|
||||
void resetLockout(in HardwareAuthToken hat);
|
||||
|
||||
/*
|
||||
* Close this session and allow the HAL to release the resources associated with this session.
|
||||
*
|
||||
* A session can only be closed when it's in SessionState::IDLING. Closing a session will
|
||||
* result in a ISessionCallback#onStateChanged call with SessionState::CLOSED.
|
||||
*
|
||||
* If a session is unresponsive or stuck in a state other than SessionState::CLOSED,
|
||||
* IFace#reset could be used as a last resort to terminate the session and recover the HAL
|
||||
* from a bad state.
|
||||
* A session can only be closed when the HAL is idling, i.e. not performing any operations.
|
||||
* If the HAL is busy performing a cancellable operation, the operation must be explicitly
|
||||
* cancelled with a call to ICancellationSignal#cancel before the session can be closed.
|
||||
*
|
||||
* All sessions must be explicitly closed. Calling IFace#createSession while there is an active
|
||||
* session is considered an error.
|
||||
*
|
||||
* @param cookie An identifier used to track subsystem operations related to this call path. The
|
||||
* client must guarantee that it is unique per ISession.
|
||||
*/
|
||||
void close(in int cookie);
|
||||
void close();
|
||||
}
|
||||
|
||||
@@ -21,16 +21,10 @@ import android.hardware.biometrics.face.AuthenticationFrame;
|
||||
import android.hardware.biometrics.face.EnrollmentFrame;
|
||||
import android.hardware.biometrics.face.Error;
|
||||
import android.hardware.biometrics.face.Feature;
|
||||
import android.hardware.biometrics.face.SessionState;
|
||||
import android.hardware.keymaster.HardwareAuthToken;
|
||||
|
||||
@VintfStability
|
||||
interface ISessionCallback {
|
||||
/**
|
||||
* Used to notify the framework of session state changes. See ISession for more information.
|
||||
*/
|
||||
void onStateChanged(in int cookie, in SessionState state);
|
||||
|
||||
/**
|
||||
* Notifies the framework when a challenge is successfully generated.
|
||||
*/
|
||||
@@ -42,9 +36,9 @@ interface ISessionCallback {
|
||||
void onChallengeRevoked(in long challenge);
|
||||
|
||||
/**
|
||||
* This method must only be used to notify the framework during the following states:
|
||||
* 1) SessionState::AUTHENTICATING
|
||||
* 2) SessionState::DETECTING_INTERACTION
|
||||
* This method must only be used to notify the framework during the following operations:
|
||||
* 1) ISession#authenticate
|
||||
* 2) ISession#detectInteraction
|
||||
*
|
||||
* These messages may be used to provide user guidance multiple times if necessary per
|
||||
* operation.
|
||||
@@ -54,8 +48,8 @@ interface ISessionCallback {
|
||||
void onAuthenticationFrame(in AuthenticationFrame frame);
|
||||
|
||||
/**
|
||||
* This method must only be used to notify the framework during the SessionState::ENROLLING
|
||||
* state.
|
||||
* This method must only be used to notify the framework during the ISession#enroll
|
||||
* operation.
|
||||
*
|
||||
* These messages may be used to provide user guidance multiple times if necessary per
|
||||
* operation.
|
||||
@@ -65,18 +59,18 @@ interface ISessionCallback {
|
||||
void onEnrollmentFrame(in EnrollmentFrame frame);
|
||||
|
||||
/**
|
||||
* This method must only be used to notify the framework during the following states:
|
||||
* 1) SessionState::ENROLLING
|
||||
* 2) SessionState::AUTHENTICATING
|
||||
* 3) SessionState::DETECTING_INTERACTION
|
||||
* 4) SessionState::INVALIDATING_AUTHENTICATOR_ID
|
||||
* 5) SessionState::RESETTING_LOCKOUT
|
||||
* This method must only be used to notify the framework during the following operations:
|
||||
* 1) ISession#enroll
|
||||
* 2) ISession#authenticate
|
||||
* 3) ISession#detectInteraction
|
||||
* 4) ISession#invalidateAuthenticatorId
|
||||
* 5) ISession#resetLockout
|
||||
*
|
||||
* These messages may be used to notify the framework or user that a non-recoverable error
|
||||
* has occurred. The operation is finished, and the HAL must proceed with the next operation
|
||||
* or return to SessionState::IDLING if the queue is empty.
|
||||
* or return to the idling state.
|
||||
*
|
||||
* Note that cancellation (see common::ICancellationSignal) and preemption most be followed with
|
||||
* Note that cancellation (see common::ICancellationSignal) and preemption must be followed with
|
||||
* an Error::CANCELED message.
|
||||
*
|
||||
* @param error See the Error enum.
|
||||
@@ -88,8 +82,7 @@ interface ISessionCallback {
|
||||
void onError(in Error error, in int vendorCode);
|
||||
|
||||
/**
|
||||
* This method must only be used to notify the framework during the following state:
|
||||
* 1) SessionState::ENROLLING
|
||||
* This method must only be used to notify the framework during the ISession#enroll operation.
|
||||
*
|
||||
* @param enrollmentId Unique stable identifier for the enrollment that's being added by this
|
||||
* ISession#enroll invocation.
|
||||
@@ -98,7 +91,7 @@ interface ISessionCallback {
|
||||
void onEnrollmentProgress(in int enrollmentId, int remaining);
|
||||
|
||||
/**
|
||||
* This method must only be used to notify the framework during SessionState::AUTHENTICATING.
|
||||
* This method must only be used to notify the framework during ISession#authenticate.
|
||||
*
|
||||
* Used to notify the framework about a successful authentication. This ends the authentication
|
||||
* lifecycle.
|
||||
@@ -112,7 +105,7 @@ interface ISessionCallback {
|
||||
void onAuthenticationSucceeded(in int enrollmentId, in HardwareAuthToken hat);
|
||||
|
||||
/**
|
||||
* This method must only be used to notify the framework during SessionState::AUTHENTICATING.
|
||||
* This method must only be used to notify the framework during ISession#authenticate.
|
||||
*
|
||||
* Used to notify the framework about a failed authentication. This ends the authentication
|
||||
* lifecycle.
|
||||
@@ -120,7 +113,7 @@ interface ISessionCallback {
|
||||
void onAuthenticationFailed();
|
||||
|
||||
/**
|
||||
* This method must only be used to notify the framework during SessionState::AUTHENTICATING.
|
||||
* This method must only be used to notify the framework during ISession#authenticate.
|
||||
*
|
||||
* Authentication is locked out due to too many unsuccessful attempts. This is a rate-limiting
|
||||
* lockout, and authentication can be restarted after a period of time. See
|
||||
@@ -133,7 +126,7 @@ interface ISessionCallback {
|
||||
void onLockoutTimed(in long durationMillis);
|
||||
|
||||
/**
|
||||
* This method must only be used to notify the framework during SessionState::AUTHENTICATING.
|
||||
* This method must only be used to notify the framework during ISession#authenticate.
|
||||
*
|
||||
* Authentication is disabled until the user unlocks with their device credential
|
||||
* (PIN/Pattern/Password). See ISession#resetLockout.
|
||||
@@ -160,7 +153,7 @@ interface ISessionCallback {
|
||||
|
||||
/**
|
||||
* This method must only be used to notify the framework during
|
||||
* SessionState::DETECTING_INTERACTION
|
||||
* ISession#detectInteraction
|
||||
*
|
||||
* Notifies the framework that user interaction occurred. See ISession#detectInteraction.
|
||||
*/
|
||||
@@ -168,7 +161,7 @@ interface ISessionCallback {
|
||||
|
||||
/**
|
||||
* This method must only be used to notify the framework during
|
||||
* SessionState::ENUMERATING_ENROLLMENTS.
|
||||
* ISession#enumerateEnrollments.
|
||||
*
|
||||
* Notifies the framework of the current enrollments. See ISession#enumerateEnrollments.
|
||||
*
|
||||
@@ -177,7 +170,7 @@ interface ISessionCallback {
|
||||
void onEnrollmentsEnumerated(in int[] enrollmentIds);
|
||||
|
||||
/**
|
||||
* This method must only be used to notify the framework during SessionState::GETTING_FEATURES.
|
||||
* This method must only be used to notify the framework during ISession#getFeatures.
|
||||
*
|
||||
* Provides a list of features that are currently enabled for the given enrollmentId.
|
||||
*
|
||||
@@ -187,7 +180,7 @@ interface ISessionCallback {
|
||||
void onFeaturesRetrieved(in Feature[] features, in int enrollmentId);
|
||||
|
||||
/**
|
||||
* This method must only be used to notify the framework during SessionState::SETTING_FEATURE.
|
||||
* This method must only be used to notify the framework during ISession#setFeature.
|
||||
*
|
||||
* Notifies the framework that ISession#setFeature has completed.
|
||||
*
|
||||
@@ -198,7 +191,7 @@ interface ISessionCallback {
|
||||
|
||||
/**
|
||||
* This method must only be used to notify the framework during
|
||||
* SessionState::REMOVING_ENROLLMENTS.
|
||||
* ISession#removeEnrollments.
|
||||
*
|
||||
* Notifies the framework that the specified enrollments are removed.
|
||||
*
|
||||
@@ -208,7 +201,7 @@ interface ISessionCallback {
|
||||
|
||||
/**
|
||||
* This method must only be used to notify the framework during
|
||||
* SessionState::GETTING_AUTHENTICATOR_ID.
|
||||
* ISession#getAuthenticatorId.
|
||||
*
|
||||
* Notifies the framework with the authenticatorId corresponding to this session's
|
||||
* (userId, sensorId) pair.
|
||||
@@ -219,7 +212,7 @@ interface ISessionCallback {
|
||||
|
||||
/**
|
||||
* This method must only be used to notify the framework during
|
||||
* SessionState::INVALIDATING_AUTHENTICATOR_ID.
|
||||
* ISession#invalidateAuthenticatorId.
|
||||
*
|
||||
* See ISession#invalidateAuthenticatorId for more information.
|
||||
*
|
||||
|
||||
@@ -1,91 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2021 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.face;
|
||||
|
||||
@VintfStability
|
||||
@Backing(type="byte")
|
||||
enum SessionState {
|
||||
/**
|
||||
* The HAL is not processing any session requests.
|
||||
*/
|
||||
IDLING,
|
||||
|
||||
/**
|
||||
* The session has been closed by the client.
|
||||
*/
|
||||
CLOSED,
|
||||
|
||||
/**
|
||||
* The HAL is processing the ISession#generateChallenge request.
|
||||
*/
|
||||
GENERATING_CHALLENGE,
|
||||
|
||||
/**
|
||||
* The HAL is processing the ISession#revokeChallenge request.
|
||||
*/
|
||||
REVOKING_CHALLENGE,
|
||||
|
||||
/**
|
||||
* The HAL is processing the ISession#enroll request.
|
||||
*/
|
||||
ENROLLING,
|
||||
|
||||
/**
|
||||
* The HAL is processing the ISession#authenticate request.
|
||||
*/
|
||||
AUTHENTICATING,
|
||||
|
||||
/**
|
||||
* The HAL is processing the ISession#detectInteraction request.
|
||||
*/
|
||||
DETECTING_INTERACTION,
|
||||
|
||||
/**
|
||||
* The HAL is processing the ISession#enumerateEnrollments request.
|
||||
*/
|
||||
ENUMERATING_ENROLLMENTS,
|
||||
|
||||
/**
|
||||
* The HAL is processing the ISession#removeEnrollments request.
|
||||
*/
|
||||
REMOVING_ENROLLMENTS,
|
||||
|
||||
/**
|
||||
* The HAL is processing the ISession#getFeatures request.
|
||||
*/
|
||||
GETTING_FEATURES,
|
||||
|
||||
/**
|
||||
* The HAL is processing the ISession#setFeature request.
|
||||
*/
|
||||
SETTING_FEATURE,
|
||||
|
||||
/**
|
||||
* The HAL is processing the ISession#getAuthenticatorId request.
|
||||
*/
|
||||
GETTING_AUTHENTICATOR_ID,
|
||||
|
||||
/**
|
||||
* The HAL is processing the ISession#invalidateAuthenticatorId request.
|
||||
*/
|
||||
INVALIDATING_AUTHENTICATOR_ID,
|
||||
|
||||
/**
|
||||
* The HAL is processing the ISession#resetLockout request.
|
||||
*/
|
||||
RESETTING_LOCKOUT
|
||||
}
|
||||
Reference in New Issue
Block a user