summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Dmitry Dementyev <dementyev@google.com> 2023-12-27 16:27:41 -0800
committer Dmitry Dementyev <dementyev@google.com> 2023-12-28 13:20:19 -0800
commitfa25c428909b488cf23a1bfa49e5b8cf204598f2 (patch)
tree5cea127ff56c4344366e3b833073ae91e117ba34
parent31b1d0408d919f52ea5e101bda892e339fa82894 (diff)
Update AccountManagerService checkKeyIntent.
GrantCredentialsPermissionActivity can be opened from system app. This change makes sure that Intent used launch it was created by AMS The activity is used by authenticators with customTokens=false Test: manual Bug: 314961491 Change-Id: Idcfa6e6e264f64f59b066b436303815549e30bef
-rw-r--r--services/core/java/com/android/server/accounts/AccountManagerService.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java
index 85abf87b4b2e..130a7333959d 100644
--- a/services/core/java/com/android/server/accounts/AccountManagerService.java
+++ b/services/core/java/com/android/server/accounts/AccountManagerService.java
@@ -3152,6 +3152,7 @@ public class AccountManagerService
new AccountAuthenticatorResponse(this),
authTokenType,
true);
+ mCanStartAccountManagerActivity = true;
Bundle bundle = new Bundle();
bundle.putParcelable(AccountManager.KEY_INTENT, intent);
onResult(bundle);
@@ -4933,6 +4934,7 @@ public class AccountManagerService
IAccountAuthenticator mAuthenticator = null;
private final boolean mStripAuthTokenFromResult;
+ protected boolean mCanStartAccountManagerActivity = false;
protected final UserAccounts mAccounts;
public Session(UserAccounts accounts, IAccountManagerResponse response, String accountType,
@@ -5068,9 +5070,13 @@ public class AccountManagerService
private boolean isExportedSystemActivity(ActivityInfo activityInfo) {
String className = activityInfo.name;
- return "android".equals(activityInfo.packageName) &&
- (GrantCredentialsPermissionActivity.class.getName().equals(className)
- || CantAddAccountActivity.class.getName().equals(className));
+ if (!"android".equals(activityInfo.packageName)) {
+ return false;
+
+ }
+ return (mCanStartAccountManagerActivity
+ && GrantCredentialsPermissionActivity.class.getName().equals(className))
+ || CantAddAccountActivity.class.getName().equals(className);
}
private void close() {