/* * This file is auto-generated. DO NOT MODIFY. * Using: out/host/linux-x86/bin/aidl --lang=java -Weverything -Wno-missing-permission-annotation --structured --version 5 --hash notfrozen -t --stability vintf --min_sdk_version platform_apis -pout/soong/.intermediates/hardware/interfaces/biometrics/common/aidl/android.hardware.biometrics.common_interface/4/preprocessed.aidl -pout/soong/.intermediates/hardware/interfaces/keymaster/aidl/android.hardware.keymaster_interface/4/preprocessed.aidl --previous_api_dir=hardware/interfaces/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4 --previous_hash 41a730a7a6b5aa9cebebce70ee5b5e509b0af6fb --ninja -d out/soong/.intermediates/hardware/interfaces/biometrics/fingerprint/aidl/android.hardware.biometrics.fingerprint-V5-java-source/gen/android/hardware/biometrics/fingerprint/IVirtualHal.java.d -o out/soong/.intermediates/hardware/interfaces/biometrics/fingerprint/aidl/android.hardware.biometrics.fingerprint-V5-java-source/gen -Nhardware/interfaces/biometrics/fingerprint/aidl hardware/interfaces/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/IVirtualHal.aidl */ package android.hardware.biometrics.fingerprint; /** @hide */ public interface IVirtualHal extends android.os.IInterface { /** * The version of this interface that the caller is built against. * This might be different from what {@link #getInterfaceVersion() * getInterfaceVersion} returns as that is the version of the interface * that the remote object is implementing. */ public static final int VERSION = true ? 4 : 5; public static final String HASH = "41a730a7a6b5aa9cebebce70ee5b5e509b0af6fb"; /** Default implementation for IVirtualHal. */ public static class Default implements android.hardware.biometrics.fingerprint.IVirtualHal { /** Set Fingerprint Virtual HAL behavior parameters */ /** * setEnrollments * * Set the ids of the fingerprints that were currently enrolled in the Virtual HAL, * * @param ids ids can contain 1 or more ids, each must be larger than 0 */ @Override public void setEnrollments(int[] id) throws android.os.RemoteException { } /** * setEnrollmentHit * * Set current fingerprint enrollment ids in Fingerprint Virtual HAL, * * @param ids ids can contain 1 or more ids, each must be larger than 0 */ @Override public void setEnrollmentHit(int hit_id) throws android.os.RemoteException { } /** * setNextEnrollment * * Set the next enrollment behavior * * @param next_enrollment specifies enrollment id, progress stages and final result */ @Override public void setNextEnrollment(android.hardware.biometrics.fingerprint.NextEnrollment next_enrollment) throws android.os.RemoteException { } /** * setAuthenticatorId * * Set authenticator id in virtual HAL, the id is returned in ISession#getAuthenticatorId() call * * @param id authenticator id value, only applied to the sensor with SensorStrength::STRONG. */ @Override public void setAuthenticatorId(long id) throws android.os.RemoteException { } /** * setChallenge * * Set the challenge generated by the virtual HAL, which is returned in * ISessionCallback#onChallengeGenerated() * * @param challenge */ @Override public void setChallenge(long challenge) throws android.os.RemoteException { } /** * setOperationAuthenticateFails * * Set whether to force authentication to fail. If true, the virtual hal will report failure on * authentication attempt until it is set to false * * @param fail if true, then the next authentication will fail */ @Override public void setOperationAuthenticateFails(boolean fail) throws android.os.RemoteException { } /** * setOperationAuthenticateLatency * * Set authentication latency in the virtual hal in a fixed value (single element) or random * values (two elements representing the bound values) * The latency simulates the delay from the time framework requesting HAL to authetication to * the time when HAL is ready to perform authentication operations. * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in array falls in any of * the following conditions * 1. the array contains no element * 2. the array contains more than two elements * 3. the array contains any negative value * The accompanying error message gives more detail * * @param latencyMs[] value(s) are in milli-seconds */ @Override public void setOperationAuthenticateLatency(int[] latencyMs) throws android.os.RemoteException { } /** * setOperationAuthenticateDuration * * Set authentication duration covering the HAL authetication from start to end, including * fingerprint capturing, and matching, acquired info reporting. In case a sequence of acquired * info code are specified via setOperationAuthenticateAcquired(), the reporting is evenly * distributed over the duration. * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in value is negative * * @param duration value is in milli-seconds */ @Override public void setOperationAuthenticateDuration(int durationMs) throws android.os.RemoteException { } /** * setOperationAuthenticateError * * Force authentication to error out for non-zero error * Check hardware/interfaces/biometrics/fingerprint/aidl/default/README.md for valid error codes * * @param error if error < 1000 * non-vendor error * else * vendor error */ @Override public void setOperationAuthenticateError(int error) throws android.os.RemoteException { } /** * setOperationAuthenticateAcquired * * Set one of more acquired info codes for the virtual hal to report during authentication * Check hardware/interfaces/biometrics/fingerprint/aidl/default/README.md for valid acquired * info codes * * @param acquired[], one or more acquired info codes */ @Override public void setOperationAuthenticateAcquired(android.hardware.biometrics.fingerprint.AcquiredInfoAndVendorCode[] acquired) throws android.os.RemoteException { } /** * setOperationEnrollError * * Force enrollment operation to error out for non-zero error * Check hardware/interfaces/biometrics/fingerprint/aidl/default/README.md for valid error codes * * @param error if error < 1000 * non-vendor error * else * vendor error */ @Override public void setOperationEnrollError(int error) throws android.os.RemoteException { } /** * setOperationEnrollLatency * * Set enrollment latency in the virtual hal in a fixed value (single element) or random * values (two elements representing the bound values) * The latency simulates the delay from the time framework requesting HAL to enroll to the * time when HAL is ready to perform enrollment operations. * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in array falls in any of * the following conditions * 1. the array contains no element * 2. the array contains more than two elements * 3. the array contains any negative value * The accompanying error message gives more detail * * @param latencyMs[] value(s) are in milli-seconds */ @Override public void setOperationEnrollLatency(int[] latencyMs) throws android.os.RemoteException { } /** * setOperationDetectInteractionLatency * * Set detect interaction latency in the virtual hal in a fixed value (single element) or random * values (two elements representing the bound values) * The latency simulates the delay from the time framework requesting HAL to detect interaction * to the time when HAL is ready to perform detect interaction operations. * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in array falls in any of * the following conditions * 1. the array contains no element * 2. the array contains more than two elements * 3. the array contains any negative value * The accompanying error message gives more detail * * @param latencyMs[] value(s) are in milli-seconds */ @Override public void setOperationDetectInteractionLatency(int[] latencyMs) throws android.os.RemoteException { } /** * setOperationDetectInteractionError * * Force detect interaction operation to error out for non-zero error * Check hardware/interfaces/biometrics/fingerprint/aidl/default/README.md for valid error codes * * @param error if error < 1000 * non-vendor error * else * vendor error */ @Override public void setOperationDetectInteractionError(int error) throws android.os.RemoteException { } /** * setOperationDetectInteractionDuration * * Set detect interaction duration covering the HAL authetication from start to end, including * fingerprint detect and acquired info reporting. In case a sequence of acquired info code are * specified via setOperationDetectInteractionAcquired(), the reporting is evenly distributed * over the duration. * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in value is negative * * @param duration value is in milli-seconds */ @Override public void setOperationDetectInteractionDuration(int durationMs) throws android.os.RemoteException { } /** * setOperationDetectInteractionAcquired * * Set one of more acquired info codes for the virtual hal to report during detect interaction * Check hardware/interfaces/biometrics/fingerprint/aidl/default/README.md for valid acquired * info codes * * @param acquired[], one or more acquired info codes */ @Override public void setOperationDetectInteractionAcquired(android.hardware.biometrics.fingerprint.AcquiredInfoAndVendorCode[] acquired) throws android.os.RemoteException { } /** * setLockout * * Whether to force to lockout on authentcation operation. If true, the virtual hal will report * permanent lockout in processing authentication requrest, regardless of whether * setLockoutEnable(true) is called or not. * * @param lockout, set to true if lockout is desired */ @Override public void setLockout(boolean lockout) throws android.os.RemoteException { } /** * setLockoutEnable * * Whether to enable authentication-fail-based lockout tracking or not. The lock tracking * includes both timed-based (aka temporary) lockout and permanent lockout. * * @param enable, set true to enable the lockout tracking */ @Override public void setLockoutEnable(boolean enable) throws android.os.RemoteException { } /** * setLockoutTimedThreshold * * Set the number of consecutive authentication failures that triggers the timed-based lock to * occur * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in value is negative * * @param threshold, the number of consecutive failures */ @Override public void setLockoutTimedThreshold(int threshold) throws android.os.RemoteException { } /** * setLockoutTimedDuration * * Set the duration to expire timed-based lock during which there is no authentication failure * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in value is negative * * @param duration, in milli-seconds */ @Override public void setLockoutTimedDuration(int durationMs) throws android.os.RemoteException { } /** * setLockoutPermanentThreshold * * Set the number of consecutive authentication failures that triggers the permanent lock to * occur * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in value is negative * * @param threshold, the number of consecutive failures */ @Override public void setLockoutPermanentThreshold(int threshold) throws android.os.RemoteException { } /** * resetConfigurations * * Reset all virtual hal configurations to default values */ @Override public void resetConfigurations() throws android.os.RemoteException { } /** * The following functions are used to configure Fingerprint Virtual HAL sensor properties * refer to SensorProps.aidl and CommonProps.aidl for details of each property */ @Override public void setType(byte type) throws android.os.RemoteException { } @Override public void setSensorId(int id) throws android.os.RemoteException { } @Override public void setSensorStrength(byte strength) throws android.os.RemoteException { } @Override public void setMaxEnrollmentPerUser(int max) throws android.os.RemoteException { } @Override public void setSensorLocation(android.hardware.biometrics.fingerprint.SensorLocation loc) throws android.os.RemoteException { } @Override public void setNavigationGuesture(boolean v) throws android.os.RemoteException { } @Override public void setDetectInteraction(boolean v) throws android.os.RemoteException { } @Override public void setDisplayTouch(boolean v) throws android.os.RemoteException { } @Override public void setControlIllumination(boolean v) throws android.os.RemoteException { } @Override public int getInterfaceVersion() { return 0; } @Override public String getInterfaceHash() { return ""; } @Override public android.os.IBinder asBinder() { return null; } } /** Local-side IPC implementation stub class. */ public static abstract class Stub extends android.os.Binder implements android.hardware.biometrics.fingerprint.IVirtualHal { /** Construct the stub at attach it to the interface. */ @SuppressWarnings("this-escape") public Stub() { this.markVintfStability(); this.attachInterface(this, DESCRIPTOR); } /** * Cast an IBinder object into an android.hardware.biometrics.fingerprint.IVirtualHal interface, * generating a proxy if needed. */ public static android.hardware.biometrics.fingerprint.IVirtualHal asInterface(android.os.IBinder obj) { if ((obj==null)) { return null; } android.os.IInterface iin = obj.queryLocalInterface(DESCRIPTOR); if (((iin!=null)&&(iin instanceof android.hardware.biometrics.fingerprint.IVirtualHal))) { return ((android.hardware.biometrics.fingerprint.IVirtualHal)iin); } return new android.hardware.biometrics.fingerprint.IVirtualHal.Stub.Proxy(obj); } @Override public android.os.IBinder asBinder() { return this; } /** @hide */ public static java.lang.String getDefaultTransactionName(int transactionCode) { switch (transactionCode) { case TRANSACTION_setEnrollments: { return "setEnrollments"; } case TRANSACTION_setEnrollmentHit: { return "setEnrollmentHit"; } case TRANSACTION_setNextEnrollment: { return "setNextEnrollment"; } case TRANSACTION_setAuthenticatorId: { return "setAuthenticatorId"; } case TRANSACTION_setChallenge: { return "setChallenge"; } case TRANSACTION_setOperationAuthenticateFails: { return "setOperationAuthenticateFails"; } case TRANSACTION_setOperationAuthenticateLatency: { return "setOperationAuthenticateLatency"; } case TRANSACTION_setOperationAuthenticateDuration: { return "setOperationAuthenticateDuration"; } case TRANSACTION_setOperationAuthenticateError: { return "setOperationAuthenticateError"; } case TRANSACTION_setOperationAuthenticateAcquired: { return "setOperationAuthenticateAcquired"; } case TRANSACTION_setOperationEnrollError: { return "setOperationEnrollError"; } case TRANSACTION_setOperationEnrollLatency: { return "setOperationEnrollLatency"; } case TRANSACTION_setOperationDetectInteractionLatency: { return "setOperationDetectInteractionLatency"; } case TRANSACTION_setOperationDetectInteractionError: { return "setOperationDetectInteractionError"; } case TRANSACTION_setOperationDetectInteractionDuration: { return "setOperationDetectInteractionDuration"; } case TRANSACTION_setOperationDetectInteractionAcquired: { return "setOperationDetectInteractionAcquired"; } case TRANSACTION_setLockout: { return "setLockout"; } case TRANSACTION_setLockoutEnable: { return "setLockoutEnable"; } case TRANSACTION_setLockoutTimedThreshold: { return "setLockoutTimedThreshold"; } case TRANSACTION_setLockoutTimedDuration: { return "setLockoutTimedDuration"; } case TRANSACTION_setLockoutPermanentThreshold: { return "setLockoutPermanentThreshold"; } case TRANSACTION_resetConfigurations: { return "resetConfigurations"; } case TRANSACTION_setType: { return "setType"; } case TRANSACTION_setSensorId: { return "setSensorId"; } case TRANSACTION_setSensorStrength: { return "setSensorStrength"; } case TRANSACTION_setMaxEnrollmentPerUser: { return "setMaxEnrollmentPerUser"; } case TRANSACTION_setSensorLocation: { return "setSensorLocation"; } case TRANSACTION_setNavigationGuesture: { return "setNavigationGuesture"; } case TRANSACTION_setDetectInteraction: { return "setDetectInteraction"; } case TRANSACTION_setDisplayTouch: { return "setDisplayTouch"; } case TRANSACTION_setControlIllumination: { return "setControlIllumination"; } case TRANSACTION_getInterfaceVersion: { return "getInterfaceVersion"; } case TRANSACTION_getInterfaceHash: { return "getInterfaceHash"; } default: { return null; } } } /** @hide */ public java.lang.String getTransactionName(int transactionCode) { return this.getDefaultTransactionName(transactionCode); } @Override public boolean onTransact(int code, android.os.Parcel data, android.os.Parcel reply, int flags) throws android.os.RemoteException { java.lang.String descriptor = DESCRIPTOR; if (code >= android.os.IBinder.FIRST_CALL_TRANSACTION && code <= android.os.IBinder.LAST_CALL_TRANSACTION) { data.enforceInterface(descriptor); } if (code == INTERFACE_TRANSACTION) { reply.writeString(descriptor); return true; } else if (code == TRANSACTION_getInterfaceVersion) { reply.writeNoException(); reply.writeInt(getInterfaceVersion()); return true; } else if (code == TRANSACTION_getInterfaceHash) { reply.writeNoException(); reply.writeString(getInterfaceHash()); return true; } switch (code) { case TRANSACTION_setEnrollments: { int[] _arg0; _arg0 = data.createIntArray(); data.enforceNoDataAvail(); this.setEnrollments(_arg0); break; } case TRANSACTION_setEnrollmentHit: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.setEnrollmentHit(_arg0); break; } case TRANSACTION_setNextEnrollment: { android.hardware.biometrics.fingerprint.NextEnrollment _arg0; _arg0 = data.readTypedObject(android.hardware.biometrics.fingerprint.NextEnrollment.CREATOR); data.enforceNoDataAvail(); this.setNextEnrollment(_arg0); break; } case TRANSACTION_setAuthenticatorId: { long _arg0; _arg0 = data.readLong(); data.enforceNoDataAvail(); this.setAuthenticatorId(_arg0); break; } case TRANSACTION_setChallenge: { long _arg0; _arg0 = data.readLong(); data.enforceNoDataAvail(); this.setChallenge(_arg0); break; } case TRANSACTION_setOperationAuthenticateFails: { boolean _arg0; _arg0 = data.readBoolean(); data.enforceNoDataAvail(); this.setOperationAuthenticateFails(_arg0); break; } case TRANSACTION_setOperationAuthenticateLatency: { int[] _arg0; _arg0 = data.createIntArray(); data.enforceNoDataAvail(); this.setOperationAuthenticateLatency(_arg0); break; } case TRANSACTION_setOperationAuthenticateDuration: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.setOperationAuthenticateDuration(_arg0); break; } case TRANSACTION_setOperationAuthenticateError: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.setOperationAuthenticateError(_arg0); break; } case TRANSACTION_setOperationAuthenticateAcquired: { android.hardware.biometrics.fingerprint.AcquiredInfoAndVendorCode[] _arg0; _arg0 = data.createTypedArray(android.hardware.biometrics.fingerprint.AcquiredInfoAndVendorCode.CREATOR); data.enforceNoDataAvail(); this.setOperationAuthenticateAcquired(_arg0); break; } case TRANSACTION_setOperationEnrollError: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.setOperationEnrollError(_arg0); break; } case TRANSACTION_setOperationEnrollLatency: { int[] _arg0; _arg0 = data.createIntArray(); data.enforceNoDataAvail(); this.setOperationEnrollLatency(_arg0); break; } case TRANSACTION_setOperationDetectInteractionLatency: { int[] _arg0; _arg0 = data.createIntArray(); data.enforceNoDataAvail(); this.setOperationDetectInteractionLatency(_arg0); break; } case TRANSACTION_setOperationDetectInteractionError: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.setOperationDetectInteractionError(_arg0); break; } case TRANSACTION_setOperationDetectInteractionDuration: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.setOperationDetectInteractionDuration(_arg0); break; } case TRANSACTION_setOperationDetectInteractionAcquired: { android.hardware.biometrics.fingerprint.AcquiredInfoAndVendorCode[] _arg0; _arg0 = data.createTypedArray(android.hardware.biometrics.fingerprint.AcquiredInfoAndVendorCode.CREATOR); data.enforceNoDataAvail(); this.setOperationDetectInteractionAcquired(_arg0); break; } case TRANSACTION_setLockout: { boolean _arg0; _arg0 = data.readBoolean(); data.enforceNoDataAvail(); this.setLockout(_arg0); break; } case TRANSACTION_setLockoutEnable: { boolean _arg0; _arg0 = data.readBoolean(); data.enforceNoDataAvail(); this.setLockoutEnable(_arg0); break; } case TRANSACTION_setLockoutTimedThreshold: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.setLockoutTimedThreshold(_arg0); break; } case TRANSACTION_setLockoutTimedDuration: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.setLockoutTimedDuration(_arg0); break; } case TRANSACTION_setLockoutPermanentThreshold: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.setLockoutPermanentThreshold(_arg0); break; } case TRANSACTION_resetConfigurations: { this.resetConfigurations(); break; } case TRANSACTION_setType: { byte _arg0; _arg0 = data.readByte(); data.enforceNoDataAvail(); this.setType(_arg0); break; } case TRANSACTION_setSensorId: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.setSensorId(_arg0); break; } case TRANSACTION_setSensorStrength: { byte _arg0; _arg0 = data.readByte(); data.enforceNoDataAvail(); this.setSensorStrength(_arg0); break; } case TRANSACTION_setMaxEnrollmentPerUser: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.setMaxEnrollmentPerUser(_arg0); break; } case TRANSACTION_setSensorLocation: { android.hardware.biometrics.fingerprint.SensorLocation _arg0; _arg0 = data.readTypedObject(android.hardware.biometrics.fingerprint.SensorLocation.CREATOR); data.enforceNoDataAvail(); this.setSensorLocation(_arg0); break; } case TRANSACTION_setNavigationGuesture: { boolean _arg0; _arg0 = data.readBoolean(); data.enforceNoDataAvail(); this.setNavigationGuesture(_arg0); break; } case TRANSACTION_setDetectInteraction: { boolean _arg0; _arg0 = data.readBoolean(); data.enforceNoDataAvail(); this.setDetectInteraction(_arg0); break; } case TRANSACTION_setDisplayTouch: { boolean _arg0; _arg0 = data.readBoolean(); data.enforceNoDataAvail(); this.setDisplayTouch(_arg0); break; } case TRANSACTION_setControlIllumination: { boolean _arg0; _arg0 = data.readBoolean(); data.enforceNoDataAvail(); this.setControlIllumination(_arg0); break; } default: { return super.onTransact(code, data, reply, flags); } } return true; } private static class Proxy implements android.hardware.biometrics.fingerprint.IVirtualHal { private android.os.IBinder mRemote; Proxy(android.os.IBinder remote) { mRemote = remote; } private int mCachedVersion = -1; private String mCachedHash = "-1"; @Override public android.os.IBinder asBinder() { return mRemote; } public java.lang.String getInterfaceDescriptor() { return DESCRIPTOR; } /** Set Fingerprint Virtual HAL behavior parameters */ /** * setEnrollments * * Set the ids of the fingerprints that were currently enrolled in the Virtual HAL, * * @param ids ids can contain 1 or more ids, each must be larger than 0 */ @Override public void setEnrollments(int[] id) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeIntArray(id); boolean _status = mRemote.transact(Stub.TRANSACTION_setEnrollments, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setEnrollments is unimplemented."); } } finally { _data.recycle(); } } /** * setEnrollmentHit * * Set current fingerprint enrollment ids in Fingerprint Virtual HAL, * * @param ids ids can contain 1 or more ids, each must be larger than 0 */ @Override public void setEnrollmentHit(int hit_id) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(hit_id); boolean _status = mRemote.transact(Stub.TRANSACTION_setEnrollmentHit, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setEnrollmentHit is unimplemented."); } } finally { _data.recycle(); } } /** * setNextEnrollment * * Set the next enrollment behavior * * @param next_enrollment specifies enrollment id, progress stages and final result */ @Override public void setNextEnrollment(android.hardware.biometrics.fingerprint.NextEnrollment next_enrollment) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(next_enrollment, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_setNextEnrollment, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setNextEnrollment is unimplemented."); } } finally { _data.recycle(); } } /** * setAuthenticatorId * * Set authenticator id in virtual HAL, the id is returned in ISession#getAuthenticatorId() call * * @param id authenticator id value, only applied to the sensor with SensorStrength::STRONG. */ @Override public void setAuthenticatorId(long id) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeLong(id); boolean _status = mRemote.transact(Stub.TRANSACTION_setAuthenticatorId, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setAuthenticatorId is unimplemented."); } } finally { _data.recycle(); } } /** * setChallenge * * Set the challenge generated by the virtual HAL, which is returned in * ISessionCallback#onChallengeGenerated() * * @param challenge */ @Override public void setChallenge(long challenge) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeLong(challenge); boolean _status = mRemote.transact(Stub.TRANSACTION_setChallenge, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setChallenge is unimplemented."); } } finally { _data.recycle(); } } /** * setOperationAuthenticateFails * * Set whether to force authentication to fail. If true, the virtual hal will report failure on * authentication attempt until it is set to false * * @param fail if true, then the next authentication will fail */ @Override public void setOperationAuthenticateFails(boolean fail) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeBoolean(fail); boolean _status = mRemote.transact(Stub.TRANSACTION_setOperationAuthenticateFails, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setOperationAuthenticateFails is unimplemented."); } } finally { _data.recycle(); } } /** * setOperationAuthenticateLatency * * Set authentication latency in the virtual hal in a fixed value (single element) or random * values (two elements representing the bound values) * The latency simulates the delay from the time framework requesting HAL to authetication to * the time when HAL is ready to perform authentication operations. * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in array falls in any of * the following conditions * 1. the array contains no element * 2. the array contains more than two elements * 3. the array contains any negative value * The accompanying error message gives more detail * * @param latencyMs[] value(s) are in milli-seconds */ @Override public void setOperationAuthenticateLatency(int[] latencyMs) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeIntArray(latencyMs); boolean _status = mRemote.transact(Stub.TRANSACTION_setOperationAuthenticateLatency, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setOperationAuthenticateLatency is unimplemented."); } } finally { _data.recycle(); } } /** * setOperationAuthenticateDuration * * Set authentication duration covering the HAL authetication from start to end, including * fingerprint capturing, and matching, acquired info reporting. In case a sequence of acquired * info code are specified via setOperationAuthenticateAcquired(), the reporting is evenly * distributed over the duration. * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in value is negative * * @param duration value is in milli-seconds */ @Override public void setOperationAuthenticateDuration(int durationMs) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(durationMs); boolean _status = mRemote.transact(Stub.TRANSACTION_setOperationAuthenticateDuration, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setOperationAuthenticateDuration is unimplemented."); } } finally { _data.recycle(); } } /** * setOperationAuthenticateError * * Force authentication to error out for non-zero error * Check hardware/interfaces/biometrics/fingerprint/aidl/default/README.md for valid error codes * * @param error if error < 1000 * non-vendor error * else * vendor error */ @Override public void setOperationAuthenticateError(int error) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(error); boolean _status = mRemote.transact(Stub.TRANSACTION_setOperationAuthenticateError, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setOperationAuthenticateError is unimplemented."); } } finally { _data.recycle(); } } /** * setOperationAuthenticateAcquired * * Set one of more acquired info codes for the virtual hal to report during authentication * Check hardware/interfaces/biometrics/fingerprint/aidl/default/README.md for valid acquired * info codes * * @param acquired[], one or more acquired info codes */ @Override public void setOperationAuthenticateAcquired(android.hardware.biometrics.fingerprint.AcquiredInfoAndVendorCode[] acquired) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedArray(acquired, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_setOperationAuthenticateAcquired, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setOperationAuthenticateAcquired is unimplemented."); } } finally { _data.recycle(); } } /** * setOperationEnrollError * * Force enrollment operation to error out for non-zero error * Check hardware/interfaces/biometrics/fingerprint/aidl/default/README.md for valid error codes * * @param error if error < 1000 * non-vendor error * else * vendor error */ @Override public void setOperationEnrollError(int error) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(error); boolean _status = mRemote.transact(Stub.TRANSACTION_setOperationEnrollError, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setOperationEnrollError is unimplemented."); } } finally { _data.recycle(); } } /** * setOperationEnrollLatency * * Set enrollment latency in the virtual hal in a fixed value (single element) or random * values (two elements representing the bound values) * The latency simulates the delay from the time framework requesting HAL to enroll to the * time when HAL is ready to perform enrollment operations. * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in array falls in any of * the following conditions * 1. the array contains no element * 2. the array contains more than two elements * 3. the array contains any negative value * The accompanying error message gives more detail * * @param latencyMs[] value(s) are in milli-seconds */ @Override public void setOperationEnrollLatency(int[] latencyMs) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeIntArray(latencyMs); boolean _status = mRemote.transact(Stub.TRANSACTION_setOperationEnrollLatency, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setOperationEnrollLatency is unimplemented."); } } finally { _data.recycle(); } } /** * setOperationDetectInteractionLatency * * Set detect interaction latency in the virtual hal in a fixed value (single element) or random * values (two elements representing the bound values) * The latency simulates the delay from the time framework requesting HAL to detect interaction * to the time when HAL is ready to perform detect interaction operations. * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in array falls in any of * the following conditions * 1. the array contains no element * 2. the array contains more than two elements * 3. the array contains any negative value * The accompanying error message gives more detail * * @param latencyMs[] value(s) are in milli-seconds */ @Override public void setOperationDetectInteractionLatency(int[] latencyMs) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeIntArray(latencyMs); boolean _status = mRemote.transact(Stub.TRANSACTION_setOperationDetectInteractionLatency, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setOperationDetectInteractionLatency is unimplemented."); } } finally { _data.recycle(); } } /** * setOperationDetectInteractionError * * Force detect interaction operation to error out for non-zero error * Check hardware/interfaces/biometrics/fingerprint/aidl/default/README.md for valid error codes * * @param error if error < 1000 * non-vendor error * else * vendor error */ @Override public void setOperationDetectInteractionError(int error) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(error); boolean _status = mRemote.transact(Stub.TRANSACTION_setOperationDetectInteractionError, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setOperationDetectInteractionError is unimplemented."); } } finally { _data.recycle(); } } /** * setOperationDetectInteractionDuration * * Set detect interaction duration covering the HAL authetication from start to end, including * fingerprint detect and acquired info reporting. In case a sequence of acquired info code are * specified via setOperationDetectInteractionAcquired(), the reporting is evenly distributed * over the duration. * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in value is negative * * @param duration value is in milli-seconds */ @Override public void setOperationDetectInteractionDuration(int durationMs) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(durationMs); boolean _status = mRemote.transact(Stub.TRANSACTION_setOperationDetectInteractionDuration, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setOperationDetectInteractionDuration is unimplemented."); } } finally { _data.recycle(); } } /** * setOperationDetectInteractionAcquired * * Set one of more acquired info codes for the virtual hal to report during detect interaction * Check hardware/interfaces/biometrics/fingerprint/aidl/default/README.md for valid acquired * info codes * * @param acquired[], one or more acquired info codes */ @Override public void setOperationDetectInteractionAcquired(android.hardware.biometrics.fingerprint.AcquiredInfoAndVendorCode[] acquired) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedArray(acquired, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_setOperationDetectInteractionAcquired, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setOperationDetectInteractionAcquired is unimplemented."); } } finally { _data.recycle(); } } /** * setLockout * * Whether to force to lockout on authentcation operation. If true, the virtual hal will report * permanent lockout in processing authentication requrest, regardless of whether * setLockoutEnable(true) is called or not. * * @param lockout, set to true if lockout is desired */ @Override public void setLockout(boolean lockout) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeBoolean(lockout); boolean _status = mRemote.transact(Stub.TRANSACTION_setLockout, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setLockout is unimplemented."); } } finally { _data.recycle(); } } /** * setLockoutEnable * * Whether to enable authentication-fail-based lockout tracking or not. The lock tracking * includes both timed-based (aka temporary) lockout and permanent lockout. * * @param enable, set true to enable the lockout tracking */ @Override public void setLockoutEnable(boolean enable) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeBoolean(enable); boolean _status = mRemote.transact(Stub.TRANSACTION_setLockoutEnable, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setLockoutEnable is unimplemented."); } } finally { _data.recycle(); } } /** * setLockoutTimedThreshold * * Set the number of consecutive authentication failures that triggers the timed-based lock to * occur * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in value is negative * * @param threshold, the number of consecutive failures */ @Override public void setLockoutTimedThreshold(int threshold) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(threshold); boolean _status = mRemote.transact(Stub.TRANSACTION_setLockoutTimedThreshold, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setLockoutTimedThreshold is unimplemented."); } } finally { _data.recycle(); } } /** * setLockoutTimedDuration * * Set the duration to expire timed-based lock during which there is no authentication failure * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in value is negative * * @param duration, in milli-seconds */ @Override public void setLockoutTimedDuration(int durationMs) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(durationMs); boolean _status = mRemote.transact(Stub.TRANSACTION_setLockoutTimedDuration, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setLockoutTimedDuration is unimplemented."); } } finally { _data.recycle(); } } /** * setLockoutPermanentThreshold * * Set the number of consecutive authentication failures that triggers the permanent lock to * occur * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in value is negative * * @param threshold, the number of consecutive failures */ @Override public void setLockoutPermanentThreshold(int threshold) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(threshold); boolean _status = mRemote.transact(Stub.TRANSACTION_setLockoutPermanentThreshold, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setLockoutPermanentThreshold is unimplemented."); } } finally { _data.recycle(); } } /** * resetConfigurations * * Reset all virtual hal configurations to default values */ @Override public void resetConfigurations() throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); boolean _status = mRemote.transact(Stub.TRANSACTION_resetConfigurations, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method resetConfigurations is unimplemented."); } } finally { _data.recycle(); } } /** * The following functions are used to configure Fingerprint Virtual HAL sensor properties * refer to SensorProps.aidl and CommonProps.aidl for details of each property */ @Override public void setType(byte type) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeByte(type); boolean _status = mRemote.transact(Stub.TRANSACTION_setType, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setType is unimplemented."); } } finally { _data.recycle(); } } @Override public void setSensorId(int id) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(id); boolean _status = mRemote.transact(Stub.TRANSACTION_setSensorId, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setSensorId is unimplemented."); } } finally { _data.recycle(); } } @Override public void setSensorStrength(byte strength) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeByte(strength); boolean _status = mRemote.transact(Stub.TRANSACTION_setSensorStrength, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setSensorStrength is unimplemented."); } } finally { _data.recycle(); } } @Override public void setMaxEnrollmentPerUser(int max) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(max); boolean _status = mRemote.transact(Stub.TRANSACTION_setMaxEnrollmentPerUser, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setMaxEnrollmentPerUser is unimplemented."); } } finally { _data.recycle(); } } @Override public void setSensorLocation(android.hardware.biometrics.fingerprint.SensorLocation loc) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(loc, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_setSensorLocation, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setSensorLocation is unimplemented."); } } finally { _data.recycle(); } } @Override public void setNavigationGuesture(boolean v) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeBoolean(v); boolean _status = mRemote.transact(Stub.TRANSACTION_setNavigationGuesture, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setNavigationGuesture is unimplemented."); } } finally { _data.recycle(); } } @Override public void setDetectInteraction(boolean v) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeBoolean(v); boolean _status = mRemote.transact(Stub.TRANSACTION_setDetectInteraction, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setDetectInteraction is unimplemented."); } } finally { _data.recycle(); } } @Override public void setDisplayTouch(boolean v) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeBoolean(v); boolean _status = mRemote.transact(Stub.TRANSACTION_setDisplayTouch, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setDisplayTouch is unimplemented."); } } finally { _data.recycle(); } } @Override public void setControlIllumination(boolean v) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeBoolean(v); boolean _status = mRemote.transact(Stub.TRANSACTION_setControlIllumination, _data, null, android.os.IBinder.FLAG_ONEWAY); if (!_status) { throw new android.os.RemoteException("Method setControlIllumination is unimplemented."); } } finally { _data.recycle(); } } @Override public int getInterfaceVersion() throws android.os.RemoteException { if (mCachedVersion == -1) { android.os.Parcel data = android.os.Parcel.obtain(asBinder()); android.os.Parcel reply = android.os.Parcel.obtain(); try { data.writeInterfaceToken(DESCRIPTOR); boolean _status = mRemote.transact(Stub.TRANSACTION_getInterfaceVersion, data, reply, 0); reply.readException(); mCachedVersion = reply.readInt(); } finally { reply.recycle(); data.recycle(); } } return mCachedVersion; } @Override public synchronized String getInterfaceHash() throws android.os.RemoteException { if ("-1".equals(mCachedHash)) { android.os.Parcel data = android.os.Parcel.obtain(asBinder()); android.os.Parcel reply = android.os.Parcel.obtain(); try { data.writeInterfaceToken(DESCRIPTOR); boolean _status = mRemote.transact(Stub.TRANSACTION_getInterfaceHash, data, reply, 0); reply.readException(); mCachedHash = reply.readString(); } finally { reply.recycle(); data.recycle(); } } return mCachedHash; } } static final int TRANSACTION_setEnrollments = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0); static final int TRANSACTION_setEnrollmentHit = (android.os.IBinder.FIRST_CALL_TRANSACTION + 1); static final int TRANSACTION_setNextEnrollment = (android.os.IBinder.FIRST_CALL_TRANSACTION + 2); static final int TRANSACTION_setAuthenticatorId = (android.os.IBinder.FIRST_CALL_TRANSACTION + 3); static final int TRANSACTION_setChallenge = (android.os.IBinder.FIRST_CALL_TRANSACTION + 4); static final int TRANSACTION_setOperationAuthenticateFails = (android.os.IBinder.FIRST_CALL_TRANSACTION + 5); static final int TRANSACTION_setOperationAuthenticateLatency = (android.os.IBinder.FIRST_CALL_TRANSACTION + 6); static final int TRANSACTION_setOperationAuthenticateDuration = (android.os.IBinder.FIRST_CALL_TRANSACTION + 7); static final int TRANSACTION_setOperationAuthenticateError = (android.os.IBinder.FIRST_CALL_TRANSACTION + 8); static final int TRANSACTION_setOperationAuthenticateAcquired = (android.os.IBinder.FIRST_CALL_TRANSACTION + 9); static final int TRANSACTION_setOperationEnrollError = (android.os.IBinder.FIRST_CALL_TRANSACTION + 10); static final int TRANSACTION_setOperationEnrollLatency = (android.os.IBinder.FIRST_CALL_TRANSACTION + 11); static final int TRANSACTION_setOperationDetectInteractionLatency = (android.os.IBinder.FIRST_CALL_TRANSACTION + 12); static final int TRANSACTION_setOperationDetectInteractionError = (android.os.IBinder.FIRST_CALL_TRANSACTION + 13); static final int TRANSACTION_setOperationDetectInteractionDuration = (android.os.IBinder.FIRST_CALL_TRANSACTION + 14); static final int TRANSACTION_setOperationDetectInteractionAcquired = (android.os.IBinder.FIRST_CALL_TRANSACTION + 15); static final int TRANSACTION_setLockout = (android.os.IBinder.FIRST_CALL_TRANSACTION + 16); static final int TRANSACTION_setLockoutEnable = (android.os.IBinder.FIRST_CALL_TRANSACTION + 17); static final int TRANSACTION_setLockoutTimedThreshold = (android.os.IBinder.FIRST_CALL_TRANSACTION + 18); static final int TRANSACTION_setLockoutTimedDuration = (android.os.IBinder.FIRST_CALL_TRANSACTION + 19); static final int TRANSACTION_setLockoutPermanentThreshold = (android.os.IBinder.FIRST_CALL_TRANSACTION + 20); static final int TRANSACTION_resetConfigurations = (android.os.IBinder.FIRST_CALL_TRANSACTION + 21); static final int TRANSACTION_setType = (android.os.IBinder.FIRST_CALL_TRANSACTION + 22); static final int TRANSACTION_setSensorId = (android.os.IBinder.FIRST_CALL_TRANSACTION + 23); static final int TRANSACTION_setSensorStrength = (android.os.IBinder.FIRST_CALL_TRANSACTION + 24); static final int TRANSACTION_setMaxEnrollmentPerUser = (android.os.IBinder.FIRST_CALL_TRANSACTION + 25); static final int TRANSACTION_setSensorLocation = (android.os.IBinder.FIRST_CALL_TRANSACTION + 26); static final int TRANSACTION_setNavigationGuesture = (android.os.IBinder.FIRST_CALL_TRANSACTION + 27); static final int TRANSACTION_setDetectInteraction = (android.os.IBinder.FIRST_CALL_TRANSACTION + 28); static final int TRANSACTION_setDisplayTouch = (android.os.IBinder.FIRST_CALL_TRANSACTION + 29); static final int TRANSACTION_setControlIllumination = (android.os.IBinder.FIRST_CALL_TRANSACTION + 30); static final int TRANSACTION_getInterfaceVersion = (android.os.IBinder.FIRST_CALL_TRANSACTION + 16777214); static final int TRANSACTION_getInterfaceHash = (android.os.IBinder.FIRST_CALL_TRANSACTION + 16777213); /** @hide */ public int getMaxTransactionId() { return 16777214; } } /** @hide */ public static final java.lang.String DESCRIPTOR = "android$hardware$biometrics$fingerprint$IVirtualHal".replace('$', '.'); /** * The operation failed due to invalid input parameters, the error messages should * gives more details */ public static final int STATUS_INVALID_PARAMETER = 1; /** Set Fingerprint Virtual HAL behavior parameters */ /** * setEnrollments * * Set the ids of the fingerprints that were currently enrolled in the Virtual HAL, * * @param ids ids can contain 1 or more ids, each must be larger than 0 */ public void setEnrollments(int[] id) throws android.os.RemoteException; /** * setEnrollmentHit * * Set current fingerprint enrollment ids in Fingerprint Virtual HAL, * * @param ids ids can contain 1 or more ids, each must be larger than 0 */ public void setEnrollmentHit(int hit_id) throws android.os.RemoteException; /** * setNextEnrollment * * Set the next enrollment behavior * * @param next_enrollment specifies enrollment id, progress stages and final result */ public void setNextEnrollment(android.hardware.biometrics.fingerprint.NextEnrollment next_enrollment) throws android.os.RemoteException; /** * setAuthenticatorId * * Set authenticator id in virtual HAL, the id is returned in ISession#getAuthenticatorId() call * * @param id authenticator id value, only applied to the sensor with SensorStrength::STRONG. */ public void setAuthenticatorId(long id) throws android.os.RemoteException; /** * setChallenge * * Set the challenge generated by the virtual HAL, which is returned in * ISessionCallback#onChallengeGenerated() * * @param challenge */ public void setChallenge(long challenge) throws android.os.RemoteException; /** * setOperationAuthenticateFails * * Set whether to force authentication to fail. If true, the virtual hal will report failure on * authentication attempt until it is set to false * * @param fail if true, then the next authentication will fail */ public void setOperationAuthenticateFails(boolean fail) throws android.os.RemoteException; /** * setOperationAuthenticateLatency * * Set authentication latency in the virtual hal in a fixed value (single element) or random * values (two elements representing the bound values) * The latency simulates the delay from the time framework requesting HAL to authetication to * the time when HAL is ready to perform authentication operations. * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in array falls in any of * the following conditions * 1. the array contains no element * 2. the array contains more than two elements * 3. the array contains any negative value * The accompanying error message gives more detail * * @param latencyMs[] value(s) are in milli-seconds */ public void setOperationAuthenticateLatency(int[] latencyMs) throws android.os.RemoteException; /** * setOperationAuthenticateDuration * * Set authentication duration covering the HAL authetication from start to end, including * fingerprint capturing, and matching, acquired info reporting. In case a sequence of acquired * info code are specified via setOperationAuthenticateAcquired(), the reporting is evenly * distributed over the duration. * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in value is negative * * @param duration value is in milli-seconds */ public void setOperationAuthenticateDuration(int durationMs) throws android.os.RemoteException; /** * setOperationAuthenticateError * * Force authentication to error out for non-zero error * Check hardware/interfaces/biometrics/fingerprint/aidl/default/README.md for valid error codes * * @param error if error < 1000 * non-vendor error * else * vendor error */ public void setOperationAuthenticateError(int error) throws android.os.RemoteException; /** * setOperationAuthenticateAcquired * * Set one of more acquired info codes for the virtual hal to report during authentication * Check hardware/interfaces/biometrics/fingerprint/aidl/default/README.md for valid acquired * info codes * * @param acquired[], one or more acquired info codes */ public void setOperationAuthenticateAcquired(android.hardware.biometrics.fingerprint.AcquiredInfoAndVendorCode[] acquired) throws android.os.RemoteException; /** * setOperationEnrollError * * Force enrollment operation to error out for non-zero error * Check hardware/interfaces/biometrics/fingerprint/aidl/default/README.md for valid error codes * * @param error if error < 1000 * non-vendor error * else * vendor error */ public void setOperationEnrollError(int error) throws android.os.RemoteException; /** * setOperationEnrollLatency * * Set enrollment latency in the virtual hal in a fixed value (single element) or random * values (two elements representing the bound values) * The latency simulates the delay from the time framework requesting HAL to enroll to the * time when HAL is ready to perform enrollment operations. * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in array falls in any of * the following conditions * 1. the array contains no element * 2. the array contains more than two elements * 3. the array contains any negative value * The accompanying error message gives more detail * * @param latencyMs[] value(s) are in milli-seconds */ public void setOperationEnrollLatency(int[] latencyMs) throws android.os.RemoteException; /** * setOperationDetectInteractionLatency * * Set detect interaction latency in the virtual hal in a fixed value (single element) or random * values (two elements representing the bound values) * The latency simulates the delay from the time framework requesting HAL to detect interaction * to the time when HAL is ready to perform detect interaction operations. * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in array falls in any of * the following conditions * 1. the array contains no element * 2. the array contains more than two elements * 3. the array contains any negative value * The accompanying error message gives more detail * * @param latencyMs[] value(s) are in milli-seconds */ public void setOperationDetectInteractionLatency(int[] latencyMs) throws android.os.RemoteException; /** * setOperationDetectInteractionError * * Force detect interaction operation to error out for non-zero error * Check hardware/interfaces/biometrics/fingerprint/aidl/default/README.md for valid error codes * * @param error if error < 1000 * non-vendor error * else * vendor error */ public void setOperationDetectInteractionError(int error) throws android.os.RemoteException; /** * setOperationDetectInteractionDuration * * Set detect interaction duration covering the HAL authetication from start to end, including * fingerprint detect and acquired info reporting. In case a sequence of acquired info code are * specified via setOperationDetectInteractionAcquired(), the reporting is evenly distributed * over the duration. * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in value is negative * * @param duration value is in milli-seconds */ public void setOperationDetectInteractionDuration(int durationMs) throws android.os.RemoteException; /** * setOperationDetectInteractionAcquired * * Set one of more acquired info codes for the virtual hal to report during detect interaction * Check hardware/interfaces/biometrics/fingerprint/aidl/default/README.md for valid acquired * info codes * * @param acquired[], one or more acquired info codes */ public void setOperationDetectInteractionAcquired(android.hardware.biometrics.fingerprint.AcquiredInfoAndVendorCode[] acquired) throws android.os.RemoteException; /** * setLockout * * Whether to force to lockout on authentcation operation. If true, the virtual hal will report * permanent lockout in processing authentication requrest, regardless of whether * setLockoutEnable(true) is called or not. * * @param lockout, set to true if lockout is desired */ public void setLockout(boolean lockout) throws android.os.RemoteException; /** * setLockoutEnable * * Whether to enable authentication-fail-based lockout tracking or not. The lock tracking * includes both timed-based (aka temporary) lockout and permanent lockout. * * @param enable, set true to enable the lockout tracking */ public void setLockoutEnable(boolean enable) throws android.os.RemoteException; /** * setLockoutTimedThreshold * * Set the number of consecutive authentication failures that triggers the timed-based lock to * occur * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in value is negative * * @param threshold, the number of consecutive failures */ public void setLockoutTimedThreshold(int threshold) throws android.os.RemoteException; /** * setLockoutTimedDuration * * Set the duration to expire timed-based lock during which there is no authentication failure * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in value is negative * * @param duration, in milli-seconds */ public void setLockoutTimedDuration(int durationMs) throws android.os.RemoteException; /** * setLockoutPermanentThreshold * * Set the number of consecutive authentication failures that triggers the permanent lock to * occur * * This method fails with STATUS_INVALID_PARAMETERS if the passed-in value is negative * * @param threshold, the number of consecutive failures */ public void setLockoutPermanentThreshold(int threshold) throws android.os.RemoteException; /** * resetConfigurations * * Reset all virtual hal configurations to default values */ public void resetConfigurations() throws android.os.RemoteException; /** * The following functions are used to configure Fingerprint Virtual HAL sensor properties * refer to SensorProps.aidl and CommonProps.aidl for details of each property */ public void setType(byte type) throws android.os.RemoteException; public void setSensorId(int id) throws android.os.RemoteException; public void setSensorStrength(byte strength) throws android.os.RemoteException; public void setMaxEnrollmentPerUser(int max) throws android.os.RemoteException; public void setSensorLocation(android.hardware.biometrics.fingerprint.SensorLocation loc) throws android.os.RemoteException; public void setNavigationGuesture(boolean v) throws android.os.RemoteException; public void setDetectInteraction(boolean v) throws android.os.RemoteException; public void setDisplayTouch(boolean v) throws android.os.RemoteException; public void setControlIllumination(boolean v) throws android.os.RemoteException; public int getInterfaceVersion() throws android.os.RemoteException; public String getInterfaceHash() throws android.os.RemoteException; }