diff options
| author | Nick Kralevich <nnk@google.com> | 2013-03-19 15:50:21 +0000 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2013-03-19 15:50:21 +0000 |
| commit | b97e5eb05c2cab3d2dc345bfb708e0a40232ea97 (patch) | |
| tree | 527145facc190e6b5a2fb4e026039f881c4f6b57 /services/java/com/android/server/pm | |
| parent | 92eb0073bff4e9c9d753d24f46fef2039f4bb6e5 (diff) | |
| parent | f5eaf95bc5a3240b315376a284e6ee4a60cc5145 (diff) | |
am f5eaf95b: am 515c20be: Merge "PackageManagerService: honor requestedPermissionsRequired" into jb-mr2-dev
* commit 'f5eaf95bc5a3240b315376a284e6ee4a60cc5145':
PackageManagerService: honor requestedPermissionsRequired
Diffstat (limited to 'services/java/com/android/server/pm')
| -rw-r--r-- | services/java/com/android/server/pm/PackageManagerService.java | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java index 13f12c7a9b3e..6b63fb5637e2 100644 --- a/services/java/com/android/server/pm/PackageManagerService.java +++ b/services/java/com/android/server/pm/PackageManagerService.java @@ -5102,7 +5102,7 @@ public class PackageManagerService extends IPackageManager.Stub { final int N = pkg.requestedPermissions.size(); for (int i=0; i<N; i++) { final String name = pkg.requestedPermissions.get(i); - //final boolean required = pkg.requestedPermssionsRequired.get(i); + final boolean required = pkg.requestedPermissionsRequired.get(i); final BasePermission bp = mSettings.mPermissions.get(name); if (DEBUG_INSTALL) { if (gp != ps) { @@ -5116,7 +5116,9 @@ public class PackageManagerService extends IPackageManager.Stub { final int level = bp.protectionLevel & PermissionInfo.PROTECTION_MASK_BASE; if (level == PermissionInfo.PROTECTION_NORMAL || level == PermissionInfo.PROTECTION_DANGEROUS) { - allowed = true; + // If the permission is required, or it's optional and was previously + // granted to the application, then allow it. Otherwise deny. + allowed = (required || origPermissions.contains(perm)); } else if (bp.packageSetting == null) { // This permission is invalid; skip it. allowed = false; @@ -5166,11 +5168,7 @@ public class PackageManagerService extends IPackageManager.Stub { & PermissionInfo.PROTECTION_FLAG_DEVELOPMENT) != 0) { // For development permissions, a development permission // is granted only if it was already granted. - if (origPermissions.contains(perm)) { - allowed = true; - } else { - allowed = false; - } + allowed = origPermissions.contains(perm); } if (allowed) { allowedSig = true; |
