diff options
Diffstat (limited to 'services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java')
-rw-r--r-- | services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java index 3a93d82a68ee..b44f4dc68274 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java @@ -331,12 +331,12 @@ public class FingerprintService extends SystemService { provider.second.getSensorProperties(sensorId); if (!isKeyguard && !Utils.isSettings(getContext(), opPackageName) && sensorProps != null && sensorProps.isAnyUdfpsType()) { + identity = Binder.clearCallingIdentity(); try { return authenticateWithPrompt(operationId, sensorProps, userId, receiver, - opPackageName, ignoreEnrollmentState); - } catch (PackageManager.NameNotFoundException e) { - Slog.e(TAG, "Invalid package", e); - return -1; + ignoreEnrollmentState); + } finally { + Binder.restoreCallingIdentity(identity); } } return provider.second.scheduleAuthenticate(provider.first, token, operationId, userId, @@ -349,15 +349,12 @@ public class FingerprintService extends SystemService { @NonNull final FingerprintSensorPropertiesInternal props, final int userId, final IFingerprintServiceReceiver receiver, - final String opPackageName, - boolean ignoreEnrollmentState) throws PackageManager.NameNotFoundException { + boolean ignoreEnrollmentState) { final Context context = getUiContext(); - final Context promptContext = context.createPackageContextAsUser( - opPackageName, 0 /* flags */, UserHandle.getUserHandleForUid(userId)); final Executor executor = context.getMainExecutor(); - final BiometricPrompt biometricPrompt = new BiometricPrompt.Builder(promptContext) + final BiometricPrompt biometricPrompt = new BiometricPrompt.Builder(context) .setTitle(context.getString(R.string.biometric_dialog_default_title)) .setSubtitle(context.getString(R.string.fingerprint_dialog_default_subtitle)) .setNegativeButton( @@ -371,7 +368,8 @@ public class FingerprintService extends SystemService { Slog.e(TAG, "Remote exception in negative button onClick()", e); } }) - .setIsForLegacyFingerprintManager(props.sensorId) + .setAllowedSensorIds(new ArrayList<>( + Collections.singletonList(props.sensorId))) .setIgnoreEnrollmentState(ignoreEnrollmentState) .build(); @@ -425,8 +423,8 @@ public class FingerprintService extends SystemService { } }; - return biometricPrompt.authenticateForOperation( - new CancellationSignal(), executor, promptCallback, operationId); + return biometricPrompt.authenticateUserForOperation( + new CancellationSignal(), executor, promptCallback, userId, operationId); } @Override |