Android 13 and Android 13 QPR release notes

This page summarizes the major features in the Android 13 and the Android 13 QPR releases and provides links to additional information. These feature summaries are organized according to the feature's documentation location on this site.

Architecture

Changes to the generic boot partition

For devices launching with Android 13, the generic ramdisk is removed from the boot image and placed in a separate init_boot image.

For more information, see Generic Boot Partition.

GKI modules

In Android 13, some kernel functionality is delivered in dynamically loadable modules, called GKI modules, to reduce the GKI kernel memory footprint on devices that don't require the functionality.

For further information, see the Kernel modules.

Modular system components

Android 13 contains several new and updated modulular system components. The new modules are:

  • AdServices: Supports the Privacy Sandbox initiative that aims to create technologies that both protect people's privacy online and give companies and developers tools to build thriving digital businesses
  • AppSearch: An on-device indexing and structured search engine
  • Bluetooth: (Optional) Aims to provide a consistent, high-quality Bluetooth experience to all Android users
  • OnDevicePersonalization: Provides a set of tools developed with user privacy as their core tenet
  • UWB: Contains a UWB stack above the HAL interface

Updates to existing modules:

Update to Android kernel file system support

Beginning with Android 13, userspace works only with file systems built into the Generic Kernel Image (GKI).

For more details, see Android Kernel File System Support.

Audio

Implementation of spatial audio and head tracking

Starting with Android 13-QPR, using the new audio pipeline architecture and sensor framework integration, OEMs can provide a spatializer audio effect with support for head tracking with the required level of performance and latency. See Implementation of high-quality spatial audio and head tracking for guidelines and more information.

Support for MIDI 2.0

Starting in Android 13, MIDI 2.0 support is added to the USB transport. MIDI 2.0 is a newer MIDI standard defined in 2020.

See the MIDI page for more details.

Update to Audio HAL

Starting with Android 13, Audio HAL is updated to version 7.1. See Audio HAL for more information.

Automotive

New Android Automotive features

To learn more about the new Automotive features in Android 13, see What's New.

Build

Build with Bazel

Android 13 introduces building kernels with Bazel, replacing build/build.sh.

For more information, see Bazel (Kleaf).

Camera

AIDL camera HAL

In Android 13, the camera framework includes support for AIDL camera HALs. The camera framework also supports HIDL camera HALs, however camera features added in Android 13 or higher are available only through the AIDL camera HAL interfaces.

For information on migrating HAL processes from HIDL camera interfaces to AIDL camera interfaces, see AIDL camera HAL.

Camera debugging updates

Android 13 adds the watch debugging tool in the camera service, which allows for viewing changes in capture request and result values that are sent to and from the camera HAL. The tool allows live previewing of tag monitoring dumps from open clients, and viewing of cached dumps from closed clients.

For more information, see Camera Debugging.

Camera preview stabilization

Android 13 adds support for video stabilitization on the preview stream in camera capture sessions. This feature lets third-party apps provide a what you see is what you get (WYSIWYG) experience when comparing between the camera preview and the recording.

For more information, see Camera Preview Stabilization.

Torch strength control

Android 13 introduces a feature for multilevel control for torch strength. In Android 12 and lower, the framework allows only for turning the torch mode on or off. This feature enables use cases such as controlling the brightness of the flashlight based on lighting conditions and sending signals for assistance using a strobe effect by sending quick pulses of light in a row.

For more information, see Torch Strength Control.

10-bit camera output

Android 13, adds support for 10-bit camera output through dynamic range profiles that can be configured by the camera client as part of the stream configuration. This lets device manufacturers add support for 10-bit dynamic range profiles such as HLG10, HDR 10, HDR 10+, and Dolby Vision.

For more information, see 10-Bit Camera Output.

To encourage adoption of 10-bit camera output on third-party apps, such as social media apps, to improve video capture and video sharing experiences, it's important to effectively validate the implementation of this feature. Third-party apps looking to adopt this feature are likely to start with the mandated profile HLG10. For more details, see Validation.

Compatibility

Camera ITS updates

Android 13 introduces changes to Camera ITS, which include support for video testing, updated Python and package versions, and test hardware updates.

For more details, see Android 13 Camera Image Test Suite Release Notes.

CDD updates

The Android 13 Compatibility Definition Document iterates upon previous versions with updates for new features and changes to requirements for previously released functionality.

For a list of changes in Android 13, see Android 13 Compatibility Definition Release Notes.

Default accounts for new contacts

Preloaded contact apps must handle the ContactsContract.Settings.ACTION_SET_DEFAULT_ACCOUNT intent, which lets a user select a default account. The preloaded contact app must save the selected default account and must use the default account when handling Intent.ACTION_INSERT or Intent.ACTION_INSERT_OR_EDIT to insert a contact. This requirement ensures consistency across all apps that interact with contacts.

