summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index cf15334a38fc..4e493129224a 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -1718,7 +1718,9 @@ public class PackageManagerService extends IPackageManager.Stub {
BasePermission bp = mSettings.mPermissions.get(permission);
if (bp != null && (bp.isRuntime() || bp.isDevelopment())
&& (grantedPermissions == null
- || ArrayUtils.contains(grantedPermissions, permission))) {
+ || ArrayUtils.contains(grantedPermissions, permission))
+ && (getPermissionFlags(permission, pkg.packageName, userId)
+ & PackageManager.FLAG_PERMISSION_SYSTEM_FIXED) == 0) {
grantRuntimePermission(pkg.packageName, permission, userId);
}
}