Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 03325410 authored by Diya Bera's avatar Diya Bera
Browse files

Update AIDL and HIDL utils

Flag: EXEMPT BUG_FIX
Fixes: 359809015
Test: N/A
Change-Id: Iaa62aae90a427d1dcd772c7c765d79dd7a8d86be
parent acdbc9c1
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -80,13 +80,16 @@ public class AidlResponseHandler extends ISessionCallback.Stub {
    private final AuthSessionCoordinator mAuthSessionCoordinator;
    @NonNull
    private final AidlResponseHandlerCallback mAidlResponseHandlerCallback;
    @NonNull
    private final FaceUtils mBiometricUtils;

    public AidlResponseHandler(@NonNull Context context,
            @NonNull BiometricScheduler scheduler, int sensorId, int userId,
            @NonNull LockoutTracker lockoutTracker,
            @NonNull LockoutResetDispatcher lockoutResetDispatcher,
            @NonNull AuthSessionCoordinator authSessionCoordinator,
            @NonNull AidlResponseHandlerCallback aidlResponseHandlerCallback) {
            @NonNull AidlResponseHandlerCallback aidlResponseHandlerCallback,
            @NonNull FaceUtils biometricUtils) {
        mContext = context;
        mScheduler = scheduler;
        mSensorId = sensorId;
@@ -95,6 +98,7 @@ public class AidlResponseHandler extends ISessionCallback.Stub {
        mLockoutResetDispatcher = lockoutResetDispatcher;
        mAuthSessionCoordinator = authSessionCoordinator;
        mAidlResponseHandlerCallback = aidlResponseHandlerCallback;
        mBiometricUtils = biometricUtils;
    }

    @Override
@@ -167,8 +171,7 @@ public class AidlResponseHandler extends ISessionCallback.Stub {
        } else {
            currentUserId = client.getTargetUserId();
        }
        final CharSequence name = FaceUtils.getInstance(mSensorId)
                .getUniqueName(mContext, currentUserId);
        final CharSequence name = mBiometricUtils.getUniqueName(mContext, currentUserId);
        final Face face = new Face(name, enrollmentId, mSensorId);

        handleResponse(FaceEnrollClient.class, (c) -> {
+5 −3
Original line number Diff line number Diff line
@@ -60,7 +60,6 @@ import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
import com.android.server.biometrics.sensors.ClientMonitorCompositeCallback;
import com.android.server.biometrics.sensors.EnrollClient;
import com.android.server.biometrics.sensors.face.FaceService;
import com.android.server.biometrics.sensors.face.FaceUtils;

import java.io.IOException;
import java.util.ArrayList;
@@ -85,6 +84,7 @@ public class FaceEnrollClient extends EnrollClient<AidlSession> {
    private final int mMaxTemplatesPerUser;
    private final boolean mDebugConsent;
    private final @android.hardware.face.FaceEnrollOptions.EnrollReason int mEnrollReason;
    private final BiometricUtils<Face> mBiometricUtils;

    private final ClientMonitorCallback mPreviewHandleDeleterCallback =
            new ClientMonitorCallback() {
@@ -107,7 +107,8 @@ public class FaceEnrollClient extends EnrollClient<AidlSession> {
            @NonNull BiometricLogger logger, @NonNull BiometricContext biometricContext,
            int maxTemplatesPerUser, boolean debugConsent,
            android.hardware.face.FaceEnrollOptions options,
            @NonNull AuthenticationStateListeners authenticationStateListeners) {
            @NonNull AuthenticationStateListeners authenticationStateListeners,
            @NonNull BiometricUtils<Face> biometricUtils) {
        super(context, lazyDaemon, token, listener, userId, hardwareAuthToken, opPackageName, utils,
                timeoutSec, sensorId, false /* shouldVibrate */, logger, biometricContext,
                BiometricFaceConstants.reasonToMetric(options.getEnrollReason()));
@@ -122,6 +123,7 @@ public class FaceEnrollClient extends EnrollClient<AidlSession> {
        mDebugConsent = debugConsent;
        mDisabledFeatures = disabledFeatures;
        mPreviewSurface = previewSurface;
        mBiometricUtils = biometricUtils;
        Slog.w(TAG, "EnrollOptions "
                + android.hardware.face.FaceEnrollOptions.enrollReasonToString(
                        options.getEnrollReason()));
@@ -144,7 +146,7 @@ public class FaceEnrollClient extends EnrollClient<AidlSession> {

    @Override
    protected boolean hasReachedEnrollmentLimit() {
        return FaceUtils.getInstance(getSensorId()).getBiometricsForUser(getContext(),
        return mBiometricUtils.getBiometricsForUser(getContext(),
                getTargetUserId()).size() >= mMaxTemplatesPerUser;
    }

+1 −2
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@ import com.android.server.biometrics.sensors.BiometricUtils;
import com.android.server.biometrics.sensors.InternalCleanupClient;
import com.android.server.biometrics.sensors.InternalEnumerateClient;
import com.android.server.biometrics.sensors.RemovalClient;
import com.android.server.biometrics.sensors.face.FaceUtils;

import java.util.List;
import java.util.Map;
@@ -75,7 +74,7 @@ public class FaceInternalCleanupClient extends InternalCleanupClient<Face, AidlS
    @Override
    protected void onAddUnknownTemplate(int userId,
            @NonNull BiometricAuthenticator.Identifier identifier) {
        FaceUtils.getInstance(getSensorId()).addBiometricForUser(
        mBiometricUtils.addBiometricForUser(
                getContext(), getTargetUserId(), (Face) identifier);
    }

+15 −14
Original line number Diff line number Diff line
@@ -72,7 +72,6 @@ import com.android.server.biometrics.sensors.LockoutResetDispatcher;
import com.android.server.biometrics.sensors.LockoutTracker;
import com.android.server.biometrics.sensors.PerformanceTracker;
import com.android.server.biometrics.sensors.SensorList;
import com.android.server.biometrics.sensors.face.FaceUtils;
import com.android.server.biometrics.sensors.face.ServiceProvider;
import com.android.server.biometrics.sensors.face.UsageStats;
import com.android.server.biometrics.sensors.face.hidl.HidlToAidlSensorAdapter;
@@ -326,8 +325,8 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
        }

        if (Build.isDebuggable()) {
            BiometricUtils<Face> utils = FaceUtils.getInstance(
                    mFaceSensors.keyAt(0));
            BiometricUtils<Face> utils = mFaceSensors.get(
                    mFaceSensors.keyAt(0)).getFaceUtilsInstance();
            for (UserInfo user : UserManager.get(mContext).getAliveUsers()) {
                List<Face> enrollments = utils.getBiometricsForUser(mContext, user.id);
                Slog.d(getTag(), "Expecting enrollments for user " + user.id + ": "
@@ -386,7 +385,7 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
                    new InvalidationRequesterClient<>(mContext, userId, sensorId,
                            BiometricLogger.ofUnknown(mContext),
                            mBiometricContext,
                            FaceUtils.getInstance(sensorId));
                            mFaceSensors.get(sensorId).getFaceUtilsInstance());
            scheduleForSensor(sensorId, client);
        });
    }
@@ -415,7 +414,8 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
    @NonNull
    @Override
    public List<Face> getEnrolledFaces(int sensorId, int userId) {
        return FaceUtils.getInstance(sensorId).getBiometricsForUser(mContext, userId);
        return mFaceSensors.get(sensorId).getFaceUtilsInstance()
                .getBiometricsForUser(mContext, userId);
    }

    @Override
@@ -497,13 +497,14 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
            final FaceEnrollClient client = new FaceEnrollClient(mContext,
                    mFaceSensors.get(sensorId).getLazySession(), token,
                    new ClientMonitorCallbackConverter(receiver), userId, hardwareAuthToken,
                    opPackageName, id, FaceUtils.getInstance(sensorId), disabledFeatures,
                    ENROLL_TIMEOUT_SEC, previewSurface, sensorId,
                    opPackageName, id, mFaceSensors.get(sensorId).getFaceUtilsInstance(),
                    disabledFeatures, ENROLL_TIMEOUT_SEC, previewSurface, sensorId,
                    createLogger(BiometricsProtoEnums.ACTION_ENROLL,
                            BiometricsProtoEnums.CLIENT_UNKNOWN,
                            mAuthenticationStatsCollector),
                    mBiometricContext, maxTemplatesPerUser, debugConsent, options,
                    mAuthenticationStateListeners);
                    mAuthenticationStateListeners,
                    mFaceSensors.get(sensorId).getFaceUtilsInstance());
            scheduleForSensor(sensorId, client, mBiometricStateCallback);
        });
        return id;
@@ -615,7 +616,7 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
    @Override
    public void scheduleRemoveAll(int sensorId, @NonNull IBinder token, int userId,
            @NonNull IFaceServiceReceiver receiver, @NonNull String opPackageName) {
        final List<Face> faces = FaceUtils.getInstance(sensorId)
        final List<Face> faces = mFaceSensors.get(sensorId).getFaceUtilsInstance()
                .getBiometricsForUser(mContext, userId);
        final int[] faceIds = new int[faces.size()];
        for (int i = 0; i < faces.size(); i++) {
@@ -632,7 +633,7 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
            final FaceRemovalClient client = new FaceRemovalClient(mContext,
                    mFaceSensors.get(sensorId).getLazySession(), token,
                    new ClientMonitorCallbackConverter(receiver), faceIds, userId,
                    opPackageName, FaceUtils.getInstance(sensorId), sensorId,
                    opPackageName, mFaceSensors.get(sensorId).getFaceUtilsInstance(), sensorId,
                    createLogger(BiometricsProtoEnums.ACTION_REMOVE,
                            BiometricsProtoEnums.CLIENT_UNKNOWN,
                            mAuthenticationStatsCollector),
@@ -666,7 +667,7 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
            @NonNull IFaceServiceReceiver receiver, @NonNull String opPackageName) {
        mHandler.post(() -> {
            mFaceSensors.get(sensorId).scheduleFaceUpdateActiveUserClient(userId);
            final List<Face> faces = FaceUtils.getInstance(sensorId)
            final List<Face> faces = mFaceSensors.get(sensorId).getFaceUtilsInstance()
                    .getBiometricsForUser(mContext, userId);
            if (faces.isEmpty()) {
                Slog.w(getTag(), "Ignoring setFeature, no templates enrolled for user: " + userId);
@@ -687,7 +688,7 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
            @NonNull ClientMonitorCallbackConverter callback, @NonNull String opPackageName) {
        mHandler.post(() -> {
            mFaceSensors.get(sensorId).scheduleFaceUpdateActiveUserClient(userId);
            final List<Face> faces = FaceUtils.getInstance(sensorId)
            final List<Face> faces = mFaceSensors.get(sensorId).getFaceUtilsInstance()
                    .getBiometricsForUser(mContext, userId);
            if (faces.isEmpty()) {
                Slog.w(getTag(), "Ignoring getFeature, no templates enrolled for user: " + userId);
@@ -727,7 +728,7 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
                                    BiometricsProtoEnums.CLIENT_UNKNOWN,
                                    mAuthenticationStatsCollector),
                            mBiometricContext,
                            FaceUtils.getInstance(sensorId),
                            mFaceSensors.get(sensorId).getFaceUtilsInstance(),
                            mFaceSensors.get(sensorId).getAuthenticatorIds());
            if (favorHalEnrollments) {
                client.setFavorHalEnrollments();
@@ -768,7 +769,7 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
            JSONArray sets = new JSONArray();
            for (UserInfo user : UserManager.get(mContext).getUsers()) {
                final int userId = user.getUserHandle().getIdentifier();
                final int c = FaceUtils.getInstance(sensorId)
                final int c = mFaceSensors.get(sensorId).getFaceUtilsInstance()
                        .getBiometricsForUser(mContext, userId).size();
                JSONObject set = new JSONObject();
                set.put("id", userId);
+6 −3
Original line number Diff line number Diff line
@@ -158,7 +158,7 @@ public class Sensor {
                                        Slog.e(TAG, "Face sensor hardware unavailable.");
                                        mCurrentSession = null;
                                    }
                                });
                                }, getFaceUtilsInstance());

                        return Sensor.this.getStartUserClient(resultController, sensorId,
                                newUserId, provider);
@@ -280,8 +280,7 @@ public class Sensor {
            final long userToken = proto.start(SensorStateProto.USER_STATES);
            proto.write(UserStateProto.USER_ID, userId);
            proto.write(UserStateProto.NUM_ENROLLED,
                    FaceUtils.getInstance(mSensorProperties.sensorId)
                            .getBiometricsForUser(mContext, userId).size());
                    getFaceUtilsInstance().getBiometricsForUser(mContext, userId).size());
            proto.end(userToken);
        }

@@ -358,4 +357,8 @@ public class Sensor {
            Supplier<AidlSession> lazySession) {
        mLazySession = lazySession;
    }

    public FaceUtils getFaceUtilsInstance() {
        return FaceUtils.getInstance(mSensorProperties.sensorId);
    }
}
Loading