From a729797451c1fcb1f8f7c19de7cf4316284b6f7e Mon Sep 17 00:00:00 2001 From: Jack Yu Date: Thu, 2 Dec 2021 14:54:44 +0800 Subject: Fix managedProfileUnlock_stopped Nfc stack crashes when calling createContextAsUser and get IllegalStateException. Bug: 208478418 Test: local test pass Change-Id: Iffd3e5e337286919364423516d9c33fb9c970215 --- src/com/android/se/SecureElementService.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/com/android/se/SecureElementService.java b/src/com/android/se/SecureElementService.java index 9183649..b03a462 100644 --- a/src/com/android/se/SecureElementService.java +++ b/src/com/android/se/SecureElementService.java @@ -134,9 +134,16 @@ public final class SecureElementService extends Service { throw new IllegalArgumentException("package names not specified"); } Terminal terminal = getTerminal(reader); - return terminal.isNfcEventAllowed( - createContextAsUser(UserHandle.of(userId), /*flags=*/0) - .getPackageManager(), aid, packageNames); + Context context; + try { + context = createContextAsUser(UserHandle.of(userId), /*flags=*/0); + } catch (IllegalStateException e) { + context = null; + Log.d(mTag, "fail to call createContextAsUser for userId:" + userId); + } + return context == null ? null : terminal.isNfcEventAllowed( + context.getPackageManager(), aid, packageNames); + } @Override -- cgit v1.2.3