From e5660b24501eac74fa2d402b5f198923b095ea8d Mon Sep 17 00:00:00 2001 From: Nihar Thakkar Date: Tue, 28 May 2019 09:33:58 +0000 Subject: [PATCH] Grant runtime permissions to Account Manager by default --- .../server/pm/DefaultPermissionGrantPolicy.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java index c567c272eae7..30152aff30df 100644 --- a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java +++ b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java @@ -147,6 +147,12 @@ final class DefaultPermissionGrantPolicy { STORAGE_PERMISSIONS.add(Manifest.permission.READ_EXTERNAL_STORAGE); STORAGE_PERMISSIONS.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); } + + private static final Set TASKS_PERMISSIONS = new ArraySet<>(); + static { + TASKS_PERMISSIONS.add("org.dmfs.permission.READ_TASKS"); + TASKS_PERMISSIONS.add("org.dmfs.permission.WRITE_TASKS"); + } private static final int MSG_READ_DEFAULT_PERMISSION_EXCEPTIONS = 1; @@ -701,6 +707,17 @@ final class DefaultPermissionGrantPolicy { && doesPackageSupportRuntimePermissions(storageManagerPckg)) { grantRuntimePermissionsLPw(storageManagerPckg, STORAGE_PERMISSIONS, true, userId); } + + // Account Manager + PackageParser.Package accountManagerPackage = getSystemPackageLPr("foundation.e.accountmanager"); + if (accountManagerPackage != null + && doesPackageSupportRuntimePermissions(accountManagerPackage)) { + grantRuntimePermissionsLPw(accountManagerPackage, CONTACTS_PERMISSIONS, userId); + grantRuntimePermissionsLPw(accountManagerPackage, CALENDAR_PERMISSIONS, userId); + grantRuntimePermissionsLPw(accountManagerPackage, LOCATION_PERMISSIONS, userId); + grantRuntimePermissionsLPw(accountManagerPackage, TASKS_PERMISSIONS, userId); + } + mService.mSettings.onDefaultRuntimePermissionsGrantedLPr(userId); } } -- GitLab