summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Svetoslav <svetoslavganov@google.com> 2015-07-13 17:37:32 -0700
committer Svetoslav <svetoslavganov@google.com> 2015-07-13 17:46:50 -0700
commit8b24a1d30fa5d2b80b2b6a37454dcc1e67d0e79d (patch)
treeb522301f186550d4342e4c12eb548026acca11c9
parentc09544bb88ada53494d4a955d0450a22985b4799 (diff)
Fix two grant default permissions edge cases.
1. When querying for components to which to grant default permissions we are now getting disabled components as well as we want such packages to get default pemrissions on upgrade as disabled components may get reenabled. 2. When resolving activities to whose packages to grant default permissions we skip the corss-profile and skip-profile filters as they are set by device policy which should not affect implicitly default permission grants. Policy has explicit APIs for permission management. bug:22405963 Change-Id: Idf56d35e567a6fd6e097cd45988d1561422ee6fc
-rw-r--r--services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java12
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java1
2 files changed, 7 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java
index 7a7472919b10..ce4d42ea05f4 100644
--- a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java
+++ b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java
@@ -29,6 +29,7 @@ import android.content.pm.ProviderInfo;
import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.os.Build;
+import android.os.Debug;
import android.os.UserHandle;
import android.provider.CalendarContract;
import android.provider.ContactsContract;
@@ -344,7 +345,6 @@ final class DefaultPermissionGrantPolicy {
Intent cbrIntent = new Intent(Intents.SMS_CB_RECEIVED_ACTION);
PackageParser.Package cbrPackage =
getDefaultSystemHandlerActivityPackageLPr(cbrIntent, userId);
-
if (cbrPackage != null && doesPackageSupportRuntimePermissions(cbrPackage)) {
grantRuntimePermissionsLPw(cbrPackage, SMS_PERMISSIONS, false, userId);
}
@@ -625,8 +625,9 @@ final class DefaultPermissionGrantPolicy {
private PackageParser.Package getDefaultSystemHandlerActivityPackageLPr(
Intent intent, int userId) {
- List<ResolveInfo> handlers = mService.queryIntentActivities(intent,
- intent.resolveType(mService.mContext.getContentResolver()), 0, userId);
+ List<ResolveInfo> handlers = mService.mActivities.queryIntent(intent,
+ intent.resolveType(mService.mContext.getContentResolver()),
+ PackageManager.GET_DISABLED_COMPONENTS, userId);
final int handlerCount = handlers.size();
for (int i = 0; i < handlerCount; i++) {
ResolveInfo handler = handlers.get(i);
@@ -650,8 +651,9 @@ final class DefaultPermissionGrantPolicy {
for (String syncAdapterPackageName : syncAdapterPackageNames) {
homeIntent.setPackage(syncAdapterPackageName);
- List<ResolveInfo> homeActivities = mService.queryIntentActivities(homeIntent,
- homeIntent.resolveType(mService.mContext.getContentResolver()), 0, userId);
+ List<ResolveInfo> homeActivities = mService.mActivities.queryIntent(homeIntent,
+ homeIntent.resolveType(mService.mContext.getContentResolver()),
+ PackageManager.GET_DISABLED_COMPONENTS, userId);
if (!homeActivities.isEmpty()) {
continue;
}
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 13aca79c2f58..fdc1ff0aee74 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -146,7 +146,6 @@ import android.net.Uri;
import android.os.Binder;
import android.os.Build;
import android.os.Bundle;
-import android.os.Debug;
import android.os.Environment;
import android.os.Environment.UserEnvironment;
import android.os.FileUtils;