From 572541c3ab9e84de2065a131c907c5e97f461c94 Mon Sep 17 00:00:00 2001 From: Diya Bera Date: Thu, 8 Aug 2024 01:48:46 +0000 Subject: [PATCH] Do not call credential if authenticators does not allow Flag: android.hardware.biometrics.flags.mandatory_biometrics Test: N/A Fixes: 358180327 Change-Id: I236fbcc84502602e6e6fb02615f002e02136202e --- .../password/ConfirmDeviceCredentialActivity.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java index 4f355324fc6..72dbed457be 100644 --- a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java +++ b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java @@ -104,6 +104,7 @@ public class ConfirmDeviceCredentialActivity extends FragmentActivity { private boolean mForceVerifyPath = false; private boolean mGoingToBackground; private boolean mWaitingForBiometricCallback; + private int mBiometricsAuthenticators; private Executor mExecutor = (runnable -> { mHandler.post(runnable); @@ -122,8 +123,14 @@ public class ConfirmDeviceCredentialActivity extends FragmentActivity { Log.i(TAG, "Finishing, user no longer valid: " + mUserId); finish(); } else { - // All other errors go to some version of CC - showConfirmCredentials(); + if ((mBiometricsAuthenticators + & BiometricManager.Authenticators.DEVICE_CREDENTIAL) != 0) { + // All other errors go to some version of CC + showConfirmCredentials(); + } else { + Log.i(TAG, "Finishing, device credential not requested"); + finish(); + } } } else if (mWaitingForBiometricCallback) { // mGoingToBackground is true mWaitingForBiometricCallback = false; @@ -188,7 +195,7 @@ public class ConfirmDeviceCredentialActivity extends FragmentActivity { mDetails = intent.getCharSequenceExtra(KeyguardManager.EXTRA_DESCRIPTION); String alternateButton = intent.getStringExtra( KeyguardManager.EXTRA_ALTERNATE_BUTTON_LABEL); - final int authenticators = intent.getIntExtra(BIOMETRIC_PROMPT_AUTHENTICATORS, + mBiometricsAuthenticators = intent.getIntExtra(BIOMETRIC_PROMPT_AUTHENTICATORS, BiometricManager.Authenticators.DEVICE_CREDENTIAL | BiometricManager.Authenticators.BIOMETRIC_WEAK); final String negativeButtonText = intent.getStringExtra( @@ -229,7 +236,7 @@ public class ConfirmDeviceCredentialActivity extends FragmentActivity { promptInfo.setTitle(mTitle); promptInfo.setDescription(mDetails); promptInfo.setDisallowBiometricsIfPolicyExists(mCheckDevicePolicyManager); - promptInfo.setAuthenticators(authenticators); + promptInfo.setAuthenticators(mBiometricsAuthenticators); promptInfo.setNegativeButtonText(negativeButtonText); if (android.multiuser.Flags.enablePrivateSpaceFeatures()