summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Kevin Chyn <kchyn@google.com> 2019-04-24 13:53:35 -0700
committer Kevin Chyn <kchyn@google.com> 2019-05-01 18:51:57 -0700
commit4cc49f72b6c3b89b974753278c307fe41ec8732f (patch)
treea85b8be00e0cb92b14f1dcb594bf1ac9ed983337
parent078dcf1cc30209177c9daf06802a41be4e2a1e0e (diff)
Add configurable ignore-list for acquired messaging
Fixes: 130327061 Test: Builds Change-Id: Ibdcadf0beeade9c8f4bb10cc08344dad58a02699
-rw-r--r--core/res/res/values/config.xml30
-rw-r--r--core/res/res/values/symbols.xml7
-rw-r--r--services/core/java/com/android/server/biometrics/AuthenticationClient.java8
-rw-r--r--services/core/java/com/android/server/biometrics/BiometricServiceBase.java14
-rw-r--r--services/core/java/com/android/server/biometrics/ClientMonitor.java35
-rw-r--r--services/core/java/com/android/server/biometrics/Constants.java (renamed from services/core/java/com/android/server/biometrics/Metrics.java)4
-rw-r--r--services/core/java/com/android/server/biometrics/EnrollClient.java8
-rw-r--r--services/core/java/com/android/server/biometrics/EnumerateClient.java6
-rw-r--r--services/core/java/com/android/server/biometrics/RemovalClient.java6
-rw-r--r--services/core/java/com/android/server/biometrics/face/FaceConstants.java (renamed from services/core/java/com/android/server/biometrics/face/FaceMetrics.java)11
-rw-r--r--services/core/java/com/android/server/biometrics/face/FaceService.java63
-rw-r--r--services/core/java/com/android/server/biometrics/fingerprint/FingerprintConstants.java (renamed from services/core/java/com/android/server/biometrics/fingerprint/FingerprintMetrics.java)11
-rw-r--r--services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java12
-rw-r--r--services/core/java/com/android/server/biometrics/iris/IrisService.java4
14 files changed, 174 insertions, 45 deletions
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 21a8f4c7ff89..a195261e3a21 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -4056,4 +4056,34 @@
<!-- Which binder services to include in incident reports containing restricted images. -->
<string-array name="config_restrictedImagesServices" translatable="false"/>
+
+ <!-- Messages that should not be shown to the user during face auth enrollment. This should be
+ used to hide messages that may be too chatty or messages that the user can't do much about.
+ Entries are defined in android.hardware.biometrics.face@1.0 types.hal -->
+ <integer-array name="config_face_acquire_enroll_ignorelist" translatable="false" >
+ </integer-array>
+ <!-- Same as the above, but are defined by vendorCodes -->
+ <integer-array name="config_face_acquire_vendor_enroll_ignorelist" translatable="false" >
+ </integer-array>
+
+ <!-- Messages that should not be shown to the user during face authentication, on keyguard.
+ This includes both lockscreen and bouncer. This should be used to hide messages that may be
+ too chatty or messages that the user can't do much about. Entries are defined in
+ android.hardware.biometrics.face@1.0 types.hal -->
+ <integer-array name="config_face_acquire_keyguard_ignorelist" translatable="false" >
+ </integer-array>
+ <!-- Same as the above, but are defined by vendorCodes -->
+ <integer-array name="config_face_acquire_vendor_keyguard_ignorelist" translatable="false" >
+ </integer-array>
+
+ <!-- Messages that should not be shown to the user during face authentication, on
+ BiometricPrompt. This should be used to hide messages that may be too chatty or messages that
+ the user can't do much about. Entries are defined in
+ android.hardware.biometrics.face@1.0 types.hal -->
+ <integer-array name="config_face_acquire_biometricprompt_ignorelist" translatable="false" >
+ </integer-array>
+ <!-- Same as the above, but are defined by vendorCodes -->
+ <integer-array name="config_face_acquire_vendor_biometricprompt_ignorelist" translatable="false" >
+ </integer-array>
+
</resources>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 7cf03feaf889..0e75136ac93f 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -2570,6 +2570,13 @@
<java-symbol type="string" name="face_authenticated_no_confirmation_required" />
<java-symbol type="string" name="face_authenticated_confirmation_required" />
+ <java-symbol type="array" name="config_face_acquire_enroll_ignorelist" />
+ <java-symbol type="array" name="config_face_acquire_vendor_enroll_ignorelist" />
+ <java-symbol type="array" name="config_face_acquire_keyguard_ignorelist" />
+ <java-symbol type="array" name="config_face_acquire_vendor_keyguard_ignorelist" />
+ <java-symbol type="array" name="config_face_acquire_biometricprompt_ignorelist" />
+ <java-symbol type="array" name="config_face_acquire_vendor_biometricprompt_ignorelist" />
+
<!-- Face config -->
<java-symbol type="integer" name="config_faceMaxTemplatesPerUser" />
diff --git a/services/core/java/com/android/server/biometrics/AuthenticationClient.java b/services/core/java/com/android/server/biometrics/AuthenticationClient.java
index 74b72210859c..1e0f2051933c 100644
--- a/services/core/java/com/android/server/biometrics/AuthenticationClient.java
+++ b/services/core/java/com/android/server/biometrics/AuthenticationClient.java
@@ -63,11 +63,11 @@ public abstract class AuthenticationClient extends ClientMonitor {
*/
public abstract boolean shouldFrameworkHandleLockout();
- public AuthenticationClient(Context context, Metrics metrics,
+ public AuthenticationClient(Context context, Constants constants,
BiometricServiceBase.DaemonWrapper daemon, long halDeviceId, IBinder token,
BiometricServiceBase.ServiceListener listener, int targetUserId, int groupId, long opId,
boolean restricted, String owner, int cookie, boolean requireConfirmation) {
- super(context, metrics, daemon, halDeviceId, token, listener, targetUserId, groupId,
+ super(context, constants, daemon, halDeviceId, token, listener, targetUserId, groupId,
restricted, owner, cookie);
mOpId = opId;
mRequireConfirmation = requireConfirmation;
@@ -126,7 +126,7 @@ public abstract class AuthenticationClient extends ClientMonitor {
final BiometricServiceBase.ServiceListener listener = getListener();
- mMetricsLogger.action(mMetrics.actionBiometricAuth(), authenticated);
+ mMetricsLogger.action(mConstants.actionBiometricAuth(), authenticated);
boolean result = false;
try {
@@ -225,7 +225,7 @@ public abstract class AuthenticationClient extends ClientMonitor {
final int result = getDaemonWrapper().authenticate(mOpId, getGroupId());
if (result != 0) {
Slog.w(getLogTag(), "startAuthentication failed, result=" + result);
- mMetricsLogger.histogram(mMetrics.tagAuthStartError(), result);
+ mMetricsLogger.histogram(mConstants.tagAuthStartError(), result);
onError(getHalDeviceId(), BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE,
0 /* vendorCode */);
return result;
diff --git a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
index 3f856d3e8eb2..d3c62bed7b5f 100644
--- a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
+++ b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
@@ -138,7 +138,7 @@ public abstract class BiometricServiceBase extends SystemService
/**
* @return the metrics constants for a biometric implementation.
*/
- protected abstract Metrics getMetrics();
+ protected abstract Constants getConstants();
/**
* @param userId
@@ -220,7 +220,7 @@ public abstract class BiometricServiceBase extends SystemService
public AuthenticationClientImpl(Context context, DaemonWrapper daemon, long halDeviceId,
IBinder token, ServiceListener listener, int targetUserId, int groupId, long opId,
boolean restricted, String owner, int cookie, boolean requireConfirmation) {
- super(context, getMetrics(), daemon, halDeviceId, token, listener, targetUserId,
+ super(context, getConstants(), daemon, halDeviceId, token, listener, targetUserId,
groupId, opId, restricted, owner, cookie, requireConfirmation);
}
@@ -283,7 +283,7 @@ public abstract class BiometricServiceBase extends SystemService
IBinder token, ServiceListener listener, int userId, int groupId,
byte[] cryptoToken, boolean restricted, String owner,
final int[] disabledFeatures) {
- super(context, getMetrics(), daemon, halDeviceId, token, listener,
+ super(context, getConstants(), daemon, halDeviceId, token, listener,
userId, groupId, cryptoToken, restricted, owner, getBiometricUtils(),
disabledFeatures);
}
@@ -302,7 +302,7 @@ public abstract class BiometricServiceBase extends SystemService
DaemonWrapper daemon, long halDeviceId, IBinder token,
ServiceListener listener, int templateId, int groupId, int userId,
boolean restricted, String owner) {
- super(context, getMetrics(), daemon, halDeviceId, token, listener, templateId, groupId,
+ super(context, getConstants(), daemon, halDeviceId, token, listener, templateId, groupId,
userId, restricted, owner, getBiometricUtils());
}
@@ -329,7 +329,7 @@ public abstract class BiometricServiceBase extends SystemService
ServiceListener listener, int groupId, int userId, boolean restricted,
String owner, List<? extends BiometricAuthenticator.Identifier> enrolledList,
BiometricUtils utils) {
- super(context, getMetrics(), daemon, halDeviceId, token, listener, groupId, userId,
+ super(context, getConstants(), daemon, halDeviceId, token, listener, groupId, userId,
restricted, owner);
mEnrolledList = enrolledList;
mUtils = utils;
@@ -655,7 +655,7 @@ public abstract class BiometricServiceBase extends SystemService
@Override
public void serviceDied(long cookie) {
Slog.e(getTag(), "HAL died");
- mMetricsLogger.count(getMetrics().tagHalDied(), 1);
+ mMetricsLogger.count(getConstants().tagHalDied(), 1);
mHALDeathCount++;
mCurrentUserId = UserHandle.USER_NULL;
handleError(getHalDeviceId(), BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE,
@@ -845,7 +845,7 @@ public abstract class BiometricServiceBase extends SystemService
}
mHandler.post(() -> {
- mMetricsLogger.histogram(getMetrics().tagAuthToken(), opId != 0L ? 1 : 0);
+ mMetricsLogger.histogram(getConstants().tagAuthToken(), opId != 0L ? 1 : 0);
// Get performance stats object for this user.
HashMap<Integer, PerformanceStats> pmap
diff --git a/services/core/java/com/android/server/biometrics/ClientMonitor.java b/services/core/java/com/android/server/biometrics/ClientMonitor.java
index 006558080ef0..942e0501d88d 100644
--- a/services/core/java/com/android/server/biometrics/ClientMonitor.java
+++ b/services/core/java/com/android/server/biometrics/ClientMonitor.java
@@ -63,7 +63,7 @@ public abstract class ClientMonitor extends LoggableMonitor implements IBinder.D
private final int mCookie;
protected final MetricsLogger mMetricsLogger;
- protected final Metrics mMetrics;
+ protected final Constants mConstants;
protected boolean mAlreadyCancelled;
protected boolean mAlreadyDone;
@@ -80,12 +80,12 @@ public abstract class ClientMonitor extends LoggableMonitor implements IBinder.D
* permission
* @param owner name of the client that owns this
*/
- public ClientMonitor(Context context, Metrics metrics,
+ public ClientMonitor(Context context, Constants constants,
BiometricServiceBase.DaemonWrapper daemon, long halDeviceId, IBinder token,
BiometricServiceBase.ServiceListener listener, int userId, int groupId,
boolean restricted, String owner, int cookie) {
mContext = context;
- mMetrics = metrics;
+ mConstants = constants;
mDaemon = daemon;
mHalDeviceId = halDeviceId;
mToken = token;
@@ -108,7 +108,7 @@ public abstract class ClientMonitor extends LoggableMonitor implements IBinder.D
}
protected String getLogTag() {
- return mMetrics.logTag();
+ return mConstants.logTag();
}
public int getCookie() {
@@ -145,6 +145,31 @@ public abstract class ClientMonitor extends LoggableMonitor implements IBinder.D
public abstract boolean onEnumerationResult(
BiometricAuthenticator.Identifier identifier, int remaining);
+ public int[] getAcquireIgnorelist() {
+ return new int[0];
+ }
+ public int[] getAcquireVendorIgnorelist() {
+ return new int[0];
+ }
+
+ private boolean blacklistContains(int acquiredInfo, int vendorCode) {
+ if (acquiredInfo == mConstants.acquireVendorCode()) {
+ for (int i = 0; i < getAcquireVendorIgnorelist().length; i++) {
+ if (getAcquireVendorIgnorelist()[i] == vendorCode) {
+ if (DEBUG) Slog.v(getLogTag(), "Ignoring vendor message: " + vendorCode);
+ return true;
+ }
+ }
+ } else {
+ for (int i = 0; i < getAcquireIgnorelist().length; i++) {
+ if (getAcquireIgnorelist()[i] == acquiredInfo) {
+ if (DEBUG) Slog.v(getLogTag(), "Ignoring message: " + acquiredInfo);
+ return true;
+ }
+ }
+ }
+ return false;
+ }
public boolean isAlreadyDone() {
return mAlreadyDone;
@@ -160,7 +185,7 @@ public abstract class ClientMonitor extends LoggableMonitor implements IBinder.D
super.logOnAcquired(mContext, acquiredInfo, vendorCode, getTargetUserId());
if (DEBUG) Slog.v(getLogTag(), "Acquired: " + acquiredInfo + " " + vendorCode);
try {
- if (mListener != null) {
+ if (mListener != null && !blacklistContains(acquiredInfo, vendorCode)) {
mListener.onAcquired(getHalDeviceId(), acquiredInfo, vendorCode);
}
return false; // acquisition continues...
diff --git a/services/core/java/com/android/server/biometrics/Metrics.java b/services/core/java/com/android/server/biometrics/Constants.java
index 02e44e94e395..874fd428ea8a 100644
--- a/services/core/java/com/android/server/biometrics/Metrics.java
+++ b/services/core/java/com/android/server/biometrics/Constants.java
@@ -16,7 +16,7 @@
package com.android.server.biometrics;
-public interface Metrics {
+public interface Constants {
/** The log tag */
String logTag();
@@ -31,4 +31,6 @@ public interface Metrics {
/** Integers for MetricsLogger.action() */
int actionBiometricAuth();
int actionBiometricEnroll();
+
+ int acquireVendorCode();
} \ No newline at end of file
diff --git a/services/core/java/com/android/server/biometrics/EnrollClient.java b/services/core/java/com/android/server/biometrics/EnrollClient.java
index e656d9809582..854528f0654d 100644
--- a/services/core/java/com/android/server/biometrics/EnrollClient.java
+++ b/services/core/java/com/android/server/biometrics/EnrollClient.java
@@ -40,12 +40,12 @@ public abstract class EnrollClient extends ClientMonitor {
public abstract boolean shouldVibrate();
- public EnrollClient(Context context, Metrics metrics,
+ public EnrollClient(Context context, Constants constants,
BiometricServiceBase.DaemonWrapper daemon, long halDeviceId, IBinder token,
BiometricServiceBase.ServiceListener listener, int userId, int groupId,
byte[] cryptoToken, boolean restricted, String owner, BiometricUtils utils,
final int[] disabledFeatures) {
- super(context, metrics, daemon, halDeviceId, token, listener, userId, groupId, restricted,
+ super(context, constants, daemon, halDeviceId, token, listener, userId, groupId, restricted,
owner, 0 /* cookie */);
mBiometricUtils = utils;
mCryptoToken = Arrays.copyOf(cryptoToken, cryptoToken.length);
@@ -78,7 +78,7 @@ public abstract class EnrollClient extends ClientMonitor {
if (shouldVibrate()) {
vibrateSuccess();
}
- mMetricsLogger.action(mMetrics.actionBiometricEnroll());
+ mMetricsLogger.action(mConstants.actionBiometricEnroll());
try {
final BiometricServiceBase.ServiceListener listener = getListener();
if (listener != null) {
@@ -105,7 +105,7 @@ public abstract class EnrollClient extends ClientMonitor {
disabledFeatures);
if (result != 0) {
Slog.w(getLogTag(), "startEnroll failed, result=" + result);
- mMetricsLogger.histogram(mMetrics.tagEnrollStartError(), result);
+ mMetricsLogger.histogram(mConstants.tagEnrollStartError(), result);
onError(getHalDeviceId(), BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE,
0 /* vendorCode */);
return result;
diff --git a/services/core/java/com/android/server/biometrics/EnumerateClient.java b/services/core/java/com/android/server/biometrics/EnumerateClient.java
index 44ac0373507a..f889d2b41c16 100644
--- a/services/core/java/com/android/server/biometrics/EnumerateClient.java
+++ b/services/core/java/com/android/server/biometrics/EnumerateClient.java
@@ -30,11 +30,11 @@ import java.util.ArrayList;
* A class to keep track of the enumeration state for a given client.
*/
public abstract class EnumerateClient extends ClientMonitor {
- public EnumerateClient(Context context, Metrics metrics,
+ public EnumerateClient(Context context, Constants constants,
BiometricServiceBase.DaemonWrapper daemon, long halDeviceId, IBinder token,
BiometricServiceBase.ServiceListener listener, int groupId, int userId,
boolean restricted, String owner) {
- super(context, metrics, daemon, halDeviceId, token, listener, userId, groupId, restricted,
+ super(context, constants, daemon, halDeviceId, token, listener, userId, groupId, restricted,
owner, 0 /* cookie */);
}
@@ -55,7 +55,7 @@ public abstract class EnumerateClient extends ClientMonitor {
if (result != 0) {
Slog.w(getLogTag(), "start enumerate for user " + getTargetUserId()
+ " failed, result=" + result);
- mMetricsLogger.histogram(mMetrics.tagEnumerateStartError(), result);
+ mMetricsLogger.histogram(mConstants.tagEnumerateStartError(), result);
onError(getHalDeviceId(), BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE,
0 /* vendorCode */);
return result;
diff --git a/services/core/java/com/android/server/biometrics/RemovalClient.java b/services/core/java/com/android/server/biometrics/RemovalClient.java
index a18f336f3ef4..bccab7b7f67c 100644
--- a/services/core/java/com/android/server/biometrics/RemovalClient.java
+++ b/services/core/java/com/android/server/biometrics/RemovalClient.java
@@ -33,11 +33,11 @@ public abstract class RemovalClient extends ClientMonitor {
private final int mBiometricId;
private final BiometricUtils mBiometricUtils;
- public RemovalClient(Context context, Metrics metrics,
+ public RemovalClient(Context context, Constants constants,
BiometricServiceBase.DaemonWrapper daemon, long halDeviceId, IBinder token,
BiometricServiceBase.ServiceListener listener, int biometricId, int groupId, int userId,
boolean restricted, String owner, BiometricUtils utils) {
- super(context, metrics, daemon, halDeviceId, token, listener, userId, groupId, restricted,
+ super(context, constants, daemon, halDeviceId, token, listener, userId, groupId, restricted,
owner, 0 /* cookie */);
mBiometricId = biometricId;
mBiometricUtils = utils;
@@ -60,7 +60,7 @@ public abstract class RemovalClient extends ClientMonitor {
if (result != 0) {
Slog.w(getLogTag(), "startRemove with id = " + mBiometricId + " failed, result=" +
result);
- mMetricsLogger.histogram(mMetrics.tagRemoveStartError(), result);
+ mMetricsLogger.histogram(mConstants.tagRemoveStartError(), result);
onError(getHalDeviceId(), BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE,
0 /* vendorCode */);
return result;
diff --git a/services/core/java/com/android/server/biometrics/face/FaceMetrics.java b/services/core/java/com/android/server/biometrics/face/FaceConstants.java
index 1c5cd5a84402..143eed5db523 100644
--- a/services/core/java/com/android/server/biometrics/face/FaceMetrics.java
+++ b/services/core/java/com/android/server/biometrics/face/FaceConstants.java
@@ -16,10 +16,12 @@
package com.android.server.biometrics.face;
+import android.hardware.face.FaceManager;
+
import com.android.internal.logging.nano.MetricsProto;
-import com.android.server.biometrics.Metrics;
+import com.android.server.biometrics.Constants;
-public class FaceMetrics implements Metrics {
+public class FaceConstants implements Constants {
@Override
public String logTag() {
return FaceService.TAG;
@@ -64,4 +66,9 @@ public class FaceMetrics implements Metrics {
public int actionBiometricEnroll() {
return MetricsProto.MetricsEvent.ACTION_FACE_ENROLL;
}
+
+ @Override
+ public int acquireVendorCode() {
+ return FaceManager.FACE_ACQUIRED_VENDOR;
+ }
}
diff --git a/services/core/java/com/android/server/biometrics/face/FaceService.java b/services/core/java/com/android/server/biometrics/face/FaceService.java
index 44fd84602ebe..feb58a3ad5ce 100644
--- a/services/core/java/com/android/server/biometrics/face/FaceService.java
+++ b/services/core/java/com/android/server/biometrics/face/FaceService.java
@@ -65,7 +65,7 @@ import com.android.server.biometrics.AuthenticationClient;
import com.android.server.biometrics.BiometricServiceBase;
import com.android.server.biometrics.BiometricUtils;
import com.android.server.biometrics.EnumerateClient;
-import com.android.server.biometrics.Metrics;
+import com.android.server.biometrics.Constants;
import com.android.server.biometrics.RemovalClient;
import org.json.JSONArray;
@@ -131,6 +131,26 @@ public class FaceService extends BiometricServiceBase {
}
@Override
+ public int[] getAcquireIgnorelist() {
+ if (isBiometricPrompt()) {
+ return mBiometricPromptIgnoreList;
+ } else {
+ // Keyguard
+ return mKeyguardIgnoreList;
+ }
+ }
+
+ @Override
+ public int[] getAcquireVendorIgnorelist() {
+ if (isBiometricPrompt()) {
+ return mBiometricPromptIgnoreListVendor;
+ } else {
+ // Keyguard
+ return mKeyguardIgnoreListVendor;
+ }
+ }
+
+ @Override
public boolean onAcquired(int acquireInfo, int vendorCode) {
if (acquireInfo == FaceManager.FACE_ACQUIRED_RECALIBRATE) {
@@ -205,6 +225,17 @@ public class FaceService extends BiometricServiceBase {
final EnrollClientImpl client = new EnrollClientImpl(getContext(), mDaemonWrapper,
mHalDeviceId, token, new ServiceListenerImpl(receiver), mCurrentUserId,
0 /* groupId */, cryptoToken, restricted, opPackageName, disabledFeatures) {
+
+ @Override
+ public int[] getAcquireIgnorelist() {
+ return mEnrollIgnoreList;
+ }
+
+ @Override
+ public int[] getAcquireVendorIgnorelist() {
+ return mEnrollIgnoreListVendor;
+ }
+
@Override
public boolean shouldVibrate() {
return false;
@@ -293,7 +324,7 @@ public class FaceService extends BiometricServiceBase {
}
final boolean restricted = isRestricted();
- final RemovalClient client = new RemovalClient(getContext(), getMetrics(),
+ final RemovalClient client = new RemovalClient(getContext(), getConstants(),
mDaemonWrapper, mHalDeviceId, token, new ServiceListenerImpl(receiver), faceId,
0 /* groupId */, userId, restricted, token.toString(), getBiometricUtils()) {
@Override
@@ -310,7 +341,7 @@ public class FaceService extends BiometricServiceBase {
checkPermission(MANAGE_BIOMETRIC);
final boolean restricted = isRestricted();
- final EnumerateClient client = new EnumerateClient(getContext(), getMetrics(),
+ final EnumerateClient client = new EnumerateClient(getContext(), getConstants(),
mDaemonWrapper, mHalDeviceId, token, new ServiceListenerImpl(receiver), userId,
userId, restricted, getContext().getOpPackageName()) {
@Override
@@ -638,13 +669,20 @@ public class FaceService extends BiometricServiceBase {
}
}
- private final FaceMetrics mFaceMetrics = new FaceMetrics();
+ private final FaceConstants mFaceConstants = new FaceConstants();
@GuardedBy("this")
private IBiometricsFace mDaemon;
// One of the AuthenticationClient constants
private int mCurrentUserLockoutMode;
+ private int[] mBiometricPromptIgnoreList;
+ private int[] mBiometricPromptIgnoreListVendor;
+ private int[] mKeyguardIgnoreList;
+ private int[] mKeyguardIgnoreListVendor;
+ private int[] mEnrollIgnoreList;
+ private int[] mEnrollIgnoreListVendor;
+
/**
* Receives callbacks from the HAL.
*/
@@ -830,6 +868,19 @@ public class FaceService extends BiometricServiceBase {
public FaceService(Context context) {
super(context);
+
+ mBiometricPromptIgnoreList = getContext().getResources()
+ .getIntArray(R.array.config_face_acquire_biometricprompt_ignorelist);
+ mBiometricPromptIgnoreListVendor = getContext().getResources()
+ .getIntArray(R.array.config_face_acquire_vendor_biometricprompt_ignorelist);
+ mKeyguardIgnoreList = getContext().getResources()
+ .getIntArray(R.array.config_face_acquire_keyguard_ignorelist);
+ mKeyguardIgnoreListVendor = getContext().getResources()
+ .getIntArray(R.array.config_face_acquire_vendor_keyguard_ignorelist);
+ mEnrollIgnoreList = getContext().getResources()
+ .getIntArray(R.array.config_face_acquire_enroll_ignorelist);
+ mEnrollIgnoreListVendor = getContext().getResources()
+ .getIntArray(R.array.config_face_acquire_vendor_enroll_ignorelist);
}
@Override
@@ -855,8 +906,8 @@ public class FaceService extends BiometricServiceBase {
}
@Override
- protected Metrics getMetrics() {
- return mFaceMetrics;
+ protected Constants getConstants() {
+ return mFaceConstants;
}
@Override
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintMetrics.java b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintConstants.java
index a1115c8bcfa7..bdaff71a17b9 100644
--- a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintMetrics.java
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintConstants.java
@@ -16,10 +16,12 @@
package com.android.server.biometrics.fingerprint;
+import android.hardware.fingerprint.FingerprintManager;
+
import com.android.internal.logging.nano.MetricsProto;
-import com.android.server.biometrics.Metrics;
+import com.android.server.biometrics.Constants;
-public class FingerprintMetrics implements Metrics {
+public class FingerprintConstants implements Constants {
@Override
public String logTag() {
@@ -65,4 +67,9 @@ public class FingerprintMetrics implements Metrics {
public int actionBiometricEnroll() {
return MetricsProto.MetricsEvent.ACTION_FINGERPRINT_ENROLL;
}
+
+ @Override
+ public int acquireVendorCode() {
+ return FingerprintManager.FINGERPRINT_ACQUIRED_VENDOR;
+ }
}
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
index 3d9a47be56ea..d5f5351ca7a4 100644
--- a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
@@ -68,7 +68,7 @@ import com.android.server.biometrics.BiometricServiceBase;
import com.android.server.biometrics.BiometricUtils;
import com.android.server.biometrics.ClientMonitor;
import com.android.server.biometrics.EnumerateClient;
-import com.android.server.biometrics.Metrics;
+import com.android.server.biometrics.Constants;
import com.android.server.biometrics.RemovalClient;
import org.json.JSONArray;
@@ -284,7 +284,7 @@ public class FingerprintService extends BiometricServiceBase {
}
final boolean restricted = isRestricted();
- final RemovalClient client = new RemovalClient(getContext(), getMetrics(),
+ final RemovalClient client = new RemovalClient(getContext(), getConstants(),
mDaemonWrapper, mHalDeviceId, token, new ServiceListenerImpl(receiver),
fingerId, groupId, userId, restricted, token.toString(), getBiometricUtils()) {
@Override
@@ -301,7 +301,7 @@ public class FingerprintService extends BiometricServiceBase {
checkPermission(MANAGE_FINGERPRINT);
final boolean restricted = isRestricted();
- final EnumerateClient client = new EnumerateClient(getContext(), getMetrics(),
+ final EnumerateClient client = new EnumerateClient(getContext(), getConstants(),
mDaemonWrapper, mHalDeviceId, token, new ServiceListenerImpl(receiver), userId,
userId, restricted, getContext().getOpPackageName()) {
@Override
@@ -557,7 +557,7 @@ public class FingerprintService extends BiometricServiceBase {
}
}
- private final FingerprintMetrics mFingerprintMetrics = new FingerprintMetrics();
+ private final FingerprintConstants mFingerprintConstants = new FingerprintConstants();
private final CopyOnWriteArrayList<IFingerprintClientActiveCallback> mClientActiveCallbacks =
new CopyOnWriteArrayList<>();
@@ -736,8 +736,8 @@ public class FingerprintService extends BiometricServiceBase {
}
@Override
- protected Metrics getMetrics() {
- return mFingerprintMetrics;
+ protected Constants getConstants() {
+ return mFingerprintConstants;
}
@Override
diff --git a/services/core/java/com/android/server/biometrics/iris/IrisService.java b/services/core/java/com/android/server/biometrics/iris/IrisService.java
index cb8a772356cc..2817315ac175 100644
--- a/services/core/java/com/android/server/biometrics/iris/IrisService.java
+++ b/services/core/java/com/android/server/biometrics/iris/IrisService.java
@@ -23,7 +23,7 @@ import android.hardware.biometrics.BiometricsProtoEnums;
import com.android.server.biometrics.AuthenticationClient;
import com.android.server.biometrics.BiometricServiceBase;
import com.android.server.biometrics.BiometricUtils;
-import com.android.server.biometrics.Metrics;
+import com.android.server.biometrics.Constants;
import java.util.List;
@@ -75,7 +75,7 @@ public class IrisService extends BiometricServiceBase {
}
@Override
- protected Metrics getMetrics() {
+ protected Constants getConstants() {
return null;
}