summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Yu <jackcwyu@google.com>2020-04-13 22:35:51 +0800
committerJack Yu <jackcwyu@google.com>2020-04-14 04:01:40 +0000
commit054af27cabc214a987804bc4be0e970896e8a002 (patch)
treeef22dfd86674c7c12eb81922c072c7f7071824e5
parent2add4761ca3b7f2c9fcb3effc6699923614822dc (diff)
downloadSecureElement-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.java34
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()) {