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


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.

UWB stack architecture diagram

Figure 1. UWB stack architecture

Module boundary

The module code is in the following locations:

  • UWB Mainline Apex: com.android.uwb

    • UWB API surface (Java)

      • Code location: packages/modules/Uwb/framework
      • Process: <bootclasspath>
    • UwbService (Java)

      • Code location: packages/modules/Uwb/service
      • Process: system_server
    • Uwb Native stack (C++/Rust)

      • Code location: external/uwb
      • Process: system_server
  • HAL interface and implementations (C++)

    • Interface code location: hardware/interfaces/uwb
    • Implementation code location: vendor/<vendor-name>/uwb
    • Process: <vendor defined>

Package format

The UWB module (com.google.android.uwb) uses the APEX format.


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.