diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2019-08-21 03:17:59 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2019-08-21 03:17:59 +0000 |
commit | 0c07b3348b145841ea9c86112c4a916ef37f015b (patch) | |
tree | 353cc760525dc43c5d90ba016fb3921b4829e84f | |
parent | 700c55763e1865973a4e659f9ca5fd3ed4cd474a (diff) | |
parent | 0e7ae6d3b060ab5a17d028f27401ec3716dfd0f7 (diff) | |
download | android_packages_apps_PackageInstaller-0c07b3348b145841ea9c86112c4a916ef37f015b.tar.gz android_packages_apps_PackageInstaller-0c07b3348b145841ea9c86112c4a916ef37f015b.tar.bz2 android_packages_apps_PackageInstaller-0c07b3348b145841ea9c86112c4a916ef37f015b.zip |
Snap for 5817507 from 0e7ae6d3b060ab5a17d028f27401ec3716dfd0f7 to qt-qpr1-release
Change-Id: I2328840057a33ea6bd5d06057050034730c6cca5
-rw-r--r-- | src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java b/src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java index cac2ef2c..ff72b980 100644 --- a/src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java +++ b/src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java @@ -25,6 +25,7 @@ import android.content.pm.PackageManager; import android.content.pm.PermissionInfo; import android.permission.PermissionManager; import android.text.TextUtils; +import android.util.ArrayMap; import android.util.Log; import androidx.annotation.NonNull; @@ -88,6 +89,9 @@ class RuntimePermissionsUpgradeController { | PackageManager.MATCH_UNINSTALLED_PACKAGES | PackageManager.MATCH_FACTORY_ONLY); + // Cache permissionInfos + final ArrayMap<String, PermissionInfo> permissionInfos = new ArrayMap<>(); + final int appCount = apps.size(); for (int i = 0; i < appCount; i++) { final PackageInfo app = apps.get(i); @@ -97,12 +101,16 @@ class RuntimePermissionsUpgradeController { } for (String requestedPermission : app.requestedPermissions) { - final PermissionInfo permInfo; - try { - permInfo = context.getPackageManager().getPermissionInfo( - requestedPermission, 0); - } catch (PackageManager.NameNotFoundException e) { - continue; + PermissionInfo permInfo = permissionInfos.get(requestedPermission); + if (permInfo == null) { + try { + permInfo = context.getPackageManager().getPermissionInfo( + requestedPermission, 0); + } catch (PackageManager.NameNotFoundException e) { + continue; + } + + permissionInfos.put(requestedPermission, permInfo); } if ((permInfo.flags & (PermissionInfo.FLAG_HARD_RESTRICTED |