diff options
4 files changed, 17 insertions, 1 deletions
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 @@ -580,6 +580,9 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider { } @Override + public void dumpHal(int sensorId, @NonNull FileDescriptor fd, @NonNull String[] args) {} + + @Override public void binderDied() { Slog.e(getTag(), "HAL died"); mHandler.post(() -> { 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 |