summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2017-02-08 09:44:52 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2017-02-08 09:44:56 +0000
commit74b16a1e6b87a4295598fa835e6577211e02fb0f (patch)
tree83da9a065732a0ab2027a1b1247df50e06ed45f9
parentc534f4ca8a6435dddccbf56b38931745855a8871 (diff)
parentf794c8dc1b62b3a54f3edcfc8031050d9486398a (diff)
Merge "GET_ACCOUNTS_PRIVILEGED permission check for Account Discovery API."
-rw-r--r--services/core/java/com/android/server/accounts/AccountManagerService.java11
1 files changed, 5 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java
index fdd7cb139204..fbc444026539 100644
--- a/services/core/java/com/android/server/accounts/AccountManagerService.java
+++ b/services/core/java/com/android/server/accounts/AccountManagerService.java
@@ -636,11 +636,10 @@ public class AccountManagerService
return visibility;
}
- if (isPermittedForPackage(packageName, accounts.userId,
- Manifest.permission.GET_ACCOUNTS_PRIVILEGED)) {
- return AccountManager.VISIBILITY_VISIBLE;
- }
- // Profile owner gets visibility by default.
+ boolean isPrivileged = isPermittedForPackage(packageName, accounts.userId,
+ Manifest.permission.GET_ACCOUNTS_PRIVILEGED);
+
+ // Device/Profile owner gets visibility by default.
if (isProfileOwner(uid)) {
return AccountManager.VISIBILITY_VISIBLE;
}
@@ -650,7 +649,7 @@ public class AccountManagerService
boolean preO = isPreOApplication(packageName);
if ((signatureCheckResult != SIGNATURE_CHECK_MISMATCH)
|| (preO && checkGetAccountsPermission(packageName, accounts.userId))
- || canReadContacts) {
+ || canReadContacts || isPrivileged) {
// Use legacy for preO apps with GET_ACCOUNTS permission or pre/postO with signature
// match.
visibility = getAccountVisibility(account,