For further information, see the contacts section of the Android 13 CDD.

Connectivity

Allow 2G toggle

In Android 13, the Allow 2G toggle in Settings is grayed out (meaning that users can't interact with the button) when the KEY_HIDE_ENABLE_2G carrier configuration key is set to true. Additionally, when grayed out, the Allow 2G toggle includes text stating that the user's carrier requires 2G to be available. In previous versions, the Allow 2G toggle is hidden when KEY_HIDE_ENABLE_2G is set to true.

Cellular usage setting

Android 13 supports a cellular usage setting that lets carriers configure devices to be in either a voice-centric or data-centric mode. Carriers can use this setting in conjunction with other config changes to reduce IMS traffic on their networks for traditionally voice-centric devices that operate in data-only mode, for example, for services that include companion data-only service.

To modify the cellular usage setting, use the config_supported_cellular_usage_settings overlay or set the default value in config_default_cellular_usage_setting. The setting can be either USAGE_SETTING_VOICE_CENTRIC or USAGE_SETTING_DATA_CENTRIC.

The cellular usage setting feature includes the following APIs:

To validate the cellular usage setting feature, run the following tests:

Concurrent multiple networks with internet connection

Android 13 introduces the concurrent multiple networks with internet connection feature, which allows a device to concurrently connect to two Wi-Fi networks (APs), both of which are unrestricted (available to all apps) and provide internet access.

For more information, see Wi-Fi STA/STA Concurrency.

IMS API updates

Android 13 introduces the following updates to IMS single registration APIs:

  • DelegateRegistrationState:

    • Supports cases where the framework needs to wait for SIP sessions to finish before tearing down the IMS PDN.
    • Adds the getRegisteringFeatureTags method that allows listening apps to know when the IMS stack is actively trying to register IMS.
  • RcsUceAdapter: Adds PUBLISH_STATE_PUBLISHING to allow listening apps to know when the IMS stack is actively trying to publish capabilities

  • CapabilityExchangeEventListener: Adds the onPublishUpdated method to allow IMS Service to asynchronously notify the platform that a SIP PUBLISH refresh has succeeded or failed.

  • RcsClientConfiguration:

    • To support RCC.72 section 2.1.14, adds a new value to the constructor to allow the messaging app to specify if the user enabled or disabled RCS.
    • Adds the RCS_PROFILE_2_4 constant to allow a messaging app to report that it supports RCS Universal Profile version 2.4.

Android 13 also includes the following updates for IMS APIs:

  • Adds the ability for apps to listen to the IMS stack state through the ImsStateCallback class. For more information, see Use ImsStateCallback.
  • Refactors IMS provisioning for IMS Service to support MVNO provisioning use cases.
  • Improves the threading model in IMS Service.
  • Adds SIM subscription aware APIs in IMS Service

Multiple enabled profiles for eUICC

Android 13 introduces support for multiple enabled profiles (MEPs) for eUICC, which allows devices to have dual SIM support using a single eSIM chip. Multiple SIM profiles allow the device to connect to two different carriers at the same time.

For further information, see Multiple Enabled Profiles.

Presence calibration requirements

Android 13 introduces new presence calibration requirements to ensure that all devices in the Android ecosystem can determine the relative proximity between devices.

For more information on how to set up and calibrate devices to meet these requirements, see Presence Calibration Requirements.

Telephony fallback mode for time zone detection

Android 13 introduces the telephony fallback mode for time zone detection. This mode lets Android use telephony detection suggestions temporarily in situations where location detection can't detect the time zone, or where location detection takes longer than telephony detection to detect the time zone.

For more details, see The time_zone_detector service.

TelephonyManager UICC access API improvements

Android 13 undeprecates and adds improvements for UICC logical channel management for the following TelephonyManager UICC access APIs:

These APIs were deprecated in Android 11 because OMAPI provides a more reliable implementation for managing UICC logical channels. However, OMAPI doesn't cover all the use cases provided by the TelephonyManager UICC access APIs. Therefore, in Android 13, these APIs are undeprecated with improvements for UICC logical channel management. Previously, when a calling app that opens a logical channel crashes, the logical channel can leak, meaning that the channel isn't released and can't be reused by the app without rebooting. With the improvements in Android 13, if an app crashes, the system releases the logical channel, which allows the channel to be reused by the app.

These API improvements are done at the implementation level and are fully backward compatible. No additional effort is required for calling apps to use these APIs.

Trust on First Use (TOFU) for enterprise networks

Android 13 introduces support for the Trust on First Use (TOFU) authentication approach, which lets users trust an enterprise (EAP) network by installing the root CA used by the server and setting its domain name in a saved network. TOFU allows the device to obtain an unauthenticated public key when a user first connects to an enterprise network and retain the key for subsequent connections.

For more information, see Trust on First Use.

Ultra-wideband support

Android 13 introduces a default framework implementation for ultra-wideband (UWB) radio technology, a technology that enables highly secure, precise ranging between supported devices.

For more information, see Ultra-wideband.

Wi-Fi AP/AP concurrency updates

Android 13 adds support for the 6 GHz band for Wi-Fi AP/AP concurrency, which lets devices create two access point (AP) interfaces.

For more information, see Wi-Fi AP/AP Concurrency.

Wi-Fi Aware

Android 13 introduces support for version 3.1 of the Wi-Fi Aware specification. For more information, see Wi-Fi Aware.

Wi-Fi hotspot (soft AP) tethering updates

Android 13 introduces new configurations for devices supporting tethering through Wi-Fi hotspots. For details on the new configurations, see Wi-Fi Hotspot (Soft AP).

Wi-Fi multi-interface concurrency

Starting in Android 13, Wi-Fi HAL 1.6 adds the ability to specify a bridged AP interface (dual band simultaneous) as an explicit combination item.

For more details, see Wi-Fi multi-interface concurrency.

Wi-Fi network selection updates

Starting in Android 13, if different scan intervals are needed at runtime, privileged apps can dynamically set the on-screen scan schedule for available Wi-Fi networks by calling the WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) method.

