From fce33d58d87fd494686aae4e21332b58ec260b73 Mon Sep 17 00:00:00 2001 From: Svetoslav Date: Mon, 2 Nov 2015 16:41:53 -0800 Subject: Take into account default app for default grants Use the correct API to query activities when granting default permissions to ensure the preferred apps are taken into account. This allows OEMs to customize which app should get default permission grants if there is more than one resolving to the query intent. Change-Id: I047f22dfff773a2ba9de1a0144442e372607777c --- .../server/pm/DefaultPermissionGrantPolicy.java | 30 ++++++---------------- 1 file changed, 8 insertions(+), 22 deletions(-) diff --git a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java index 96a5e0057d61..043285500d90 100644 --- a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java +++ b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java @@ -583,7 +583,6 @@ final class DefaultPermissionGrantPolicy { } } - private void grantDefaultPermissionsToDefaultSystemSmsAppLPr( PackageParser.Package smsPackage, int userId) { if (doesPackageSupportRuntimePermissions(smsPackage)) { @@ -593,7 +592,6 @@ 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,29 +669,18 @@ final class DefaultPermissionGrantPolicy { private PackageParser.Package getDefaultSystemHandlerActivityPackageLPr( Intent intent, int userId) { - List handlers = mService.mActivities.queryIntent(intent, - intent.resolveType(mService.mContext.getContentResolver()), - PackageManager.GET_DISABLED_COMPONENTS, userId); - if (handlers == null) { + ResolveInfo handler = mService.resolveIntent(intent, + intent.resolveType(mService.mContext.getContentResolver()), 0, userId); + if (handler == null) { return null; } - 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; + return getSystemPackageLPr(handler.activityInfo.packageName); } private PackageParser.Package getDefaultSystemHandlerServicePackageLPr( Intent intent, int userId) { List handlers = mService.queryIntentServices(intent, - intent.resolveType(mService.mContext.getContentResolver()), - PackageManager.GET_DISABLED_COMPONENTS, userId); + intent.resolveType(mService.mContext.getContentResolver()), 0, userId); if (handlers == null) { return null; } @@ -719,10 +706,9 @@ final class DefaultPermissionGrantPolicy { for (String syncAdapterPackageName : syncAdapterPackageNames) { homeIntent.setPackage(syncAdapterPackageName); - List homeActivities = mService.mActivities.queryIntent(homeIntent, - homeIntent.resolveType(mService.mContext.getContentResolver()), - PackageManager.GET_DISABLED_COMPONENTS, userId); - if (!homeActivities.isEmpty()) { + ResolveInfo homeActivity = mService.resolveIntent(homeIntent, + homeIntent.resolveType(mService.mContext.getContentResolver()), 0, userId); + if (homeActivity != null) { continue; } -- cgit v1.2.3-59-g8ed1b