diff --git a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java index 043285500d908..96a5e0057d614 100644 --- a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java +++ b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java @@ -583,6 +583,7 @@ final class DefaultPermissionGrantPolicy { } } + private void grantDefaultPermissionsToDefaultSystemSmsAppLPr( PackageParser.Package smsPackage, int userId) { if (doesPackageSupportRuntimePermissions(smsPackage)) { @@ -592,6 +593,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) { @@ -669,18 +671,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; } @@ -706,9 +719,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; }