Loading services/core/java/com/android/server/biometrics/sensors/face/FaceService.java +18 −13 Original line number Diff line number Diff line Loading @@ -127,17 +127,6 @@ public class FaceService extends SystemService implements BiometricServiceCallba return properties; } @NonNull private List<Face> getEnrolledFaces(int userId, String opPackageName) { final Pair<Integer, ServiceProvider> provider = getSingleProvider(); if (provider == null) { Slog.w(TAG, "Null provider for getEnrolledFaces, caller: " + opPackageName); return Collections.emptyList(); } return provider.second.getEnrolledFaces(provider.first, userId); } /** * Receives the incoming binder calls from FaceManager. */ Loading Loading @@ -438,6 +427,7 @@ public class FaceService extends SystemService implements BiometricServiceCallba pw.println("Dumping for sensorId: " + props.sensorId + ", provider: " + provider.getClass().getSimpleName()); provider.dumpInternal(props.sensorId, pw); pw.println(); } } } Loading Loading @@ -471,7 +461,13 @@ public class FaceService extends SystemService implements BiometricServiceCallba Utils.checkPermission(getContext(), INTERACT_ACROSS_USERS); } return FaceService.this.getEnrolledFaces(userId, opPackageName); final ServiceProvider provider = getProviderForSensor(sensorId); if (provider == null) { Slog.w(TAG, "Null provider for getEnrolledFaces, caller: " + opPackageName); return Collections.emptyList(); } return provider.getEnrolledFaces(sensorId, userId); } @Override // Binder call Loading @@ -482,7 +478,16 @@ public class FaceService extends SystemService implements BiometricServiceCallba Utils.checkPermission(getContext(), INTERACT_ACROSS_USERS); } return !FaceService.this.getEnrolledFaces(userId, opPackageName).isEmpty(); final ServiceProvider provider = getProviderForSensor(sensorId); if (provider == null) { Slog.w(TAG, "Null provider for hasEnrolledFaces, caller: " + opPackageName); return false; } final boolean enrolled = provider.getEnrolledFaces(sensorId, userId).size() > 0; Slog.d(TAG, "hasEnrolledFaces, sensor: " + sensorId + ", enrolled: " + enrolled); return provider.getEnrolledFaces(sensorId, userId).size() > 0; } @Override // Binder call Loading services/core/java/com/android/server/biometrics/sensors/face/FaceUtils.java +4 −4 Original line number Diff line number Diff line Loading @@ -72,13 +72,13 @@ public class FaceUtils implements BiometricUtils<Face> { } /** * Legacy getter for {@link android.hardware.biometrics.face.V1_0} and its extended subclasses, * which do not support a well defined sensorId from the HAL. * Legacy getter for {@link android.hardware.biometrics.face.V1_0} and its extended subclasses. * Framework-side cache is always stored in the same file, regardless of sensorId. */ public static FaceUtils getInstance() { public static FaceUtils getLegacyInstance(int sensorId) { // Note that sensorId for legacy services can be hard-coded to 0 since it's only used // to index into the sensor states map. return getInstance(0 /* sensorId */, LEGACY_FACE_FILE); return getInstance(sensorId, LEGACY_FACE_FILE); } private FaceUtils(String fileName) { Loading services/core/java/com/android/server/biometrics/sensors/face/hidl/BiometricTestSessionImpl.java +2 −1 Original line number Diff line number Diff line Loading @@ -153,7 +153,8 @@ public class BiometricTestSessionImpl extends ITestSession.Stub { Utils.checkPermission(mContext, TEST_BIOMETRIC); // Fake authentication with any of the existing fingers List<Face> faces = FaceUtils.getInstance().getBiometricsForUser(mContext, userId); List<Face> faces = FaceUtils.getLegacyInstance(mSensorId) .getBiometricsForUser(mContext, userId); if (faces.isEmpty()) { Slog.w(TAG, "No faces, returning"); return; Loading services/core/java/com/android/server/biometrics/sensors/face/hidl/Face10.java +9 −8 Original line number Diff line number Diff line Loading @@ -166,7 +166,7 @@ public class Face10 implements IHwBinder.DeathRecipient, ServiceProvider { @Override public void onEnrollResult(long deviceId, int faceId, int userId, int remaining) { mHandler.post(() -> { final CharSequence name = FaceUtils.getInstance() final CharSequence name = FaceUtils.getLegacyInstance(mSensorId) .getUniqueName(mContext, userId); final Face face = new Face(name, faceId, deviceId); Loading Loading @@ -471,7 +471,7 @@ public class Face10 implements IHwBinder.DeathRecipient, ServiceProvider { @Override @NonNull public List<Face> getEnrolledFaces(int sensorId, int userId) { return FaceUtils.getInstance().getBiometricsForUser(mContext, userId); return FaceUtils.getLegacyInstance(mSensorId).getBiometricsForUser(mContext, userId); } @Override Loading Loading @@ -610,8 +610,8 @@ public class Face10 implements IHwBinder.DeathRecipient, ServiceProvider { final FaceEnrollClient client = new FaceEnrollClient(mContext, mLazyDaemon, token, new ClientMonitorCallbackConverter(receiver), userId, hardwareAuthToken, opPackageName, FaceUtils.getInstance(), disabledFeatures, ENROLL_TIMEOUT_SEC, surfaceHandle, mSensorId); opPackageName, FaceUtils.getLegacyInstance(mSensorId), disabledFeatures, ENROLL_TIMEOUT_SEC, surfaceHandle, mSensorId); mScheduler.scheduleClientMonitor(client, new ClientMonitor.Callback() { @Override Loading Loading @@ -665,7 +665,7 @@ public class Face10 implements IHwBinder.DeathRecipient, ServiceProvider { final FaceRemovalClient client = new FaceRemovalClient(mContext, mLazyDaemon, token, new ClientMonitorCallbackConverter(receiver), faceId, userId, opPackageName, FaceUtils.getInstance(), mSensorId, mAuthenticatorIds); FaceUtils.getLegacyInstance(mSensorId), mSensorId, mAuthenticatorIds); mScheduler.scheduleClientMonitor(client); }); } Loading Loading @@ -748,7 +748,7 @@ public class Face10 implements IHwBinder.DeathRecipient, ServiceProvider { final List<Face> enrolledList = getEnrolledFaces(mSensorId, userId); final FaceInternalCleanupClient client = new FaceInternalCleanupClient(mContext, mLazyDaemon, userId, mContext.getOpPackageName(), mSensorId, enrolledList, FaceUtils.getInstance(), mAuthenticatorIds); FaceUtils.getLegacyInstance(mSensorId), mAuthenticatorIds); mScheduler.scheduleClientMonitor(client); }); } Loading Loading @@ -777,7 +777,7 @@ public class Face10 implements IHwBinder.DeathRecipient, ServiceProvider { final long userToken = proto.start(SensorStateProto.USER_STATES); proto.write(UserStateProto.USER_ID, userId); proto.write(UserStateProto.NUM_ENROLLED, FaceUtils.getInstance() proto.write(UserStateProto.NUM_ENROLLED, FaceUtils.getLegacyInstance(mSensorId) .getBiometricsForUser(mContext, userId).size()); proto.end(userToken); } Loading @@ -801,7 +801,8 @@ public class Face10 implements IHwBinder.DeathRecipient, ServiceProvider { JSONArray sets = new JSONArray(); for (UserInfo user : UserManager.get(mContext).getUsers()) { final int userId = user.getUserHandle().getIdentifier(); final int c = FaceUtils.getInstance().getBiometricsForUser(mContext, userId).size(); final int c = FaceUtils.getLegacyInstance(mSensorId) .getBiometricsForUser(mContext, userId).size(); JSONObject set = new JSONObject(); set.put("id", userId); set.put("count", c); Loading services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintUtils.java +3 −3 Original line number Diff line number Diff line Loading @@ -75,12 +75,12 @@ public class FingerprintUtils implements BiometricUtils<Fingerprint> { /** * Legacy getter for {@link android.hardware.biometrics.fingerprint.V2_1} ands its extended * subclasses, which do not support a well defined sensorId from the HAL. * subclasses. Framework-side cache is always stored in the same file, regardless of sensorId. */ public static FingerprintUtils getInstance() { public static FingerprintUtils getLegacyInstance(int sensorId) { // Note that sensorId for legacy services can be hard-coded to 0 since it's only used // to index into the sensor states map. return getInstance(0 /* sensorId */, LEGACY_FINGERPRINT_FILE); return getInstance(sensorId, LEGACY_FINGERPRINT_FILE); } private FingerprintUtils(String fileName) { Loading Loading
services/core/java/com/android/server/biometrics/sensors/face/FaceService.java +18 −13 Original line number Diff line number Diff line Loading @@ -127,17 +127,6 @@ public class FaceService extends SystemService implements BiometricServiceCallba return properties; } @NonNull private List<Face> getEnrolledFaces(int userId, String opPackageName) { final Pair<Integer, ServiceProvider> provider = getSingleProvider(); if (provider == null) { Slog.w(TAG, "Null provider for getEnrolledFaces, caller: " + opPackageName); return Collections.emptyList(); } return provider.second.getEnrolledFaces(provider.first, userId); } /** * Receives the incoming binder calls from FaceManager. */ Loading Loading @@ -438,6 +427,7 @@ public class FaceService extends SystemService implements BiometricServiceCallba pw.println("Dumping for sensorId: " + props.sensorId + ", provider: " + provider.getClass().getSimpleName()); provider.dumpInternal(props.sensorId, pw); pw.println(); } } } Loading Loading @@ -471,7 +461,13 @@ public class FaceService extends SystemService implements BiometricServiceCallba Utils.checkPermission(getContext(), INTERACT_ACROSS_USERS); } return FaceService.this.getEnrolledFaces(userId, opPackageName); final ServiceProvider provider = getProviderForSensor(sensorId); if (provider == null) { Slog.w(TAG, "Null provider for getEnrolledFaces, caller: " + opPackageName); return Collections.emptyList(); } return provider.getEnrolledFaces(sensorId, userId); } @Override // Binder call Loading @@ -482,7 +478,16 @@ public class FaceService extends SystemService implements BiometricServiceCallba Utils.checkPermission(getContext(), INTERACT_ACROSS_USERS); } return !FaceService.this.getEnrolledFaces(userId, opPackageName).isEmpty(); final ServiceProvider provider = getProviderForSensor(sensorId); if (provider == null) { Slog.w(TAG, "Null provider for hasEnrolledFaces, caller: " + opPackageName); return false; } final boolean enrolled = provider.getEnrolledFaces(sensorId, userId).size() > 0; Slog.d(TAG, "hasEnrolledFaces, sensor: " + sensorId + ", enrolled: " + enrolled); return provider.getEnrolledFaces(sensorId, userId).size() > 0; } @Override // Binder call Loading
services/core/java/com/android/server/biometrics/sensors/face/FaceUtils.java +4 −4 Original line number Diff line number Diff line Loading @@ -72,13 +72,13 @@ public class FaceUtils implements BiometricUtils<Face> { } /** * Legacy getter for {@link android.hardware.biometrics.face.V1_0} and its extended subclasses, * which do not support a well defined sensorId from the HAL. * Legacy getter for {@link android.hardware.biometrics.face.V1_0} and its extended subclasses. * Framework-side cache is always stored in the same file, regardless of sensorId. */ public static FaceUtils getInstance() { public static FaceUtils getLegacyInstance(int sensorId) { // Note that sensorId for legacy services can be hard-coded to 0 since it's only used // to index into the sensor states map. return getInstance(0 /* sensorId */, LEGACY_FACE_FILE); return getInstance(sensorId, LEGACY_FACE_FILE); } private FaceUtils(String fileName) { Loading
services/core/java/com/android/server/biometrics/sensors/face/hidl/BiometricTestSessionImpl.java +2 −1 Original line number Diff line number Diff line Loading @@ -153,7 +153,8 @@ public class BiometricTestSessionImpl extends ITestSession.Stub { Utils.checkPermission(mContext, TEST_BIOMETRIC); // Fake authentication with any of the existing fingers List<Face> faces = FaceUtils.getInstance().getBiometricsForUser(mContext, userId); List<Face> faces = FaceUtils.getLegacyInstance(mSensorId) .getBiometricsForUser(mContext, userId); if (faces.isEmpty()) { Slog.w(TAG, "No faces, returning"); return; Loading
services/core/java/com/android/server/biometrics/sensors/face/hidl/Face10.java +9 −8 Original line number Diff line number Diff line Loading @@ -166,7 +166,7 @@ public class Face10 implements IHwBinder.DeathRecipient, ServiceProvider { @Override public void onEnrollResult(long deviceId, int faceId, int userId, int remaining) { mHandler.post(() -> { final CharSequence name = FaceUtils.getInstance() final CharSequence name = FaceUtils.getLegacyInstance(mSensorId) .getUniqueName(mContext, userId); final Face face = new Face(name, faceId, deviceId); Loading Loading @@ -471,7 +471,7 @@ public class Face10 implements IHwBinder.DeathRecipient, ServiceProvider { @Override @NonNull public List<Face> getEnrolledFaces(int sensorId, int userId) { return FaceUtils.getInstance().getBiometricsForUser(mContext, userId); return FaceUtils.getLegacyInstance(mSensorId).getBiometricsForUser(mContext, userId); } @Override Loading Loading @@ -610,8 +610,8 @@ public class Face10 implements IHwBinder.DeathRecipient, ServiceProvider { final FaceEnrollClient client = new FaceEnrollClient(mContext, mLazyDaemon, token, new ClientMonitorCallbackConverter(receiver), userId, hardwareAuthToken, opPackageName, FaceUtils.getInstance(), disabledFeatures, ENROLL_TIMEOUT_SEC, surfaceHandle, mSensorId); opPackageName, FaceUtils.getLegacyInstance(mSensorId), disabledFeatures, ENROLL_TIMEOUT_SEC, surfaceHandle, mSensorId); mScheduler.scheduleClientMonitor(client, new ClientMonitor.Callback() { @Override Loading Loading @@ -665,7 +665,7 @@ public class Face10 implements IHwBinder.DeathRecipient, ServiceProvider { final FaceRemovalClient client = new FaceRemovalClient(mContext, mLazyDaemon, token, new ClientMonitorCallbackConverter(receiver), faceId, userId, opPackageName, FaceUtils.getInstance(), mSensorId, mAuthenticatorIds); FaceUtils.getLegacyInstance(mSensorId), mSensorId, mAuthenticatorIds); mScheduler.scheduleClientMonitor(client); }); } Loading Loading @@ -748,7 +748,7 @@ public class Face10 implements IHwBinder.DeathRecipient, ServiceProvider { final List<Face> enrolledList = getEnrolledFaces(mSensorId, userId); final FaceInternalCleanupClient client = new FaceInternalCleanupClient(mContext, mLazyDaemon, userId, mContext.getOpPackageName(), mSensorId, enrolledList, FaceUtils.getInstance(), mAuthenticatorIds); FaceUtils.getLegacyInstance(mSensorId), mAuthenticatorIds); mScheduler.scheduleClientMonitor(client); }); } Loading Loading @@ -777,7 +777,7 @@ public class Face10 implements IHwBinder.DeathRecipient, ServiceProvider { final long userToken = proto.start(SensorStateProto.USER_STATES); proto.write(UserStateProto.USER_ID, userId); proto.write(UserStateProto.NUM_ENROLLED, FaceUtils.getInstance() proto.write(UserStateProto.NUM_ENROLLED, FaceUtils.getLegacyInstance(mSensorId) .getBiometricsForUser(mContext, userId).size()); proto.end(userToken); } Loading @@ -801,7 +801,8 @@ public class Face10 implements IHwBinder.DeathRecipient, ServiceProvider { JSONArray sets = new JSONArray(); for (UserInfo user : UserManager.get(mContext).getUsers()) { final int userId = user.getUserHandle().getIdentifier(); final int c = FaceUtils.getInstance().getBiometricsForUser(mContext, userId).size(); final int c = FaceUtils.getLegacyInstance(mSensorId) .getBiometricsForUser(mContext, userId).size(); JSONObject set = new JSONObject(); set.put("id", userId); set.put("count", c); Loading
services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintUtils.java +3 −3 Original line number Diff line number Diff line Loading @@ -75,12 +75,12 @@ public class FingerprintUtils implements BiometricUtils<Fingerprint> { /** * Legacy getter for {@link android.hardware.biometrics.fingerprint.V2_1} ands its extended * subclasses, which do not support a well defined sensorId from the HAL. * subclasses. Framework-side cache is always stored in the same file, regardless of sensorId. */ public static FingerprintUtils getInstance() { public static FingerprintUtils getLegacyInstance(int sensorId) { // Note that sensorId for legacy services can be hard-coded to 0 since it's only used // to index into the sensor states map. return getInstance(0 /* sensorId */, LEGACY_FINGERPRINT_FILE); return getInstance(sensorId, LEGACY_FINGERPRINT_FILE); } private FingerprintUtils(String fileName) { Loading