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:
- CrossDevice: Provides cross-device communication technologies using standard protocols
- Permissions unification: Information about unifying permissions
- Split tunneling: Specifies routes to exclude from the VPN
- Wi-Fi module boundary updates: Updated module boundary
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:
CarrierConfigManager#KEY_CELLULAR_USAGE_SETTING_INT
sets the usage setting.SubscriptionInfo#getUsageSetting()
queries the usage setting.
To validate the cellular usage setting feature, run the following tests:
- CTS:
SubscriptionManagerTest#testCellularUsageSetting
- VTS:
RadioNetworkTest#testSetUsageSetting_InvalidValues
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
: AddsPUBLISH_STATE_PUBLISHING
to allow listening apps to know when the IMS stack is actively trying to publish capabilitiesCapabilityExchangeEventListener
: Adds theonPublishUpdated
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:
iccOpenLogicalChannel(String AID, int p2)
iccCloseLogicalChannel(int channel)
iccTransmitApduBasicChannel(int cla, int instruction, int p2, int p3, String data)
iccTransmitApduLogicalChannel(int channel, int cla, int instruction, int p1, int p2, int p3, String data)
iccExchangeSimIO(int fileID, int command, int p1, int p2, int p3, String filePath)
sendEnvelopeWithStatus(String content)
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.