Biometrics: Allow disabling of fingerprint cleanups
Don't schedule cleanups at all if the driver
doesn't support enumerate function.
Change-Id: If9e1b82bc551e2fd06218b1720f5986633c1ab55
diff --git a/core/res/res/values/leaf_config.xml b/core/res/res/values/leaf_config.xml
new file mode 100644
index 0000000..fa1565f
--- /dev/null
+++ b/core/res/res/values/leaf_config.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2022 The LeafOS Project
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<resources>
+ <!-- Whether to cleanup fingerprints upon connection to the daemon and when
+ user switches -->
+ <bool name="config_cleanupUnusedFingerprints">true</bool>
+</resources>
diff --git a/core/res/res/values/leaf_symbols.xml b/core/res/res/values/leaf_symbols.xml
new file mode 100644
index 0000000..d66263f
--- /dev/null
+++ b/core/res/res/values/leaf_symbols.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2022 The LeafOS Project
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<resources>
+ <!-- Whether to cleanup fingerprints upon connection to the daemon and when
+ user switches -->
+ <java-symbol type="bool" name="config_cleanupUnusedFingerprints" />
+</resources>
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 d3cecd0..ca5e0e7 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
@@ -143,6 +143,8 @@
private final boolean mIsPowerbuttonFps;
private AidlSession mSession;
+ private boolean mCleanup;
+
private final class BiometricTaskStackListener extends TaskStackListener {
@Override
public void onTaskStackChanged() {
@@ -374,6 +376,8 @@
Slog.d(TAG, "Initializing AuthenticationStatsCollector");
mAuthenticationStatsCollector = collector;
});
+ mCleanup = context.getResources().getBoolean(
+ com.android.internal.R.bool.config_cleanupUnusedFingerprints);
try {
ActivityManager.getService().registerUserSwitchObserver(mUserSwitchObserver, TAG);
@@ -1004,6 +1008,9 @@
private void scheduleInternalCleanup(int userId,
@Nullable ClientMonitorCallback callback) {
+ if (!mCleanup) {
+ return;
+ }
mHandler.post(() -> {
scheduleUpdateActiveUserWithoutHandler(userId);