For more information, see Wi-Fi Network Selection.

Display

Task manager

In Android 13, a new System UI affordance called the Task Manager notifies the user about the state and resources being used by the foreground services on background apps and enables the user to stop these apps.

For more information, see Task Manager.

Media controls in System UI

Starting in Android 13, media controls in System UI contain updates to action buttons and remote playback. These changes support a more polished media control experience on phones and tablets, and offer seamless media transfers across devices.

For more details, see Media controls in System UI.

Mixed SDR and HDR composition

Android 13 improves support for simultaneously presenting SDR and HDR composition on screen by dimming on-screen SDR content when presented simultaneously with HDR content.

For more information, see Mixed SDR and HDR Composition.

Notification permission for opt-in notifications

Starting with Android 13, notifications use an opt-in model, where all apps must ask users for permission before sending notification prompts. To support this, OEMs must implement changes in the notification and runtime permission systems, as outlined on the Notification Permission for Opt-In Notifications page.

Tone map HDR luminance to an SDR-compatible range

Android 13 introduces a vendor-configurable static library called libtonemap, which defines tone mapping operations. This feature enables OEMs to define and share their display tone mapping algorithms between the framework and vendors, lessening a mismatch in tone mapping.

For more information, see Tone map HDR luminance to an SDR-compatible range.

Graphics

AIDL for Hardware Composer HAL

Starting in Android 13, the Hardware Composer (HWC) HAL is defined in AIDL and the HIDL versions ranging from android.hardware.graphics.composer@2.1 to android.hardware.graphics.composer@2.4 are deprecated.

For more information, see AIDL for Hardware Composer HAL.

Client framebuffer management

Starting with Android 13, new framebuffers, used during client composition, are allocated whenever the display resolution changes. This allocation is performed by SurfaceFlinger on the next invalidate cycle after a resolution change.

For more information, see Client framebuffer management.

Frames per second (FPS) throttling intervention

Starting with Android 13-QPR, FPS Throttling Intervention enables games to pace at an appropriate FPS using only platform side changes and without requiring any action on the developers' part. See FPS Throttling Intervention for more information.

Unsignaled buffer latching with AutoSingleLayer

Android 13 adds a new configuration called AutoSingleLayer for latching unsignaled buffers. This configuration lets SurfaceFlinger latch an unsignaled buffer when only a single layer is updating, and not for the cases that occur across layers, such as geometry changes or sync transactions.

For more information, see Unsignaled buffer latching with AutoSingleLayer.

Interaction

Authentication for home controls

In Android 13, the device controls API includes a new method called isAuthRequired, which allows device controls providers to specify which home controls can fulfil interactions on a locked device. This enables a more seamless interaction on entry points, such as a locked phone screen.

Head tracker HID protocol

Android 13 introduces the head tracker human interface device (HID) protocol, which allows a head-tracking device to be connected to an Android device through USB or Bluetooth and be exposed to the Android framework and apps through the sensors framework.

For more information, see Head Tracker HID Protocol.

Locked callback signal support in KeyguardManager

In Android 13, new methods, such as addKeyguardLockedStateListener and removeKeyguardLockedStateListener, in the KeyguardManager class, notify the listener about the locked state of the keyguard.

NNAPI reusable execution objects

