From 067c29d41097dcaa0b13b6aa5bdae0dd673197d4 Mon Sep 17 00:00:00 2001 From: joshmccloskey Date: Mon, 16 Nov 2020 19:52:29 -0800 Subject: Added dumpHAL to ServiceProvider Test: Verified calls from framework made it to the HAL. Bug: 168664617 Change-Id: Ib777498b8de78ca7da1c7c795e3811fdc6d3ca52 --- .../com/android/server/biometrics/sensors/face/FaceService.java | 8 ++++++++ .../android/server/biometrics/sensors/face/ServiceProvider.java | 2 ++ .../android/server/biometrics/sensors/face/aidl/FaceProvider.java | 3 +++ .../com/android/server/biometrics/sensors/face/hidl/Face10.java | 5 ++++- 4 files changed, 17 insertions(+), 1 deletion(-) 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 4906aacd06c0..47897a1a0588 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 @@ -64,6 +64,7 @@ import com.android.server.biometrics.sensors.face.hidl.Face10; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -425,6 +426,13 @@ public class FaceService extends SystemService implements BiometricServiceCallba provider.dumpProtoMetrics(props.sensorId, fd); } } + } else if (args.length > 1 && "--hal".equals(args[0])) { + for (ServiceProvider provider : mServiceProviders) { + for (FaceSensorPropertiesInternal props : provider.getSensorProperties()) { + provider.dumpHal(props.sensorId, fd, + Arrays.copyOfRange(args, 1, args.length, args.getClass())); + } + } } else { for (ServiceProvider provider : mServiceProviders) { for (FaceSensorPropertiesInternal props : provider.getSensorProperties()) { diff --git a/services/core/java/com/android/server/biometrics/sensors/face/ServiceProvider.java b/services/core/java/com/android/server/biometrics/sensors/face/ServiceProvider.java index d1578fa7bbf3..be4e2482acc9 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/ServiceProvider.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/ServiceProvider.java @@ -118,4 +118,6 @@ public interface ServiceProvider { @NonNull ITestSession createTestSession(int sensorId, @NonNull String opPackageName); + + void dumpHal(int sensorId, @NonNull FileDescriptor fd, @NonNull String[] args); } diff --git a/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceProvider.java b/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceProvider.java index 01c16fd1f4a6..3904b2d61202 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceProvider.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceProvider.java @@ -579,6 +579,9 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider { return null; // TODO } + @Override + public void dumpHal(int sensorId, @NonNull FileDescriptor fd, @NonNull String[] args) {} + @Override public void binderDied() { Slog.e(getTag(), "HAL died"); diff --git a/services/core/java/com/android/server/biometrics/sensors/face/hidl/Face10.java b/services/core/java/com/android/server/biometrics/sensors/face/hidl/Face10.java index 27ca33de415d..e159d0681cd5 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/hidl/Face10.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/hidl/Face10.java @@ -874,7 +874,10 @@ public class Face10 implements IHwBinder.DeathRecipient, ServiceProvider { }); } - public void dumpHal(@NonNull FileDescriptor fd, @NonNull String[] args) { + /** + * Sends a debug message to the HAL with the provided FileDescriptor and arguments. + */ + public void dumpHal(int sensorId, @NonNull FileDescriptor fd, @NonNull String[] args) { // WARNING: CDD restricts image data from leaving TEE unencrypted on // production devices: // [C-1-10] MUST not allow unencrypted access to identifiable biometric -- cgit v1.2.3-59-g8ed1b