diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java | 30 |
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; } |