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

Commit 97e255eb authored by Lalit Maganti's avatar Lalit Maganti
Browse files

Revert "Remove IPC calls from KeyguardUpdateMonitor"

This reverts commit c01528ff.

Bug: 251142195
Reason for revert: b/251142195 broke a lot of Droidmonitored tests

Change-Id: Ice67c31eb377bbf4634a9c338445b947b31706df
parent c01528ff
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -2182,8 +2182,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
    private void updateFaceEnrolled(int userId) {
        mIsFaceEnrolled = whitelistIpcs(
                () -> mFaceManager != null && mFaceManager.isHardwareDetected()
                        && mBiometricEnabledForUser.get(userId))
                && mAuthController.isFaceAuthEnrolled(userId);
                        && mFaceManager.hasEnrolledTemplates(userId)
                        && mBiometricEnabledForUser.get(userId));
    }

    public boolean isFaceSupported() {
+1 −12
Original line number Diff line number Diff line
@@ -151,7 +151,6 @@ public class AuthController extends CoreStartable implements CommandQueue.Callba
    @Nullable private List<FingerprintSensorPropertiesInternal> mSidefpsProps;

    @NonNull private final SparseBooleanArray mUdfpsEnrolledForUser;
    @NonNull private final SparseBooleanArray mFaceEnrolledForUser;
    @NonNull private final SensorPrivacyManager mSensorPrivacyManager;
    private final WakefulnessLifecycle mWakefulnessLifecycle;
    private boolean mAllFingerprintAuthenticatorsRegistered;
@@ -346,15 +345,6 @@ public class AuthController extends CoreStartable implements CommandQueue.Callba
                }
            }
        }
        if (mFaceProps == null) {
            Log.d(TAG, "handleEnrollmentsChanged, mFaceProps is null");
        } else {
            for (FaceSensorPropertiesInternal prop : mFaceProps) {
                if (prop.sensorId == sensorId) {
                    mFaceEnrolledForUser.put(userId, hasEnrollments);
                }
            }
        }
        for (Callback cb : mCallbacks) {
            cb.onEnrollmentsChanged(modality);
        }
