From 1c0d722a91c903ded711553add6fec604b5f0877 Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Wed, 2 Dec 2020 10:40:53 -0800 Subject: [PATCH] Add sensorId to biometric sensor proto dumpsys Test: atest CtsBiometricsTestCases Change-Id: I418fcfb9948be9693889a69cdbd0df4efe919793 --- .../hardware/biometrics/IBiometricAuthenticator.aidl | 2 +- core/java/android/hardware/face/IFaceService.aidl | 4 ++-- .../hardware/fingerprint/IFingerprintService.aidl | 4 ++-- .../biometrics/sensors/face/FaceAuthenticator.java | 2 +- .../server/biometrics/sensors/face/FaceService.java | 9 ++++----- .../sensors/fingerprint/FingerprintAuthenticator.java | 2 +- .../sensors/fingerprint/FingerprintService.java | 11 +++++------ 7 files changed, 16 insertions(+), 18 deletions(-) diff --git a/core/java/android/hardware/biometrics/IBiometricAuthenticator.aidl b/core/java/android/hardware/biometrics/IBiometricAuthenticator.aidl index cb43943f48649..cc12125c13f0e 100644 --- a/core/java/android/hardware/biometrics/IBiometricAuthenticator.aidl +++ b/core/java/android/hardware/biometrics/IBiometricAuthenticator.aidl @@ -36,7 +36,7 @@ interface IBiometricAuthenticator { // Retrieve static sensor properties SensorPropertiesInternal getSensorProperties(String opPackageName); - // Requests a proto dump of the service. See biometrics.proto + // Requests a proto dump of the sensor. See biometrics.proto byte[] dumpSensorServiceStateProto(); // This method prepares the service to start authenticating, but doesn't start authentication. diff --git a/core/java/android/hardware/face/IFaceService.aidl b/core/java/android/hardware/face/IFaceService.aidl index c5c51e4661c5d..468157a199718 100644 --- a/core/java/android/hardware/face/IFaceService.aidl +++ b/core/java/android/hardware/face/IFaceService.aidl @@ -33,8 +33,8 @@ interface IFaceService { // Creates a test session with the specified sensorId ITestSession createTestSession(int sensorId, String opPackageName); - // Requests a proto dump of the service to the specified fd - byte[] dumpSensorServiceStateProto(); + // Requests a proto dump of the specified sensor + byte[] dumpSensorServiceStateProto(int sensorId); // Retrieve static sensor properties for all face sensors List getSensorPropertiesInternal(String opPackageName); diff --git a/core/java/android/hardware/fingerprint/IFingerprintService.aidl b/core/java/android/hardware/fingerprint/IFingerprintService.aidl index a4ce29ba4ea0b..64abbea12de00 100644 --- a/core/java/android/hardware/fingerprint/IFingerprintService.aidl +++ b/core/java/android/hardware/fingerprint/IFingerprintService.aidl @@ -34,8 +34,8 @@ interface IFingerprintService { // Creates a test session with the specified sensorId ITestSession createTestSession(int sensorId, String opPackageName); - // Requests a proto dump of the service to the specified fd - byte[] dumpSensorServiceStateProto(); + // Requests a proto dump of the specified sensor + byte[] dumpSensorServiceStateProto(int sensorId); // Retrieve static sensor properties for all fingerprint sensors List getSensorPropertiesInternal(String opPackageName); diff --git a/services/core/java/com/android/server/biometrics/sensors/face/FaceAuthenticator.java b/services/core/java/com/android/server/biometrics/sensors/face/FaceAuthenticator.java index 62c9295adda55..f07bf1e236b87 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/FaceAuthenticator.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/FaceAuthenticator.java @@ -53,7 +53,7 @@ public final class FaceAuthenticator extends IBiometricAuthenticator.Stub { @Override public byte[] dumpSensorServiceStateProto() throws RemoteException { - return mFaceService.dumpSensorServiceStateProto(); + return mFaceService.dumpSensorServiceStateProto(mSensorId); } @Override diff --git a/services/core/java/com/android/server/biometrics/sensors/face/FaceService.java b/services/core/java/com/android/server/biometrics/sensors/face/FaceService.java index 47897a1a05881..7dc2cba0b9748 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/FaceService.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/FaceService.java @@ -157,14 +157,13 @@ public class FaceService extends SystemService implements BiometricServiceCallba } @Override - public byte[] dumpSensorServiceStateProto() { + public byte[] dumpSensorServiceStateProto(int sensorId) { Utils.checkPermission(getContext(), USE_BIOMETRIC_INTERNAL); final ProtoOutputStream proto = new ProtoOutputStream(); - for (ServiceProvider provider : mServiceProviders) { - for (FaceSensorPropertiesInternal props : provider.getSensorProperties()) { - provider.dumpProtoState(props.sensorId, proto); - } + final ServiceProvider provider = getProviderForSensor(sensorId); + if (provider != null) { + provider.dumpProtoState(sensorId, proto); } proto.flush(); return proto.getBytes(); diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintAuthenticator.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintAuthenticator.java index 1616457e09a98..d4cdc8b188986 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintAuthenticator.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintAuthenticator.java @@ -54,7 +54,7 @@ public final class FingerprintAuthenticator extends IBiometricAuthenticator.Stub @Override public byte[] dumpSensorServiceStateProto() throws RemoteException { - return mFingerprintService.dumpSensorServiceStateProto(); + return mFingerprintService.dumpSensorServiceStateProto(mSensorId); } @Override diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java index 6e91c9a61d420..6c975fc128900 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java @@ -115,15 +115,13 @@ public class FingerprintService extends SystemService implements BiometricServic } @Override - public byte[] dumpSensorServiceStateProto() { + public byte[] dumpSensorServiceStateProto(int sensorId) { Utils.checkPermission(getContext(), USE_BIOMETRIC_INTERNAL); final ProtoOutputStream proto = new ProtoOutputStream(); - for (ServiceProvider provider : mServiceProviders) { - for (FingerprintSensorPropertiesInternal props - : provider.getSensorProperties()) { - provider.dumpProtoState(props.sensorId, proto); - } + final ServiceProvider provider = getProviderForSensor(sensorId); + if (provider != null) { + provider.dumpProtoState(sensorId, proto); } proto.flush(); return proto.getBytes(); @@ -437,6 +435,7 @@ public class FingerprintService extends SystemService implements BiometricServic pw.println("Dumping for sensorId: " + props.sensorId + ", provider: " + provider.getClass().getSimpleName()); provider.dumpInternal(props.sensorId, pw); + pw.println(); } } }