Android 13 introduces the NNAPI AIDL HAL interface, IExecution, which manages the lifetime of a reusable execution object and its cached resources. IExecution objects reduce the overhead of machine learning inference tasks by enabling the NNAPI driver to preserve resources between executions and apply request-specific optimizations.

Sensors AIDL HAL

Android 13 introduces the Sensors AIDL HAL, a HAL based on the Sensors HAL 2.1 that uses the AIDL HAL interface. The Sensors AIDL HAL exposes the head tracker and limited-axis IMU sensor types.

Media

Export video encoding statistics

Starting with Android 13, app clients can request the video encoder to export encoding statistics for each encoded video frame. With the statistics obtained from the video encoder, apps can optimize their video encoding tasks such as multipass encoding and frame preprocessing prior to encoding.

For more information, see Video encoding statistics data.

Performance

Health AIDL HAL

Android 13 introduces the Health AIDL HAL, a HAL based on the Health HAL 2.1 that uses the AIDL HAL interface.

Performance boost at game loading time

Android 13 introduces a new power mode in the Power Manager Service named GAME_LOADING that indicates to the Power HAL if the game app is in the loading state so that the Power HAL can provide a loading boost. See Performance Boost At Game Loading Time for more information.

Permissions

Body sensor permission split

Starting from Android 13, the BODY_SENSORS permission is split into two permissions: BODY_SENSORS to track heart rate in the foreground and BODY_SENSORS_BACKGROUND to track heart rate in the background.

For further information, refer to Use of body sensors in the background requires new permission

Power

App background behavior trackers

Android 13 introduces the concept of an app background behavior tracker or a process that monitors background battery usage by apps to determine if apps violate some policy.

For further information, see App background behavior trackers.

Mitigate power usage during backup and restore

Starting from Android 13, you can limit power transfer during USB backup and restore by calling UsbPort class's enableLimitPowerTransfer method.

For further information, see Power Management.

Security

Identity credentials

Android 13 adds multi-document presentation support. This new Presentation Session interface enables an application to do a multi-document presentation, something which isn't possible with the existing API.

For further information, refer to Identity Credential

APK Signature Scheme V3.1

This scheme is used by default when signing an APK with a rotated signing key and signing lineage, and allows a single APK to target rotation on Android 13 and later while avoiding the known issues with rotation on previous platform versions by using the original signing key in the v3.0 signature block. Similarly, the v4.1 signature will include additional signing info for the v3.1 block to support the same behavior for incremental installs.

Intents should match declared intent filters

In Android 13, intents originating from external apps are delivered to an exported component if and only if the intents matche their declared intent-filter elements.

Non-matching intents are blocked. The following are exceptions where intent matching isn't enforced:

  • Intents delivered to components that don't declare any intent filters
  • Intents originating within the same app
  • Intents from the system
  • Intents from the root

OMAPI vendor-stable interface

Open Mobile API (OMAPI) is a standard API used to communicate with a device's Secure Element. Before Android 13, only applications and framework modules had access to this interface. By converting it to a vendor stable interface, HAL modules are also capable of communicating with the secure elements through the OMAPI service.

For more information, see OMAPI Vendor Stable Interface.

Shared UIDs are deprecated

As of Android 13-QPR, shared UIDs are deprecated. Users of Android 13 or higher should put the line android:sharedUserMaxSdkVersion="32" in their manifest. This entry prevents new users from getting a shared UID. For further information on UIDs, see Application signing.

Settings

Per-app language settings

Android 13 adds capabilities to let users change language preferences on an app-by-app basis. Partners and OEMS shouldn't disable the app language selection page and the page should be accessible through these three navigation options:

  • Settings > Apps > app_name and select Language.
  • Long press the app icon, tap App info, and select Language.
  • Settings > System > Languages & input > App languages > app_name.

The Settings app must continue to launch the app locale settings page from the android.settings.App_Locale_Settings intent.

For further information, refer to Per-app language settings.

TV

Multimedia tunnel mode

Android 13 expands the defined behavior of tunneled video playback and ties that new behavior to additional CTS certification tests.

For more information, see Multimedia Tunneling.

Updates

Virtual A/B updates

Android 13 adds the XOR compression and userspace merge features for Virtual A/B updates. XOR compression allows for reduced snapshot sizes because XOR data is easier to compress than raw block data. The userspace merge feature lets the snapuserd userspace component to handle the merge process for Virtual A/B updates, which reduces merge times as compared to Android 12 where a dm-snapshot device is used.

For details on how to enable these features on devices upgrading to Android Android 13, see XOR compression and Userspace merge.

Virtualization

Android Virtualization Framework

Android Virtualization Framework (AVF) provides secure and private execution environments for executing code. AVF is ideal for security-oriented use cases that require stronger, even formally verified, isolation assurances over those offered by Android’s app sandbox.

For more information, see Android Virtualization Framework overview.