21/n: Clean up ClientMonitor parameters

Bug: 157790417

Test: Builds
Change-Id: Ie5dcef72f623dd0efe1764af826c29a9d706e6c8
This commit is contained in:
Kevin Chyn
2020-06-30 21:33:33 -07:00
parent dbe6787699
commit 624bfe1223
22 changed files with 109 additions and 131 deletions

View File

@@ -48,11 +48,11 @@ public abstract class AcquisitionClient<T> extends ClientMonitor<T>
private final VibrationEffect mErrorVibrationEffect;
AcquisitionClient(@NonNull Context context, @NonNull IBinder token,
@NonNull ClientMonitorCallbackConverter listener, int userId, boolean restricted,
@NonNull ClientMonitorCallbackConverter listener, int userId,
@NonNull String owner, int cookie, int sensorId, int statsModality,
int statsAction, int statsClient) {
super(context, token, listener, userId, restricted, owner, cookie, sensorId,
statsModality, statsAction, statsClient);
super(context, token, listener, userId, owner, cookie, sensorId, statsModality, statsAction,
statsClient);
mPowerManager = context.getSystemService(PowerManager.class);
mSuccessVibrationEffect = VibrationEffect.get(VibrationEffect.EFFECT_CLICK);
mErrorVibrationEffect = VibrationEffect.get(VibrationEffect.EFFECT_DOUBLE_CLICK);

View File

@@ -43,6 +43,7 @@ public abstract class AuthenticationClient<T> extends AcquisitionClient<T> {
private final IActivityTaskManager mActivityTaskManager;
private final TaskStackListener mTaskStackListener;
private final LockoutTracker mLockoutTracker;
private final boolean mIsRestricted;
protected final long mOperationId;
@@ -51,13 +52,12 @@ public abstract class AuthenticationClient<T> extends AcquisitionClient<T> {
protected boolean mAuthAttempted;
public AuthenticationClient(@NonNull Context context,
@NonNull IBinder token, @NonNull ClientMonitorCallbackConverter listener,
int targetUserId, long operationId, boolean restricted, @NonNull String owner,
int cookie, boolean requireConfirmation, int sensorId, boolean isStrongBiometric,
int statsModality, int statsClient, @NonNull TaskStackListener taskStackListener,
@NonNull LockoutTracker lockoutTracker) {
super(context, token, listener, targetUserId, restricted, owner, cookie, sensorId,
public AuthenticationClient(@NonNull Context context, @NonNull IBinder token,
@NonNull ClientMonitorCallbackConverter listener, int targetUserId, long operationId,
boolean restricted, @NonNull String owner, int cookie, boolean requireConfirmation,
int sensorId, boolean isStrongBiometric, int statsModality, int statsClient,
@NonNull TaskStackListener taskStackListener, @NonNull LockoutTracker lockoutTracker) {
super(context, token, listener, targetUserId, owner, cookie, sensorId,
statsModality, BiometricsProtoEnums.ACTION_AUTHENTICATE, statsClient);
mIsStrongBiometric = isStrongBiometric;
mOperationId = operationId;
@@ -65,6 +65,7 @@ public abstract class AuthenticationClient<T> extends AcquisitionClient<T> {
mActivityTaskManager = ActivityTaskManager.getService();
mTaskStackListener = taskStackListener;
mLockoutTracker = lockoutTracker;
mIsRestricted = restricted;
}
public @LockoutTracker.LockoutMode int handleFailedAttempt(int userId) {
@@ -147,7 +148,7 @@ public abstract class AuthenticationClient<T> extends AcquisitionClient<T> {
// Explicitly have if/else here to make it super obvious in case the code is
// touched in the future.
if (!getIsRestricted()) {
if (!mIsRestricted) {
listener.onAuthenticationSucceeded(getSensorId(), identifier, byteToken,
getTargetUserId(), mIsStrongBiometric);
} else {

View File

@@ -53,8 +53,6 @@ public abstract class ClientMonitor<T> extends LoggableMonitor implements IBinde
@NonNull private final Context mContext;
private final int mTargetUserId;
// True if client does not have MANAGE_FINGERPRINT permission
private final boolean mIsRestricted;
@NonNull private final String mOwner;
private final int mSensorId; // sensorId as configured by the framework
@@ -73,8 +71,6 @@ public abstract class ClientMonitor<T> extends LoggableMonitor implements IBinde
* @param token a unique token for the client
* @param listener recipient of related events (e.g. authentication)
* @param userId target user id for operation
* @param restricted whether or not client has the MANAGE_* permission
* permission
* @param owner name of the client that owns this
* @param cookie BiometricPrompt authentication cookie (to be moved into a subclass soon)
* @param sensorId ID of the sensor that the operation should be requested of
@@ -83,15 +79,14 @@ public abstract class ClientMonitor<T> extends LoggableMonitor implements IBinde
* @param statsClient One of {@link BiometricsProtoEnums} CLIENT_* constants
*/
public ClientMonitor(@NonNull Context context, @Nullable IBinder token,
@Nullable ClientMonitorCallbackConverter listener, int userId, boolean restricted,
@NonNull String owner, int cookie, int sensorId, int statsModality, int statsAction,
@Nullable ClientMonitorCallbackConverter listener, int userId, @NonNull String owner,
int cookie, int sensorId, int statsModality, int statsAction,
int statsClient) {
super(statsModality, statsAction, statsClient);
mContext = context;
mToken = token;
mListener = listener;
mTargetUserId = userId;
mIsRestricted = restricted;
mOwner = owner;
mCookie = cookie;
mSensorId = sensorId;
@@ -184,10 +179,6 @@ public abstract class ClientMonitor<T> extends LoggableMonitor implements IBinde
return mListener;
}
public final boolean getIsRestricted() {
return mIsRestricted;
}
public final int getTargetUserId() {
return mTargetUserId;
}

View File

@@ -43,12 +43,11 @@ public abstract class EnrollClient<T> extends AcquisitionClient<T> {
public EnrollClient(@NonNull Context context, @NonNull IBinder token,
@NonNull ClientMonitorCallbackConverter listener, int userId,
@NonNull byte[] hardwareAuthToken, boolean restricted, String owner,
@NonNull BiometricUtils utils, int timeoutSec, int statsModality, int sensorId,
@NonNull byte[] hardwareAuthToken, @NonNull String owner, @NonNull BiometricUtils utils,
int timeoutSec, int statsModality, int sensorId,
boolean shouldVibrate) {
super(context, token, listener, userId, restricted, owner, 0 /* cookie */,
sensorId, statsModality, BiometricsProtoEnums.ACTION_ENROLL,
BiometricsProtoEnums.CLIENT_UNKNOWN);
super(context, token, listener, userId, owner, 0 /* cookie */, sensorId, statsModality,
BiometricsProtoEnums.ACTION_ENROLL, BiometricsProtoEnums.CLIENT_UNKNOWN);
mBiometricUtils = utils;
mHardwareAuthToken = Arrays.copyOf(hardwareAuthToken, hardwareAuthToken.length);
mTimeoutSec = timeoutSec;

View File

@@ -31,9 +31,9 @@ public abstract class GenerateChallengeClient<T> extends ClientMonitor<T> {
public GenerateChallengeClient(Context context, IBinder token,
ClientMonitorCallbackConverter listener, String owner, int sensorId) {
super(context, token, listener, 0 /* userId */, false /* restricted */,
owner, 0 /* cookie */, sensorId, BiometricsProtoEnums.MODALITY_UNKNOWN,
BiometricsProtoEnums.ACTION_UNKNOWN, BiometricsProtoEnums.CLIENT_UNKNOWN);
super(context, token, listener, 0 /* userId */, owner, 0 /* cookie */, sensorId,
BiometricsProtoEnums.MODALITY_UNKNOWN, BiometricsProtoEnums.ACTION_UNKNOWN,
BiometricsProtoEnums.CLIENT_UNKNOWN);
}
@Override

View File

@@ -86,20 +86,19 @@ public abstract class InternalCleanupClient<T> extends ClientMonitor<T>
};
protected abstract InternalEnumerateClient<T> getEnumerateClient(Context context, IBinder token,
int userId, boolean restricted, String owner,
int userId, String owner,
List<? extends BiometricAuthenticator.Identifier> enrolledList, BiometricUtils utils,
int sensorId, int statsModality);
int sensorId);
protected abstract RemovalClient<T> getRemovalClient(Context context, IBinder token,
int biometricId, int userId, boolean restricted, String owner, BiometricUtils utils,
int sensorId, int statsModality);
int biometricId, int userId, String owner, BiometricUtils utils, int sensorId);
protected InternalCleanupClient(@NonNull Context context, int userId, boolean restricted,
protected InternalCleanupClient(@NonNull Context context, int userId,
@NonNull String owner, int sensorId, int statsModality,
@NonNull List<? extends BiometricAuthenticator.Identifier> enrolledList,
@NonNull BiometricUtils utils) {
super(context, null /* token */, null /* ClientMonitorCallbackConverter */,
userId, restricted, owner, 0 /* cookie */, sensorId, statsModality,
userId, owner, 0 /* cookie */, sensorId, statsModality,
BiometricsProtoEnums.ACTION_ENUMERATE, BiometricsProtoEnums.CLIENT_UNKNOWN);
mBiometricUtils = utils;
mEnrolledList = enrolledList;
@@ -109,8 +108,8 @@ public abstract class InternalCleanupClient<T> extends ClientMonitor<T>
UserTemplate template = mUnknownHALTemplates.get(0);
mUnknownHALTemplates.remove(template);
mCurrentTask = getRemovalClient(getContext(), getToken(),
template.mIdentifier.getBiometricId(), template.mUserId, getIsRestricted(),
getContext().getPackageName(), mBiometricUtils, getSensorId(), mStatsModality);
template.mIdentifier.getBiometricId(), template.mUserId,
getContext().getPackageName(), mBiometricUtils, getSensorId());
FrameworkStatsLog.write(FrameworkStatsLog.BIOMETRIC_SYSTEM_HEALTH_ISSUE_DETECTED,
mStatsModality,
BiometricsProtoEnums.ISSUE_UNKNOWN_TEMPLATE_ENROLLED_HAL);
@@ -128,8 +127,7 @@ public abstract class InternalCleanupClient<T> extends ClientMonitor<T>
// Start enumeration. Removal will start if necessary, when enumeration is completed.
mCurrentTask = getEnumerateClient(getContext(), getToken(), getTargetUserId(),
getIsRestricted(), getOwnerString(), mEnrolledList, mBiometricUtils, getSensorId(),
mStatsModality);
getOwnerString(), mEnrolledList, mBiometricUtils, getSensorId());
mCurrentTask.start(daemon, mEnumerateFinishCallback);
}

View File

@@ -44,12 +44,12 @@ public abstract class InternalEnumerateClient<T> extends ClientMonitor<T>
private List<BiometricAuthenticator.Identifier> mUnknownHALTemplates = new ArrayList<>();
protected InternalEnumerateClient(@NonNull Context context, @NonNull IBinder token, int userId,
boolean restricted, @NonNull String owner,
@NonNull String owner,
@NonNull List<? extends BiometricAuthenticator.Identifier> enrolledList,
@NonNull BiometricUtils utils, int sensorId, int statsModality) {
// Internal enumerate does not need to send results to anyone. Cleanup (enumerate + remove)
// is all done internally.
super(context, token, null /* ClientMonitorCallbackConverter */, userId, restricted, owner,
super(context, token, null /* ClientMonitorCallbackConverter */, userId, owner,
0 /* cookie */, sensorId, statsModality, BiometricsProtoEnums.ACTION_ENUMERATE,
BiometricsProtoEnums.CLIENT_UNKNOWN);
mEnrolledList = enrolledList;

View File

@@ -36,11 +36,9 @@ public abstract class RemovalClient<T> extends ClientMonitor<T> implements Remov
public RemovalClient(@NonNull Context context, @NonNull IBinder token,
@NonNull ClientMonitorCallbackConverter listener, int biometricId, int userId,
boolean restricted, @NonNull String owner, @NonNull BiometricUtils utils, int sensorId,
int statsModality) {
super(context, token, listener, userId, restricted, owner, 0 /* cookie */,
sensorId, statsModality, BiometricsProtoEnums.ACTION_REMOVE,
BiometricsProtoEnums.CLIENT_UNKNOWN);
@NonNull String owner, @NonNull BiometricUtils utils, int sensorId, int statsModality) {
super(context, token, listener, userId, owner, 0 /* cookie */, sensorId, statsModality,
BiometricsProtoEnums.ACTION_REMOVE, BiometricsProtoEnums.CLIENT_UNKNOWN);
mBiometricId = biometricId;
mBiometricUtils = utils;
}

View File

@@ -24,9 +24,9 @@ import android.os.IBinder;
public abstract class RevokeChallengeClient<T> extends ClientMonitor<T> {
public RevokeChallengeClient(Context context, IBinder token, String owner, int sensorId) {
super(context, token, null /* listener */, 0 /* userId */, false /* restricted */, owner,
0 /* cookie */, sensorId, BiometricsProtoEnums.MODALITY_UNKNOWN,
BiometricsProtoEnums.ACTION_UNKNOWN, BiometricsProtoEnums.CLIENT_UNKNOWN);
super(context, token, null /* listener */, 0 /* userId */, owner, 0 /* cookie */, sensorId,
BiometricsProtoEnums.MODALITY_UNKNOWN, BiometricsProtoEnums.ACTION_UNKNOWN,
BiometricsProtoEnums.CLIENT_UNKNOWN);
}
@Override

View File

@@ -20,6 +20,7 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.Context;
import android.hardware.biometrics.BiometricFaceConstants;
import android.hardware.biometrics.BiometricsProtoEnums;
import android.hardware.biometrics.face.V1_0.IBiometricsFace;
import android.hardware.biometrics.face.V1_0.Status;
import android.hardware.face.FaceManager;
@@ -52,11 +53,11 @@ public class FaceEnrollClient extends EnrollClient<IBiometricsFace> {
FaceEnrollClient(@NonNull Context context, @NonNull IBinder token,
@NonNull ClientMonitorCallbackConverter listener, int userId,
@NonNull byte[] hardwareAuthToken, boolean restricted, @NonNull String owner,
@NonNull BiometricUtils utils, @NonNull int[] disabledFeatures, int timeoutSec,
int statsModality, @Nullable NativeHandle surfaceHandle, int sensorId) {
super(context, token, listener, userId, hardwareAuthToken, restricted,
owner, utils, timeoutSec, statsModality, sensorId, false /* shouldVibrate */);
@NonNull byte[] hardwareAuthToken, @NonNull String owner, @NonNull BiometricUtils utils,
@NonNull int[] disabledFeatures, int timeoutSec, @Nullable NativeHandle surfaceHandle,
int sensorId) {
super(context, token, listener, userId, hardwareAuthToken, owner, utils, timeoutSec,
BiometricsProtoEnums.MODALITY_FACE, sensorId, false /* shouldVibrate */);
mDisabledFeatures = Arrays.copyOf(disabledFeatures, disabledFeatures.length);
mSurfaceHandle = surfaceHandle;
mEnrollIgnoreList = getContext().getResources()

View File

@@ -43,9 +43,9 @@ public class FaceGetFeatureClient extends ClientMonitor<IBiometricsFace> {
FaceGetFeatureClient(@NonNull Context context, @NonNull IBinder token,
@NonNull ClientMonitorCallbackConverter listener, int userId, @NonNull String owner,
int sensorId, int feature, int faceId) {
super(context, token, listener, userId, false /* restricted */, owner,
0 /* cookie */, sensorId, BiometricsProtoEnums.MODALITY_UNKNOWN,
BiometricsProtoEnums.ACTION_UNKNOWN, BiometricsProtoEnums.CLIENT_UNKNOWN);
super(context, token, listener, userId, owner, 0 /* cookie */, sensorId,
BiometricsProtoEnums.MODALITY_UNKNOWN, BiometricsProtoEnums.ACTION_UNKNOWN,
BiometricsProtoEnums.CLIENT_UNKNOWN);
mFeature = feature;
mFaceId = faceId;

View File

@@ -19,6 +19,7 @@ package com.android.server.biometrics.sensors.face;
import android.annotation.NonNull;
import android.content.Context;
import android.hardware.biometrics.BiometricAuthenticator;
import android.hardware.biometrics.BiometricsProtoEnums;
import android.hardware.biometrics.face.V1_0.IBiometricsFace;
import android.os.IBinder;
@@ -36,30 +37,28 @@ import java.util.List;
*/
class FaceInternalCleanupClient extends InternalCleanupClient<IBiometricsFace> {
FaceInternalCleanupClient(@NonNull Context context, int userId, boolean restricted,
@NonNull String owner, int sensorId, int statsModality,
@NonNull List<? extends BiometricAuthenticator.Identifier> enrolledList,
FaceInternalCleanupClient(@NonNull Context context, int userId, @NonNull String owner,
int sensorId, @NonNull List<? extends BiometricAuthenticator.Identifier> enrolledList,
@NonNull BiometricUtils utils) {
super(context, userId, restricted, owner, sensorId, statsModality,
enrolledList, utils);
super(context, userId, owner, sensorId, BiometricsProtoEnums.MODALITY_FACE, enrolledList,
utils);
}
@Override
protected InternalEnumerateClient<IBiometricsFace> getEnumerateClient(Context context,
IBinder token, int userId, boolean restricted, String owner,
IBinder token, int userId, String owner,
List<? extends BiometricAuthenticator.Identifier> enrolledList,
BiometricUtils utils, int sensorId, int statsModality) {
return new FaceInternalEnumerateClient(context, token, userId, restricted, owner,
enrolledList, utils, sensorId, statsModality);
BiometricUtils utils, int sensorId) {
return new FaceInternalEnumerateClient(context, token, userId, owner, enrolledList, utils,
sensorId);
}
@Override
protected RemovalClient<IBiometricsFace> getRemovalClient(Context context, IBinder token,
int biometricId, int userId, boolean restricted, String owner, BiometricUtils utils,
int sensorId, int statsModality) {
int biometricId, int userId, String owner, BiometricUtils utils, int sensorId) {
// Internal remove does not need to send results to anyone. Cleanup (enumerate + remove)
// is all done internally.
return new FaceRemovalClient(context, token, null /* ClientMonitorCallbackConverter */,
biometricId, userId, restricted, owner, utils, sensorId, statsModality);
biometricId, userId, owner, utils, sensorId);
}
}

View File

@@ -19,6 +19,7 @@ package com.android.server.biometrics.sensors.face;
import android.annotation.NonNull;
import android.content.Context;
import android.hardware.biometrics.BiometricAuthenticator;
import android.hardware.biometrics.BiometricsProtoEnums;
import android.hardware.biometrics.face.V1_0.IBiometricsFace;
import android.os.IBinder;
import android.os.RemoteException;
@@ -38,11 +39,11 @@ class FaceInternalEnumerateClient extends InternalEnumerateClient<IBiometricsFac
private static final String TAG = "FaceInternalEnumerateClient";
FaceInternalEnumerateClient(@NonNull Context context, @NonNull IBinder token, int userId,
boolean restricted, @NonNull String owner,
@NonNull String owner,
@NonNull List<? extends BiometricAuthenticator.Identifier> enrolledList,
@NonNull BiometricUtils utils, int sensorId, int statsModality) {
super(context, token, userId, restricted, owner, enrolledList, utils,
sensorId, statsModality);
@NonNull BiometricUtils utils, int sensorId) {
super(context, token, userId, owner, enrolledList, utils, sensorId,
BiometricsProtoEnums.MODALITY_FACE);
}
@Override

View File

@@ -18,6 +18,7 @@ package com.android.server.biometrics.sensors.face;
import android.annotation.NonNull;
import android.content.Context;
import android.hardware.biometrics.BiometricsProtoEnums;
import android.hardware.biometrics.face.V1_0.IBiometricsFace;
import android.os.IBinder;
import android.os.RemoteException;
@@ -36,10 +37,9 @@ class FaceRemovalClient extends RemovalClient<IBiometricsFace> {
FaceRemovalClient(@NonNull Context context, @NonNull IBinder token,
@NonNull ClientMonitorCallbackConverter listener, int biometricId, int userId,
boolean restricted, @NonNull String owner, @NonNull BiometricUtils utils, int sensorId,
int statsModality) {
super(context, token, listener, biometricId, userId, restricted, owner,
utils, sensorId, statsModality);
@NonNull String owner, @NonNull BiometricUtils utils, int sensorId) {
super(context, token, listener, biometricId, userId, owner, utils, sensorId,
BiometricsProtoEnums.MODALITY_FACE);
}
@Override

View File

@@ -39,10 +39,9 @@ public class FaceResetLockoutClient extends ClientMonitor<IBiometricsFace> {
FaceResetLockoutClient(@NonNull Context context, int userId, String owner, int sensorId,
byte[] hardwareAuthToken) {
super(context, null /* token */, null /* listener */, userId,
false /* restricted */, owner, 0 /* cookie */, sensorId,
BiometricsProtoEnums.MODALITY_UNKNOWN, BiometricsProtoEnums.ACTION_UNKNOWN,
BiometricsProtoEnums.CLIENT_UNKNOWN);
super(context, null /* token */, null /* listener */, userId, owner, 0 /* cookie */,
sensorId, BiometricsProtoEnums.MODALITY_UNKNOWN,
BiometricsProtoEnums.ACTION_UNKNOWN, BiometricsProtoEnums.CLIENT_UNKNOWN);
mHardwareAuthToken = new ArrayList<>();
for (byte b : hardwareAuthToken) {

View File

@@ -149,11 +149,9 @@ public class FaceService extends BiometricServiceBase<IBiometricsFace> {
UserHandle.CURRENT);
});
final boolean restricted = isRestricted();
final EnrollClient client = new FaceEnrollClient(getContext(), token,
new ClientMonitorCallbackConverter(receiver),
userId, cryptoToken, restricted, opPackageName, getBiometricUtils(),
disabledFeatures, ENROLL_TIMEOUT_SEC, statsModality(),
new ClientMonitorCallbackConverter(receiver), userId, cryptoToken,
opPackageName, getBiometricUtils(), disabledFeatures, ENROLL_TIMEOUT_SEC,
convertSurfaceToNativeHandle(surface), getSensorId());
enrollInternal(client, userId);
@@ -241,10 +239,9 @@ public class FaceService extends BiometricServiceBase<IBiometricsFace> {
return;
}
final boolean restricted = isRestricted();
final RemovalClient client = new FaceRemovalClient(getContext(), token,
new ClientMonitorCallbackConverter(receiver), faceId, userId,
restricted, opPackageName, getBiometricUtils(), getSensorId(), statsModality());
new ClientMonitorCallbackConverter(receiver), faceId, userId, opPackageName,
getBiometricUtils(), getSensorId());
removeInternal(client);
}
@@ -697,12 +694,10 @@ public class FaceService extends BiometricServiceBase<IBiometricsFace> {
@Override
protected void doTemplateCleanupForUser(int userId) {
final boolean restricted = !hasPermission(getManageBiometricPermission());
final List<? extends BiometricAuthenticator.Identifier> enrolledList =
getEnrolledTemplates(userId);
final FaceInternalCleanupClient client = new FaceInternalCleanupClient(getContext(), userId,
restricted, getContext().getOpPackageName(), getSensorId(), statsModality(),
enrolledList, getBiometricUtils());
getContext().getOpPackageName(), getSensorId(), enrolledList, getBiometricUtils());
cleanupInternal(client);
}

View File

@@ -47,9 +47,9 @@ public class FaceSetFeatureClient extends ClientMonitor<IBiometricsFace> {
@NonNull ClientMonitorCallbackConverter listener, int userId,
@NonNull String owner, int sensorId, int feature, boolean enabled,
byte[] hardwareAuthToken, int faceId) {
super(context, token, listener, userId, false /* restricted */,
owner, 0 /* cookie */, sensorId, BiometricsProtoEnums.MODALITY_UNKNOWN,
BiometricsProtoEnums.ACTION_UNKNOWN, BiometricsProtoEnums.CLIENT_UNKNOWN);
super(context, token, listener, userId, owner, 0 /* cookie */, sensorId,
BiometricsProtoEnums.MODALITY_UNKNOWN, BiometricsProtoEnums.ACTION_UNKNOWN,
BiometricsProtoEnums.CLIENT_UNKNOWN);
mFeature = feature;
mEnabled = enabled;
mFaceId = faceId;

View File

@@ -19,6 +19,7 @@ package com.android.server.biometrics.sensors.fingerprint;
import android.annotation.NonNull;
import android.content.Context;
import android.hardware.biometrics.BiometricFingerprintConstants;
import android.hardware.biometrics.BiometricsProtoEnums;
import android.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint;
import android.os.IBinder;
import android.os.RemoteException;
@@ -39,11 +40,10 @@ public class FingerprintEnrollClient extends EnrollClient<IBiometricsFingerprint
FingerprintEnrollClient(@NonNull Context context, @NonNull IBinder token,
@NonNull ClientMonitorCallbackConverter listener, int userId,
@NonNull byte[] hardwareAuthToken, boolean restricted, @NonNull String owner,
@NonNull BiometricUtils utils, int timeoutSec, int statsModality,
int sensorId, boolean shouldVibrate) {
super(context, token, listener, userId, hardwareAuthToken, restricted,
owner, utils, timeoutSec, statsModality, sensorId, shouldVibrate);
@NonNull byte[] hardwareAuthToken, @NonNull String owner, @NonNull BiometricUtils utils,
int timeoutSec, int sensorId) {
super(context, token, listener, userId, hardwareAuthToken, owner, utils, timeoutSec,
BiometricsProtoEnums.MODALITY_FINGERPRINT, sensorId, true /* shouldVibrate */);
}
@Override

View File

@@ -19,6 +19,7 @@ package com.android.server.biometrics.sensors.fingerprint;
import android.annotation.NonNull;
import android.content.Context;
import android.hardware.biometrics.BiometricAuthenticator;
import android.hardware.biometrics.BiometricsProtoEnums;
import android.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint;
import android.os.IBinder;
@@ -36,31 +37,29 @@ import java.util.List;
*/
class FingerprintInternalCleanupClient extends InternalCleanupClient<IBiometricsFingerprint> {
FingerprintInternalCleanupClient(@NonNull Context context,int userId,
boolean restricted, @NonNull String owner, int sensorId, int statsModality,
@NonNull List<? extends BiometricAuthenticator.Identifier> enrolledList,
FingerprintInternalCleanupClient(@NonNull Context context,int userId, @NonNull String owner,
int sensorId, @NonNull List<? extends BiometricAuthenticator.Identifier> enrolledList,
@NonNull BiometricUtils utils) {
super(context, userId, restricted, owner, sensorId, statsModality,
super(context, userId, owner, sensorId, BiometricsProtoEnums.MODALITY_FINGERPRINT,
enrolledList, utils);
}
@Override
protected InternalEnumerateClient<IBiometricsFingerprint> getEnumerateClient(
Context context, IBinder token, int userId, boolean restricted, String owner,
Context context, IBinder token, int userId, String owner,
List<? extends BiometricAuthenticator.Identifier> enrolledList, BiometricUtils utils,
int sensorId, int statsModality) {
return new FingerprintInternalEnumerateClient(context, token,
userId, restricted, owner, enrolledList, utils, sensorId, statsModality);
int sensorId) {
return new FingerprintInternalEnumerateClient(context, token, userId, owner, enrolledList,
utils, sensorId);
}
@Override
protected RemovalClient<IBiometricsFingerprint> getRemovalClient(Context context,
IBinder token, int biometricId, int userId, boolean restricted, String owner,
BiometricUtils utils, int sensorId, int statsModality) {
protected RemovalClient<IBiometricsFingerprint> getRemovalClient(Context context, IBinder token,
int biometricId, int userId, String owner, BiometricUtils utils, int sensorId) {
// Internal remove does not need to send results to anyone. Cleanup (enumerate + remove)
// is all done internally.
return new FingerprintRemovalClient(context, token,
null /* ClientMonitorCallbackConverter */, biometricId, userId, restricted,
owner, utils, sensorId, statsModality);
null /* ClientMonitorCallbackConverter */, biometricId, userId, owner, utils,
sensorId);
}
}

View File

@@ -19,6 +19,7 @@ package com.android.server.biometrics.sensors.fingerprint;
import android.annotation.NonNull;
import android.content.Context;
import android.hardware.biometrics.BiometricAuthenticator;
import android.hardware.biometrics.BiometricsProtoEnums;
import android.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint;
import android.os.IBinder;
import android.os.RemoteException;
@@ -38,11 +39,11 @@ class FingerprintInternalEnumerateClient extends InternalEnumerateClient<IBiomet
private static final String TAG = "FingerprintInternalEnumerateClient";
FingerprintInternalEnumerateClient(@NonNull Context context, @NonNull IBinder token, int userId,
boolean restricted, @NonNull String owner,
@NonNull String owner,
@NonNull List<? extends BiometricAuthenticator.Identifier> enrolledList,
@NonNull BiometricUtils utils, int sensorId, int statsModality) {
super(context, token, userId, restricted, owner, enrolledList, utils,
sensorId, statsModality);
@NonNull BiometricUtils utils, int sensorId) {
super(context, token, userId, owner, enrolledList, utils, sensorId,
BiometricsProtoEnums.MODALITY_FINGERPRINT);
}
@Override

View File

@@ -18,6 +18,7 @@ package com.android.server.biometrics.sensors.fingerprint;
import android.annotation.NonNull;
import android.content.Context;
import android.hardware.biometrics.BiometricsProtoEnums;
import android.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint;
import android.os.IBinder;
import android.os.RemoteException;
@@ -37,10 +38,9 @@ class FingerprintRemovalClient extends RemovalClient<IBiometricsFingerprint> {
FingerprintRemovalClient(@NonNull Context context, @NonNull IBinder token,
@NonNull ClientMonitorCallbackConverter listener, int biometricId, int userId,
boolean restricted, @NonNull String owner, @NonNull BiometricUtils utils, int sensorId,
int statsModality) {
super(context, token, listener, biometricId, userId, restricted, owner,
utils, sensorId, statsModality);
@NonNull String owner, @NonNull BiometricUtils utils, int sensorId) {
super(context, token, listener, biometricId, userId, owner, utils, sensorId,
BiometricsProtoEnums.MODALITY_FINGERPRINT);
}
@Override

View File

@@ -133,11 +133,9 @@ public class FingerprintService extends BiometricServiceBase<IBiometricsFingerpr
checkPermission(MANAGE_FINGERPRINT);
updateActiveGroup(userId);
final boolean restricted = isRestricted();
final EnrollClient client = new FingerprintEnrollClient(getContext(), token,
new ClientMonitorCallbackConverter(receiver), userId, cryptoToken, restricted,
opPackageName, getBiometricUtils(), ENROLL_TIMEOUT_SEC, statsModality(),
getSensorId(), true /* shouldVibrate */);
new ClientMonitorCallbackConverter(receiver), userId, cryptoToken,
opPackageName, getBiometricUtils(), ENROLL_TIMEOUT_SEC, getSensorId());
enrollInternal(client, userId);
}
@@ -224,10 +222,9 @@ public class FingerprintService extends BiometricServiceBase<IBiometricsFingerpr
return;
}
final boolean restricted = isRestricted();
final RemovalClient client = new FingerprintRemovalClient(getContext(), token,
new ClientMonitorCallbackConverter(receiver), fingerId, userId, restricted,
opPackageName, getBiometricUtils(), getSensorId(), statsModality());
new ClientMonitorCallbackConverter(receiver), fingerId, userId, opPackageName,
getBiometricUtils(), getSensorId());
removeInternal(client);
}
@@ -609,12 +606,11 @@ public class FingerprintService extends BiometricServiceBase<IBiometricsFingerpr
@Override
protected void doTemplateCleanupForUser(int userId) {
final boolean restricted = !hasPermission(getManageBiometricPermission());
final List<? extends BiometricAuthenticator.Identifier> enrolledList =
getEnrolledTemplates(userId);
final FingerprintInternalCleanupClient client = new FingerprintInternalCleanupClient(
getContext(), userId, restricted, getContext().getOpPackageName(), getSensorId(),
statsModality(), enrolledList, getBiometricUtils());
getContext(), userId, getContext().getOpPackageName(), getSensorId(), enrolledList,
getBiometricUtils());
cleanupInternal(client);
}