am 515c20be: Merge "PackageManagerService: honor requestedPermissionsRequired" into jb-mr2-dev
* commit '515c20beb1cc291a4c4a63016c7bc7286e47670c': PackageManagerService: honor requestedPermissionsRequired
This commit is contained in:
@@ -5077,7 +5077,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) {
|
||||
@@ -5091,7 +5091,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;
|
||||
@@ -5141,11 +5143,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;
|
||||
|
||||
Reference in New Issue
Block a user