summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java30
1 files changed, 22 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java
index 80fd82330fca..7dee499af37a 100644
--- a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java
+++ b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java
@@ -608,6 +608,7 @@ final class DefaultPermissionGrantPolicy {
}
}
+
private void grantDefaultPermissionsToDefaultSystemSmsAppLPr(
PackageParser.Package smsPackage, int userId) {
if (doesPackageSupportRuntimePermissions(smsPackage)) {
@@ -617,6 +618,7 @@ final class DefaultPermissionGrantPolicy {
}
}
+
public void grantDefaultPermissionsToDefaultSmsAppLPr(String packageName, int userId) {
Log.i(TAG, "Granting permissions to default sms app for user:" + userId);
if (packageName == null) {
@@ -694,18 +696,29 @@ final class DefaultPermissionGrantPolicy {
private PackageParser.Package getDefaultSystemHandlerActivityPackageLPr(
Intent intent, int userId) {
- ResolveInfo handler = mService.resolveIntent(intent,
- intent.resolveType(mService.mContext.getContentResolver()), 0, userId);
- if (handler == null) {
+ List<ResolveInfo> handlers = mService.mActivities.queryIntent(intent,
+ intent.resolveType(mService.mContext.getContentResolver()),
+ PackageManager.GET_DISABLED_COMPONENTS, userId);
+ if (handlers == null) {
return null;
}
- return getSystemPackageLPr(handler.activityInfo.packageName);
+ final int handlerCount = handlers.size();
+ for (int i = 0; i < handlerCount; i++) {
+ ResolveInfo handler = handlers.get(i);
+ PackageParser.Package handlerPackage = getSystemPackageLPr(
+ handler.activityInfo.packageName);
+ if (handlerPackage != null) {
+ return handlerPackage;
+ }
+ }
+ return null;
}
private PackageParser.Package getDefaultSystemHandlerServicePackageLPr(
Intent intent, int userId) {
List<ResolveInfo> handlers = mService.queryIntentServices(intent,
- intent.resolveType(mService.mContext.getContentResolver()), 0, userId);
+ intent.resolveType(mService.mContext.getContentResolver()),
+ PackageManager.GET_DISABLED_COMPONENTS, userId);
if (handlers == null) {
return null;
}
@@ -731,9 +744,10 @@ final class DefaultPermissionGrantPolicy {
for (String syncAdapterPackageName : syncAdapterPackageNames) {
homeIntent.setPackage(syncAdapterPackageName);
- ResolveInfo homeActivity = mService.resolveIntent(homeIntent,
- homeIntent.resolveType(mService.mContext.getContentResolver()), 0, userId);
- if (homeActivity != null) {
+ List<ResolveInfo> homeActivities = mService.mActivities.queryIntent(homeIntent,
+ homeIntent.resolveType(mService.mContext.getContentResolver()),
+ PackageManager.GET_DISABLED_COMPONENTS, userId);
+ if (!homeActivities.isEmpty()) {
continue;
}