Unspecified android:exported in manifest
Unspecified 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.
Previously, 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
https://goo.gle/IntentFilterExportedReceiver
Inspection Details | |
---|---|
Available in: | IntelliJ IDEA 2023.3, Qodana for Android 2023.3, Qodana for JVM 2023.3 |
Plugin: | Android, 2022.3.1 Beta 2 |