Forward gatekeeper password handle to enrollment

Fixes: 169629017
Test: Wipe device, go through setup flow with a managed account.
      Successfully set up credential and fingerprint

During the conversion to GkPwHandle (instead of HAT), the code in
Choose/ConfirmLock* and most of the biometric paths were updated, with
the exception of 2a below.
1) Only multi-biometric devices request Choose/ConfirmLock in
   BiometricEnrollActivity.
2) Single-biometric devices (in almost all paths) request credentials
   in their intro activities (FingerprintEnrollIntro, etc).
2a) However, there is a special path used by work profiles where
    credentials are first set up, and the GkPwHandle is passed into
    BiometricEnrollActivity, with the request to skip the fingerprint
    enroll introduction page. In this case, we must remember to
    forward the GkPwHandle to the relavent enrollment page
    (FingerprintEnrollFindSensor).

At some point in the future we should have all credential stuff
done in BiometricEnrollActivity. However, due to legacy APIs, etc,
it may be more work than it's worth right now.

Change-Id: I3f95876de6969fee7130d7a19c8db363da69c4c2
This commit is contained in:
Kevin Chyn
2020-12-16 12:33:00 -08:00
parent 0306871503
commit ee1dd50e74

View File

@@ -89,6 +89,9 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
if (this instanceof InternalActivity) { if (this instanceof InternalActivity) {
mUserId = getIntent().getIntExtra(Intent.EXTRA_USER_ID, UserHandle.myUserId()); mUserId = getIntent().getIntExtra(Intent.EXTRA_USER_ID, UserHandle.myUserId());
if (BiometricUtils.containsGatekeeperPasswordHandle(getIntent())) {
mGkPwHandle = BiometricUtils.getGatekeeperPasswordHandle(getIntent());
}
} }
if (savedInstanceState != null) { if (savedInstanceState != null) {
@@ -366,7 +369,7 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN); ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
} }
BiometricUtils.launchEnrollForResult(this, intent, 0 /* requestCode */, hardwareAuthToken, BiometricUtils.launchEnrollForResult(this, intent, 0 /* requestCode */, hardwareAuthToken,
null /* gkPwHandle */, mUserId); mGkPwHandle, mUserId);
} }
private void launchCredentialOnlyEnroll() { private void launchCredentialOnlyEnroll() {