diff options
author | 2016-03-01 01:40:36 +0000 | |
---|---|---|
committer | 2016-03-01 01:40:37 +0000 | |
commit | a0021cbb7fe9b1f97c0a31bd0681eb6c0f7f34a9 (patch) | |
tree | c96fd746c3c1992f6936f7179cdb4289d986ce37 | |
parent | 88d5592ff2f27806fa28fe4b5ceadd1e1fb860f6 (diff) | |
parent | 80d78dc92bed0873d03e357e025f994af1217577 (diff) |
Merge "Proper grant default permissions to default SMS and Phone" into nyc-dev
-rw-r--r-- | services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java index 9a5a183233e2..d6b59f9ab35a 100644 --- a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java +++ b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java @@ -788,7 +788,7 @@ final class DefaultPermissionGrantPolicy { } private void grantRuntimePermissionsLPw(PackageParser.Package pkg, Set<String> permissions, - boolean systemFixed, boolean overrideUserChoice, int userId) { + boolean systemFixed, boolean isDefaultPhoneOrSms, int userId) { if (pkg.requestedPermissions.isEmpty()) { return; } @@ -796,7 +796,13 @@ final class DefaultPermissionGrantPolicy { List<String> requestedPermissions = pkg.requestedPermissions; Set<String> grantablePermissions = null; - if (pkg.isUpdatedSystemApp()) { + // If this is the default Phone or SMS app we grant permissions regardless + // whether the version on the system image declares the permission as used since + // selecting the app as the default Phone or SMS the user makes a deliberate + // choice to grant this app the permissions needed to function. For all other + // apps, (default grants on first boot and user creation) we don't grant default + // permissions if the version on the system image does not declare them. + if (!isDefaultPhoneOrSms && pkg.isUpdatedSystemApp()) { PackageSetting sysPs = mService.mSettings.getDisabledSystemPkgLPr(pkg.packageName); if (sysPs != null) { if (sysPs.pkg.requestedPermissions.isEmpty()) { @@ -828,7 +834,7 @@ final class DefaultPermissionGrantPolicy { // Unless the caller wants to override user choices. The override is // to make sure we can grant the needed permission to the default // sms and phone apps after the user chooses this in the UI. - if (flags == 0 || overrideUserChoice) { + if (flags == 0 || isDefaultPhoneOrSms) { // Never clobber policy or system. final int fixedFlags = PackageManager.FLAG_PERMISSION_SYSTEM_FIXED | PackageManager.FLAG_PERMISSION_POLICY_FIXED; |