# 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 PendingIntent
s 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)
.