@@ -719,7 +709,6 @@ public class AuthController extends CoreStartable implements CommandQueue.Callba
        mWindowManager = windowManager;
        mInteractionJankMonitor = jankMonitor;
        mUdfpsEnrolledForUser = new SparseBooleanArray();
        mFaceEnrolledForUser = new SparseBooleanArray();
        mVibratorHelper = vibrator;

        mOrientationListener = new BiometricDisplayListener(
@@ -1068,7 +1057,7 @@ public class AuthController extends CoreStartable implements CommandQueue.Callba
            return false;
        }

        return mFaceEnrolledForUser.get(userId);
        return mFaceManager.hasEnrolledTemplates(userId);
    }

    /**
+4 −5
Original line number Diff line number Diff line
@@ -588,9 +588,8 @@ public class FaceService extends SystemService {
                }
                try {
                    final SensorProps[] props = face.getSensorProps();
                    final FaceProvider provider = new FaceProvider(getContext(),
                            mBiometricStateCallback, props, instance, mLockoutResetDispatcher,
                            BiometricContext.getInstance(getContext()));
                    final FaceProvider provider = new FaceProvider(getContext(), props, instance,
                            mLockoutResetDispatcher, BiometricContext.getInstance(getContext()));
                    providers.add(provider);
                } catch (RemoteException e) {
                    Slog.e(TAG, "Remote exception in getSensorProps: " + fqName);
@@ -601,14 +600,14 @@ public class FaceService extends SystemService {
        }

        @android.annotation.EnforcePermission(android.Manifest.permission.USE_BIOMETRIC_INTERNAL)
        @Override // Binder call
        public void registerAuthenticators(
                @NonNull List<FaceSensorPropertiesInternal> hidlSensors) {
            mRegistry.registerAll(() -> {
                final List<ServiceProvider> providers = new ArrayList<>();
                for (FaceSensorPropertiesInternal hidlSensor : hidlSensors) {
                    providers.add(
                            Face10.newInstance(getContext(), mBiometricStateCallback,
                                    hidlSensor, mLockoutResetDispatcher));
                            Face10.newInstance(getContext(), hidlSensor, mLockoutResetDispatcher));
                }
                providers.addAll(getAidlProviders());
                return providers;
+3 −1
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.server.biometrics.sensors.face.aidl;

import static android.Manifest.permission.TEST_BIOMETRIC;

import android.annotation.NonNull;
import android.content.Context;
import android.hardware.biometrics.ITestSession;
@@ -31,8 +33,8 @@ import android.os.RemoteException;
import android.util.Slog;

import com.android.server.biometrics.HardwareAuthTokenUtils;
import com.android.server.biometrics.Utils;
import com.android.server.biometrics.sensors.BaseClientMonitor;
import com.android.server.biometrics.sensors.BiometricStateCallback;
import com.android.server.biometrics.sensors.ClientMonitorCallback;
import com.android.server.biometrics.sensors.face.FaceUtils;

+5 −23
Original line number Diff line number Diff line
@@ -52,10 +52,8 @@ import com.android.server.biometrics.log.BiometricContext;
import com.android.server.biometrics.log.BiometricLogger;
import com.android.server.biometrics.sensors.AuthenticationClient;
import com.android.server.biometrics.sensors.BaseClientMonitor;
import com.android.server.biometrics.sensors.BiometricStateCallback;
import com.android.server.biometrics.sensors.ClientMonitorCallback;
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
import com.android.server.biometrics.sensors.ClientMonitorCompositeCallback;
import com.android.server.biometrics.sensors.InvalidationRequesterClient;
import com.android.server.biometrics.sensors.LockoutResetDispatcher;
import com.android.server.biometrics.sensors.PerformanceTracker;
@@ -82,7 +80,6 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
    private boolean mTestHalEnabled;

    @NonNull private final Context mContext;
    @NonNull private final BiometricStateCallback mBiometricStateCallback;
    @NonNull private final String mHalInstanceName;
    @NonNull @VisibleForTesting
    final SparseArray<Sensor> mSensors; // Map of sensors that this HAL supports
@@ -124,14 +121,11 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
        }
    }

    public FaceProvider(@NonNull Context context,
            @NonNull BiometricStateCallback biometricStateCallback,
            @NonNull SensorProps[] props,
    public FaceProvider(@NonNull Context context, @NonNull SensorProps[] props,
            @NonNull String halInstanceName,
            @NonNull LockoutResetDispatcher lockoutResetDispatcher,
            @NonNull BiometricContext biometricContext) {
        mContext = context;
        mBiometricStateCallback = biometricStateCallback;
        mHalInstanceName = halInstanceName;
        mSensors = new SparseArray<>();
        mHandler = new Handler(Looper.getMainLooper());
@@ -369,20 +363,9 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
                            BiometricsProtoEnums.CLIENT_UNKNOWN),
                    mBiometricContext, maxTemplatesPerUser, debugConsent);
            scheduleForSensor(sensorId, client, new ClientMonitorCallback() {
                @Override
                public void onClientStarted(@NonNull BaseClientMonitor clientMonitor) {
                    mBiometricStateCallback.onClientStarted(clientMonitor);
                }

                @Override
                public void onBiometricAction(int action) {
                    mBiometricStateCallback.onBiometricAction(action);
                }

                @Override
                public void onClientFinished(@NonNull BaseClientMonitor clientMonitor,
                        boolean success) {
                    mBiometricStateCallback.onClientFinished(clientMonitor, success);
                    if (success) {
                        scheduleLoadAuthenticatorIdsForUser(sensorId, userId);
                        scheduleInvalidationRequest(sensorId, userId);
@@ -412,7 +395,7 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
                    token, id, callback, userId, opPackageName, sensorId,
                    createLogger(BiometricsProtoEnums.ACTION_AUTHENTICATE, statsClient),
                    mBiometricContext, isStrongBiometric);
            scheduleForSensor(sensorId, client, mBiometricStateCallback);
            scheduleForSensor(sensorId, client);
        });

        return id;
@@ -439,7 +422,7 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
                    mBiometricContext, isStrongBiometric,
                    mUsageStats, mSensors.get(sensorId).getLockoutCache(),
                    allowBackgroundAuthentication, isKeyguardBypassEnabled);
            scheduleForSensor(sensorId, client, mBiometricStateCallback);
            scheduleForSensor(sensorId, client);
        });
    }

@@ -494,7 +477,7 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
                            BiometricsProtoEnums.CLIENT_UNKNOWN),
                    mBiometricContext,
                    mSensors.get(sensorId).getAuthenticatorIds());
            scheduleForSensor(sensorId, client, mBiometricStateCallback);
            scheduleForSensor(sensorId, client);
        });
    }

@@ -582,8 +565,7 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
            if (favorHalEnrollments) {
                client.setFavorHalEnrollments();
            }
            scheduleForSensor(sensorId, client, new ClientMonitorCompositeCallback(callback,
                    mBiometricStateCallback));
            scheduleForSensor(sensorId, client, callback);
        });
    }

Loading