Inspectopedia Help

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

Last modified: 13 July 2023