Loading core/java/android/hardware/biometrics/BiometricManager.java +22 −5 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ import static android.Manifest.permission.USE_BIOMETRIC; import static android.Manifest.permission.USE_BIOMETRIC_INTERNAL; import static android.Manifest.permission.WRITE_DEVICE_CONFIG; import static com.android.internal.util.FrameworkStatsLog.AUTH_DEPRECATED_APIUSED__DEPRECATED_API__API_BIOMETRIC_MANAGER_CAN_AUTHENTICATE; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; Loading @@ -34,6 +36,8 @@ import android.os.RemoteException; import android.security.keystore.KeyProperties; import android.util.Slog; import com.android.internal.util.FrameworkStatsLog; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; Loading Loading @@ -405,7 +409,17 @@ public class BiometricManager { @RequiresPermission(USE_BIOMETRIC) @BiometricError public int canAuthenticate() { return canAuthenticate(Authenticators.BIOMETRIC_WEAK); @BiometricError final int result = canAuthenticate(mContext.getUserId(), Authenticators.BIOMETRIC_WEAK); FrameworkStatsLog.write(FrameworkStatsLog.AUTH_MANAGER_CAN_AUTHENTICATE_INVOKED, false /* isAllowedAuthenticatorsSet */, Authenticators.EMPTY_SET, result); FrameworkStatsLog.write(FrameworkStatsLog.AUTH_DEPRECATED_API_USED, AUTH_DEPRECATED_APIUSED__DEPRECATED_API__API_BIOMETRIC_MANAGER_CAN_AUTHENTICATE, mContext.getApplicationInfo().uid, mContext.getApplicationInfo().targetSdkVersion); return result; } /** Loading Loading @@ -436,7 +450,12 @@ public class BiometricManager { @RequiresPermission(USE_BIOMETRIC) @BiometricError public int canAuthenticate(@Authenticators.Types int authenticators) { return canAuthenticate(mContext.getUserId(), authenticators); @BiometricError final int result = canAuthenticate(mContext.getUserId(), authenticators); FrameworkStatsLog.write(FrameworkStatsLog.AUTH_MANAGER_CAN_AUTHENTICATE_INVOKED, true /* isAllowedAuthenticatorsSet */, authenticators, result); return result; } /** Loading @@ -444,9 +463,7 @@ public class BiometricManager { */ @RequiresPermission(USE_BIOMETRIC_INTERNAL) @BiometricError public int canAuthenticate( int userId, @Authenticators.Types int authenticators) { public int canAuthenticate(int userId, @Authenticators.Types int authenticators) { if (mService != null) { try { final String opPackageName = mContext.getOpPackageName(); Loading core/java/android/hardware/biometrics/BiometricPrompt.java +22 −1 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.text.TextUtils; import android.util.Log; import com.android.internal.R; import com.android.internal.util.FrameworkStatsLog; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; Loading Loading @@ -422,7 +423,7 @@ public class BiometricPrompt implements BiometricAuthenticator, BiometricConstan final boolean deviceCredentialAllowed = mPromptInfo.isDeviceCredentialAllowed(); final @Authenticators.Types int authenticators = mPromptInfo.getAuthenticators(); final boolean willShowDeviceCredentialButton = deviceCredentialAllowed || (authenticators & Authenticators.DEVICE_CREDENTIAL) != 0; || isCredentialAllowed(authenticators); if (TextUtils.isEmpty(title) && !useDefaultTitle) { throw new IllegalArgumentException("Title must be set and non-empty"); Loading Loading @@ -916,6 +917,14 @@ public class BiometricPrompt implements BiometricAuthenticator, BiometricConstan @NonNull CancellationSignal cancel, @NonNull @CallbackExecutor Executor executor, @NonNull AuthenticationCallback callback) { FrameworkStatsLog.write(FrameworkStatsLog.AUTH_PROMPT_AUTHENTICATE_INVOKED, true /* isCrypto */, mPromptInfo.isConfirmationRequested(), mPromptInfo.isDeviceCredentialAllowed(), mPromptInfo.getAuthenticators() != Authenticators.EMPTY_SET, mPromptInfo.getAuthenticators()); if (crypto == null) { throw new IllegalArgumentException("Must supply a crypto object"); } Loading Loading @@ -973,6 +982,14 @@ public class BiometricPrompt implements BiometricAuthenticator, BiometricConstan public void authenticate(@NonNull CancellationSignal cancel, @NonNull @CallbackExecutor Executor executor, @NonNull AuthenticationCallback callback) { FrameworkStatsLog.write(FrameworkStatsLog.AUTH_PROMPT_AUTHENTICATE_INVOKED, false /* isCrypto */, mPromptInfo.isConfirmationRequested(), mPromptInfo.isDeviceCredentialAllowed(), mPromptInfo.getAuthenticators() != Authenticators.EMPTY_SET, mPromptInfo.getAuthenticators()); if (cancel == null) { throw new IllegalArgumentException("Must supply a cancellation signal"); } Loading Loading @@ -1058,4 +1075,8 @@ public class BiometricPrompt implements BiometricAuthenticator, BiometricConstan mContext.getString(R.string.biometric_error_hw_unavailable))); } } private static boolean isCredentialAllowed(@Authenticators.Types int allowedAuthenticators) { return (allowedAuthenticators & Authenticators.DEVICE_CREDENTIAL) != 0; } } core/java/android/hardware/fingerprint/FingerprintManager.java +21 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,10 @@ import static android.Manifest.permission.USE_BIOMETRIC; import static android.Manifest.permission.USE_BIOMETRIC_INTERNAL; import static android.Manifest.permission.USE_FINGERPRINT; import static com.android.internal.util.FrameworkStatsLog.AUTH_DEPRECATED_APIUSED__DEPRECATED_API__API_FINGERPRINT_MANAGER_AUTHENTICATE; import static com.android.internal.util.FrameworkStatsLog.AUTH_DEPRECATED_APIUSED__DEPRECATED_API__API_FINGERPRINT_MANAGER_HAS_ENROLLED_FINGERPRINTS; import static com.android.internal.util.FrameworkStatsLog.AUTH_DEPRECATED_APIUSED__DEPRECATED_API__API_FINGERPRINT_MANAGER_IS_HARDWARE_DETECTED; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; Loading Loading @@ -56,6 +60,8 @@ import android.security.identity.IdentityCredential; import android.util.Slog; import android.view.Surface; import com.android.internal.util.FrameworkStatsLog; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.security.Signature; Loading Loading @@ -534,6 +540,11 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing public void authenticate(@Nullable CryptoObject crypto, @Nullable CancellationSignal cancel, @NonNull AuthenticationCallback callback, Handler handler, int sensorId, int userId) { FrameworkStatsLog.write(FrameworkStatsLog.AUTH_DEPRECATED_API_USED, AUTH_DEPRECATED_APIUSED__DEPRECATED_API__API_FINGERPRINT_MANAGER_AUTHENTICATE, mContext.getApplicationInfo().uid, mContext.getApplicationInfo().targetSdkVersion); if (callback == null) { throw new IllegalArgumentException("Must supply an authentication callback"); } Loading Loading @@ -910,6 +921,11 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing @Deprecated @RequiresPermission(USE_FINGERPRINT) public boolean hasEnrolledFingerprints() { FrameworkStatsLog.write(FrameworkStatsLog.AUTH_DEPRECATED_API_USED, AUTH_DEPRECATED_APIUSED__DEPRECATED_API__API_FINGERPRINT_MANAGER_HAS_ENROLLED_FINGERPRINTS, mContext.getApplicationInfo().uid, mContext.getApplicationInfo().targetSdkVersion); return hasEnrolledFingerprints(UserHandle.myUserId()); } Loading Loading @@ -938,6 +954,11 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing @Deprecated @RequiresPermission(USE_FINGERPRINT) public boolean isHardwareDetected() { FrameworkStatsLog.write(FrameworkStatsLog.AUTH_DEPRECATED_API_USED, AUTH_DEPRECATED_APIUSED__DEPRECATED_API__API_FINGERPRINT_MANAGER_IS_HARDWARE_DETECTED, mContext.getApplicationInfo().uid, mContext.getApplicationInfo().targetSdkVersion); if (mService != null) { try { return mService.isHardwareDetectedDeprecated(mContext.getOpPackageName()); Loading Loading
core/java/android/hardware/biometrics/BiometricManager.java +22 −5 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ import static android.Manifest.permission.USE_BIOMETRIC; import static android.Manifest.permission.USE_BIOMETRIC_INTERNAL; import static android.Manifest.permission.WRITE_DEVICE_CONFIG; import static com.android.internal.util.FrameworkStatsLog.AUTH_DEPRECATED_APIUSED__DEPRECATED_API__API_BIOMETRIC_MANAGER_CAN_AUTHENTICATE; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; Loading @@ -34,6 +36,8 @@ import android.os.RemoteException; import android.security.keystore.KeyProperties; import android.util.Slog; import com.android.internal.util.FrameworkStatsLog; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; Loading Loading @@ -405,7 +409,17 @@ public class BiometricManager { @RequiresPermission(USE_BIOMETRIC) @BiometricError public int canAuthenticate() { return canAuthenticate(Authenticators.BIOMETRIC_WEAK); @BiometricError final int result = canAuthenticate(mContext.getUserId(), Authenticators.BIOMETRIC_WEAK); FrameworkStatsLog.write(FrameworkStatsLog.AUTH_MANAGER_CAN_AUTHENTICATE_INVOKED, false /* isAllowedAuthenticatorsSet */, Authenticators.EMPTY_SET, result); FrameworkStatsLog.write(FrameworkStatsLog.AUTH_DEPRECATED_API_USED, AUTH_DEPRECATED_APIUSED__DEPRECATED_API__API_BIOMETRIC_MANAGER_CAN_AUTHENTICATE, mContext.getApplicationInfo().uid, mContext.getApplicationInfo().targetSdkVersion); return result; } /** Loading Loading @@ -436,7 +450,12 @@ public class BiometricManager { @RequiresPermission(USE_BIOMETRIC) @BiometricError public int canAuthenticate(@Authenticators.Types int authenticators) { return canAuthenticate(mContext.getUserId(), authenticators); @BiometricError final int result = canAuthenticate(mContext.getUserId(), authenticators); FrameworkStatsLog.write(FrameworkStatsLog.AUTH_MANAGER_CAN_AUTHENTICATE_INVOKED, true /* isAllowedAuthenticatorsSet */, authenticators, result); return result; } /** Loading @@ -444,9 +463,7 @@ public class BiometricManager { */ @RequiresPermission(USE_BIOMETRIC_INTERNAL) @BiometricError public int canAuthenticate( int userId, @Authenticators.Types int authenticators) { public int canAuthenticate(int userId, @Authenticators.Types int authenticators) { if (mService != null) { try { final String opPackageName = mContext.getOpPackageName(); Loading
core/java/android/hardware/biometrics/BiometricPrompt.java +22 −1 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.text.TextUtils; import android.util.Log; import com.android.internal.R; import com.android.internal.util.FrameworkStatsLog; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; Loading Loading @@ -422,7 +423,7 @@ public class BiometricPrompt implements BiometricAuthenticator, BiometricConstan final boolean deviceCredentialAllowed = mPromptInfo.isDeviceCredentialAllowed(); final @Authenticators.Types int authenticators = mPromptInfo.getAuthenticators(); final boolean willShowDeviceCredentialButton = deviceCredentialAllowed || (authenticators & Authenticators.DEVICE_CREDENTIAL) != 0; || isCredentialAllowed(authenticators); if (TextUtils.isEmpty(title) && !useDefaultTitle) { throw new IllegalArgumentException("Title must be set and non-empty"); Loading Loading @@ -916,6 +917,14 @@ public class BiometricPrompt implements BiometricAuthenticator, BiometricConstan @NonNull CancellationSignal cancel, @NonNull @CallbackExecutor Executor executor, @NonNull AuthenticationCallback callback) { FrameworkStatsLog.write(FrameworkStatsLog.AUTH_PROMPT_AUTHENTICATE_INVOKED, true /* isCrypto */, mPromptInfo.isConfirmationRequested(), mPromptInfo.isDeviceCredentialAllowed(), mPromptInfo.getAuthenticators() != Authenticators.EMPTY_SET, mPromptInfo.getAuthenticators()); if (crypto == null) { throw new IllegalArgumentException("Must supply a crypto object"); } Loading Loading @@ -973,6 +982,14 @@ public class BiometricPrompt implements BiometricAuthenticator, BiometricConstan public void authenticate(@NonNull CancellationSignal cancel, @NonNull @CallbackExecutor Executor executor, @NonNull AuthenticationCallback callback) { FrameworkStatsLog.write(FrameworkStatsLog.AUTH_PROMPT_AUTHENTICATE_INVOKED, false /* isCrypto */, mPromptInfo.isConfirmationRequested(), mPromptInfo.isDeviceCredentialAllowed(), mPromptInfo.getAuthenticators() != Authenticators.EMPTY_SET, mPromptInfo.getAuthenticators()); if (cancel == null) { throw new IllegalArgumentException("Must supply a cancellation signal"); } Loading Loading @@ -1058,4 +1075,8 @@ public class BiometricPrompt implements BiometricAuthenticator, BiometricConstan mContext.getString(R.string.biometric_error_hw_unavailable))); } } private static boolean isCredentialAllowed(@Authenticators.Types int allowedAuthenticators) { return (allowedAuthenticators & Authenticators.DEVICE_CREDENTIAL) != 0; } }
core/java/android/hardware/fingerprint/FingerprintManager.java +21 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,10 @@ import static android.Manifest.permission.USE_BIOMETRIC; import static android.Manifest.permission.USE_BIOMETRIC_INTERNAL; import static android.Manifest.permission.USE_FINGERPRINT; import static com.android.internal.util.FrameworkStatsLog.AUTH_DEPRECATED_APIUSED__DEPRECATED_API__API_FINGERPRINT_MANAGER_AUTHENTICATE; import static com.android.internal.util.FrameworkStatsLog.AUTH_DEPRECATED_APIUSED__DEPRECATED_API__API_FINGERPRINT_MANAGER_HAS_ENROLLED_FINGERPRINTS; import static com.android.internal.util.FrameworkStatsLog.AUTH_DEPRECATED_APIUSED__DEPRECATED_API__API_FINGERPRINT_MANAGER_IS_HARDWARE_DETECTED; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; Loading Loading @@ -56,6 +60,8 @@ import android.security.identity.IdentityCredential; import android.util.Slog; import android.view.Surface; import com.android.internal.util.FrameworkStatsLog; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.security.Signature; Loading Loading @@ -534,6 +540,11 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing public void authenticate(@Nullable CryptoObject crypto, @Nullable CancellationSignal cancel, @NonNull AuthenticationCallback callback, Handler handler, int sensorId, int userId) { FrameworkStatsLog.write(FrameworkStatsLog.AUTH_DEPRECATED_API_USED, AUTH_DEPRECATED_APIUSED__DEPRECATED_API__API_FINGERPRINT_MANAGER_AUTHENTICATE, mContext.getApplicationInfo().uid, mContext.getApplicationInfo().targetSdkVersion); if (callback == null) { throw new IllegalArgumentException("Must supply an authentication callback"); } Loading Loading @@ -910,6 +921,11 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing @Deprecated @RequiresPermission(USE_FINGERPRINT) public boolean hasEnrolledFingerprints() { FrameworkStatsLog.write(FrameworkStatsLog.AUTH_DEPRECATED_API_USED, AUTH_DEPRECATED_APIUSED__DEPRECATED_API__API_FINGERPRINT_MANAGER_HAS_ENROLLED_FINGERPRINTS, mContext.getApplicationInfo().uid, mContext.getApplicationInfo().targetSdkVersion); return hasEnrolledFingerprints(UserHandle.myUserId()); } Loading Loading @@ -938,6 +954,11 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing @Deprecated @RequiresPermission(USE_FINGERPRINT) public boolean isHardwareDetected() { FrameworkStatsLog.write(FrameworkStatsLog.AUTH_DEPRECATED_API_USED, AUTH_DEPRECATED_APIUSED__DEPRECATED_API__API_FINGERPRINT_MANAGER_IS_HARDWARE_DETECTED, mContext.getApplicationInfo().uid, mContext.getApplicationInfo().targetSdkVersion); if (mService != null) { try { return mService.isHardwareDetectedDeprecated(mContext.getOpPackageName()); Loading