diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingDeltaInteroperabilityFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingDeltaInteroperabilityFragmentTest.kt
index 7c7e8aab29246f2df44d4a93b28f3b3ccea8bd4c..7ea43ae382148ef75a7c98fde5dd45e9311c8e94 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingDeltaInteroperabilityFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingDeltaInteroperabilityFragmentTest.kt
@@ -19,6 +19,7 @@ import org.junit.Test
 import org.junit.runner.RunWith
 import testhelpers.BaseUITest
 import testhelpers.Screenshot
+import testhelpers.SystemUIDemoModeRule
 import testhelpers.TestDispatcherProvider
 import testhelpers.launchFragmentInContainer2
 import tools.fastlane.screengrab.Screengrab
@@ -33,6 +34,9 @@ class OnboardingDeltaInteroperabilityFragmentTest : BaseUITest() {
     @JvmField
     val localeTestRule = LocaleTestRule()
 
+    @get:Rule
+    val systemUIDemoModeRule = SystemUIDemoModeRule()
+
     @Before
     fun setup() {
         MockKAnnotations.init(this, relaxed = true)
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingFragmentTest.kt
index afbfe65752b24483f144534c066ab35ec801e85c..15810f4313b49a52dfb46eb3b07ed76055baa18c 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingFragmentTest.kt
@@ -18,6 +18,7 @@ import org.junit.Test
 import org.junit.runner.RunWith
 import testhelpers.BaseUITest
 import testhelpers.Screenshot
+import testhelpers.SystemUIDemoModeRule
 import testhelpers.launchFragmentInContainer2
 import tools.fastlane.screengrab.Screengrab
 import tools.fastlane.screengrab.locale.LocaleTestRule
@@ -29,6 +30,9 @@ class OnboardingFragmentTest : BaseUITest() {
     @JvmField
     val localeTestRule = LocaleTestRule()
 
+    @get:Rule
+    val systemUIDemoModeRule = SystemUIDemoModeRule()
+
     @Before
     fun setUp() {
         setupMockViewModel(object : OnboardingFragmentViewModel.Factory {
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingNotificationsFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingNotificationsFragmentTest.kt
index 33eb47d759bd56c4967cd36204b5c24f08213dcc..36b9ab7b6e98ee868d5cd88be9a49ba19a5a9405 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingNotificationsFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingNotificationsFragmentTest.kt
@@ -16,6 +16,7 @@ import org.junit.Test
 import org.junit.runner.RunWith
 import testhelpers.BaseUITest
 import testhelpers.Screenshot
+import testhelpers.SystemUIDemoModeRule
 import testhelpers.launchFragmentInContainer2
 import tools.fastlane.screengrab.Screengrab
 import tools.fastlane.screengrab.locale.LocaleTestRule
@@ -27,6 +28,9 @@ class OnboardingNotificationsFragmentTest : BaseUITest() {
     @JvmField
     val localeTestRule = LocaleTestRule()
 
+    @get:Rule
+    val systemUIDemoModeRule = SystemUIDemoModeRule()
+
     @Before
     fun setup() {
         setupMockViewModel(object : OnboardingNotificationsViewModel.Factory {
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragmentTest.kt
index aa3166ad0332e52f8d5f07b61c3b31e485e972e9..31f7e424436ef647f6cd6cf974f3f8401213f5d5 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragmentTest.kt
@@ -15,6 +15,7 @@ import org.junit.Test
 import org.junit.runner.RunWith
 import testhelpers.BaseUITest
 import testhelpers.Screenshot
+import testhelpers.SystemUIDemoModeRule
 import testhelpers.launchFragmentInContainer2
 import tools.fastlane.screengrab.Screengrab
 import tools.fastlane.screengrab.locale.LocaleTestRule
@@ -26,6 +27,9 @@ class OnboardingPrivacyFragmentTest : BaseUITest() {
     @JvmField
     val localeTestRule = LocaleTestRule()
 
+    @get:Rule
+    val systemUIDemoModeRule = SystemUIDemoModeRule()
+
     @Before
     fun setup() {
         setupMockViewModel(object : OnboardingPrivacyViewModel.Factory {
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTestFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTestFragmentTest.kt
index 9cc641ea4cc50bf7a69cb7680ee68928fd0c8f16..3c0a2631fd760247bbad8faa5c668342854fea77 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTestFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTestFragmentTest.kt
@@ -16,6 +16,7 @@ import org.junit.Test
 import org.junit.runner.RunWith
 import testhelpers.BaseUITest
 import testhelpers.Screenshot
+import testhelpers.SystemUIDemoModeRule
 import testhelpers.launchFragmentInContainer2
 import tools.fastlane.screengrab.Screengrab
 import tools.fastlane.screengrab.locale.LocaleTestRule
@@ -27,6 +28,9 @@ class OnboardingTestFragmentTest : BaseUITest() {
     @JvmField
     val localeTestRule = LocaleTestRule()
 
+    @get:Rule
+    val systemUIDemoModeRule = SystemUIDemoModeRule()
+
     @Before
     fun setup() {
         setupMockViewModel(object : OnboardingTestViewModel.Factory {
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragmentTest.kt
index 18877ff1e005256a69db78ec6ef24eb1d6c4ea9e..fe0c93bf5a7eea060e658b66c1f67af0d6d45154 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragmentTest.kt
@@ -24,6 +24,7 @@ import org.junit.Test
 import org.junit.runner.RunWith
 import testhelpers.BaseUITest
 import testhelpers.Screenshot
+import testhelpers.SystemUIDemoModeRule
 import testhelpers.TestDispatcherProvider
 import testhelpers.launchFragmentInContainer2
 import tools.fastlane.screengrab.Screengrab
@@ -39,6 +40,9 @@ class OnboardingTracingFragmentTest : BaseUITest() {
     @JvmField
     val localeTestRule = LocaleTestRule()
 
+    @get:Rule
+    val systemUIDemoModeRule = SystemUIDemoModeRule()
+
     @Before
     fun setup() {
         MockKAnnotations.init(this, relaxed = true)
diff --git a/Corona-Warn-App/src/androidTest/java/testhelpers/SystemUIDemoModeHelper.kt b/Corona-Warn-App/src/androidTest/java/testhelpers/SystemUIDemoModeHelper.kt
new file mode 100644
index 0000000000000000000000000000000000000000..d98a657ea90aac323f1aa298c38fabe622763c33
--- /dev/null
+++ b/Corona-Warn-App/src/androidTest/java/testhelpers/SystemUIDemoModeHelper.kt
@@ -0,0 +1,56 @@
+package testhelpers
+
+import android.os.ParcelFileDescriptor
+import androidx.test.platform.app.InstrumentationRegistry
+import java.io.BufferedReader
+import java.io.InputStreamReader
+
+/**
+ * System UI Demo Mode helper that uses instrumentation commands to clean device status bar.
+ * @see <a href="https://android.googlesource.com/platform/frameworks/base/+/master/packages/SystemUI/docs/demo_mode.md" >Demo mode</a>
+ * @see <a href="https://developer.android.com/studio/debug/dev-options#general" >Dev options</a>
+ */
+class SystemUIDemoModeHelper {
+
+    /**
+     * Allows System UI demo mode and configure how the status bar should look like
+     */
+    fun enter() {
+        executeShellCommand("settings put global sysui_demo_allowed 1")
+        sendCommand("exit")
+        sendCommand("enter")
+        sendCommand("notifications", "visible" to "false")
+        sendCommand("network", "wifi" to "show", "level" to "4", "fully" to "true")
+        sendCommand("battery", "level" to "100", "plugged" to "false")
+        sendCommand("clock", "hhmm" to "1000")
+    }
+
+    /**
+     * Exist system UI demo mode
+     */
+    fun exit() {
+        sendCommand("exit")
+    }
+
+    private fun sendCommand(command: String, vararg extras: Pair<String, Any>) {
+        val exec = StringBuilder("am broadcast -a com.android.systemui.demo -e command $command")
+        for ((key, value) in extras) {
+            exec.append(" -e $key $value")
+        }
+        executeShellCommand(exec.toString())
+    }
+
+    private fun executeShellCommand(command: String) {
+        waitForCompletion(InstrumentationRegistry.getInstrumentation().uiAutomation.executeShellCommand(command))
+    }
+
+    private fun waitForCompletion(descriptor: ParcelFileDescriptor) {
+        BufferedReader(
+            InputStreamReader(
+                ParcelFileDescriptor.AutoCloseInputStream(descriptor)
+            )
+        ).use {
+            it.readText()
+        }
+    }
+}
diff --git a/Corona-Warn-App/src/androidTest/java/testhelpers/SystemUIDemoModeRule.kt b/Corona-Warn-App/src/androidTest/java/testhelpers/SystemUIDemoModeRule.kt
new file mode 100644
index 0000000000000000000000000000000000000000..7792357574ac9074ce9fdca6c6fd0a2fd209c9bb
--- /dev/null
+++ b/Corona-Warn-App/src/androidTest/java/testhelpers/SystemUIDemoModeRule.kt
@@ -0,0 +1,27 @@
+package testhelpers
+
+import org.junit.rules.TestRule
+import org.junit.runner.Description
+import org.junit.runners.model.Statement
+
+/**
+ * Enters UI demo mode (clean up device status bar)
+ * before running screenshot tests and exists after it afterwards
+ */
+class SystemUIDemoModeRule : TestRule {
+
+    private val helper = SystemUIDemoModeHelper()
+
+    override fun apply(base: Statement, description: Description): Statement =
+        object : Statement() {
+            override fun evaluate() {
+                try {
+                    helper.enter()
+                    base.evaluate()
+                    helper.exit()
+                } catch (e: Exception) {
+                    e.printStackTrace()
+                }
+            }
+        }
+}