From cfc621518c7a6863c66b5218c72adff9a50f0c48 Mon Sep 17 00:00:00 2001 From: joshmccloskey Date: Fri, 20 Sep 2019 16:43:27 -0700 Subject: [PATCH 1/2] Added secure setting for face re enrollment. Test: Verified that the flag could be modified with adb shell settings put secure... Bug: 141380252 Change-Id: Ifa24b688a487482e5b02689c1046d85423f73280 --- core/java/android/provider/Settings.java | 13 +++++++++++++ .../src/android/provider/SettingsBackupTest.java | 3 ++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index b0f40439ca99f..d14164e35bb43 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -8361,6 +8361,19 @@ public final class Settings { private static final Validator FACE_UNLOCK_ALWAYS_REQUIRE_CONFIRMATION_VALIDATOR = BOOLEAN_VALIDATOR; + /** + * Whether or not a user should re enroll their face. + * + * Face unlock re enroll. + * 0 = No re enrollment. + * 1 = Re enrollment is suggested. + * 2 = Re enrollment is required after a set time period. + * 3 = Re enrollment is required immediately. + * + * @hide + */ + public static final String FACE_UNLOCK_RE_ENROLL = "face_unlock_re_enroll"; + /** * Whether or not debugging is enabled. * @hide diff --git a/core/tests/coretests/src/android/provider/SettingsBackupTest.java b/core/tests/coretests/src/android/provider/SettingsBackupTest.java index 79c93ce773a47..e60e5555cc9d9 100644 --- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java +++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java @@ -722,7 +722,8 @@ public class SettingsBackupTest { Settings.Secure.LOCATION_ACCESS_CHECK_DELAY_MILLIS, Settings.Secure.BIOMETRIC_DEBUG_ENABLED, Settings.Secure.FACE_UNLOCK_ATTENTION_REQUIRED, - Settings.Secure.FACE_UNLOCK_DIVERSITY_REQUIRED); + Settings.Secure.FACE_UNLOCK_DIVERSITY_REQUIRED, + Settings.Secure.FACE_UNLOCK_RE_ENROLL); @Test public void systemSettingsBackedUpOrBlacklisted() { From 8cfe3715fa53a63588b9dc3f95f3bcb114d368cb Mon Sep 17 00:00:00 2001 From: Curtis Belmonte Date: Thu, 26 Sep 2019 16:02:41 -0700 Subject: [PATCH 2/2] Clear face re-enroll setting when all faces removed Test: manual Bug: 141254937 Change-Id: Ib6d23a39ac3d5a8251c3752d6d8b5e698a3069bb --- .../java/com/android/server/biometrics/face/FaceService.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/biometrics/face/FaceService.java b/services/core/java/com/android/server/biometrics/face/FaceService.java index ee49f5885e4a3..387d7a85f4a8f 100644 --- a/services/core/java/com/android/server/biometrics/face/FaceService.java +++ b/services/core/java/com/android/server/biometrics/face/FaceService.java @@ -53,6 +53,7 @@ import android.os.SELinux; import android.os.SystemProperties; import android.os.UserHandle; import android.os.UserManager; +import android.provider.Settings; import android.util.Slog; import com.android.internal.R; @@ -926,7 +927,8 @@ public class FaceService extends BiometricServiceBase { final Face face = new Face("", 0 /* identifier */, deviceId); FaceService.super.handleRemoved(face, 0 /* remaining */); } - + Settings.Secure.putIntForUser(getContext().getContentResolver(), + Settings.Secure.FACE_UNLOCK_RE_ENROLL, 0, UserHandle.USER_CURRENT); }); }