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.
Ultra-wideband
Stay organized with collections
Save and categorize content based on your preferences.
From Android 13, Android includes a default framework
implementation for ultra-wideband (UWB) radio technology, a technology that
enables highly secure, precise ranging between supported devices. The platform
AOSP UWB stack is available as an optional
module for device manufacturers.
For more details on the module, see
Module: UWB.
Architecture
The UWB stack consists of the UWB mainline module and the HAL implementation
provided by a UWB chip vendor as shown in Figure 1.
Figure 1. UWB stack architecture
AOSP stack
The AOSP UWB stack, packaged as an optional module, com.google.android.uwb
,
contains the following components:
- UWB platform API surface
- Code location:
packages/modules/Uwb/framework
- Support library
- Code location:
packages/modules/Uwb/service/support_lib
- UwbService layer and Common Service Management Layer (CSML) defined
components defined by FiRa
- Code location:
packages/modules/Uwb/service
- Rust native UCI layer
- Code location:
external/uwb
- UWB HAL interface based on the UWB command interface (UCI) specification
defined by FiRa
- Code location:
hardware/interfaces/uwb
Vendor components
The vendor stack includes a UWB HAL vendor implementation, UWB driver, and a
UWB device.
API surfaces for UWB
The UWB stack includes API surfaces for system apps and third-party apps.
System apps
Device manufacturers use the
android.uwb.UwbManager
system API surface to allow low-level access for system apps. To use this
API surface, system apps must use the support library
(packages/modules/Uwb/service/support_lib
).
Third-party apps
Third-party apps use the Jetpack UWB public API surface,
androidx.core.uwb
.
For more information, see
Ultra-wide band communication.
Verification
To verify your implementation of UWB, ensure that your device passes the CTS
tests located under /cts/tests/uwb
.
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-26 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-26 UTC."],[],[],null,["# Ultra-wideband\n\nFrom Android 13, Android includes a default framework\nimplementation for ultra-wideband (UWB) radio technology, a technology that\nenables highly secure, precise ranging between supported devices. The platform\nAOSP UWB stack is available as an optional\n[module](/docs/core/architecture/modular-system) for device manufacturers.\nFor more details on the module, see\n[Module: UWB](/docs/core/ota/modular-system/uwb).\n\nArchitecture\n------------\n\nThe UWB stack consists of the UWB mainline module and the HAL implementation\nprovided by a UWB chip vendor as shown in Figure 1.\n\n**Figure 1.** UWB stack architecture\n\n### AOSP stack\n\nThe AOSP UWB stack, packaged as an optional module, `com.google.android.uwb`,\ncontains the following components:\n\n- UWB platform API surface\n - Code location: `packages/modules/Uwb/framework`\n- Support library\n - Code location: `packages/modules/Uwb/service/support_lib`\n- UwbService layer and Common Service Management Layer (CSML) defined components defined by [FiRa](https://www.firaconsortium.org/)\n - Code location: `packages/modules/Uwb/service`\n- Rust native UCI layer\n - Code location: `external/uwb`\n- UWB HAL interface based on the UWB command interface (UCI) specification defined by [FiRa](https://www.firaconsortium.org/)\n - Code location: `hardware/interfaces/uwb`\n\n### Vendor components\n\nThe vendor stack includes a UWB HAL vendor implementation, UWB driver, and a\nUWB device.\n\nAPI surfaces for UWB\n--------------------\n\nThe UWB stack includes API surfaces for system apps and third-party apps.\n\n### System apps\n\nDevice manufacturers use the\n[`android.uwb.UwbManager`](https://cs.android.com/android/platform/superproject/+/android-latest-release:packages/modules/Uwb/framework/java/android/uwb/UwbManager.java)\nsystem API surface to allow low-level access for system apps. To use this\nAPI surface, system apps must use the support library\n(`packages/modules/Uwb/service/support_lib`).\n\n### Third-party apps\n\nThird-party apps use the Jetpack UWB public API surface,\n[`androidx.core.uwb`](https://developer.android.com/reference/kotlin/androidx/core/uwb/package-summary).\nFor more information, see\n[Ultra-wide band communication](https://developer.android.com/guide/topics/connectivity/uwb).\n\nVerification\n------------\n\nTo verify your implementation of UWB, ensure that your device passes the CTS\ntests located under `/cts/tests/uwb`."]]