From b48706211e3dd9505a41b01f591d269bc2ee17f7 Mon Sep 17 00:00:00 2001 From: Jack Yu Date: Fri, 17 Sep 2021 19:54:48 +0800 Subject: Get packageManager based on current user When switching to 2nd user, get new packageManager based on current user so we can get correct package information. Bug: 192994529 Test: manually with CtsVerifier Change-Id: Ie5db871bbbfd2c34916fde254026339605a4a69d --- src/com/android/se/SecureElementService.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/com/android/se/SecureElementService.java b/src/com/android/se/SecureElementService.java index 2742fb4..fb2e771 100644 --- a/src/com/android/se/SecureElementService.java +++ b/src/com/android/se/SecureElementService.java @@ -22,6 +22,7 @@ package com.android.se; +import android.app.ActivityManager; import android.app.Service; import android.content.BroadcastReceiver; import android.content.Context; @@ -34,6 +35,7 @@ import android.os.IBinder; import android.os.RemoteException; import android.os.ServiceManager; import android.os.ServiceSpecificException; +import android.os.UserHandle; import android.se.omapi.ISecureElementChannel; import android.se.omapi.ISecureElementListener; import android.se.omapi.ISecureElementReader; @@ -133,7 +135,10 @@ public final class SecureElementService extends Service { throw new IllegalArgumentException("package names not specified"); } Terminal terminal = getTerminal(reader); - return terminal.isNfcEventAllowed(getPackageManager(), aid, packageNames); + UserHandle currentUser = new UserHandle(ActivityManager.getCurrentUser()); + return terminal.isNfcEventAllowed( + createContextAsUser(currentUser, /*flags=*/0).getPackageManager(), + aid, packageNames); } @Override -- cgit v1.2.3