Loading services/core/java/com/android/server/biometrics/AuthService.java +25 −6 Original line number Diff line number Diff line Loading @@ -48,10 +48,12 @@ import android.hardware.face.IFaceService; import android.hardware.fingerprint.IFingerprintService; import android.hardware.iris.IIrisService; import android.os.Binder; import android.os.Build; import android.os.IBinder; import android.os.RemoteException; import android.os.ServiceManager; import android.os.UserHandle; import android.provider.Settings; import android.util.Slog; import com.android.internal.R; Loading @@ -70,6 +72,9 @@ import java.util.List; public class AuthService extends SystemService { private static final String TAG = "AuthService"; private static final boolean DEBUG = false; private static final String SETTING_HIDL_DISABLED = "com.android.server.biometrics.AuthService.hidlDisabled"; private static final int DEFAULT_HIDL_DISABLED = 0; private final Injector mInjector; Loading Loading @@ -142,6 +147,18 @@ public class AuthService extends SystemService { public AppOpsManager getAppOps(Context context) { return context.getSystemService(AppOpsManager.class); } /** * Allows to ignore HIDL HALs on debug builds based on a secure setting. */ @VisibleForTesting public boolean isHidlDisabled(Context context) { if (Build.IS_ENG || Build.IS_USERDEBUG) { return Settings.Secure.getIntForUser(context.getContentResolver(), SETTING_HIDL_DISABLED, DEFAULT_HIDL_DISABLED, UserHandle.USER_CURRENT) == 1; } return false; } } private final class AuthServiceImpl extends IAuthService.Stub { Loading Loading @@ -561,6 +578,7 @@ public class AuthService extends SystemService { public void onStart() { mBiometricService = mInjector.getBiometricService(); if (!mInjector.isHidlDisabled(getContext())) { final String[] configs = mInjector.getConfiguration(getContext()); for (String config : configs) { try { Loading @@ -569,6 +587,7 @@ public class AuthService extends SystemService { Slog.e(TAG, "Remote exception", e); } } } mInjector.publishBinderService(this, mImpl); } Loading services/tests/servicestests/src/com/android/server/biometrics/AuthServiceTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,7 @@ public class AuthServiceTest { when(mInjector.getFaceService()).thenReturn(mFaceService); when(mInjector.getIrisService()).thenReturn(mIrisService); when(mInjector.getAppOps(any())).thenReturn(mAppOpsManager); when(mInjector.isHidlDisabled(any())).thenReturn(false); } @Test Loading Loading
services/core/java/com/android/server/biometrics/AuthService.java +25 −6 Original line number Diff line number Diff line Loading @@ -48,10 +48,12 @@ import android.hardware.face.IFaceService; import android.hardware.fingerprint.IFingerprintService; import android.hardware.iris.IIrisService; import android.os.Binder; import android.os.Build; import android.os.IBinder; import android.os.RemoteException; import android.os.ServiceManager; import android.os.UserHandle; import android.provider.Settings; import android.util.Slog; import com.android.internal.R; Loading @@ -70,6 +72,9 @@ import java.util.List; public class AuthService extends SystemService { private static final String TAG = "AuthService"; private static final boolean DEBUG = false; private static final String SETTING_HIDL_DISABLED = "com.android.server.biometrics.AuthService.hidlDisabled"; private static final int DEFAULT_HIDL_DISABLED = 0; private final Injector mInjector; Loading Loading @@ -142,6 +147,18 @@ public class AuthService extends SystemService { public AppOpsManager getAppOps(Context context) { return context.getSystemService(AppOpsManager.class); } /** * Allows to ignore HIDL HALs on debug builds based on a secure setting. */ @VisibleForTesting public boolean isHidlDisabled(Context context) { if (Build.IS_ENG || Build.IS_USERDEBUG) { return Settings.Secure.getIntForUser(context.getContentResolver(), SETTING_HIDL_DISABLED, DEFAULT_HIDL_DISABLED, UserHandle.USER_CURRENT) == 1; } return false; } } private final class AuthServiceImpl extends IAuthService.Stub { Loading Loading @@ -561,6 +578,7 @@ public class AuthService extends SystemService { public void onStart() { mBiometricService = mInjector.getBiometricService(); if (!mInjector.isHidlDisabled(getContext())) { final String[] configs = mInjector.getConfiguration(getContext()); for (String config : configs) { try { Loading @@ -569,6 +587,7 @@ public class AuthService extends SystemService { Slog.e(TAG, "Remote exception", e); } } } mInjector.publishBinderService(this, mImpl); } Loading
services/tests/servicestests/src/com/android/server/biometrics/AuthServiceTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,7 @@ public class AuthServiceTest { when(mInjector.getFaceService()).thenReturn(mFaceService); when(mInjector.getIrisService()).thenReturn(mIrisService); when(mInjector.getAppOps(any())).thenReturn(mAppOpsManager); when(mInjector.isHidlDisabled(any())).thenReturn(false); } @Test Loading