diff options
author | Jack Yu <jackcwyu@google.com> | 2020-04-13 22:35:51 +0800 |
---|---|---|
committer | Jack Yu <jackcwyu@google.com> | 2020-04-14 04:01:40 +0000 |
commit | 054af27cabc214a987804bc4be0e970896e8a002 (patch) | |
tree | ef22dfd86674c7c12eb81922c072c7f7071824e5 | |
parent | 2add4761ca3b7f2c9fcb3effc6699923614822dc (diff) | |
download | SecureElement-054af27cabc214a987804bc4be0e970896e8a002.tar.gz |
Fix redundant codeflow in openLogicalChannel with UICC terminal
When setup channel access for UICC terminal, carrier privileges checking
add unnecessary rules loading.
Bug: 152060727
Bug: 153832909
Test: atest CtsOmapiTestCases
Merged-In: Ia3230a7f0165b9233196a698d9bfd0e243fa0db6
Change-Id: Ia3230a7f0165b9233196a698d9bfd0e243fa0db6
-rw-r--r-- | src/com/android/se/Terminal.java | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/src/com/android/se/Terminal.java b/src/com/android/se/Terminal.java index 02ffd1a..69b8368 100644 --- a/src/com/android/se/Terminal.java +++ b/src/com/android/se/Terminal.java @@ -717,9 +717,23 @@ public class Terminal { } mAccessControlEnforcer.setPackageManager(mContext.getPackageManager()); - if (getName().startsWith(SecureElementService.UICC_TERMINAL) - && isCarrierPrivilegeApplication(packageName)) { - return ChannelAccess.getCarrierPrivilegeAccess(packageName, pid); + if (getName().startsWith(SecureElementService.UICC_TERMINAL)) { + try { + PackageManager pm = mContext.getPackageManager(); + if (pm != null) { + PackageInfo pkgInfo = + pm.getPackageInfo(packageName, PackageManager.GET_SIGNATURES); + if (mAccessControlEnforcer.checkCarrierPrivilege(pkgInfo, checkRefreshTag)) { + Log.i(mTag, "setUp PrivilegeAccess for CarrierPrivilegeApplication. "); + return ChannelAccess.getCarrierPrivilegeAccess(packageName, pid); + } + checkRefreshTag = false; + } + } catch (NameNotFoundException ne) { + Log.e(mTag, "checkCarrierPrivilege(): packageInfo is not found. "); + } catch (Exception e) { + Log.e(mTag, "checkCarrierPrivilege() Exception: " + e.getMessage()); + } } synchronized (mLock) { @@ -782,20 +796,6 @@ public class Terminal { /** * Checks if Carrier Privilege exists for the given package */ - private boolean isCarrierPrivilegeApplication(String packageName) { - try { - PackageManager pm = mContext.getPackageManager(); - if (pm != null) { - PackageInfo pkgInfo = pm.getPackageInfo(packageName, PackageManager.GET_SIGNATURES); - return checkCarrierPrivilegeRules(pkgInfo); - } - } catch (NameNotFoundException ne) { } - return false; - } - - /** - * Checks if Carrier Privilege exists for the given package - */ public boolean checkCarrierPrivilegeRules(PackageInfo pInfo) { boolean checkRefreshTag = true; if (mAccessControlEnforcer == null || mAccessControlEnforcer.isNoRuleFound()) { |