From 22f0c93b47fc84ef99dcb02c3aade19a709e1157 Mon Sep 17 00:00:00 2001 From: Federico Maccaroni Date: Tue, 14 May 2024 16:18:30 -0300 Subject: [PATCH] PM-PM-4327 Changed LaunchMode to SingleInstance to avoid security issues only on WebAuthCallbackActivity given that it's exported and go back to previous value on the other ones. This is being done in the manifest so we can set the appropriate value depending on the API level. --- src/App/Platforms/Android/AndroidManifest.xml | 11 ++++++++++- .../Autofill/AutofillExternalSelectionActivity.cs | 2 +- .../Autofill/CredentialProviderSelectionActivity.cs | 2 +- .../Android/Resources/values-v30/manifest.xml | 1 + .../Platforms/Android/Resources/values/manifest.xml | 1 + src/App/Platforms/Android/WebAuthCallbackActivity.cs | 9 ++------- 6 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/App/Platforms/Android/AndroidManifest.xml b/src/App/Platforms/Android/AndroidManifest.xml index fc8985c38..f87720128 100644 --- a/src/App/Platforms/Android/AndroidManifest.xml +++ b/src/App/Platforms/Android/AndroidManifest.xml @@ -24,7 +24,7 @@ - + @@ -39,6 +39,15 @@ + + + + + + + + + diff --git a/src/App/Platforms/Android/Autofill/AutofillExternalSelectionActivity.cs b/src/App/Platforms/Android/Autofill/AutofillExternalSelectionActivity.cs index cd839d6e0..38086b884 100644 --- a/src/App/Platforms/Android/Autofill/AutofillExternalSelectionActivity.cs +++ b/src/App/Platforms/Android/Autofill/AutofillExternalSelectionActivity.cs @@ -10,7 +10,7 @@ namespace Bit.Droid.Autofill { [Activity( NoHistory = true, - LaunchMode = LaunchMode.SingleInstance, + LaunchMode = LaunchMode.SingleTop, Exported = false)] public class AutofillExternalSelectionActivity : MauiAppCompatActivity { diff --git a/src/App/Platforms/Android/Autofill/CredentialProviderSelectionActivity.cs b/src/App/Platforms/Android/Autofill/CredentialProviderSelectionActivity.cs index d97d37123..5ea4213c0 100644 --- a/src/App/Platforms/Android/Autofill/CredentialProviderSelectionActivity.cs +++ b/src/App/Platforms/Android/Autofill/CredentialProviderSelectionActivity.cs @@ -20,7 +20,7 @@ namespace Bit.Droid.Autofill { [Activity( NoHistory = true, - LaunchMode = LaunchMode.SingleInstance)] + LaunchMode = LaunchMode.SingleTop)] public class CredentialProviderSelectionActivity : MauiAppCompatActivity { private LazyResolve _fido2MediatorService = new LazyResolve(); diff --git a/src/App/Platforms/Android/Resources/values-v30/manifest.xml b/src/App/Platforms/Android/Resources/values-v30/manifest.xml index c49cde0dc..85d7ceb59 100644 --- a/src/App/Platforms/Android/Resources/values-v30/manifest.xml +++ b/src/App/Platforms/Android/Resources/values-v30/manifest.xml @@ -1,4 +1,5 @@  0 + 1 \ No newline at end of file diff --git a/src/App/Platforms/Android/Resources/values/manifest.xml b/src/App/Platforms/Android/Resources/values/manifest.xml index d4a9102c5..6752392eb 100644 --- a/src/App/Platforms/Android/Resources/values/manifest.xml +++ b/src/App/Platforms/Android/Resources/values/manifest.xml @@ -1,4 +1,5 @@  2 + 3 \ No newline at end of file diff --git a/src/App/Platforms/Android/WebAuthCallbackActivity.cs b/src/App/Platforms/Android/WebAuthCallbackActivity.cs index 4a8db65c6..01d3c9dff 100644 --- a/src/App/Platforms/Android/WebAuthCallbackActivity.cs +++ b/src/App/Platforms/Android/WebAuthCallbackActivity.cs @@ -1,17 +1,12 @@ using Android.App; using Android.Content.PM; using Android.OS; +using Android.Runtime; using Bit.App.Droid.Utilities; namespace Bit.Droid { - [Activity( - NoHistory = true, - LaunchMode = LaunchMode.SingleInstance, - Exported = true)] - [IntentFilter(new[] { Android.Content.Intent.ActionView }, - Categories = new[] { Android.Content.Intent.CategoryDefault, Android.Content.Intent.CategoryBrowsable }, - DataScheme = "bitwarden")] + [Register("com.x8bit.bitwarden.WebAuthCallbackActivity")] public class WebAuthCallbackActivity : WebAuthenticatorCallbackActivity { protected override void OnCreate(Bundle savedInstanceState)