Loading services/core/Android.bp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -103,7 +103,7 @@ java_library_static { "android.hardware.power-java_static", "android.hardware.power-java_static", ], ], srcs: [ srcs: [ ":android.hardware.biometrics.face-V3-java-source", ":android.hardware.biometrics.face-V4-java-source", ":android.hardware.tv.hdmi.connection-V1-java-source", ":android.hardware.tv.hdmi.connection-V1-java-source", ":android.hardware.tv.hdmi.earc-V1-java-source", ":android.hardware.tv.hdmi.earc-V1-java-source", ":statslog-art-java-gen", ":statslog-art-java-gen", Loading services/core/java/com/android/server/biometrics/sensors/face/aidl/AidlSession.java +7 −0 Original line number Original line Diff line number Diff line Loading @@ -75,4 +75,11 @@ public class AidlSession { public boolean hasContextMethods() { public boolean hasContextMethods() { return mHalInterfaceVersion >= 2; return mHalInterfaceVersion >= 2; } } /** * If this backend implements enroll methods with an {@link android.view.Surface}. */ public boolean supportsFaceEnrollOptions() { return mHalInterfaceVersion >= 4; } } } services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceEnrollClient.java +16 −3 Original line number Original line Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.content.Context; import android.hardware.biometrics.BiometricFaceConstants; import android.hardware.biometrics.BiometricFaceConstants; import android.hardware.biometrics.common.ICancellationSignal; import android.hardware.biometrics.common.ICancellationSignal; import android.hardware.biometrics.face.EnrollmentType; import android.hardware.biometrics.face.EnrollmentType; import android.hardware.biometrics.face.FaceEnrollOptions; import android.hardware.biometrics.face.Feature; import android.hardware.biometrics.face.Feature; import android.hardware.biometrics.face.IFace; import android.hardware.biometrics.face.IFace; import android.hardware.common.NativeHandle; import android.hardware.common.NativeHandle; Loading Loading @@ -201,9 +202,21 @@ public class FaceEnrollClient extends EnrollClient<AidlSession> { if (session.hasContextMethods()) { if (session.hasContextMethods()) { final OperationContextExt opContext = getOperationContext(); final OperationContextExt opContext = getOperationContext(); final ICancellationSignal cancel = session.getSession().enrollWithContext( ICancellationSignal cancel; if (session.supportsFaceEnrollOptions()) { FaceEnrollOptions options = new FaceEnrollOptions(); options.hardwareAuthToken = hat; options.enrollmentType = EnrollmentType.DEFAULT; options.features = features; options.nativeHandlePreview = null; options.context = opContext.toAidlContext(); options.surfacePreview = mPreviewSurface; cancel = session.getSession().enrollWithOptions(options); } else { cancel = session.getSession().enrollWithContext( hat, EnrollmentType.DEFAULT, features, mHwPreviewHandle, hat, EnrollmentType.DEFAULT, features, mHwPreviewHandle, opContext.toAidlContext()); opContext.toAidlContext()); } getBiometricContext().subscribe(opContext, ctx -> { getBiometricContext().subscribe(opContext, ctx -> { try { try { session.getSession().onContextChanged(ctx); session.getSession().onContextChanged(ctx); Loading services/core/java/com/android/server/biometrics/sensors/face/aidl/TestHal.java +7 −0 Original line number Original line Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.hardware.biometrics.common.ICancellationSignal; import android.hardware.biometrics.common.OperationContext; import android.hardware.biometrics.common.OperationContext; import android.hardware.biometrics.face.EnrollmentStageConfig; import android.hardware.biometrics.face.EnrollmentStageConfig; import android.hardware.biometrics.face.Error; import android.hardware.biometrics.face.Error; import android.hardware.biometrics.face.FaceEnrollOptions; import android.hardware.biometrics.face.IFace; import android.hardware.biometrics.face.IFace; import android.hardware.biometrics.face.ISession; import android.hardware.biometrics.face.ISession; import android.hardware.biometrics.face.ISessionCallback; import android.hardware.biometrics.face.ISessionCallback; Loading Loading @@ -212,6 +213,12 @@ public class TestHal extends IFace.Stub { public void onContextChanged(OperationContext context) { public void onContextChanged(OperationContext context) { Slog.w(TAG, "onContextChanged"); Slog.w(TAG, "onContextChanged"); } } @Override public ICancellationSignal enrollWithOptions(FaceEnrollOptions options) { return enroll(options.hardwareAuthToken, options.enrollmentType, options.features, options.nativeHandlePreview); } }; }; } } } } services/core/java/com/android/server/biometrics/sensors/face/hidl/AidlToHidlAdapter.java +7 −0 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.hardware.biometrics.BiometricFaceConstants; import android.hardware.biometrics.common.ICancellationSignal; import android.hardware.biometrics.common.ICancellationSignal; import android.hardware.biometrics.common.OperationContext; import android.hardware.biometrics.common.OperationContext; import android.hardware.biometrics.face.EnrollmentStageConfig; import android.hardware.biometrics.face.EnrollmentStageConfig; import android.hardware.biometrics.face.FaceEnrollOptions; import android.hardware.biometrics.face.ISession; import android.hardware.biometrics.face.ISession; import android.hardware.biometrics.face.V1_0.IBiometricsFace; import android.hardware.biometrics.face.V1_0.IBiometricsFace; import android.hardware.biometrics.face.V1_0.OptionalBool; import android.hardware.biometrics.face.V1_0.OptionalBool; Loading Loading @@ -344,4 +345,10 @@ public class AidlToHidlAdapter implements ISession { return null; return null; } } } } @Override public ICancellationSignal enrollWithOptions(FaceEnrollOptions options) { //Unsupported in HIDL return null; } } } Loading
services/core/Android.bp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -103,7 +103,7 @@ java_library_static { "android.hardware.power-java_static", "android.hardware.power-java_static", ], ], srcs: [ srcs: [ ":android.hardware.biometrics.face-V3-java-source", ":android.hardware.biometrics.face-V4-java-source", ":android.hardware.tv.hdmi.connection-V1-java-source", ":android.hardware.tv.hdmi.connection-V1-java-source", ":android.hardware.tv.hdmi.earc-V1-java-source", ":android.hardware.tv.hdmi.earc-V1-java-source", ":statslog-art-java-gen", ":statslog-art-java-gen", Loading
services/core/java/com/android/server/biometrics/sensors/face/aidl/AidlSession.java +7 −0 Original line number Original line Diff line number Diff line Loading @@ -75,4 +75,11 @@ public class AidlSession { public boolean hasContextMethods() { public boolean hasContextMethods() { return mHalInterfaceVersion >= 2; return mHalInterfaceVersion >= 2; } } /** * If this backend implements enroll methods with an {@link android.view.Surface}. */ public boolean supportsFaceEnrollOptions() { return mHalInterfaceVersion >= 4; } } }
services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceEnrollClient.java +16 −3 Original line number Original line Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.content.Context; import android.hardware.biometrics.BiometricFaceConstants; import android.hardware.biometrics.BiometricFaceConstants; import android.hardware.biometrics.common.ICancellationSignal; import android.hardware.biometrics.common.ICancellationSignal; import android.hardware.biometrics.face.EnrollmentType; import android.hardware.biometrics.face.EnrollmentType; import android.hardware.biometrics.face.FaceEnrollOptions; import android.hardware.biometrics.face.Feature; import android.hardware.biometrics.face.Feature; import android.hardware.biometrics.face.IFace; import android.hardware.biometrics.face.IFace; import android.hardware.common.NativeHandle; import android.hardware.common.NativeHandle; Loading Loading @@ -201,9 +202,21 @@ public class FaceEnrollClient extends EnrollClient<AidlSession> { if (session.hasContextMethods()) { if (session.hasContextMethods()) { final OperationContextExt opContext = getOperationContext(); final OperationContextExt opContext = getOperationContext(); final ICancellationSignal cancel = session.getSession().enrollWithContext( ICancellationSignal cancel; if (session.supportsFaceEnrollOptions()) { FaceEnrollOptions options = new FaceEnrollOptions(); options.hardwareAuthToken = hat; options.enrollmentType = EnrollmentType.DEFAULT; options.features = features; options.nativeHandlePreview = null; options.context = opContext.toAidlContext(); options.surfacePreview = mPreviewSurface; cancel = session.getSession().enrollWithOptions(options); } else { cancel = session.getSession().enrollWithContext( hat, EnrollmentType.DEFAULT, features, mHwPreviewHandle, hat, EnrollmentType.DEFAULT, features, mHwPreviewHandle, opContext.toAidlContext()); opContext.toAidlContext()); } getBiometricContext().subscribe(opContext, ctx -> { getBiometricContext().subscribe(opContext, ctx -> { try { try { session.getSession().onContextChanged(ctx); session.getSession().onContextChanged(ctx); Loading
services/core/java/com/android/server/biometrics/sensors/face/aidl/TestHal.java +7 −0 Original line number Original line Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.hardware.biometrics.common.ICancellationSignal; import android.hardware.biometrics.common.OperationContext; import android.hardware.biometrics.common.OperationContext; import android.hardware.biometrics.face.EnrollmentStageConfig; import android.hardware.biometrics.face.EnrollmentStageConfig; import android.hardware.biometrics.face.Error; import android.hardware.biometrics.face.Error; import android.hardware.biometrics.face.FaceEnrollOptions; import android.hardware.biometrics.face.IFace; import android.hardware.biometrics.face.IFace; import android.hardware.biometrics.face.ISession; import android.hardware.biometrics.face.ISession; import android.hardware.biometrics.face.ISessionCallback; import android.hardware.biometrics.face.ISessionCallback; Loading Loading @@ -212,6 +213,12 @@ public class TestHal extends IFace.Stub { public void onContextChanged(OperationContext context) { public void onContextChanged(OperationContext context) { Slog.w(TAG, "onContextChanged"); Slog.w(TAG, "onContextChanged"); } } @Override public ICancellationSignal enrollWithOptions(FaceEnrollOptions options) { return enroll(options.hardwareAuthToken, options.enrollmentType, options.features, options.nativeHandlePreview); } }; }; } } } }
services/core/java/com/android/server/biometrics/sensors/face/hidl/AidlToHidlAdapter.java +7 −0 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.hardware.biometrics.BiometricFaceConstants; import android.hardware.biometrics.common.ICancellationSignal; import android.hardware.biometrics.common.ICancellationSignal; import android.hardware.biometrics.common.OperationContext; import android.hardware.biometrics.common.OperationContext; import android.hardware.biometrics.face.EnrollmentStageConfig; import android.hardware.biometrics.face.EnrollmentStageConfig; import android.hardware.biometrics.face.FaceEnrollOptions; import android.hardware.biometrics.face.ISession; import android.hardware.biometrics.face.ISession; import android.hardware.biometrics.face.V1_0.IBiometricsFace; import android.hardware.biometrics.face.V1_0.IBiometricsFace; import android.hardware.biometrics.face.V1_0.OptionalBool; import android.hardware.biometrics.face.V1_0.OptionalBool; Loading Loading @@ -344,4 +345,10 @@ public class AidlToHidlAdapter implements ISession { return null; return null; } } } } @Override public ICancellationSignal enrollWithOptions(FaceEnrollOptions options) { //Unsupported in HIDL return null; } } }