Starting March 27, 2025, we recommend using android-latest-release
instead of aosp-main
to build and contribute to AOSP. For more information, see Changes to AOSP.
UWB
Stay organized with collections
Save and categorize content based on your preferences.
The ultra-wideband (UWB) module, introduced in Android 13, contains a UWB stack
above the HAL interface, which is based on the FiRa specification.
The UWB module provides the following benefits for device manufacturers:
- A complete Android native UWB stack available for UWB capable devices
- Improved quality and interoperability of UWB across the Android ecosystem
- Faster and more flexible support for new FiRa use cases and
specification updates
Details
The following are details of the UWB module:
- Includes a complete UWB stack in AOSP in Android 13 that uses the UCI
specification defined by FiRa as the HAL interface.
- Allows system apps to provision custom profiles.
- Includes a system API surface to allows system apps to use custom
profiles in their ranging sessions.
- Includes infrastructure to expose RROs that can be used by device
manufacturers to customize the behavior of the stack.
UWB stack architecture
The UWB stack consists of the UWB mainline module and the HAL implementation
provided by a UWB chip vendor.
Figure 1. UWB stack architecture
Module boundary
The module code is in the following locations:
The UWB module (com.google.android.uwb
) uses the
APEX format.
Dependencies
The UWB mainline module depends on the following:
- HAL implementation from a UWB chip vendor.
- Bluetooth stack for all OOB interactions.
- Secure element for all secure service interactions.
- Core framework for UWB runtime permission enforcement.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-06-12 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-06-12 UTC."],[],[],null,["# UWB\n\nThe ultra-wideband (UWB) module, introduced in Android 13, contains a UWB stack\nabove the HAL interface, which is based on the FiRa specification.\n\nThe UWB module provides the following benefits for device manufacturers:\n\n- A complete Android native UWB stack available for UWB capable devices\n- Improved quality and interoperability of UWB across the Android ecosystem\n- Faster and more flexible support for new FiRa use cases and specification updates\n\n### Details\n\nThe following are details of the UWB module:\n\n- Includes a complete UWB stack in AOSP in Android 13 that uses the UCI specification defined by FiRa as the HAL interface.\n- Allows system apps to provision custom profiles.\n- Includes a system API surface to allows system apps to use custom profiles in their ranging sessions.\n- Includes infrastructure to expose RROs that can be used by device manufacturers to customize the behavior of the stack.\n\nUWB stack architecture\n----------------------\n\nThe UWB stack consists of the UWB mainline module and the HAL implementation\nprovided by a UWB chip vendor.\n\n**Figure 1.** UWB stack architecture\n\nModule boundary\n---------------\n\nThe module code is in the following locations:\n\n- **UWB Mainline Apex** : `com.android.uwb`\n\n - UWB API surface (Java)\n\n - Code location: `packages/modules/Uwb/framework`\n - Process: `\u003cbootclasspath\u003e`\n - UwbService (Java)\n\n - Code location: `packages/modules/Uwb/service`\n - Process: `system_server`\n - Uwb Native stack (C++/Rust)\n\n - Code location: `external/uwb`\n - Process: `system_server`\n- **HAL interface and implementations (C++)**\n\n - Interface code location: `hardware/interfaces/uwb`\n - Implementation code location: `vendor/\u003cvendor-name\u003e/uwb`\n - Process: `\u003cvendor defined\u003e`\n\nPackage format\n--------------\n\nThe UWB module (`com.google.android.uwb`) uses the\n[APEX](/docs/core/ota/apex) format.\n\nDependencies\n------------\n\nThe UWB mainline module depends on the following:\n\n- HAL implementation from a UWB chip vendor.\n- Bluetooth stack for all OOB interactions.\n- Secure element for all secure service interactions.\n- Core framework for UWB runtime permission enforcement."]]