summaryrefslogtreecommitdiff
path: root/services/java
diff options
context:
space:
mode:
author Kevin Chyn <kchyn@google.com> 2018-08-27 12:39:17 -0700
committer Kevin Chyn <kchyn@google.com> 2018-08-30 14:49:32 -0700
commita24e9fd9acf0c7abbdbe40dbc2c2015d28acad49 (patch)
treea5407268d03f9a7198161fe786670cffb6106c03 /services/java
parent836f2cfb9eaee16458876f8ddaa2d3f778f02be1 (diff)
Add BiometricPromptService
The change introduces the following: - BiometricPrompt communicatates with BiometricPromptService (new) system service. The service does the decision making for which biometric modality to use. - As a result, a lot of logic is moved from <Biometric>Manager to BiometricPrompt. FingerprintManager now does not care about BiometricPrompt logic anymore (reverts several P changes). Face, and all future <Biometric>Service interfaces must be protected by the signature-only MANAGE_BIOMETRIC permission. Settings, SystemUI, and BiometricPromptService are their only clients. Bug: 72825012 Test: BiometricPromptDemo works Test: Keyguard works Test: Settings works Change-Id: I2b7d6eff81bc07950202c50e592d733032523bf0
Diffstat (limited to 'services/java')
-rw-r--r--services/java/com/android/server/SystemServer.java17
1 files changed, 15 insertions, 2 deletions
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index 2f6fca44a61e..fd982d6a3240 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -67,6 +67,7 @@ import com.android.server.accessibility.AccessibilityManagerService;
import com.android.server.am.ActivityManagerService;
import com.android.server.am.ActivityTaskManagerService;
import com.android.server.audio.AudioService;
+import com.android.server.biometrics.BiometricPromptService;
import com.android.server.broadcastradio.BroadcastRadioService;
import com.android.server.camera.CameraServiceProxy;
import com.android.server.clipboard.ClipboardService;
@@ -1552,18 +1553,30 @@ public final class SystemServer {
}
traceEnd();
- if (mPackageManager.hasSystemFeature(PackageManager.FEATURE_FACE)) {
+ final boolean hasFeatureFace
+ = mPackageManager.hasSystemFeature(PackageManager.FEATURE_FACE);
+ final boolean hasFeatureFingerprint
+ = mPackageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT);
+
+ if (hasFeatureFace) {
traceBeginAndSlog("StartFaceSensor");
mSystemServiceManager.startService(FaceService.class);
traceEnd();
}
- if (mPackageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) {
+ if (hasFeatureFingerprint) {
traceBeginAndSlog("StartFingerprintSensor");
mSystemServiceManager.startService(FingerprintService.class);
traceEnd();
}
+ if (hasFeatureFace || hasFeatureFingerprint) {
+ // Start this service after all biometric services.
+ traceBeginAndSlog("StartBiometricPromptService");
+ mSystemServiceManager.startService(BiometricPromptService.class);
+ traceEnd();
+ }
+
traceBeginAndSlog("StartBackgroundDexOptService");
try {
BackgroundDexOptService.schedule(context);