summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2019-08-21 03:17:59 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2019-08-21 03:17:59 +0000
commit0c07b3348b145841ea9c86112c4a916ef37f015b (patch)
tree353cc760525dc43c5d90ba016fb3921b4829e84f
parent700c55763e1865973a4e659f9ca5fd3ed4cd474a (diff)
parent0e7ae6d3b060ab5a17d028f27401ec3716dfd0f7 (diff)
downloadandroid_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.java20
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