From 7b78b22ac1d8f2c7685b149a3b6767ddeea6f3f5 Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Thu, 7 Feb 2019 16:47:38 -0800 Subject: [PATCH] Ensure setActiveGroup() does the right thing after a HAL crash. Before this change, it wasn't deterministic to reset the HIDL layer after a simulated HAL crash. It looks like it required a second client to connect before onError() ultimately corrects mCurrentUserId. This code forces mCurrentUserId to an unknown state, which ensures it gets reset when we re-connect to the HAL. Fixes b/124075073 Test: HAL crash resets mCurrentUserId. Change-Id: Icca2ad2463dedaf0834e61c744a2ddcac15f6356 --- .../java/com/android/server/biometrics/face/FaceService.java | 2 ++ 1 file changed, 2 insertions(+) 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 017503a038166..8995068ef5046 100644 --- a/services/core/java/com/android/server/biometrics/face/FaceService.java +++ b/services/core/java/com/android/server/biometrics/face/FaceService.java @@ -705,6 +705,8 @@ public class FaceService extends BiometricServiceBase { public void serviceDied(long cookie) { super.serviceDied(cookie); mDaemon = null; + + mCurrentUserId = UserHandle.USER_NULL; // Force updateActiveGroup() to re-evaluate } @Override