From f3650a6dee1ebe5f681699e4170c244e7bd7f9fc Mon Sep 17 00:00:00 2001 From: Joshua McCloskey Date: Tue, 31 May 2022 23:49:50 +0000 Subject: [PATCH] fpService#authWithPrompt uses correct user handle. CTS > BYOD Managed Provisioning > Authentication Bound Keys Verified Fingerprint-bound key test works as expected. Test: Manually verified CTS Fixes: 231932206 Change-Id: I473c9c28cd0fbb01f4dd48447ddea8aa32834131 --- .../biometrics/sensors/fingerprint/FingerprintService.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 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 a26535fbdce39..0c5b19b0fb2e8 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 @@ -345,8 +345,8 @@ public class FingerprintService extends SystemService { if (!isKeyguard && !Utils.isSettings(getContext(), opPackageName) && sensorProps != null && sensorProps.isAnyUdfpsType()) { try { - return authenticateWithPrompt(operationId, sensorProps, userId, receiver, - opPackageName, ignoreEnrollmentState); + return authenticateWithPrompt(operationId, sensorProps, callingUid, + callingUserId, receiver, opPackageName, ignoreEnrollmentState); } catch (PackageManager.NameNotFoundException e) { Slog.e(TAG, "Invalid package", e); return -1; @@ -360,6 +360,7 @@ public class FingerprintService extends SystemService { private long authenticateWithPrompt( final long operationId, @NonNull final FingerprintSensorPropertiesInternal props, + final int uId, final int userId, final IFingerprintServiceReceiver receiver, final String opPackageName, @@ -367,7 +368,7 @@ public class FingerprintService extends SystemService { final Context context = getUiContext(); final Context promptContext = context.createPackageContextAsUser( - opPackageName, 0 /* flags */, UserHandle.getUserHandleForUid(userId)); + opPackageName, 0 /* flags */, UserHandle.getUserHandleForUid(uId)); final Executor executor = context.getMainExecutor(); final BiometricPrompt biometricPrompt = new BiometricPrompt.Builder(promptContext)