# Print output for @column tags ?>
targetSdkVersion of greater than
29.
Starting in Build.VERSION_CODES.R, there is a new public API overload onChange(boolean, Uri, int) that delivers a int flags argument.
Some apps may be relying on a previous hidden API that delivered a int userId argument, and this change is used to control delivery of the new int flags argument in its place.
targetSdkVersion of greater than
29.
For admin apps targeting R+, throw when the app sets password requirement that is not taken into account at given quality. For example when quality is set to DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED, it doesn't make sense to require certain password length. If the intent is to require a password of certain length having at least NUMERIC quality, the admin should first call DevicePolicyManager.setPasswordQuality(ComponentName, int) and only then call DevicePolicyManager.setPasswordMinimumLength(ComponentName, int).
Conversely when an admin app targeting R+ lowers password quality, those requirements that stop making sense are reset to default values.
targetSdkVersion of greater than
29.
Compat framework change ID for the APN db read permission change. In API level 30 and beyond, accessing the APN database will require the Manifest.permission.WRITE_APN_SETTINGS permission. This change ID tracks apps that are affected because they don't hold this permission.
targetSdkVersion of greater than
29.
Apps have no access to the private data directories of any other app, even if the other app has made them world-readable.
targetSdkVersion of greater than
29.
This change makes it so that apps are told to show rationale for asking for background location access every time they request.
targetSdkVersion of greater than
29.
There will now be a callback to OnSharedPreferenceChangeListener.onSharedPreferenceChanged with a null key on Editor.clear.
targetSdkVersion of greater than
29.
To expand the error codes for updateAvailableNetworks(List and setPreferredOpportunisticDataSubscription(int, boolean, Executor, Consumer.
targetSdkVersion of greater than
29.
This is a subtle behavior change to startWatchingMode(String, String, AppOpsManager.OnOpChangedListener). Before this change the system called back for the switched op. After the change the system will call back for the actually requested op or all switched ops if no op is specified.
targetSdkVersion of greater than
29.
In targetSdkVersion R and above, foreground service has camera and microphone while-in-use capability only when the R.attr.foregroundServiceType is configured as ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA and ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE respectively in the manifest file. In targetSdkVersion below R, foreground service automatically have camera and microphone capabilities.
targetSdkVersion of greater than
29.
Apps that post custom toasts in the background will have those blocked. Apps can still post toasts created with Toast.makeText(Context, CharSequence, int) and its variants while in the background.
Intents with action android.settings.MANAGE_APP_OVERLAY_PERMISSION and data URI scheme package don't go to the app-specific screen for managing the permission anymore. Instead, they redirect to this screen for managing all the apps that have requested such permission.
targetSdkVersion of greater than
29.
Text toasts will be rendered by SystemUI instead of in-app, so apps can't circumvent background custom toast restrictions.
targetSdkVersion of greater than
1234.
A change ID to be used only in the CTS test for this SystemApi
Scoped Storage is on by default. However, it is not strictly enforced and there are multiple ways to opt out of scoped storage:
FORCE_ENABLE_SCOPED_STORAGE should also be disabled for apps to opt out of scoped storage. Note: This flag is also used in com.android.providers.media.LocalCallingIdentity. Any modifications to this flag should be reflected there as well. See https://developer.android.com/training/data-storage#scoped-storage for more information.
targetSdkVersion of greater than
29.
An intent filter's actor or category is an empty string. A bug in the platform before R allowed this to pass through without an error. This does not include cases when the attribute is null/missing, as that has always been a failure.
targetSdkVersion of greater than
30.
Enables checks to stop apps from inserting and updating to private files via media provider.
targetSdkVersion of greater than
29.
Apps targeting Android R and above will need to declare the packages and intents they intend to use to get details about other apps on a device. Such declarations must be made via the <queries> tag in the manifest.
Setting this flag strictly enforces Scoped Storage regardless of:
DEFAULT_SCOPED_STORAGE should also be enabled for apps to be enforced into scoped storage. Note: This flag is also used in com.android.providers.media.LocalCallingIdentity. Any modifications to this flag should be reflected there as well. See https://developer.android.com/training/data-storage#scoped-storage for more information.
targetSdkVersion of greater than
29.
Used for checking if the SDK version for PreciseDataConnectionState#getDataConnectionState is above Q.
targetSdkVersion of greater than
29.
Used for checking if the SDK version for getDataState() is above Q.
targetSdkVersion of greater than
29.
For apps targeting Android R and above, getProvider(String) will no longer throw any security exceptions.
targetSdkVersion of greater than
28.
To check the SDK version for SmsManager.sendResolverResult method.
targetSdkVersion of greater than
30.
For apps targeting Android S and above, all GpsStatus API usage must be replaced with GnssStatus APIs.
Enable sampled memory bug detection in the app. @see GWP-ASan.
targetSdkVersion of greater than
28.
Gating access to greylist-max-p APIs.
targetSdkVersion of greater than
29.
Gating access to greylist-max-q APIs.
targetSdkVersion of greater than
16.
For apps targeting Android K and above, incomplete locations may not be passed to setTestProviderLocation(String, Location).
targetSdkVersion of greater than
28.
To check the SDK version for listenForSubscriber(int, String, String, PhoneStateListener, int, boolean).
targetSdkVersion of greater than
29.
Missing an "application" or "instrumentation" tag.
targetSdkVersion of greater than
29.
Native heap allocations will now have a non-zero tag in the most significant byte. @see Tagged Pointers
This change enables a limit on the number of PhoneStateListener objects any process may register via TelephonyManager.listen(PhoneStateListener, int). The default limit is 50, which may change via remote device config updates. This limit is enforced via an IllegalStateException thrown from TelephonyManager.listen(PhoneStateListener, int) when the offending process attempts to register one too many listeners.
targetSdkVersion of greater than
29.
Remove meta-reflection workaround for hidden api usage for apps targeting R+. This allowed apps to obtain references to blacklisted fields and methods through an extra layer of reflection.
targetSdkVersion of greater than
29.
Flag Context.BIND_INCLUDE_CAPABILITIES is used to pass while-in-use capabilities from client process to bound service. In targetSdkVersion R and above, if client is a TOP activity, when this flag is present, bound service gets all while-in-use capabilities; when this flag is not present, bound service gets no while-in-use capability from client.
targetSdkVersion of greater than
29.
Remove android.test.base library for apps that target SDK R or more and do not depend on android.test.runner (as it depends on classes from the android.test.base library).
targetSdkVersion of greater than
29.
For accessibility services targeting APIs greater than API 29, FLAG_REQUEST_ACCESSIBILITY_BUTTON must be specified in the accessibility service metadata file. Otherwise, it will be ignored.
targetSdkVersion of greater than
29.
The resources.arsc of one of the APKs being installed is compressed or not aligned on a 4-byte boundary. Resource tables that cannot be memory mapped exert excess memory pressure on the system and drastically slow down construction of Resources objects.
targetSdkVersion of greater than
29.
We support restrict Storage Access Framework from Build.VERSION_CODES.R. App Compatibility flag that indicates whether the app should be restricted or not. This flag is turned on by default for all apps targeting > Build.VERSION_CODES.Q.
targetSdkVersion of greater than
29.
This change gates apps access to untrusted_app_R-targetSDk SELinux domain. Allows opt-in to R targetSdkVersion enforced changes without changing target SDK. Turning this change off for an app targeting R is a no-op.
Has no effect for apps using shared user id. TODO(b/143539591): Update description with relevant SELINUX changes this opts in to.
targetSdkVersion of greater than
16.
For apps targeting Android K and above, supplied PendingIntents must be targeted to a specific package.
targetSdkVersion of greater than
29.
Adding an installer package name to a package that does not have one set requires the INSTALL_PACKAGES permission. If the caller targets R, this will throw a SecurityException. Otherwise the request will fail silently. In both cases, and regardless of whether this change is enabled, the installer package will remain unchanged.
targetSdkVersion of greater than
29.
Pre R a SecurityException would only be thrown by setEnabled APIs (e .g. setEnabled(String, boolean, UserHandle)) for a permission error. Since R this no longer holds true, and SecurityException can be thrown for any number of reasons, none of which are exposed to the caller.
To maintain existing API behavior, if a legacy permission failure or actor enforcement failure occurs for an app not yet targeting R, coerce it into an IllegalStateException, which existed in the source prior to R.
targetSdkVersion of greater than
29.
Since Android 11, formatter classes, e.g. java.text.SimpleDateFormat, no longer provide English data when Locale.ROOT format is requested. Please use Locale.ENGLISH to format in English. Note that Locale.ROOT is used as language/country neutral locale or fallback locale, and does not guarantee to represent English locale. This flag is only for documentation and can't be overridden by app. Please use targetSdkVersion to enable the new behavior.
targetSdkVersion of greater than
29.
Admin apps targeting Android R+ may not use DevicePolicyManager.setSecureSetting(ComponentName, String, String) to change the deprecated Settings.Secure.LOCATION_MODE setting. Instead they should use DevicePolicyManager.setLocationEnabled(ComponentName, boolean).