summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Yu <jackcwyu@google.com>2021-12-02 14:54:44 +0800
committerJack Yu <jackcwyu@google.com>2021-12-02 16:06:27 +0800
commita729797451c1fcb1f8f7c19de7cf4316284b6f7e (patch)
treef2d13bf6aa1592b89e3b4ed3bbbc1cc28ced9449
parent9ffb0079d1ae231f01abd418e0ca0e86ca49e386 (diff)
downloadSecureElement-a729797451c1fcb1f8f7c19de7cf4316284b6f7e.tar.gz
Fix managedProfileUnlock_stopped
Nfc stack crashes when calling createContextAsUser and get IllegalStateException. Bug: 208478418 Test: local test pass Change-Id: Iffd3e5e337286919364423516d9c33fb9c970215
-rw-r--r--src/com/android/se/SecureElementService.java13
1 files 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