Date: January 7, 2026
Version: F29
Audio
The following platform updates have been made for audio in Smart Displays:
Expanded AudioCore and Driver Inspect observability. Inspect data now includes
RoleManagererrors for better diagnostics of past failures, tracks min/max/sum/overrun/underrun metrics per ring buffer, and retains recent task records.- Changes: fxr/1385750, fxr/1366956, fxr/1361564
The following platform updates have been made for other products:
Enhanced Audio Device Registry (ADR) performance and reliability. The ADR thread now utilizes a scheduler profile to improve stream establishment performance under load. Additionally, ADR now supports topologies without ring buffers, retries on transient ring buffer creation failures, and correctly accounts for driver overallocation in ring buffer memory reporting.
- Changes: fxr/1384433, fxr/1364452, fxr/1335114, fxr/1329159
Improved
ffx audiotooling capabilities. Theffx audio device playcommand now uses scheduler profiles and larger ring buffers to enable glitch-free playback validation. The tool also now displays the ADRtoken_idin device lists and includes a fix for calculation underflows.- Changes: fxr/1374081, fxr/1336967, fxr/1346660
Updated Signal Processing topology rules. The SDK now allows
DAI_INTERCONNECTelements to be self-referential within a topology, enabling support for standalone DAI configurations.- Changes: fxr/1348753
Bluetooth
The following updates have been made for Bluetooth:
Expanded Hands-Free Profile (HFP) features and stability. Added support for the "Query Current Calls" (
AT+CLCC) procedure and handling for HF-initiated call transfers. Improved interoperability by parsing non-standard iOS response fields and enhanced connection stability with SCO setup retries, disconnection tracking fixes, and race condition handling during codec updates.- Changes: fxr/1327292, fxr/1336687, fxr/1340834, fxr/1394193, fxr/1381843, fxr/1371421, fxr/1330467, fxr/1327048
Implemented A2DP offload support and assembly configuration. Enabled A2DP hardware offload capabilities (preferring 44.1kHz), allowing audio encoding to be handled by the controller or audio subsystem. Migrated A2DP configuration to platform assembly, added capabilities to override vendor versions for specific products, and cleaned up source builders.
- Changes: fxr/1021474, fxr/1374224, fxr/1325315, fxr/1021473, fxr/1387995, fxr/331073
Added support for LE Audio Isochronous (ISO) channels. Updated the UART driver to support ISO data channels and implemented Core Host support for Connected Isochronous Groups (CIG) and Streams (CIS). This lays the foundation for Low Energy Audio features.
- Changes: fxr/1338626, fxr/310393, fxr/316619, fxr/316617, fxr/314273, fxr/314272, fxr/316614, fxr/316613
Introduced Periodic Advertising Synchronization support. Added Host-side support for synchronizing to periodic advertising trains, including new FIDL interfaces (
SyncToPeriodicAdvertising) and internal management classes to handle synchronization requests and scanning.- Changes: fxr/323893, fxr/311329, fxr/315115, fxr/311258, fxr/309761, fxr/307911
- Bugs: fxb/309014342
Enhanced Bluetooth command-line tools. Added
ffx bluetooth controller listandshowcommands for better device management. Updatedbt-le-centralwith support for Volume Control Service (VCS) and Published Audio Capabilities Service (PACS), and introduced a newbt-broadcast-assistanttool for controlling LE Audio broadcasts.- Changes: fxr/1305584, fxr/1299586, fxr/953715, fxr/954872, fxr/952600, fxr/950255, fxr/1360073
Updated Broadcom firmware and initialization logic. Upgraded SYN4381 firmware to version 1195.1225. Added safety checks to prevent driver initialization if the MAC address cannot be read, and fixed Android vendor extension advertising behavior.
- Changes: fxr/1376341, fxr/1333724, fxr/316020
- Bugs: fxb/405398246
Refined Fast Pair configuration routing. Switched to using a dedicated configuration capability for the Fast Pair Provider to determine availability, replacing package resolution logic to reduce errors and simplify system routing.
- Changes: fxr/1392593
Expanded Pandora test interface capabilities. Added numerous affordances to the Pandora test framework including GATT service registration, pairing event queueing, discovery control, connectability settings, and improved advertising timeout handling.
- Changes: fxr/1372221, fxr/1389302, fxr/1352206, fxr/1346210, fxr/1345425, fxr/1319788, fxr/1296741, fxr/1293659, fxr/1295205
Build
The following updates have been made for Build:
Experimental Bazel support in
fx build. An experimental feature was added tofx buildto invoke Bazel directly for host targets. This introduces three build modes—GN (default), Bazel, and Fint—and adds argument validation and invocation logging.- Changes: fxr/1344685, fxr/1357006
- Bugs: fxb/42084668
Removal of macOS host build support. Support for building Fuchsia with macOS as the host OS has been removed from the build rules, IDK, and configuration files.
- Changes: fxr/1394802, fxr/1379631, fxr/1385783
- Bugs: fxb/408241554, fxb/42168542, fxb/306723826
New root location for build logs. All build logs are now stored in
out/.build_logsto improve organization and debugging. A new command,fx build-logs, was added to manage this directory structure.- Changes: fxr/1374367, fxr/1375609
- Bugs: fxb/446759936, fxb/390427892
Build performance optimizations. Implemented xattr hashing for RBE downloads and local actions to skip unnecessary re-hashing, and added edge weight hints to Ninja to optimize the scheduling of long-running actions.
- Changes: fxr/1338917, fxr/1341369, fxr/1342027, fxr/1386878
On-demand GSYM symbol generation. Updated
export_last_build_debug_symbolsto support generating GSYM symbols on demand using the--with-gsym-symbolsflag.- Changes: fxr/1371841
- Bugs: fxb/445119122
Automatic build resource profiling. The build system now collects CPU usage and network data at a 1Hz interval by default to assist in debugging slow build performance.
- Changes: fxr/1372714, fxr/1372224
Enforced header structure for
sdk_shared_library. Targets defined assdk_shared_libraryare now required to place public headers in a strictly defined directory structure (typically underinclude/).- Changes: fxr/1351553
- Bugs: fxb/326656468
Cobalt
The following updates have been made for Cobalt:
Java metric ID type update The Java source generator now declares
uint32metric IDs asintinstead oflong. This aligns with the Cobalt logging API and removes the need for explicit casts in client code.- Changes: fxr/1368858
Event Logger validation update The Event Logger now accepts histograms containing zero counts for impossible buckets. This prevents the rejection of dense vectors generated by Samplers where impossible buckets are included with a zero count.
- Changes: fxr/1366636
Component Framework
The following updates have been made for Component Framework:
Refactored Realm Builder's dictionary API to use
DictionaryRef. This unifies the syntax for routing to and from dictionaries, aligning operations with CML patterns and improving intuitiveness.- Changes: fxr/1321745, fxr/1348956
Expanded Storage capabilities in Realm Builder and the SDK. The
StorageAdminprotocol was graduated tofuchsia.componentfor SDK access, and a newAddStoragefunction was added to Realm Builder to allow programmatic storage routing and provisioning.- Changes: fxr/1341047, fxr/1336424
Enhanced
ffx component exploretool discovery. The tool now utilizes thefuchsia.dash.launcher-tool-urlsfacet to automatically load component-specific tools into thePATHduring exploration.- Changes: fxr/1367477
Improved
cmcerror reporting. The compiler now suppresses internal backtraces on failure and includes source file paths in merged outputs to facilitate easier debugging.- Changes: fxr/1354604, fxr/1329574
Fixed race conditions in
fuchsia.component/Controller.Destroy. The operation now ensures the destruction task owns the responder, preventing premature success responses before the component is fully destroyed.- Changes: fxr/1376969
Improved service connection reliability. The service broker now handles transient instances using
wait_for_first_instanceand correctly transitions service directories to idle states.- Changes: fxr/1368737, fxr/1366596
Added rust bindings for fidl_next_services. Added functions to fuchsia_component for connecting to and serving services when using the fuchsia_next bindings.
- Changes: fxr/1345984
Diagnostics
The following updates have been made for Diagnostics:
Logging backend migration. Migrated Rust and C++ clients to use
IOBuffers. Removed or marked for removal of legacy syslog libraries,ConnectStructured, andStopInterestListener.Inspect tooling and API updates. Added
inspect_runtime::fetch_escrowfor retrieving escrowed data. Aliasediquerytoinspectfor CLI consistency. Enabled!Sendcallbacks for lazy nodes.- Changes: fxr/1364581, fxr/1376187, fxr/1351549, fxr/1355951, fxr/1389210, fxr/1348205
- Bugs: fxb/439671558
ffx monitorand diagnostics tool updates. Addedstart,stop, andstatussubcommands toffx monitorwith machine output support. Improved error messaging and debugging links inffx diagnostics.- Changes: fxr/1348185, fxr/1350455, fxr/1364342, fxr/1364235, fxr/1368757, fxr/1374244, fxr/1396556, fxr/1374725, fxr/1369904, fxr/1365188, fxr/1338955
- Bugs: fxb/432802240, fxb/432802119, fxb/42145778
Logging reliability and feature updates. Renamed
log_listenertolog. Added support for creating non-global loggers. Enabled Starnix logs to report monotonic timestamp offsets.- Changes: fxr/1376481, fxr/1341544, fxr/1342764, fxr/1371946, fxr/1356264, fxr/1404505, fxr/1385761
- Bugs: fxb/42081258
Archivist and Profiling protocol enhancements. Implemented
fuchsia.diagnostics.Sampleaccessor protocol. Updated deny tags to support dynamic collections. Enabled FXT format support for host-side profiler tools.- Changes: fxr/1379858, fxr/1348955, fxr/1369778, fxr/1392942, fxr/1376465, fxr/1376322, fxr/1338959, fxr/1357790, fxr/1352597
- Bugs: fxb/387565929, fxb/427802891, fxb/444078039
Display
The following updates have been made for Display:
Replaced boolean power control with
SetDisplayPowerMode. This new API supportsPowerModetypes includingDOZEandDOZE_SUSPENDfor granular power management, replacing the legacySetDisplayPowermethod across the coordinator and drivers.- Changes: fxr/1386384, fxr/1386382, fxr/1386381, fxr/1386086, fxr/1386085, fxr/1385788, fxr/1385787, fxr/1385786, fxr/1385322, fxr/1385321, fxr/1385301
- Bugs: fxb/449896410
Completed the migration of display engine drivers from Banjo to FIDL. The Amlogic, Intel, Framebuffer, Goldfish, Virtio-GPU, and Fake display drivers now use the
fuchsia.hardware.display.engine.ServiceFIDL service, and legacy Banjo protocols have been removed.- Changes: fxr/1337052, fxr/1337086, fxr/1337091, fxr/1332385, fxr/1332386, fxr/1332424, fxr/1332269, fxr/1336105
- Bugs: fxb/42079184, fxb/42079185, fxb/42079186, fxb/314126494, fxb/42079188
Shifted EDID handling and Mode management to engine drivers. EDID parsing logic was moved from the Coordinator to individual drivers, and
DisplayTimingwas replaced withModeIdfor identifying display modes in configurations.Refactored Color Conversion configuration. Grouped color conversion settings into a
ColorConversionConfigstruct, removed explicit flags in favor of checking for identity transforms, and added support to theDisplayEngineInterface.- Changes: fxr/1336085, fxr/1334835, fxr/1334834, fxr/1334833
- Bugs: fxb/42079184
Improved Display Coordinator configuration caching. Added heuristics to skip
CheckConfig()calls known to fail and refined layer equivalence checks (e.g., ignoring trivial alpha changes) to reduce cache thrashing and overhead.- Changes: fxr/1386966, fxr/1385741, fxr/1386043
- Bugs: fxb/446042966, fxb/450339197, fxb/446046564
Allowed arbitrary color layers in Flatland. Removed constraints preventing non-background color layers from being sent to the display hardware, allowing the Coordinator and drivers to decide support.
- Changes: fxr/1366467
- Bugs: fxb/444575885, fxb/42056054
Added multi-layer and software composition support to Fake Display. The fake display driver can now handle and capture multiple layers (including solid color layers) using a software compositor, enabling better testing coverage.
- Changes: fxr/1365795, fxr/882658, fxr/1365588, fxr/882511
- Bugs: fxb/42075534, fxb/124683
Migrated Carnelian and Vulkan Image Pipes to the Display Service. The
carnelianlibrary and the Vulkan image pipe framebuffer swapchain have been updated to utilize the modern display service architecture.- Changes: fxr/1340634, fxr/1341748
Driver Framework
The following updates have been made for Driver Framework:
Async read cancellation logic in Rust drivers (
fdf) was hardened against race conditions. The implementation now correctly handles read cancellations on both synchronized and unsynchronized dispatchers and ensures channels defer closing while an await is registered, preventing use-after-free or race scenarios.- Changes: fxr/1370039, fxr/1370804, fxr/1372134, fxr/1370038
Enhanced
ffx driver node graphUpdatedffx driver node graphto support filtering, service route visualization, driver host grouping, and interactive HTML graph generation.- Changes: fxr/1387874, fxr/1316849
Dictionary support in
NodeAddArgsAddedoffers_dictionarytoNodeAddArgs, enabling drivers to offer services to child nodes via a dictionary rather than the parent's outgoing directory.- Changes: fxr/1374681
- Bugs: fxb/433536317
Safe async cancellation in Rust bindings Implemented safe async cancellation for channel waits on dispatchers to prevent race conditions when dropping channels with pending callbacks.
- Changes: fxr/1372134, fxr/1370804, fxr/1370803, fxr/1370039, fxr/1370038
Custom VMAR support in
DriverStartArgsAddedvmartoDriverStartArgsto allow passing non-root VMARs, and added a VMAR accessor to the driver component.- Changes: fxr/1365794, fxr/1372342
WaitForDrivermethod in node controller AddedWaitForDriverto the node controller, allowing clients to wait for a driver to start on a node or composite parent.- Changes: fxr/1355384
Driver transport support in Rust bindings Implemented token transfer protocol and connection logic for the driver transport in Rust bindings.
- Changes: fxr/1336729, fxr/1308045
Driver Manager updated to use transient collections. The interaction with the Component Framework has been refactored to use transient collections, alongside property storage optimizations to reduce memory usage.
- Changes: fxr/1328808, fxr/1345528
MetadataServerlibrary refactor RefactoredMetadataServerto simplify initialization, deprecate older setters, support conditional metadata serving, and accept service directories for testing.- Changes: fxr/1347084, fxr/1348365, fxr/1341844
Driver logging improvements Added
std::format-based logging APIs for driver manager, enabled PID printing inffx driver(non-TTY), and improvedsys_driverFIDL error logging.- Changes: fxr/1352786, fxr/1404204, fxr/1351164, fxr/1356079
Driver Runtime and Transport updates Added synchronous token transfer receivers, enforced dispatcher shutdown callbacks, optimized stall polling, and enabled early handle transfers in SDK C++ bindings.
- Changes: fxr/1376387, fxr/1378681, fxr/1340599, fxr/1377322, fxr/1404573
- Bugs: fxb/449001022
Removal of deprecated APIs (pre-level 26) Removed APIs deprecated in SDK versions prior to 26 from audio driver interfaces and general driver SDKs.
- Changes: fxr/1345022, fxr/1338907
FIDL
The following updates have been made for FIDL:
Introduced Bazel build rules for FIDL. Added the
fidl_library,fidl_ir, andfidl_summarymacros to the Bazel build system, enabling the definition of FIDL libraries, IR generation, and API summary creation directly within Bazel projects.- Changes: fxr/1402694, fxr/1402693, fxr/1402102, fxr/1402101, fxr/1401637
- Bugs: fxb/428285014, fxb/426136195
Enhanced Rust bindings ergonomics and features. Improved developer ergonomics by deriving default transports from protocol definitions, introducing
RespondandRespondErrtraits for simplified response handling, enablingWireVectorencoding for arrays, and addingIntoNaturalfor better type conversion.- Changes: fxr/1384823, fxr/1389314, fxr/1396993, fxr/1364711, fxr/1389333
Improved Rust bindings validation and correctness. Strengthened runtime validation to ensure wire format correctness, including checks for struct padding, string and vector limits, and envelope flags. Also improved handling of unknown interactions and empty structs.
- Changes: fxr/1392976, fxr/1392767, fxr/1392263, fxr/1382022, fxr/1394593, fxr/1380925
Specialized handle subtypes in Rust bindings. Updated Rust bindings to generate specific handle subtypes (e.g.,
zx::Channel) rather than genericzx::Handletypes, improving compile-time type safety for FIDL protocols.- Changes: fxr/1322764
Refactored Rust bindings async and transport handling. Overhauled async infrastructure by introducing
TwoWayFuturefor splittable futures, streamlining connection closure handling, renaming internal client/server concepts to dispatchers, and adding executor traits for endpoint spawning.- Changes: fxr/1356084, fxr/1354844, fxr/1351844, fxr/1381102, fxr/1357972
C++ bindings cleanup and feature detection. Consolidated C++ feature detection into
lib/fidl/cpp/features.hand removed reliance onstd::aligned_storageto align with modern C++ standards.- Changes: fxr/1367223, fxr/1386941
Major ergonomic and type safety improvements were applied to FIDL Rust bindings. The
IntoNaturaltrait was introduced for clearer type conversions, and response ergonomics were improved viaRespondandRespondErrtraits. Fuchsia handle subtypes are now handled more specifically. Senders and dispatchers were renamed and reorganized, and theEncodableandEncodeReftraits were removed, finalizing a move to a new encoding approach.- Changes: fxr/1364711, fxr/1389314, fxr/1322764, fxr/1381102, fxr/1396953, fxr/1389313, fxr/1384743
Feedback
The following updates have been made for Feedback:
- Added tracking for shutdown actions. The
LastRebootInfoProviderprotocol now includes anactionfield to distinguish specific shutdown types (e.g., 'REBOOT' vs. 'POWEROFF'), supported by a migration to JSON storage andShutdownWatcherpersistence.- Changes: fxr/1392769, fxr/1381187, fxr/1387006, fxr/1399204, fxr/1395376, fxr/1388998
- Optimized memory usage. Reduced memory footprint by shortening the
lifespan of JSON serialization objects and forcibly purging Scudo memory
when log streaming stops and the component idles.
- Changes: fxr/1385748, fxr/1385744, fxr/1364356
- Removed deprecated APIs. Removed the
GetScreenshotprotocol (deprecated in F26) and replaced theannotationsfield withannotations2, enforcing higher limits for clients.- Changes: fxr/1339244, fxr/1371951
- Improved crash report upload logic. Successful eager uploads now signal
network reachability, triggering immediate attempts to upload previously
cached reports.
- Changes: fxr/1369948
- Refactored configuration and assembly. Migrated
flash_ts_feedback_id_component_urltofeedback_id_component_url, added missing i18n/forensics routes, and removed theDisableWaitForInitialInterestworkaround.- Changes: fxr/1349644, fxr/1337884, fxr/1388997
Firmware
The following updates have been made for Firmware:
Boot test product bundles now include and correctly configure recovery (R slot) images. R slot images are now explicitly included in boot test bundles to support boards that require them. Additionally, these images now use the correct recovery board configuration rather than the standard configuration, ensuring valid image generation.
- Changes: fxr/1395186, fxr/1392596
Routing logic for factory reset TEE protocols has been corrected. The
teeprotocols consumed byfactory_resetnow route to void on builds wheretee_managerdoes not expose them, preventing routing errors during component initialization.- Changes: fxr/1394139
Graphics and GPU
The following updates have been made for Graphics and GPU:
- Migrated the Goldfish Pipe driver to Driver Framework v2 (DFv2). This
extensive update includes replacing
ddk::IoBufferwithdma_bufferandfzl::OwnedVmoMapper, moving Bus protocol handling to the parentPipeDeviceto better reflect hardware topology, and enforcing stricter separation ofPipeChildDeviceroles.- Changes: fxr/1392217, fxr/1392216, fxr/1395855, fxr/1395854, fxr/1395753, fxr/1395492
- Replaced compile-time
PAGE_SIZEconstants with runtime determination. To align with RFC 0016 and support boot-time page size configuration,ZX_PAGE_SIZEandPAGE_SIZEconstants have been removed from the SDK, Graphics, and UI components, requiring clients to query page size at runtime.- Changes: fxr/1395639, fxr/1395513, fxr/1395556, fxr/1394400
- Added
PowerModeandVsyncSourceprotocols to the UI stack. ThePowerModeAPI replaces binary on/off switches with granular doze state information, whileVsyncSourceenables clients to subscribe directly to vertical sync signals from the display hardware.- Changes: fxr/1388733, fxr/1388054, fxr/1370858, fxr/1375144, fxr/1375001
- Bugs: fxb/450168684
- Transitioned from Intel Vulkan ICD to Lavapipe on x64. The Intel Vulkan
ICD has been removed to simplify maintenance, with the Lavapipe software
rasterizer now handling Vulkan workloads on x64 configurations.
- Changes: fxr/1298005, fxr/1331309
- Enabled blob resource support in
virtio-gpu. This enhancement allows the driver to perform scanouts directly from guest memory using blob resources, eliminating unnecessary copy operations when using Lavapipe framebuffers.- Changes: fxr/1384983
- Updated ARM Mali drivers to version r54. This driver update brings
support for Vulkan 1.4.
- Changes: fxr/1336564, fxr/1378181
- Improved stability and reset logic for
msd-vsi-vip. Fixes include disabling the pulse eater during reset, ensuring proper wait times, and resolving hardware hangs observed during test cycles.- Changes: fxr/1381723, fxr/1382661, fxr/1392474
I18n
The following updates have been made for I18n:
- Added Rust bindings for ICU 77.1. Updated
rust_icu_systo support the integration and rollout of ICU version 77.1.- Changes: fxr/1392753
IOT, Matter and Thread
The following updates have been made for IOT, Matter and Thread:
Thread telemetry enhancements Expanded
telemetry.fidland Inspect to includeextended_pan_idfor network identification andmulti_ail_detectedto report connections to multiple Adjacent Infrastructure Links.- Changes: fxr/1399273, fxr/1399013, fxr/1396194, fxr/1396193, fxr/1394975
OpenThread Stack Upgrade Updated OpenThread libraries, RCP images, and Rust-C bindings to the October 1, 2025 version and implemented
otPlatDnsIsUpstreamQueryAvailablefor improved DNS resolver status tracking.- Changes: fxr/1385771, fxr/1385751, fxr/1382227, fxr/1382021, fxr/1382423, fxr/1330472, fxr/1311004, fxr/1332264
Advertising Proxy and Service Discovery Fixes Resolved issues where mDNS publish results were unreported, fixed
UpdateIdhandling for service deletion, and corrected Border Agent TXT record formatting.- Changes: fxr/1367198, fxr/1367197, fxr/1349236, fxr/1343946
TREL and MeshCoP Prioritization Modified TREL address selection to favor Unique link local over Global Unicast Addresses (GUA) and updated MeshCoP to prioritize vendor TXT entries.
- Changes: fxr/1382424, fxr/1361415
Netstack
The following updates have been made for Netstack:
Socket Diagnostics API and
fuchsia.net.matchersAdded thefuchsia.net.socketsFIDL library to provide socket diagnostics capabilities and introducedfuchsia.net.matchersto unify matcher types across packet filtering and diagnostic APIs.- Changes: fxr/1348504, fxr/1381863, fxr/1392636, fxr/1355864
- Bugs: fxb/433947569, fxb/449158866, fxb/441124570
Netstack3 TCP performance and RFC compliance improvements Implemented lazy allocation for TCP buffers to reduce memory footprint. Enhanced RFC compliance by enforcing a minimum MSS of 216, randomizing TCP timestamp offsets, unconditionally sending TCP options when space permits, and fixing SACK block handling during window updates.
- Changes: fxr/1394433, fxr/1383501, fxr/1351386, fxr/1348564, fxr/1399296, fxr/1351885
Netlink stability and security hardening Hardened Netlink security by enforcing
CAP_NET_ADMINforNETLINK_ROUTEoperations and validating buffer sizes for attributes likeIFA_CACHEINFO. Improved stability and compatibility by deferring message parsing and fixing panics caused by unknown messages or route removal race conditions.- Changes: fxr/1378485, fxr/1381633, fxr/1382049, fxr/1382007, fxr/1372515, fxr/1382821, fxr/1388024
Routing and Interface management enhancements Updated
netcfgto support interface-local route tables via Netlink and install rules for locally-provisioned devices. Removed thecopy_routes_to_main_tableworkaround, fixeddefault_metricpopulation in Netlink, and adjusted WLAN interface behavior to remain administratively up when disconnected.- Changes: fxr/1360789, fxr/1341351, fxr/1335206, fxr/1386875, fxr/1356306, fxr/1361011
- Bugs: fxb/418849362, fxb/437402661
DHCP client and Neighbor Discovery improvements Improved DHCP client robustness by allowing duplicate options and preventing panics on malformed
DHCPRELEASEpackets. Enhanced Neighbor Discovery by discarding invalid solicitations, handling advertisements missing link-layer addresses, and correctly managing the Override flag for advertisements and ARP replies.- Changes: fxr/1368976, fxr/1392895, fxr/1401573, fxr/1334968, fxr/1372133, fxr/1372132
Reachability calculation updates Refined reachability calculations to correctly distinguish between IPv4 and IPv6 protocol-specific routes for gateway and default route detection. Prevented spurious status updates after interface removal.
- Changes: fxr/1350052, fxr/1369776, fxr/1374403, fxr/1361557, fxr/1348067
- Bugs: fxb/413683922
Security and Reliability fixes Enforced
user_idvalidation forSO_REUSEPORTto restrict port reuse to sockets owned by the same user. Enabled MAC multicast filtering on Ethernet devices to drop unwanted frames early and fixed a crash in the ICMP echo error handler.- Changes: fxr/1395622, fxr/1370236, fxr/1320640, fxr/1335018
- Bugs: fxb/427804318, fxb/435260334
Platform Drivers
The following updates have been made for Platform Drivers:
The SDHCI driver has been migrated to the FIDL SDMMC protocol. This modernization updates the driver to use current FIDL standards, replacing legacy interfaces. Note that in-band interrupts are not currently supported in this mode.
- Changes: fxr/1339906
SDHCI driver stability improvements for stop sequences and interrupts. The driver now prevents BTI errors by waiting for pending requests to finish during
PrepareStopand avoids race conditions by prioritizing transfer complete interrupts over data timeouts.- Changes: fxr/1334866, fxr/1335546
Fixed a data stall in the USB CDC function driver. Pending transmission transactions are now correctly cancelled when the endpoint is disabled, preventing transactions from lingering indefinitely in the pending list.
- Changes: fxr/1341365
Reliability improvements for
usb_vsockregarding multiple producers and packet headers. Fixes include resolving hanging connections by correctly waking all interested wakers in multi-producer scenarios, and correcting payload length in pause packets to prevent header clobbering.- Changes: fxr/1404635, fxr/1399396
- Bugs: fxb/455634403
The DWC3 USB driver now robustly handles VBUS signals and core resets. The driver actively manages the VBUS valid signal on supported platforms and toggles the core reset during power-on to ensure correct initialization.
- Changes: fxr/1405493, fxr/1393773
Added a new composite USB peripheral configuration. A new composite device profile supporting CDC, ADB, and Fastboot functionalities is now available.
- Changes: fxr/1386083
GPIO and I2C core drivers now forward the
PowerTokenService. This update facilitates better power management integration by forwarding the service from the parent implementation driver to children nodes.- Changes: fxr/1381721, fxr/1362331
Power Management
The following updates have been made for Power Management:
Battery Manager re-architecture and tooling The Battery Manager has been revived to bridge the driver via FIDL, providing a centralized point for battery information. This update introduces the
batteryutilCLI tool, new FIDL APIs for charging control, and anaverage_currentfield inBatteryInfo. Behavioral changes include blocking suspension while the device is charging and scaling battery levels based on shutdown offsets.- Changes: fxr/1351606, fxr/1371184, fxr/1371957, fxr/1360775, fxr/1367469, fxr/1393998, fxr/1389373
Power Broker API consolidation The
LevelControlAPI has been removed from the system andElementSchema, requiring all integrations to migrate toElementRunner. This simplifies the API surface for power element management. Additionally, a race condition regarding claim ordering for related claims has been resolved.- Changes: fxr/1361731, fxr/1361772, fxr/1341164, fxr/1384861
Observability and State Recorder SDK A new State Recorder library (C++ and Rust) has been moved to the SDK to standardize numeric and discrete power state recording. System suspension debugging is significantly improved by propagating wake reasons (including Koid) up the call stack, adding wake source reporting to
fuchsia.hardware.power.suspend, and tracking long-held wake leases in Inspect data.- Changes: fxr/1376186, fxr/1380921, fxr/1388996, fxr/1360457, fxr/1360788, fxr/1360787, fxr/1362558, fxr/1398594, fxr/1381929
API deprecations and removals The
ActivityGovernorListenerinterface has been removed, finalizing the migration toSuspendBlocker. Additionally, thefuchsia.power.systemmodeFIDL library has been formally deprecated.- Changes: fxr/1351089, fxr/1376963
New Thermal Sensor Management API Implemented the
fuchsia.thermal.SensorManagerAPI inpower-manager, allowing clients to discover thermal sensors and inject override temperatures for policy testing. Support foremul_tempwas also added to thermal sysfs directories.- Changes: fxr/1362334, fxr/1365551, fxr/1392973
Kernel and Driver Power features Added configuration capabilities for Runtime Processor Power Management (RPPM) and routed them to base drivers. Universal Flash Storage (UFS) drivers were updated to use standard suspend/resume registration, removing legacy wake-on-request behavior.
- Changes: fxr/1402254, fxr/1372209, fxr/1374956, fxr/1374955, fxr/1395374
Shutdown reason propagation Added a
Shutdownmethod to theAdminprotocol inshutdown-shim, enabling clients to specify distinct shutdown reasons and actions (e.g., reboot vs. poweroff). A fix was also deployed forcritical-servicesstopping prematurely during the shutdown sequence.- Changes: fxr/1370968, fxr/1378661
Power CLI and Platform Configuration Introduced a new
powerutilCLI tool and migratedffx powerto use its implementation. New platform configurations were added forfuchsia.power.cpu.BoostEnabledand Android power hints, while storage power management enablement was refactored to be board-specific.- Changes: fxr/1381181, fxr/1396539, fxr/1340841, fxr/1346652, fxr/1338664
Power management updates Added support for long wake lease thresholds in inspect data, defined pdev interfaces for clocks/PMIC and CPU OPPs, and improved suspend blocker logic.
- Changes: fxr/1398594, fxr/1386967, fxr/1354170, fxr/1361935, fxr/1364885, fxr/1333832
Rust
The following updates have been made for Rust:
fuchsia-asyncadded instrumentation hooks and optimized memory usage. Support for pluggable instrumentation hooks on macros andAtomicFutureallows for better diagnostics without overhead when disabled. Additionally, the library replaced crossbeam epoch-based deferred execution with a custom implementation to significantly reduce memory usage.- Changes: fxr/1332229, fxr/1360152, fxr/1343364, fxr/1347375, fxr/1368096
- Bugs: fxb/437254251
Legacy
fuchsia-asynctask creation methods have been removed or internalized. This change finalizes the migration to the builder pattern for task creation and execution APIs, requiring updates to code still using the old methods.- Changes: fxr/1337310, fxr/1385162
Rust build workflows changed with the removal of
fx rustfmt/fx rustdocand enabled release symbols. The deprecatedfxcommands were removed in favor of standard toolchain workflows. Debug symbols are now retained in release binaries by default to facilitate better symbolification and debugging of release builds.- Changes: fxr/1355604, fxr/1359735
Software Delivery
The following updates have been made for Software Delivery:
Enhanced Android recovery and sideloading capabilities. The recovery system now supports reading manifest signatures and update URLs directly from ADB sideload, handling relative blob base URLs, and correctly mounting system blobs during updates.
- Changes: fxr/1395814, fxr/1352221, fxr/1335787, fxr/1367496, fxr/1349525
- Bugs: fxb/441769485, fxb/435268027
Improved system update security and configuration. The system updater now verifies OTA manifest signatures using public keys configured via assembly, and supports an optional signature parameter for packageless updates.
- Changes: fxr/1387005, fxr/1383282, fxr/1382010
- Bugs: fxb/441769485
Optimizations and diagnostics for Package Resolver. Pinned resolves are now allowed for base packages in
pkg-cacheto reduce memory usage. Additionally, successful resolves are now recorded in Inspect rather than system logs to reduce spam, andsystem-updaterinspect now includes the in-progress update attempt ID.- Changes: fxr/1394194, fxr/1362052, fxr/1362051, fxr/1384521
Updates to Paver and Moonflower board support. Added support for merging "super" and "userdata" partitions, paving arbitrary partitions on Moonflower, and fixed critical A/B/R GUID synchronization bugs. Legacy A/B support for Moonflower has been removed, and error handling for partition table resets has been improved.
- Changes: fxr/1362557, fxr/1338665, fxr/1351287, fxr/1345013, fxr/1372514, fxr/1371384
Configurable blob network timeouts. Blob network header and body timeouts in
pkg-resolvercan now be overridden via configuration capabilities, and the default timeout in recovery has been increased to improve reliability.- Changes: fxr/1376062
Update Notifier is now discoverable.
fuchsia.update/Notifieris marked discoverable to allow its use with escrowable components, facilitating transfer to Component Manager upon exit.- Changes: fxr/1330436
- Bugs: fxb/412347960
Package manifest tooling improvements. Package manifests are now written in pretty-printed JSON for easier diffing, and a
set_nameAPI was added tofuchsia-pkgto allow dynamic name changes.- Changes: fxr/1347034, fxr/1372041
Support for anchored packages. Initial support for anchored packages has been added to package management libraries and assembly tools, using BTreeMaps to ensure deterministic serialization.
- Changes: fxr/1340704, fxr/1386582
- Bugs: fxb/423831237, fxb/418243685
Starnix
The following updates have been made for Starnix:
Significant progress has been made on SELinux enforcement, implementing checks for Binder, Netlink, and filesystem permissions. This includes enforcing permissions for
binder(call, transfer, impersonate),netlinkextended permissions (nlmsg),ptrace,getcap/setcap, and various file/socket access checks (file_receive,socket_accept,getattr).The SELinux audit framework has been implemented, including support for the
audit_accesspseudo-permission. This allows for suppressing audit log spam viadontauditrules, hex-encoding of special characters in logs, and configuration via the kernel command line.- Changes: fxr/1351424, fxr/1350184, fxr/1376901, fxr/1359737, fxr/1342585
ARM unwinding improvements. Added support for ARM EHABI,
ARM.extab,ARM.exidx, and sigreturn unwinding. Implemented handling for 32-bit/64-bit transition frames to support Starnix profiles.PTRACE_POKEDATAandPTRACE_POKETEXTare now supported, allowing tracers to modify tracee memory. This enables Linux debuggers (like LLDB) to set software breakpoints in running programs within Starnix.- Changes: fxr/1381185
io_uringsupport has been expanded withrecvmsgbuffer selection and additional setup flags.IORING_OP_RECVMSGnow supportsIOSQE_BUFFER_SELECT, and stubs or implementations were added forIORING_SETUP_DEFER_TASKRUN,IORING_SETUP_SINGLE_ISSUER, andIORING_REGISTER_RING_FDS.- Changes: fxr/1377881, fxr/1334788, fxr/1334787, fxr/1364995
Implemented
CLONE_PIDFDforclone()/clone3()and improvedpidfd_openbehavior. This adds the ability to receive a file descriptor representing the child process upon creation and fixes issues withpidfd_openhandling of zombie processes.- Changes: fxr/1371882, fxr/1379762, fxr/1371902
The
ffx starnix killcommand has been added. This tool allows users to terminate processes within a Starnix container from the host.- Changes: fxr/1338104
Support for
TFD_TIMER_CANCEL_ON_SEThas been added totimerfd. This flag allows monitoring for discontinuous changes to the UTC timeline (e.g., viaclock_settime).- Changes: fxr/1370202, fxr/1365796
- Bugs: fxb/445263761
The File Descriptor Table (
FdTable) has been migrated to use Read-Copy-Update (RCU). This improves concurrency by allowing multiple threads to read file descriptors simultaneously without blocking.- Changes: fxr/1379630, fxr/1368756
Security for
/proc/<pid>/memhas been improved by referencing the MemoryManager directly. This ensures the file descriptor is linked to the specific address space at the time of open, preventing unauthorized access after anexec()call changes the task's memory layout and credentials.- Changes: fxr/1358411
eBPF now supports LPM (Longest Prefix Match) Trie maps. This adds the
BPF_MAP_TYPE_LPM_TRIEmap type, commonly used for networking tasks.- Changes: fxr/1332724, fxr/1338075
Networking capabilities have been expanded with
SO_BINDTODEVICEchecks and runtime Generic Netlink support. This adds capability checks for socket device binding and allows adding Genetlink families at runtime.- Changes: fxr/1381162, fxr/1382316
The KGSL driver now supports 32-bit applications. This update improves compatibility for 32-bit Android graphics workloads.
- Changes: fxr/1365263
Starnix Support features Timers now support
TFD_TIMER_CANCEL_ON_SETto monitor UTC timeline changes. Debugging capabilities are enhanced by populating the faulting address in signal stack frames for ARM architectures and by adding logic to track the source of signals in debug/balanced builds.- Changes: fxr/1370202, fxr/1352824, fxr/1340607
- Bugs: fxb/445263761
Starnix VFS performance and memory usage have been optimized. The file descriptor table (
FdTable) now uses Read-Copy-Update (RCU) synchronization for concurrent reads, and mount metadata strings now useFlyByteStringto reduce memory overhead for heavy mount workloads.- Changes: fxr/1379630, fxr/1368756, fxr/1357692
Storage
The following updates have been made for Storage:
Driver-side decompression is now supported in the block server and used by Blobfs. This improves performance by avoiding the use of an external decompressor and enables potential future driver-based page request handling.
- Changes: fxr/1396073, fxr/1393354
Fxfs dirty page cleaning under memory pressure is now more efficient. Fxfs now selectively flushes only files with dirty pages rather than checking metadata for all files when blocking
ZX_PAGER_VMO_DIRTYrequests during critical memory pressure.- Changes: fxr/1395195
Fxfs now supports atomic volume installation via a new
VolumeInstallerprotocol. This facilitates installing new system images at the filesystem level and allows replacing existing volumes atomically.- Changes: fxr/1374241, fxr/1357164, fxr/1319624
- Bugs: fxb/441562849
Read-only Ext4 filesystems now expose extended attributes. The APIs to list and query extended attributes were moved to the
Directoryinterface to support this implementation inext4readonly.- Changes: fxr/1401553, fxr/1400333, fxr/1401036
Keymint support has been added for data volume encryption. A new
keymintpolicy allows fshost to seal the data volume's keys using Keymint and persist them to a key store, enabling TEE-backed key management where available.- Changes: fxr/1364589, fxr/1371544
Significant improvements have been made to the UFS driver. This includes implementing the
fuchsia_hardware_ufs::Ufsprotocol, adding support for sending SCSI commands to UFS devices, and optimizing power management by removing wake-on-request behavior in favor of standard suspend/resume hooks.- Changes: fxr/1180252, fxr/1156913, fxr/1395374
- Bugs: fxb/379889262
Fxfs security and cryptography capabilities have been enhanced. Changes include verifying the fsverity merkle tree root hash on open to prevent unauthorized modification, support for inline encryption where hardware allows, and support for
lblk32keys.- Changes: fxr/1376281, fxr/1361052, fxr/1357165
Blobfs has migrated to version 10 to support mixed merkle layouts. This introduces inode and superblock flags to determine merkle formats, facilitating migration between formats without requiring immediate disk layout changes.
- Changes: fxr/1358032
SDMMC and RPMB driver reliability has been improved. Large RPMB writes are now broken into chunks according to device support, and eMMC initialization now falls back to High Speed or DDR52 modes if tuning fails, preventing boot failures on problematic hardware.
- Changes: fxr/1381081, fxr/1342746
Several storage drivers have been migrated to Driver Framework v2 (DFv2). This modernization includes the
nand,ram-nand,nandpart, andbootpartdrivers.- Changes: fxr/1356105, fxr/1341845, fxr/1351264, fxr/1346465
Testing
The following updates have been made for Testing:
Expanded
fx testflags and developer features. Added--[no-]fail-by-groupto toggle retries for test groups,--previous failed-teststo generate commands for re-running failures, and atest_filtersflag. The tool now automatically starts a package server when listing tests, supports searching remote builder tests, conditionally spawns debuggers with--use-existing-debugger, and refreshes package lists for device tests.- Changes: fxr/1402619, fxr/1386301, fxr/1350053, fxr/1387041, fxr/1365552, fxr/1345006, fxr/1380581, fxr/1192679
- Bugs: fxb/442623253, fxb/443064881, fxb/327640651
Added experimental ResultStore integration. Enabled streaming build results to ResultStore via
fx resultstore, adding a ninja wrapper (rsninja.sh) and client tools (rsclient) to improve build data visualization.- Changes: fxr/1369038, fxr/1369086, fxr/1369085, fxr/1369941
Migrated Antlion to
fuchsia.git. Moved the Antlion repository from//third_party/antlionto//src/testing/end_to_end/antlionto streamline developer workflows and improve test authoring velocity.- Changes: fxr/1353984, fxr/1354764, fxr/1354767
- Bugs: fxb/440387954, fxb/441043067, fxb/440387498, fxb/441043352
Updated Honeydew (Lacewing) APIs. Renamed the
wlanaffordance towlan_coreto distinguish it from policy APIs, added USB support for PowerBAT suspend/resume, introduced system interface querying, and enabled target names for local host-target interactions.- Changes: fxr/1336444, fxr/1372921, fxr/1337664, fxr/1374401
Refactored test output parsing infrastructure. Removed network conformance test parsing from the general parser, separated Rust and Go test parsing logic into distinct tools, and updated the test runner to strictly expect
TestResultin the output summary schema.- Changes: fxr/1391600, fxr/1336904, fxr/1392977, fxr/1335566, fxr/1379981
Implemented mDNS resolver for host-target testing. Added a device resolver utilizing
botanist's mDNS packet inspector to track targets without relying onffxfor resolution.- Changes: fxr/1395015
- Bugs: fxb/448984573
Updated
sockscripterutility. Added alog-errorcommand to readSO_ERRORsocket options and enabled configuration of the send buffer length.- Changes: fxr/1336689, fxr/1336688
Expanded
tefmochecklog analysis. Added support for detecting failure patterns based on the proximity of log lines, enabling test skipping in nearby checks, and detecting ADB server restarts.- Changes: fxr/1344846, fxr/1382911, fxr/1346325
Removed
get-ssh-addressfromfxtest. Deprecated and removed theget-ssh-addresssubcommand; users must now useffx -t target target list --format addresses.- Changes: fxr/1338752
Introduced edge-triggered audio capture support. A new capture method has been implemented in the
audio_recordingcomponent, allowing clients to queue future captures and eagerly stop recording when silence is detected, improving reliability and speed over fixed-duration recording.- Changes: fxr/1364820
Timekeeping
The following updates have been made for Timekeeping:
Added support for UTC-based wake alarms. The Timekeeping subsystem and Wake Alarms Manager now support scheduling alarms on the UTC timeline, enabling real-time clock functionality for Starnix. This introduces
SetAndWaitUtc, a FIDL method using a hanging-get pattern to satisfy container power management requirements.- Changes: fxr/1355921, fxr/1354105, fxr/1347204, fxr/1342832, fxr/1354008
Hardened alarm scheduling and duration logic. Fixed multiple edge cases in alarm management to ensure reliability: zero-tick wake alarms are now padded to 1 tick to guarantee protocol execution, negative durations default to the minimal time unit, rescheduling logic now correctly cancels obsolete timers, and
TimerNodecomparison logic was corrected.- Changes: fxr/1357037, fxr/1370802, fxr/1341361, fxr/1345339
Prevented erroneous UTC updates near backstop. The system now validates UTC updates against the build backstop time, rejecting any values within one hour of the backstop to prevent invalid system time caused by failed Real Time Clock (RTC) hardware.
- Changes: fxr/1338915
Enforced non-zero rates in Zircon clock transformations. The
transform_clockfunction andClockTransformationmethods now assert and panic if a zero rate is provided, ensuring invalid clock rate configurations are caught immediately.- Changes: fxr/1348207
Named UTC clock handles. The UTC clock handle is now assigned the name
utc-clock(andutc-clock-vendor) to assist with handle provenance tracking and debugging.- Changes: fxr/1404633, fxr/1404634
Tools
The following updates have been made for Tools:
ffx
The following updates have been made for ffx:
ffx tracehas been re-architected to remove the trace daemon protocol. The tool now connects directly to the target (viaSessionManagerProxyorProvisionerProxy) instead of routing through the daemon. Support was also added for on-boot tracing configuration and decoding FIDL message bodies.- Changes: fxr/1349444, fxr/1371950, fxr/1277749
- Bugs: fxb/433532694
A new
ffx target discovercommand and caching mechanism were introduced. This populates a discovery cache to avoid full network scans on every command invocation, allowingffxto resolve targets almost instantly when the cache is valid.- Changes: fxr/1361055, fxr/1370045
Host-side USB driver support has been implemented in
ffx. A newusb_drivercommand and associated daemon logic now handle the host-side USB connection, improving process isolation for long-running connections.- Changes: fxr/1314432, fxr/1356550
Support for MacOS has been removed from
ffxand Zircon build rules. MacOS is no longer a supported host platform for these tools.- Changes: fxr/1394797, fxr/1394804
A new
ffx target log-messagecommand was added. Users can now write arbitrary messages to the device's log, useful for marking events during manual testing.- Changes: fxr/1402455
ffx drivernow supports generating graphs with host/driver groupings.ffx driver node graphcan now group nodes by driver hosts and components, optionally showing service routes.- Changes: fxr/1316849
ffx target get-ssh-addresshas been deprecated. Users should migrate toffx target list --format addresses.- Changes: fxr/1346647
Remote Control service enhancements. The service now serves
authorized_keyson port 9797, and supports serving FDomain over VSOCK.- Changes: fxr/1361061, fxr/1356548
fx
The following updates have been made for fx:
fx buildnow supports building Bazel targets directly. A new experimental mode allows invoking Bazel for host targets using--config=NAME, running alongside the existing GN build.- Changes: fxr/1344685
- Bugs: fxb/42084668
zxdbfixed a use-after-free crash in the unwinder callback. This resolves a race condition that caused intermittent SIGSEGV crashes in the DAP server during concurrentstackTracerequests.- Changes: fxr/1400033
- Bugs: fxb/452699553
zxdb
The following updates have been made for zxdb:
zxdbnow supports recursive job-only filters. This enables the debugger to attach to all processes within a component realm (e.g., a test realm), allowing retrieval of backtraces for all components during timeouts or failures.- Changes: fxr/1391015, fxr/1391014, fxr/1401953
- Bugs: fxb/303314982, fxb/373824677
Significant memory optimizations were applied to
zxdbsymbol loading. The debugger now purges LLVM DWARF library caches post-indexing, reducing resident memory usage by approximately 50% for large debug symbols.- Changes: fxr/1336465
Stack trace display in
zxdband DAP has been improved. The debugger now elides less-relevant stack frames (such as Rust test assertions and async executor internals) to focus on user code and correctly reports frame counts to DAP clients like VS Code.- Changes: fxr/1361154, fxr/1365452, fxr/1361792
- Bugs: fxb/436594661, fxb/436286163, fxb/442945037
Tracing
The following updates have been made for Tracing:
Architecture update: Direct device connection and daemon removal.
ffx tracenow connects directly to the target device viaTraceManagerorSessionManager, bypassing the ffx daemon. This architecture change enables "truly idle" tracing, allowing sessions to persist without maintaining an active host connection.- Changes: fxr/1349444, fxr/1344130, fxr/1322612
Added On-Boot tracing capability. A new command enables writing trace configurations to the device, allowing
trace_session_managerto automatically initiate tracing upon component startup. Data is retrieved via theffx trace stopcommand.- Changes: fxr/1371950
Expanded kernel IPC tracing and FIDL decoding. The kernel now records initial channel message data (bytes and handles) under the
kernel:ipccategory. Additionally,ffx tracehas been updated to decode these FIDL message bodies for deeper inspection.- Changes: fxr/1277749, fxr/1277748
- Bugs: fxb/433532694
Added event filtering to trace conversion tools. The
trace2jsontool and libraries now support regex-based event filtering via--pattern. The update ensures thread and kernel object metadata remains intact even when specific events are filtered out.- Changes: fxr/1361756, fxr/1364341, fxr/1364340, fxr/1370773, fxr/1394214
Added FXT support for Profiler-specific record types. The Fuchsia Trace Format (FXT) reader and serializer now support
Module,Mmap, andBacktracerecords, enabling efficient storage of profiler data.- Changes: fxr/1380926, fxr/1380162, fxr/1382631
- Bugs: fxb/444077472, fxb/444077351, fxb/449025968
Improved
ffx traceusability and input validation. Enhancements include a download progress indicator, automatic stripping of smart quotes from arguments, and conflict prevention between--backgroundand--output. The tool now also warns when requested categories are missing from the trace data.- Changes: fxr/1371020, fxr/1400494, fxr/1382626, fxr/1374245, fxr/1378522, fxr/1327616
- Bugs: fxb/446684592
Made kernel lock contention tracing universally available. The
kernel:contentioncategory is now available in all configurations and is no longer behind a build flag, making lock contention data accessible whenever tracing is enabled.- Changes: fxr/1400526
Enhanced tracing performance and metric collection.
TraceFsnow uses direct memory mapping to write events, reducing copy overhead. New metrics include GPU utilization, and Starnix thread IDs are now correctly mapped to Fuchsia koids for improved visualization in Perfetto.- Changes: fxr/1340354, fxr/1340929, fxr/1348444, fxr/1341746, fxr/1343631
UI
The following updates have been made for UI:
- Introduced
display::CoordinatorProxyto optimize display configuration. This new proxy layer minimizes FIDL calls to the display coordinator by caching results and filtering redundant state updates, reducing overhead and improving performance in Flatland and Scenic.- Changes: fxr/1303517, fxr/1356903, fxr/1386966, fxr/1385741, fxr/1386043
- Bugs: fxb/446042966, fxb/446046564
- Implemented
BlendMode::STRAIGHT_ALPHAin Flatland. This addition enables correct color composition for non-premultiplied pixel formats within the Flatland rendering engine.- Changes: fxr/1318144, fxr/1348645
- Introduced the
TrustedFlatlandFactoryprotocol. This new interface allows authorized clients to bypass standard Scenic overhead, offering optimized performance paths for specific trusted use cases.- Changes: fxr/1335544, fxr/1336565, fxr/1384523
Video
The following updates have been made for Video:
Runtime page size determination. Media and camera drivers now query page size at runtime instead of relying on the
ZX_PAGE_SIZEcompile-time constant, improving compatibility across different system configurations as per RFC 0016.- Changes: fxr/1394135, fxr/1395554
Migration to C++ MMIO SDK. Media and camera drivers now use
//sdk/lib/driver/mmio/cppfor memory-mapped I/O, modernizing the codebase and replacing legacy implementations.- Changes: fxr/1371131, fxr/1371024
- Bugs: fxb/441711303
All video decoder internal buffers now allocated via sysmem. This mitigates physical fragmentation and higher rate of
zx_vmo_create_contiguousnot finding a long enough run of physical pages.- Changes: fxr/1422608, fxr/1434654
- Bugs: fxb/454908105, fxb/460880810
WLAN and Connectivity
The following updates have been made for WLAN and Connectivity:
Implementation of SAR and Transmission Power Control APIs. Support has been added for Specific Absorption Rate (SAR) and Transmission Power scenarios across the WLAN stack to ensure regulatory compliance and safe operation. This includes new FIDL APIs on
WlanPhyImplandDeviceMonitor, implementation inwlanixto dynamically controlWifiChippower levels, and associated telemetry logging.- Changes: fxr/1392762, fxr/1378561, fxr/1371526, fxr/1371525, fxr/1366760, fxr/1366759, fxr/1366758
Enhanced Security Protocol Support (WPA3/SAE and WEP). Expanded security capabilities to support both modern and legacy standards. Functionality has been added to support SAE password setting and RSNXE parsing for WPA3 Hash-to-Element authentication. Additionally,
wlanixnow supports saving WEP credentials and setting WEP key indices.- Changes: fxr/1340616, fxr/1319468, fxr/1316389, fxr/1328686, fxr/1328685
WLAN Recovery and Reliability Improvements. Improved system stability and self-healing capabilities. The system now re-enables PHY reset recovery when typical operations fail and serves the supplicant by interface name to allow for process restarts. Furthermore, the chip is now explicitly powered down upon start failures, and active 5GHz scans are disabled for non-DFS devices to improve connection stability.
- Changes: fxr/1356204, fxr/1346909, fxr/1368956, fxr/1404205, fxr/1392770
Roaming Logic and Metrics Enhancements. Optimized roaming behavior and observability. Roaming logic now penalizes BSSs with very high RSSI (>-30 dBm) to prevent radio saturation. Issues with roam success rate metrics and missing failed roam logs have been fixed to provide accurate performance data.
- Changes: fxr/1341612, fxr/1374302, fxr/1360452, fxr/1356894
API and Protocol Updates. Introduced new APIs and updated protocol definitions for better standard compliance and control. A
GetSignalReportAPI has been added, andieee80211::StatusCodehas been updated to a flexible type to support 802.11-2020. Additionally,SetScanModeandSetBtCoexistenceModeAPIs have been plumbed through the stack.- Changes: fxr/1310809, fxr/1364594, fxr/1361631, fxr/1370198
Firmware, Telemetry, and Maintenance Updates. A collection of hardware support and internal improvements. The Broadcom SYN4381 firmware has been upgraded to 1195.1225, and support for the "00" (Worldwide) country code has been added. Internal changes include removing runtime usage of
ZX_PAGE_SIZEper RFC 0016, fixing overflow errors during PHY resets, and adding telemetry for battery charge status and time-series signal reports.- Changes: fxr/1399209, fxr/1392092, fxr/1346265, fxr/1345326, fxr/1391598, fxr/1322849
Network Policy Deadlock Resolution. Resolved a race condition and deadlocks in network management. The directionality of
DefaultNetworkdependencies has been reversed, making connections betweennetcfgandsocket-proxyunidirectional to ensure reliable state transitions.- Changes: fxr/1339884
Refactoring of Windowed Stats traits. The
TimeMatrixandStatistictraits have been refactored (renamingInterpolatortoTimeMatrixTick,MatrixSamplertoTimeMatrixFold) to simplify type bounds, improve semantic clarity, and support new interpolation kinds likeNoSample.- Changes: fxr/1371661, fxr/1371530, fxr/1370808, fxr/1371383