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
This commit is contained in:
Joshua McCloskey
2022-05-31 23:49:50 +00:00
committed by Joshua Mccloskey
parent 99945d5d70
commit f3650a6dee

View File

@@ -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)