summaryrefslogtreecommitdiff
path: root/services/java/com/android/server
diff options
context:
space:
mode:
authorKevin Chyn <kchyn@google.com>2020-11-10 17:34:27 -0800
committerKevin Chyn <kchyn@google.com>2020-11-11 16:37:57 -0800
commit13161747db9f9d698ed2de1041889d80771c8bef (patch)
tree404f53fb3153aa50553bb67f8ec93557c77ed24e /services/java/com/android/server
parent38c45bdfc2615aba1d57ac40adef02216d2aeb92 (diff)
Initialize AIDL biometric HALs after BiometricService is started
Fixes: 172291793 Test: On device with default AIDL HAL, notice it's registered with BiometricService Test: atest com.android.server.biometrics Change-Id: Ia7283cf9473ef1d33237f2b4788d81b79ae26824
Diffstat (limited to 'services/java/com/android/server')
-rw-r--r--services/java/com/android/server/SystemServer.java19
1 files changed, 16 insertions, 3 deletions
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index dfa726f1bfc8..a1c9e1d3316e 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -101,6 +101,7 @@ import com.android.server.attention.AttentionManagerService;
import com.android.server.audio.AudioService;
import com.android.server.biometrics.AuthService;
import com.android.server.biometrics.BiometricService;
+import com.android.server.biometrics.sensors.BiometricServiceCallback;
import com.android.server.biometrics.sensors.face.FaceService;
import com.android.server.biometrics.sensors.fingerprint.FingerprintService;
import com.android.server.biometrics.sensors.iris.IrisService;
@@ -195,8 +196,10 @@ import java.io.File;
import java.io.FileDescriptor;
import java.io.IOException;
import java.io.PrintWriter;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
+import java.util.List;
import java.util.Locale;
import java.util.Timer;
import java.util.concurrent.CountDownLatch;
@@ -2089,9 +2092,12 @@ public final class SystemServer implements Dumpable {
final boolean hasFeatureFingerprint
= mPackageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT);
+ final List<BiometricServiceCallback> biometricServiceCallback = new ArrayList<>();
if (hasFeatureFace) {
t.traceBegin("StartFaceSensor");
- mSystemServiceManager.startService(FaceService.class);
+ final FaceService faceService =
+ mSystemServiceManager.startService(FaceService.class);
+ biometricServiceCallback.add(faceService);
t.traceEnd();
}
@@ -2103,13 +2109,20 @@ public final class SystemServer implements Dumpable {
if (hasFeatureFingerprint) {
t.traceBegin("StartFingerprintSensor");
- mSystemServiceManager.startService(FingerprintService.class);
+ final FingerprintService fingerprintService =
+ mSystemServiceManager.startService(FingerprintService.class);
+ biometricServiceCallback.add(fingerprintService);
t.traceEnd();
}
- // Start this service after all biometric services.
+ // Start this service after all biometric sensor services are started.
t.traceBegin("StartBiometricService");
mSystemServiceManager.startService(BiometricService.class);
+ for (BiometricServiceCallback service : biometricServiceCallback) {
+ Slog.d(TAG, "Notifying onBiometricServiceReady for: "
+ + service.getClass().getSimpleName());
+ service.onBiometricServiceReady();
+ }
t.traceEnd();
t.traceBegin("StartAuthService");