diff options
| author | Kevin Chyn <kchyn@google.com> | 2020-11-10 17:34:27 -0800 |
|---|---|---|
| committer | Kevin Chyn <kchyn@google.com> | 2020-11-11 16:37:57 -0800 |
| commit | 13161747db9f9d698ed2de1041889d80771c8bef (patch) | |
| tree | 404f53fb3153aa50553bb67f8ec93557c77ed24e /services/java/com/android | |
| parent | 38c45bdfc2615aba1d57ac40adef02216d2aeb92 (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')
| -rw-r--r-- | services/java/com/android/server/SystemServer.java | 19 |
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"); |
