diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 0a98d4189873..765041c63ac0 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -12942,6 +12942,10 @@ public class PackageManagerService extends IPackageManager.Stub { synchronized (mPackages) { PackageSetting ps = mSettings.mPackages.get(newPkg.packageName); + // Propagate the permissions state as we do not want to drop on the floor + // runtime permissions. The update permissions method below will take + // care of removing obsolete permissions and grant install permissions. + ps.getPermissionsState().copyFrom(newPs.getPermissionsState()); updatePermissionsLPw(newPkg.packageName, newPkg, UPDATE_PERMISSIONS_ALL | UPDATE_PERMISSIONS_REPLACE_PKG); |