diff --git a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java index 6fbe8e448476c..96bc86c261163 100644 --- a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java +++ b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java @@ -585,6 +585,7 @@ final class DefaultPermissionGrantPolicy { } } + private void grantDefaultPermissionsToDefaultSystemSmsAppLPr( PackageParser.Package smsPackage, int userId) { if (doesPackageSupportRuntimePermissions(smsPackage)) { @@ -594,6 +595,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) { @@ -671,18 +673,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 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 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; } @@ -708,9 +721,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 homeActivities = mService.mActivities.queryIntent(homeIntent, + homeIntent.resolveType(mService.mContext.getContentResolver()), + PackageManager.GET_DISABLED_COMPONENTS, userId); + if (!homeActivities.isEmpty()) { continue; }