diff options
| author | 2015-11-17 07:50:45 -0800 | |
|---|---|---|
| committer | 2015-11-17 18:17:14 +0000 | |
| commit | 505184bf459a1f961bb3ae77a4d021ebe55d65b3 (patch) | |
| tree | 329c6ad68d66f7b2a7894719fd6bf21cc215261a | |
| parent | 48241ddc581204938b5bad327f30ffef7fa76a71 (diff) | |
Don't grant runtime permissions on install to legacy apps
bug:25329324
Change-Id: Ia020b96eaef8895f0c2a13bddacfa7a053c56d32
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 9 |
1 files changed, 8 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 02a620468afc..992919e7173f 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -1375,7 +1375,9 @@ public class PackageManagerService extends IPackageManager.Stub { // Now that we successfully installed the package, grant runtime // permissions if requested before broadcasting the install. if ((args.installFlags - & PackageManager.INSTALL_GRANT_RUNTIME_PERMISSIONS) != 0) { + & PackageManager.INSTALL_GRANT_RUNTIME_PERMISSIONS) != 0 + && res.pkg.applicationInfo.targetSdkVersion + >= Build.VERSION_CODES.M) { grantRequestedRuntimePermissions(res.pkg, args.user.getIdentifier(), args.installGrantPermissions); } @@ -3567,6 +3569,11 @@ public class PackageManagerService extends IPackageManager.Stub { return; } + if (pkg.applicationInfo.targetSdkVersion < Build.VERSION_CODES.M) { + Slog.w(TAG, "Cannot grant runtime permission to a legacy app"); + return; + } + final int result = permissionsState.grantRuntimePermission(bp, userId); switch (result) { case PermissionsState.PERMISSION_OPERATION_FAILURE: { |