From 201d8b72c49214e111b80b5114eed42302506e9d Mon Sep 17 00:00:00 2001 From: Jeff Pu Date: Thu, 10 Aug 2023 13:30:34 -0400 Subject: [PATCH] Update operationContext with sessionInfo for Atom logs Bug: 283843162 Test: atest CtsBiometricsHostTestCases on P23 device Change-Id: Ib5975c26e548b940e705cbf555923cac57b79b1d (cherry picked from commit 8b45ee6954f75a6ca405cc2feda21b263697dd92) --- .../server/biometrics/AuthSession.java | 19 +++++++++++++------ .../server/biometrics/AuthSessionTest.java | 2 ++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/services/core/java/com/android/server/biometrics/AuthSession.java b/services/core/java/com/android/server/biometrics/AuthSession.java index cb5e7f1be5712..2ae3118d7bfa6 100644 --- a/services/core/java/com/android/server/biometrics/AuthSession.java +++ b/services/core/java/com/android/server/biometrics/AuthSession.java @@ -150,6 +150,10 @@ public final class AuthSession implements IBinder.DeathRecipient { // Timestamp when hardware authentication occurred private long mAuthenticatedTimeMs; + @NonNull + private final OperationContextExt mOperationContext; + + AuthSession(@NonNull Context context, @NonNull BiometricContext biometricContext, @NonNull IStatusBarService statusBarService, @@ -215,6 +219,7 @@ public final class AuthSession implements IBinder.DeathRecipient { mFingerprintSensorProperties = fingerprintSensorProperties; mCancelled = false; mBiometricFrameworkStatsLogger = logger; + mOperationContext = new OperationContextExt(true /* isBP */); try { mClientReceiver.asBinder().linkToDeath(this, 0 /* flags */); @@ -581,6 +586,8 @@ public final class AuthSession implements IBinder.DeathRecipient { } else { Slog.d(TAG, "delaying fingerprint sensor start"); } + + mBiometricContext.updateContext(mOperationContext, isCrypto()); } // call once anytime after onDialogAnimatedIn() to indicate it's appropriate to start the @@ -743,12 +750,12 @@ public final class AuthSession implements IBinder.DeathRecipient { + ", Client: " + BiometricsProtoEnums.CLIENT_BIOMETRIC_PROMPT + ", RequireConfirmation: " + mPreAuthInfo.confirmationRequested + ", State: " + FrameworkStatsLog.BIOMETRIC_AUTHENTICATED__STATE__CONFIRMED - + ", Latency: " + latency); + + ", Latency: " + latency + + ", SessionId: " + mOperationContext.getId()); } mBiometricFrameworkStatsLogger.authenticate( - mBiometricContext.updateContext(new OperationContextExt(true /* isBP */), - isCrypto()), + mOperationContext, statsModality(), BiometricsProtoEnums.ACTION_UNKNOWN, BiometricsProtoEnums.CLIENT_BIOMETRIC_PROMPT, @@ -780,13 +787,13 @@ public final class AuthSession implements IBinder.DeathRecipient { + ", Client: " + BiometricsProtoEnums.CLIENT_BIOMETRIC_PROMPT + ", Reason: " + reason + ", Error: " + error - + ", Latency: " + latency); + + ", Latency: " + latency + + ", SessionId: " + mOperationContext.getId()); } // Auth canceled if (error != 0) { mBiometricFrameworkStatsLogger.error( - mBiometricContext.updateContext(new OperationContextExt(true /* isBP */), - isCrypto()), + mOperationContext, statsModality(), BiometricsProtoEnums.ACTION_AUTHENTICATE, BiometricsProtoEnums.CLIENT_BIOMETRIC_PROMPT, diff --git a/services/tests/servicestests/src/com/android/server/biometrics/AuthSessionTest.java b/services/tests/servicestests/src/com/android/server/biometrics/AuthSessionTest.java index 0cfddd30d7211..769be177ce038 100644 --- a/services/tests/servicestests/src/com/android/server/biometrics/AuthSessionTest.java +++ b/services/tests/servicestests/src/com/android/server/biometrics/AuthSessionTest.java @@ -351,6 +351,8 @@ public class AuthSessionTest { assertEquals(startFingerprintNow ? BiometricSensor.STATE_AUTHENTICATING : BiometricSensor.STATE_COOKIE_RETURNED, session.mPreAuthInfo.eligibleSensors.get(fingerprintSensorId).getSensorState()); + verify(mBiometricContext).updateContext((OperationContextExt) anyObject(), + eq(session.isCrypto())); // start fingerprint sensor if it was delayed if (!startFingerprintNow) {