Unspecified android:exported in manifest
android:exported in manifest
Apps targeting Android 12 and higher are required to specify an explicit value for
android:exported when the corresponding component has an intent filter defined. Otherwise, installation will fail. Set it to
true to make this activity accessible to other apps, and
false to limit it to be used only by this app or the OS. For launch activities, this should be set to true; otherwise, the app will fail to launch.
android:exported for components without any intent filters present used to default to
false, and when intent filters were present, the default was
true. Defaults which change value based on other values are confusing and lead to apps accidentally exporting components as a side-effect of adding intent filters. This is a security risk, and we have made this change to avoid introducing accidental vulnerabilities.
While the default without intent filters remains unchanged, it is now required to explicitly specify a value when intent filters are present. Any app failing to meet this requirement will fail to install on any Android version after Android 11.
We recommend setting
android:exported to false (even on previous versions of Android prior to this requirement) unless you have a good reason to export a particular component.
Issue id: IntentFilterExportedReceiver
IntelliJ IDEA 2023.3, Qodana for Android 2023.3, Qodana for JVM 2023.3
Android, 2022.3.1 Beta 2