summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/biometrics/BiometricServiceBase.java2
-rw-r--r--services/core/java/com/android/server/biometrics/face/FaceService.java8
-rw-r--r--services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java8
3 files changed, 18 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
index ecc3d2da8226..174ecfa12ee6 100644
--- a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
+++ b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
@@ -116,6 +116,7 @@ public abstract class BiometricServiceBase extends SystemService
protected HashMap<Integer, PerformanceStats> mPerformanceMap = new HashMap<>();
// Transactions that make use of CryptoObjects are tracked by mCryptoPerformaceMap.
protected HashMap<Integer, PerformanceStats> mCryptoPerformanceMap = new HashMap<>();
+ protected int mHALDeathCount;
protected class PerformanceStats {
public int accept; // number of accepted biometrics
@@ -596,6 +597,7 @@ public abstract class BiometricServiceBase extends SystemService
public void serviceDied(long cookie) {
Slog.e(getTag(), "HAL died");
mMetricsLogger.count(getMetrics().tagHalDied(), 1);
+ mHALDeathCount++;
handleError(getHalDeviceId(), BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE,
0 /*vendorCode */);
}
diff --git a/services/core/java/com/android/server/biometrics/face/FaceService.java b/services/core/java/com/android/server/biometrics/face/FaceService.java
index 5a9c1aca081a..a2aacdde4d9f 100644
--- a/services/core/java/com/android/server/biometrics/face/FaceService.java
+++ b/services/core/java/com/android/server/biometrics/face/FaceService.java
@@ -675,6 +675,12 @@ public class FaceService extends BiometricServiceBase {
}
@Override
+ public void serviceDied(long cookie) {
+ super.serviceDied(cookie);
+ mDaemon = null;
+ }
+
+ @Override
protected void updateActiveGroup(int userId, String clientPackage) {
IBiometricsFace daemon = getFaceDaemon();
@@ -864,6 +870,8 @@ public class FaceService extends BiometricServiceBase {
Slog.e(TAG, "dump formatting failure", e);
}
pw.println(dump);
+ pw.println("HAL Deaths: " + mHALDeathCount);
+ mHALDeathCount = 0;
}
private void dumpProto(FileDescriptor fd) {
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
index 1613dc97225b..3db6a74a1c6c 100644
--- a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
@@ -777,6 +777,12 @@ public class FingerprintService extends BiometricServiceBase {
}
@Override
+ public void serviceDied(long cookie) {
+ super.serviceDied(cookie);
+ mDaemon = null;
+ }
+
+ @Override
protected void updateActiveGroup(int userId, String clientPackage) {
IBiometricsFingerprint daemon = getFingerprintDaemon();
@@ -1074,6 +1080,8 @@ public class FingerprintService extends BiometricServiceBase {
Slog.e(TAG, "dump formatting failure", e);
}
pw.println(dump);
+ pw.println("HAL Deaths: " + mHALDeathCount);
+ mHALDeathCount = 0;
}
private void dumpProto(FileDescriptor fd) {