Does omitting android:exported with intent filters cause install-time failures on API 31+
0 reputation · 18 Jan 2021, 19:00 UTC
Android components such as activities, services, and broadcast receivers determine their accessibility to other applications based on the android:exported attribute. Historically, the platform assigned a default value based on whether the component contained an intent filter.
Starting with Android 12 (API 31), the platform shifted toward mandatory explicit declarations to prevent accidental public access. There is uncertainty regarding how the build system and the package manager handle legacy manifests that rely on implicit defaults when targeting these newer API levels.
What is the specific behavior when a component contains an intent filter but lacks an explicit android:exported declaration on API 31 and later? Does the application fail to install, or does the system apply a default value based on the presence of the filter?