diff options
author | Jack Yu <jackcwyu@google.com> | 2021-09-17 19:54:48 +0800 |
---|---|---|
committer | Jack Yu <jackcwyu@google.com> | 2021-11-23 15:14:25 +0800 |
commit | b48706211e3dd9505a41b01f591d269bc2ee17f7 (patch) | |
tree | bb7bb206d53633638a0972be7c1f1adcedc22a29 | |
parent | 77fbe2919aee1e228183c43c743853f755b1c4ad (diff) | |
download | SecureElement-b48706211e3dd9505a41b01f591d269bc2ee17f7.tar.gz |
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
-rw-r--r-- | src/com/android/se/SecureElementService.java | 7 |
1 files changed, 6 insertions, 1 deletions
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 |