summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Kutepov <its.kutepov@gmail.com>2018-01-13 21:59:59 +0300
committerAndreas Blaesius <skate4life@gmx.de>2018-01-14 13:04:53 +0100
commit3ca7066a2e35d53bcb15d27df469deca64d5b04f (patch)
treee796941d7a95b7609a03af48753426a250a5afc2
parent8662bd23b735c00a021217bd1f549b53ad426477 (diff)
downloadframeworks_base-3ca7066a2e35d53bcb15d27df469deca64d5b04f.tar.gz
frameworks_base-3ca7066a2e35d53bcb15d27df469deca64d5b04f.tar.bz2
frameworks_base-3ca7066a2e35d53bcb15d27df469deca64d5b04f.zip
Fix wrong backport of commit dba1bb0
* https://android.googlesource.com/platform/frameworks/base/+/dba1bb07e04b51b1bd0a1251711781e731ce9524 Change-Id: I9fc02e5ac66c17bb0562f1e2577da8ac774d7f2d
-rw-r--r--services/core/java/com/android/server/accounts/AccountManagerService.java4
-rwxr-xr-xservices/core/java/com/android/server/am/ActivityManagerService.java13
2 files changed, 4 insertions, 13 deletions
diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java
index 537fe2dc55a..e493daed177 100644
--- a/services/core/java/com/android/server/accounts/AccountManagerService.java
+++ b/services/core/java/com/android/server/accounts/AccountManagerService.java
@@ -2006,6 +2006,10 @@ public class AccountManagerService
Intent intent = result.getParcelable(AccountManager.KEY_INTENT);
if (intent != null && notifyOnAuthFailure && !customTokens) {
+ intent.setFlags(intent.getFlags() & ~(Intent.FLAG_GRANT_READ_URI_PERMISSION
+ | Intent.FLAG_GRANT_WRITE_URI_PERMISSION
+ | Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION
+ | Intent.FLAG_GRANT_PREFIX_URI_PERMISSION));
doNotification(mAccounts,
account, result.getString(AccountManager.KEY_AUTH_FAILED_MESSAGE),
intent, accounts.userId);
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 5ba0b728665..6c076d06f21 100755
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -7701,19 +7701,6 @@ public final class ActivityManagerService extends ActivityManagerNative
return -1;
}
- // Bail early if system is trying to hand out permissions directly; it
- // must always grant permissions on behalf of someone explicit.
- final int callingAppId = UserHandle.getAppId(callingUid);
- if ((callingAppId == Process.SYSTEM_UID) || (callingAppId == Process.ROOT_UID)) {
- if ("com.android.settings.files".equals(grantUri.uri.getAuthority())) {
- // Exempted authority for cropping user photos in Settings app
- } else {
- Slog.w(TAG, "For security reasons, the system cannot issue a Uri permission"
- + " grant to " + grantUri + "; use startActivityAsCaller() instead");
- return -1;
- }
- }
-
final String authority = grantUri.uri.getAuthority();
final ProviderInfo pi = getProviderInfoLocked(authority, grantUri.sourceUserId);
if (pi == null) {