diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/InstantAppRegistry.java | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/pm/InstantAppRegistry.java b/services/core/java/com/android/server/pm/InstantAppRegistry.java index 30088dd9b12f..fb81ebfec67e 100644 --- a/services/core/java/com/android/server/pm/InstantAppRegistry.java +++ b/services/core/java/com/android/server/pm/InstantAppRegistry.java @@ -274,7 +274,7 @@ class InstantAppRegistry { } // Propagate permissions before removing any state - propagateInstantAppPermissionsIfNeeded(pkg.packageName, userId); + propagateInstantAppPermissionsIfNeeded(pkg, userId); // Track instant apps if (ps.getInstantApp(userId)) { @@ -869,10 +869,10 @@ class InstantAppRegistry { return uninstalledApps; } - private void propagateInstantAppPermissionsIfNeeded(@NonNull String packageName, + private void propagateInstantAppPermissionsIfNeeded(@NonNull PackageParser.Package pkg, @UserIdInt int userId) { InstantAppInfo appInfo = peekOrParseUninstalledInstantAppInfo( - packageName, userId); + pkg.packageName, userId); if (appInfo == null) { return; } @@ -884,8 +884,8 @@ class InstantAppRegistry { for (String grantedPermission : appInfo.getGrantedPermissions()) { final boolean propagatePermission = mService.mSettings.canPropagatePermissionToInstantApp(grantedPermission); - if (propagatePermission) { - mService.grantRuntimePermission(packageName, grantedPermission, userId); + if (propagatePermission && pkg.requestedPermissions.contains(grantedPermission)) { + mService.grantRuntimePermission(pkg.packageName, grantedPermission, userId); } } } finally { |