diff options
13 files changed, 49 insertions, 100 deletions
diff --git a/core/java/android/hardware/fingerprint/FingerprintManager.java b/core/java/android/hardware/fingerprint/FingerprintManager.java index 63397c05edc2..d2c74e963689 100644 --- a/core/java/android/hardware/fingerprint/FingerprintManager.java +++ b/core/java/android/hardware/fingerprint/FingerprintManager.java @@ -419,6 +419,18 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing } /** + * Use the provided handler thread for events. + * @param handler + */ + private void useHandler(Handler handler) { + if (handler != null) { + mHandler = new MyHandler(handler.getLooper()); + } else if (mHandler.getLooper() != mContext.getMainLooper()) { + mHandler = new MyHandler(mContext.getMainLooper()); + } + } + + /** * Request authentication of a crypto object. This call warms up the fingerprint hardware * and starts scanning for a fingerprint. It terminates when * {@link AuthenticationCallback#onAuthenticationError(int, CharSequence)} or @@ -449,45 +461,15 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing } /** - * Use the provided handler thread for events. - * @param handler - */ - private void useHandler(Handler handler) { - if (handler != null) { - mHandler = new MyHandler(handler.getLooper()); - } else if (mHandler.getLooper() != mContext.getMainLooper()){ - mHandler = new MyHandler(mContext.getMainLooper()); - } - } - - /** - * Defaults to {@link FingerprintManager#authenticate(CryptoObject, CancellationSignal, - * AuthenticationCallback, Handler, int, Surface)} with {@code surface} set to null. - * - * @see FingerprintManager#authenticate(CryptoObject, CancellationSignal, - * AuthenticationCallback, Handler, int, Surface) - * - * @hide - */ - @RequiresPermission(anyOf = {USE_BIOMETRIC, USE_FINGERPRINT}) - public void authenticate(@Nullable CryptoObject crypto, @Nullable CancellationSignal cancel, - @NonNull AuthenticationCallback callback, Handler handler, int userId) { - authenticate(crypto, cancel, callback, handler, userId, null /* surface */); - } - - /** * Per-user version, see {@link FingerprintManager#authenticate(CryptoObject, * CancellationSignal, int, AuthenticationCallback, Handler)}. This version does not * display the BiometricPrompt. * @param userId the user ID that the fingerprint hardware will authenticate for. - * @param surface for optical fingerprint sensors that require active illumination by the OLED - * display. Should be null for devices that don't require illumination. * @hide */ @RequiresPermission(anyOf = {USE_BIOMETRIC, USE_FINGERPRINT}) public void authenticate(@Nullable CryptoObject crypto, @Nullable CancellationSignal cancel, - @NonNull AuthenticationCallback callback, Handler handler, int userId, - @Nullable Surface surface) { + @NonNull AuthenticationCallback callback, Handler handler, int userId) { if (callback == null) { throw new IllegalArgumentException("Must supply an authentication callback"); } @@ -508,7 +490,7 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing mCryptoObject = crypto; final long operationId = crypto != null ? crypto.getOpId() : 0; mService.authenticate(mToken, operationId, userId, mServiceReceiver, - mContext.getOpPackageName(), surface); + mContext.getOpPackageName()); } catch (RemoteException e) { Slog.w(TAG, "Remote exception while authenticating: ", e); // Though this may not be a hardware issue, it will cause apps to give up or try @@ -527,7 +509,7 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing */ @RequiresPermission(USE_BIOMETRIC_INTERNAL) public void detectFingerprint(@NonNull CancellationSignal cancel, - @NonNull FingerprintDetectionCallback callback, int userId, @Nullable Surface surface) { + @NonNull FingerprintDetectionCallback callback, int userId) { if (mService == null) { return; } @@ -543,28 +525,13 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing try { mService.detectFingerprint(mToken, userId, mServiceReceiver, - mContext.getOpPackageName(), surface); + mContext.getOpPackageName()); } catch (RemoteException e) { Slog.w(TAG, "Remote exception when requesting finger detect", e); } } /** - * Defaults to {@link FingerprintManager#enroll(byte[], CancellationSignal, int, - * EnrollmentCallback, Surface)} with {@code surface} set to null. - * - * @see FingerprintManager#enroll(byte[], CancellationSignal, int, EnrollmentCallback, - * Surface) - * - * @hide - */ - @RequiresPermission(MANAGE_FINGERPRINT) - public void enroll(byte [] hardwareAuthToken, CancellationSignal cancel, int userId, - EnrollmentCallback callback) { - enroll(hardwareAuthToken, cancel, userId, callback, null /* surface */); - } - - /** * Request fingerprint enrollment. This call warms up the fingerprint hardware * and starts scanning for fingerprints. Progress will be indicated by callbacks to the * {@link EnrollmentCallback} object. It terminates when @@ -581,7 +548,7 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing */ @RequiresPermission(MANAGE_FINGERPRINT) public void enroll(byte [] hardwareAuthToken, CancellationSignal cancel, int userId, - EnrollmentCallback callback, @Nullable Surface surface) { + EnrollmentCallback callback) { if (userId == UserHandle.USER_CURRENT) { userId = getCurrentUserId(); } @@ -602,7 +569,7 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing try { mEnrollmentCallback = callback; mService.enroll(mToken, hardwareAuthToken, userId, mServiceReceiver, - mContext.getOpPackageName(), surface); + mContext.getOpPackageName()); } catch (RemoteException e) { Slog.w(TAG, "Remote exception in enroll: ", e); // Though this may not be a hardware issue, it will cause apps to give up or try diff --git a/core/java/android/hardware/fingerprint/IFingerprintService.aidl b/core/java/android/hardware/fingerprint/IFingerprintService.aidl index 95668372c5a1..547de9d3c86a 100644 --- a/core/java/android/hardware/fingerprint/IFingerprintService.aidl +++ b/core/java/android/hardware/fingerprint/IFingerprintService.aidl @@ -23,7 +23,6 @@ import android.hardware.fingerprint.IFingerprintServiceReceiver; import android.hardware.fingerprint.IUdfpsOverlayController; import android.hardware.fingerprint.Fingerprint; import android.hardware.fingerprint.FingerprintSensorPropertiesInternal; -import android.view.Surface; import java.util.List; /** @@ -42,12 +41,12 @@ interface IFingerprintService { // USE_FINGERPRINT/USE_BIOMETRIC permission. This is effectively deprecated, since it only comes // through FingerprintManager now. void authenticate(IBinder token, long operationId, int userId, - IFingerprintServiceReceiver receiver, String opPackageName, in Surface surface); + IFingerprintServiceReceiver receiver, String opPackageName); // Uses the fingerprint hardware to detect for the presence of a finger, without giving details // about accept/reject/lockout. void detectFingerprint(IBinder token, int userId, IFingerprintServiceReceiver receiver, - String opPackageName, in Surface surface); + String opPackageName); // This method prepares the service to start authenticating, but doesn't start authentication. // This is protected by the MANAGE_BIOMETRIC signatuer permission. This method should only be @@ -56,7 +55,7 @@ interface IFingerprintService { // startPreparedClient(). void prepareForAuthentication(IBinder token, long operationId, int userId, IBiometricSensorReceiver sensorReceiver, String opPackageName, int cookie, - int callingUid, int callingPid, int callingUserId, in Surface surface); + int callingUid, int callingPid, int callingUserId); // Starts authentication with the previously prepared client. void startPreparedClient(int cookie); @@ -74,7 +73,7 @@ interface IFingerprintService { // Start fingerprint enrollment void enroll(IBinder token, in byte [] hardwareAuthToken, int userId, IFingerprintServiceReceiver receiver, - String opPackageName, in Surface surface); + String opPackageName); // Cancel enrollment in progress void cancelEnrollment(IBinder token); diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java index 1a98c206eb0d..9beb7db40096 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -2102,7 +2102,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab if (isEncryptedOrLockdown(userId)) { mFpm.detectFingerprint(mFingerprintCancelSignal, mFingerprintDetectionCallback, - userId, null /* surface */); + userId); } else { mFpm.authenticate(null /* crypto */, mFingerprintCancelSignal, mFingerprintAuthenticationCallback, null /* handler */, userId); diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java index e73ed801b7df..e6479ddaedb3 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java @@ -439,7 +439,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase { mTestableLooper.processAllMessages(); verify(mFingerprintManager).authenticate(any(), any(), any(), any(), anyInt()); - verify(mFingerprintManager, never()).detectFingerprint(any(), any(), anyInt(), any()); + verify(mFingerprintManager, never()).detectFingerprint(any(), any(), anyInt()); } @Test @@ -466,7 +466,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase { mTestableLooper.processAllMessages(); verify(mFingerprintManager, never()).authenticate(any(), any(), any(), any(), anyInt()); - verify(mFingerprintManager).detectFingerprint(any(), any(), anyInt(), any()); + verify(mFingerprintManager).detectFingerprint(any(), any(), anyInt()); } @Test diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintAuthenticator.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintAuthenticator.java index 5219df4a841d..4b59112b3524 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintAuthenticator.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintAuthenticator.java @@ -43,7 +43,7 @@ public final class FingerprintAuthenticator extends IBiometricAuthenticator.Stub String opPackageName, int cookie, int callingUid, int callingPid, int callingUserId) throws RemoteException { mFingerprintService.prepareForAuthentication(token, operationId, userId, sensorReceiver, - opPackageName, cookie, callingUid, callingPid, callingUserId, null /* surface */); + opPackageName, cookie, callingUid, callingPid, callingUserId); } @Override diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java index 9ac12ed11ded..c88247f59871 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java @@ -46,7 +46,6 @@ import android.os.Binder; import android.os.Build; import android.os.Handler; import android.os.IBinder; -import android.os.NativeHandle; import android.os.Process; import android.os.RemoteException; import android.os.ServiceManager; @@ -56,7 +55,6 @@ import android.util.EventLog; import android.util.Pair; import android.util.Slog; import android.util.proto.ProtoOutputStream; -import android.view.Surface; import com.android.internal.R; import com.android.internal.util.DumpUtils; @@ -156,8 +154,7 @@ public class FingerprintService extends SystemService { @Override // Binder call public void enroll(final IBinder token, final byte[] hardwareAuthToken, final int userId, - final IFingerprintServiceReceiver receiver, final String opPackageName, - Surface surface) { + final IFingerprintServiceReceiver receiver, final String opPackageName) { Utils.checkPermission(getContext(), MANAGE_FINGERPRINT); final Pair<Integer, ServiceProvider> provider = getSingleProvider(); @@ -167,7 +164,7 @@ public class FingerprintService extends SystemService { } provider.second.scheduleEnroll(provider.first, token, hardwareAuthToken, userId, - receiver, opPackageName, surface); + receiver, opPackageName); } @Override // Binder call @@ -185,8 +182,7 @@ public class FingerprintService extends SystemService { @Override // Binder call public void authenticate(final IBinder token, final long operationId, final int userId, - final IFingerprintServiceReceiver receiver, final String opPackageName, - final Surface surface) { + final IFingerprintServiceReceiver receiver, final String opPackageName) { final int callingUid = Binder.getCallingUid(); final int callingPid = Binder.getCallingPid(); final int callingUserId = UserHandle.getCallingUserId(); @@ -233,8 +229,7 @@ public class FingerprintService extends SystemService { @Override public void detectFingerprint(final IBinder token, final int userId, - final IFingerprintServiceReceiver receiver, final String opPackageName, - final Surface surface) { + final IFingerprintServiceReceiver receiver, final String opPackageName) { Utils.checkPermission(getContext(), USE_BIOMETRIC_INTERNAL); if (!Utils.isKeyguard(getContext(), opPackageName)) { Slog.w(TAG, "detectFingerprint called from non-sysui package: " + opPackageName); @@ -255,15 +250,14 @@ public class FingerprintService extends SystemService { } provider.second.scheduleFingerDetect(provider.first, token, userId, - new ClientMonitorCallbackConverter(receiver), opPackageName, surface, + new ClientMonitorCallbackConverter(receiver), opPackageName, BiometricsProtoEnums.CLIENT_KEYGUARD); } @Override // Binder call public void prepareForAuthentication(IBinder token, long operationId, int userId, IBiometricSensorReceiver sensorReceiver, String opPackageName, - int cookie, int callingUid, int callingPid, int callingUserId, - Surface surface) { + int cookie, int callingUid, int callingPid, int callingUserId) { Utils.checkPermission(getContext(), MANAGE_BIOMETRIC); final Pair<Integer, ServiceProvider> provider = getSingleProvider(); @@ -729,6 +723,4 @@ public class FingerprintService extends SystemService { } return appOpsOk; } - - private native NativeHandle convertSurfaceToNativeHandle(Surface surface); } diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/ServiceProvider.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/ServiceProvider.java index 1ed66a247bd0..c13a6569b16a 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/ServiceProvider.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/ServiceProvider.java @@ -18,15 +18,14 @@ package com.android.server.biometrics.sensors.fingerprint; import android.annotation.NonNull; import android.annotation.Nullable; -import android.hardware.fingerprint.Fingerprint; import android.hardware.biometrics.ITestSession; +import android.hardware.fingerprint.Fingerprint; import android.hardware.fingerprint.FingerprintManager; import android.hardware.fingerprint.FingerprintSensorPropertiesInternal; import android.hardware.fingerprint.IFingerprintServiceReceiver; import android.hardware.fingerprint.IUdfpsOverlayController; import android.os.IBinder; import android.util.proto.ProtoOutputStream; -import android.view.Surface; import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter; import com.android.server.biometrics.sensors.LockoutTracker; @@ -62,7 +61,8 @@ public interface ServiceProvider { */ boolean containsSensor(int sensorId); - @NonNull List<FingerprintSensorPropertiesInternal> getSensorProperties(); + @NonNull + List<FingerprintSensorPropertiesInternal> getSensorProperties(); void scheduleResetLockout(int sensorId, int userId, @Nullable byte[] hardwareAuthToken); @@ -73,14 +73,13 @@ public interface ServiceProvider { @NonNull String opPackageName, long challenge); void scheduleEnroll(int sensorId, @NonNull IBinder token, byte[] hardwareAuthToken, int userId, - @NonNull IFingerprintServiceReceiver receiver, @NonNull String opPackageName, - @Nullable Surface surface); + @NonNull IFingerprintServiceReceiver receiver, @NonNull String opPackageName); void cancelEnrollment(int sensorId, @NonNull IBinder token); void scheduleFingerDetect(int sensorId, @NonNull IBinder token, int userId, @NonNull ClientMonitorCallbackConverter callback, @NonNull String opPackageName, - @Nullable Surface surface, int statsClient); + int statsClient); void scheduleAuthenticate(int sensorId, @NonNull IBinder token, long operationId, int userId, int cookie, @NonNull ClientMonitorCallbackConverter callback, @@ -100,9 +99,11 @@ public interface ServiceProvider { void rename(int sensorId, int fingerId, int userId, @NonNull String name); - @NonNull List<Fingerprint> getEnrolledFingerprints(int sensorId, int userId); + @NonNull + List<Fingerprint> getEnrolledFingerprints(int sensorId, int userId); - @LockoutTracker.LockoutMode int getLockoutModeForUser(int sensorId, int userId); + @LockoutTracker.LockoutMode + int getLockoutModeForUser(int sensorId, int userId); long getAuthenticatorId(int sensorId, int userId); @@ -118,5 +119,6 @@ public interface ServiceProvider { void dumpInternal(int sensorId, @NonNull PrintWriter pw); - @NonNull ITestSession createTestSession(int sensorId, @NonNull String opPackageName); + @NonNull + ITestSession createTestSession(int sensorId, @NonNull String opPackageName); } diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/BiometricTestSessionImpl.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/BiometricTestSessionImpl.java index 6bb40e6630bf..973132533661 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/BiometricTestSessionImpl.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/BiometricTestSessionImpl.java @@ -121,7 +121,7 @@ class BiometricTestSessionImpl extends ITestSession.Stub { Utils.checkPermission(mContext, TEST_BIOMETRIC); mProvider.scheduleEnroll(mSensorId, new Binder(), new byte[69], userId, mReceiver, - mContext.getOpPackageName(), null /* surface */); + mContext.getOpPackageName()); } @Override diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java index 4d07f583fdf5..0ebfe9381d15 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java @@ -40,7 +40,6 @@ import android.os.UserManager; import android.util.Slog; import android.util.SparseArray; import android.util.proto.ProtoOutputStream; -import android.view.Surface; import com.android.server.biometrics.Utils; import com.android.server.biometrics.sensors.AuthenticationClient; @@ -341,7 +340,7 @@ public class FingerprintProvider implements IBinder.DeathRecipient, ServiceProvi @Override public void scheduleEnroll(int sensorId, @NonNull IBinder token, byte[] hardwareAuthToken, int userId, @NonNull IFingerprintServiceReceiver receiver, - @NonNull String opPackageName, @Nullable Surface surface) { + @NonNull String opPackageName) { mHandler.post(() -> { final IFingerprint daemon = getHalInstance(); if (daemon == null) { @@ -387,7 +386,7 @@ public class FingerprintProvider implements IBinder.DeathRecipient, ServiceProvi @Override public void scheduleFingerDetect(int sensorId, @NonNull IBinder token, int userId, @NonNull ClientMonitorCallbackConverter callback, @NonNull String opPackageName, - @Nullable Surface surface, int statsClient) { + int statsClient) { mHandler.post(() -> { final IFingerprint daemon = getHalInstance(); if (daemon == null) { diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/BiometricTestSessionImpl.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/BiometricTestSessionImpl.java index e0ea99077d51..65ce34d31b61 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/BiometricTestSessionImpl.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/BiometricTestSessionImpl.java @@ -122,7 +122,7 @@ public class BiometricTestSessionImpl extends ITestSession.Stub { Utils.checkPermission(mContext, TEST_BIOMETRIC); mFingerprint21.scheduleEnroll(mSensorId, new Binder(), new byte[69], userId, mReceiver, - mContext.getOpPackageName(), null /* surface */); + mContext.getOpPackageName()); } @Override diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java index 241c911ce9ab..a806e3f61bc8 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java @@ -46,7 +46,6 @@ import android.os.UserHandle; import android.os.UserManager; import android.util.Slog; import android.util.proto.ProtoOutputStream; -import android.view.Surface; import com.android.internal.R; import com.android.internal.util.FrameworkStatsLog; @@ -539,8 +538,7 @@ public class Fingerprint21 implements IHwBinder.DeathRecipient, ServiceProvider @Override public void scheduleEnroll(int sensorId, @NonNull IBinder token, @NonNull byte[] hardwareAuthToken, int userId, - @NonNull IFingerprintServiceReceiver receiver, @NonNull String opPackageName, - @Nullable Surface surface) { + @NonNull IFingerprintServiceReceiver receiver, @NonNull String opPackageName) { mHandler.post(() -> { scheduleUpdateActiveUserWithoutHandler(userId); @@ -571,7 +569,7 @@ public class Fingerprint21 implements IHwBinder.DeathRecipient, ServiceProvider @Override public void scheduleFingerDetect(int sensorId, @NonNull IBinder token, int userId, @NonNull ClientMonitorCallbackConverter listener, @NonNull String opPackageName, - @Nullable Surface surface, int statsClient) { + int statsClient) { mHandler.post(() -> { scheduleUpdateActiveUserWithoutHandler(userId); diff --git a/services/core/jni/com_android_server_biometrics_SurfaceToNativeHandleConverter.cpp b/services/core/jni/com_android_server_biometrics_SurfaceToNativeHandleConverter.cpp index 6faffb886209..e994c03a9239 100644 --- a/services/core/jni/com_android_server_biometrics_SurfaceToNativeHandleConverter.cpp +++ b/services/core/jni/com_android_server_biometrics_SurfaceToNativeHandleConverter.cpp @@ -78,12 +78,6 @@ static const JNINativeMethod method_table[] = { reinterpret_cast<void*>(convertSurfaceToNativeHandle)}, }; -int register_android_server_FingerprintService(JNIEnv* env) { - return jniRegisterNativeMethods(env, - "com/android/server/biometrics/sensors/fingerprint/FingerprintService", - method_table, NELEM(method_table)); -} - int register_android_server_FaceService(JNIEnv* env) { return jniRegisterNativeMethods(env, "com/android/server/biometrics/sensors/face/FaceService", method_table, NELEM(method_table)); diff --git a/services/core/jni/onload.cpp b/services/core/jni/onload.cpp index 0ffa5c39bacc..79b5fed3e448 100644 --- a/services/core/jni/onload.cpp +++ b/services/core/jni/onload.cpp @@ -62,7 +62,6 @@ int register_com_android_server_soundtrigger_middleware_ExternalCaptureStateTrac int register_android_server_com_android_server_pm_PackageManagerShellCommandDataLoader(JNIEnv* env); int register_android_server_stats_pull_StatsPullAtomService(JNIEnv* env); int register_android_server_AdbDebuggingManager(JNIEnv* env); -int register_android_server_FingerprintService(JNIEnv* env); int register_android_server_FaceService(JNIEnv* env); int register_android_server_GpuService(JNIEnv* env); }; @@ -120,7 +119,6 @@ extern "C" jint JNI_OnLoad(JavaVM* vm, void* /* reserved */) register_android_server_com_android_server_pm_PackageManagerShellCommandDataLoader(env); register_android_server_stats_pull_StatsPullAtomService(env); register_android_server_AdbDebuggingManager(env); - register_android_server_FingerprintService(env); register_android_server_FaceService(env); register_android_server_GpuService(env); return JNI_VERSION_1_4; |