diff options
| author | Svetoslav <svetoslavganov@google.com> | 2015-05-20 01:57:44 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-05-20 01:57:44 +0000 |
| commit | f357c96273ad8c0f7acc0e15213cced2f0b21883 (patch) | |
| tree | 1a7f6b5bbb449828c4199b1bd865bcafe15ae4f0 | |
| parent | bdf2d1fa382d4016087b2046beb871e9b3edb8df (diff) | |
| parent | 6503e69d1dfe425f292c6e982bb87cf12b1f4397 (diff) | |
| download | frameworks_base-f357c96273ad8c0f7acc0e15213cced2f0b21883.zip frameworks_base-f357c96273ad8c0f7acc0e15213cced2f0b21883.tar.gz frameworks_base-f357c96273ad8c0f7acc0e15213cced2f0b21883.tar.bz2 | |
Merge "Prevent modification of system fixed permissions" into mnc-dev
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 12 |
1 files changed, 12 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 28a786a..74e8e4d 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -3183,6 +3183,12 @@ public class PackageManagerService extends IPackageManager.Stub { final PermissionsState permissionsState = sb.getPermissionsState(); + final int flags = permissionsState.getPermissionFlags(name, userId); + if ((flags & PackageManager.FLAG_PERMISSION_SYSTEM_FIXED) != 0) { + throw new SecurityException("Cannot grant system fixed permission: " + + name + " for package: " + packageName); + } + final int result = permissionsState.grantRuntimePermission(bp, userId); switch (result) { case PermissionsState.PERMISSION_OPERATION_FAILURE: { @@ -3240,6 +3246,12 @@ public class PackageManagerService extends IPackageManager.Stub { final PermissionsState permissionsState = sb.getPermissionsState(); + final int flags = permissionsState.getPermissionFlags(name, userId); + if ((flags & PackageManager.FLAG_PERMISSION_SYSTEM_FIXED) != 0) { + throw new SecurityException("Cannot revoke system fixed permission: " + + name + " for package: " + packageName); + } + if (permissionsState.revokeRuntimePermission(bp, userId) == PermissionsState.PERMISSION_OPERATION_FAILURE) { return; |
