diff options
3 files changed, 14 insertions, 0 deletions
diff --git a/core/proto/android/server/biometrics.proto b/core/proto/android/server/biometrics.proto index c918dbbede26..ac9e3e001d50 100644 --- a/core/proto/android/server/biometrics.proto +++ b/core/proto/android/server/biometrics.proto @@ -113,11 +113,16 @@ message SensorStateProto { IRIS = 3; } + enum ModalityFlag { + FINGERPRINT_UDFPS = 0; + } + option (.android.msg_privacy).dest = DEST_AUTOMATIC; // Unique sensorId optional int32 sensor_id = 1; + // The type of the sensor. optional Modality modality = 2; // The current strength (see {@link BiometricManager.Authenticators}) of this sensor, taking any @@ -137,6 +142,9 @@ message SensorStateProto { // True if a HAT is required (field above) AND a challenge needs to be generated by the // biometric TEE (or equivalent), and wrapped within the HAT. optional bool reset_lockout_requires_challenge = 7; + + // Detailed information about the sensor's modality, if available. + repeated ModalityFlag modality_flags = 8; } // State of a specific user for a specific sensor. diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/Sensor.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/Sensor.java index 9884a78b2a5d..10137b5a28c9 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/Sensor.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/Sensor.java @@ -546,6 +546,9 @@ class Sensor { proto.write(SensorStateProto.SENSOR_ID, mSensorProperties.sensorId); proto.write(SensorStateProto.MODALITY, SensorStateProto.FINGERPRINT); + if (mSensorProperties.isAnyUdfpsType()) { + proto.write(SensorStateProto.MODALITY_FLAGS, SensorStateProto.FINGERPRINT_UDFPS); + } proto.write(SensorStateProto.CURRENT_STRENGTH, Utils.getCurrentStrength(mSensorProperties.sensorId)); proto.write(SensorStateProto.SCHEDULER, mScheduler.dumpProtoState(clearSchedulerBuffer)); diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java index 274652096624..33532643b719 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java @@ -760,6 +760,9 @@ public class Fingerprint21 implements IHwBinder.DeathRecipient, ServiceProvider proto.write(SensorStateProto.SENSOR_ID, mSensorProperties.sensorId); proto.write(SensorStateProto.MODALITY, SensorStateProto.FINGERPRINT); + if (mSensorProperties.isAnyUdfpsType()) { + proto.write(SensorStateProto.MODALITY_FLAGS, SensorStateProto.FINGERPRINT_UDFPS); + } proto.write(SensorStateProto.CURRENT_STRENGTH, Utils.getCurrentStrength(mSensorProperties.sensorId)); proto.write(SensorStateProto.SCHEDULER, mScheduler.dumpProtoState(clearSchedulerBuffer)); |