am f667c8d3: Merge "grantPermissionsLPw: introduce isNewPlatformPermissionForPackage" into jb-mr2-dev
* commit 'f667c8d327a6ae236468cbcf9f7536cf6d17e578': grantPermissionsLPw: introduce isNewPlatformPermissionForPackage
This commit is contained in:
@@ -5158,22 +5158,10 @@ public class PackageManagerService extends IPackageManager.Stub {
|
||||
// If this is an existing, non-system package, then
|
||||
// we can't add any new permissions to it.
|
||||
if (!allowedSig && !gp.grantedPermissions.contains(perm)) {
|
||||
allowed = false;
|
||||
// Except... if this is a permission that was added
|
||||
// to the platform (note: need to only do this when
|
||||
// updating the platform).
|
||||
final int NP = PackageParser.NEW_PERMISSIONS.length;
|
||||
for (int ip=0; ip<NP; ip++) {
|
||||
final PackageParser.NewPermissionInfo npi
|
||||
= PackageParser.NEW_PERMISSIONS[ip];
|
||||
if (npi.name.equals(perm)
|
||||
&& pkg.applicationInfo.targetSdkVersion < npi.sdkVersion) {
|
||||
allowed = true;
|
||||
Log.i(TAG, "Auto-granting " + perm + " to old pkg "
|
||||
+ pkg.packageName);
|
||||
break;
|
||||
}
|
||||
}
|
||||
allowed = isNewPlatformPermissionForPackage(perm, pkg);
|
||||
}
|
||||
}
|
||||
if (allowed) {
|
||||
@@ -5219,6 +5207,23 @@ public class PackageManagerService extends IPackageManager.Stub {
|
||||
ps.haveGids = true;
|
||||
}
|
||||
|
||||
private boolean isNewPlatformPermissionForPackage(String perm, PackageParser.Package pkg) {
|
||||
boolean allowed = false;
|
||||
final int NP = PackageParser.NEW_PERMISSIONS.length;
|
||||
for (int ip=0; ip<NP; ip++) {
|
||||
final PackageParser.NewPermissionInfo npi
|
||||
= PackageParser.NEW_PERMISSIONS[ip];
|
||||
if (npi.name.equals(perm)
|
||||
&& pkg.applicationInfo.targetSdkVersion < npi.sdkVersion) {
|
||||
allowed = true;
|
||||
Log.i(TAG, "Auto-granting " + perm + " to old pkg "
|
||||
+ pkg.packageName);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return allowed;
|
||||
}
|
||||
|
||||
private boolean doSignaturePermission(String perm, PackageParser.Package pkg,
|
||||
BasePermission bp, HashSet<String> origPermissions) {
|
||||
boolean allowed;
|
||||
|
||||
Reference in New Issue
Block a user