mirror of
https://github.com/bitwarden/mobile
synced 2025-12-05 23:53:33 +00:00
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.
This commit is contained in:
@@ -24,7 +24,7 @@
|
|||||||
<meta-data android:name="com.samsung.android.sdk.multiwindow.penwindow.enable" android:value="true" />
|
<meta-data android:name="com.samsung.android.sdk.multiwindow.penwindow.enable" android:value="true" />
|
||||||
<!-- Support for LG "Dual Window" mode (for Android < 7.0 users) -->
|
<!-- Support for LG "Dual Window" mode (for Android < 7.0 users) -->
|
||||||
<meta-data android:name="com.lge.support.SPLIT_WINDOW" android:value="true" />
|
<meta-data android:name="com.lge.support.SPLIT_WINDOW" android:value="true" />
|
||||||
<!-- Declare MainActivity manually so we can set LaunchMode using API dependant resource -->
|
<!-- Declare exported activities manually so we can set LaunchMode/TaskAffinity using API dependant resource -->
|
||||||
<activity android:name="com.x8bit.bitwarden.MainActivity" android:configChanges="keyboard|keyboardHidden|navigation|orientation|screenSize|uiMode" android:exported="true" android:icon="@mipmap/ic_launcher" android:label="Bitwarden" android:launchMode="@integer/launchModeAPIlevel" android:theme="@style/LaunchTheme">
|
<activity android:name="com.x8bit.bitwarden.MainActivity" android:configChanges="keyboard|keyboardHidden|navigation|orientation|screenSize|uiMode" android:exported="true" android:icon="@mipmap/ic_launcher" android:label="Bitwarden" android:launchMode="@integer/launchModeAPIlevel" android:theme="@style/LaunchTheme">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
@@ -39,6 +39,15 @@
|
|||||||
<data android:mimeType="text/*" />
|
<data android:mimeType="text/*" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
|
<!-- Declare activities manually so we can set taskAffinity using API dependant resource -->
|
||||||
|
<activity android:name="com.x8bit.bitwarden.WebAuthCallbackActivity" android:launchMode="@integer/webAuthCallbackLaunchMode" android:noHistory="true" android:exported="true">
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
|
<data android:scheme="bitwarden" />
|
||||||
|
</intent-filter>
|
||||||
|
</activity>
|
||||||
</application>
|
</application>
|
||||||
<!-- Support for Xamarin.Essentials.Browser.OpenAsync (for Android > 11) -->
|
<!-- Support for Xamarin.Essentials.Browser.OpenAsync (for Android > 11) -->
|
||||||
<!-- Related docs: https://learn.microsoft.com/en-us/xamarin/essentials/open-browser?tabs=android -->
|
<!-- Related docs: https://learn.microsoft.com/en-us/xamarin/essentials/open-browser?tabs=android -->
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ namespace Bit.Droid.Autofill
|
|||||||
{
|
{
|
||||||
[Activity(
|
[Activity(
|
||||||
NoHistory = true,
|
NoHistory = true,
|
||||||
LaunchMode = LaunchMode.SingleInstance,
|
LaunchMode = LaunchMode.SingleTop,
|
||||||
Exported = false)]
|
Exported = false)]
|
||||||
public class AutofillExternalSelectionActivity : MauiAppCompatActivity
|
public class AutofillExternalSelectionActivity : MauiAppCompatActivity
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ namespace Bit.Droid.Autofill
|
|||||||
{
|
{
|
||||||
[Activity(
|
[Activity(
|
||||||
NoHistory = true,
|
NoHistory = true,
|
||||||
LaunchMode = LaunchMode.SingleInstance)]
|
LaunchMode = LaunchMode.SingleTop)]
|
||||||
public class CredentialProviderSelectionActivity : MauiAppCompatActivity
|
public class CredentialProviderSelectionActivity : MauiAppCompatActivity
|
||||||
{
|
{
|
||||||
private LazyResolve<IFido2MediatorService> _fido2MediatorService = new LazyResolve<IFido2MediatorService>();
|
private LazyResolve<IFido2MediatorService> _fido2MediatorService = new LazyResolve<IFido2MediatorService>();
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<resources>
|
<resources>
|
||||||
<integer name="launchModeAPIlevel">0</integer>
|
<integer name="launchModeAPIlevel">0</integer>
|
||||||
|
<integer name="webAuthCallbackLaunchMode">1</integer>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<resources>
|
<resources>
|
||||||
<integer name="launchModeAPIlevel">2</integer>
|
<integer name="launchModeAPIlevel">2</integer>
|
||||||
|
<integer name="webAuthCallbackLaunchMode">3</integer>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -1,17 +1,12 @@
|
|||||||
using Android.App;
|
using Android.App;
|
||||||
using Android.Content.PM;
|
using Android.Content.PM;
|
||||||
using Android.OS;
|
using Android.OS;
|
||||||
|
using Android.Runtime;
|
||||||
using Bit.App.Droid.Utilities;
|
using Bit.App.Droid.Utilities;
|
||||||
|
|
||||||
namespace Bit.Droid
|
namespace Bit.Droid
|
||||||
{
|
{
|
||||||
[Activity(
|
[Register("com.x8bit.bitwarden.WebAuthCallbackActivity")]
|
||||||
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")]
|
|
||||||
public class WebAuthCallbackActivity : WebAuthenticatorCallbackActivity
|
public class WebAuthCallbackActivity : WebAuthenticatorCallbackActivity
|
||||||
{
|
{
|
||||||
protected override void OnCreate(Bundle savedInstanceState)
|
protected override void OnCreate(Bundle savedInstanceState)
|
||||||
|
|||||||
Reference in New Issue
Block a user