Date: April 7, 2026
Version: F30
A11y
The following platform updates have been made for A11y:
- Accessibility logging enhancements. Expanded logging for multi-finger
and multi-tap zoom actions to improve debugging of magnification features.
- Changes: fxr/1425375, fxr/1420015
Audio
The following platform updates have been made for Audio:
PacketStream API and FIDL Improvements. Introduced the
PacketStreamAPI to support encoded audio streaming formats such as AAC and SBC. To support non-PCM audio formats, updated FIDL protocols to introduce extensible unions (Format2/SupportedFormats2) and deprecated the closed version of theCompositeprotocol in favor of the new open version.- Changes: fxr/1432161, fxr/1449010, fxr/1468397, fxr/1480161
Extensive Diagnostics and Inspect Additions. Expanded Inspect diagnostics across drivers and AudioDeviceRegistry (ADR) to include ring buffer metrics, scheduling delays, and clock domain annotations. These additions are retained on a per-session basis, and are further aggregated under a new diagnostics_summary section to significantly improve developer troubleshooting and performance triage.
FFX Audio CLI Tool Improvements. Enhanced the
ffx audioCLI tool by displaying device names in the device info output and fixing text rendering bugs in help. Additionally,ffx audio playnow correctly routes accessibility inputs to theAccessibilityusage mode instead ofBackground.- Changes: fxr/1413174, fxr/1411524, fxr/1416218
Performance Optimizations and Driver Fixes. Re-enabled Link Time Optimization (LTO) for audio targets to improve performance. Additionally, fixed driver compatibility by enforcing page-rounding for contiguous VMO sizes in the
aml-g12driver to comply with stricter syscall API requirements.- Changes: fxr/1469243, fxr/1425317
- Bugs: b/457537341, b/460506492
Bluetooth
The following platform updates have been made for Bluetooth:
Configurable RFCOMM Max Packet Size. Negotiates
max_packet_sizeon a per-DLC basis to properly align with the RFCOMM 5.5.3 specification.- Changes: fxr/1423394
- Bugs: b/460778521
Persist Device Class in BondingData. Adds an optional device class field to the
BondingDataFIDL struct, enablingbt-gapto persist it across system reboots.- Changes: fxr/1448211, fxr/1449228
- Bugs: b/468338802
AVRCP Connections and Volume. Improves efficiency by initiating AVRCP control and browse connections on-demand, and integrate a
bt-avrcp-vol- controlcomponent to easily manage volume control for clients- Changes: fxr/1445968, fxr/1410154
MAP OBEX Connection Stability. Improves device compatibility by initiating an OBEX
CONNECTimmediately after MAS transport connection and correctly waiting for client-initiated OBEXDISCONNECTs.- Changes: fxr/1207450, fxr/1116474
- Bugs: b/367378534
Sapphire Autosniff Bug Fixes. Resolves critical audio skipping issues with certain headsets by suppressing
autosniffbehavior during active pairing and when A2DP is active.- Changes: pwrev/367232, pwrev/353273
- Bugs: b/448184260
Sapphire Packet Filtering Enhancements. Adds explicit delivery modes to
AdvertisingPacketFilter::Configand enforces a default RSSI floor to prevent valid peers from being incorrectly ignored by the Controller.- Changes: pwrev/355257, pwrev/355254, pwrev/341672
- Bugs: b/448475405
Infrastructure and Observability Updates. Adds a new assembly configuration to dynamically route profile requests to
bt-rfcommand introduces diagnostic tracking for GATT profile discovery failures.- Changes: fxr/1421515, fxr/1412045, fxr/1448108
- Bugs: b/412434255, b/457743695, b/42085634
Build
The following updates have been made for Build:
Enabled LTO for Rust and cleaned up optimization configurations. Extended Link-Time Optimization (LTO) to the Rust codebase by default to improve runtime performance and reduce binary size. LTO was also enabled for specific core targets, and optimization levels can now be tuned independently.
- Changes: fxr/1454713, fxr/1468940, fxr/1453451
- Bugs: b/457537341
Migrated the build system to the Rust 2024 edition. Updated the global Rust toolchain configuration to leverage the new edition and set the
max- page-sizelink argument for Rust binaries.- Changes: fxr/1427726, fxr/1412050
- Bugs: b/461906397, b/42107211
Advanced Bazel migration and improved IDK tooling. Introduced new Bazel rules to streamline IDK prebuilts and removed the deprecated
fuchsia_fidl_llcpp_library()rule from the SDK. Debug symbols are now generated during the firstbazel buildto save overhead.- Changes: fxr/1484646, fxr/1427298, fxr/1435595, fxr/1422700, fxr/1399398
- Bugs: b/450004374, b/426130024, b/452591388
Removed legacy macOS support from the build system. Dropped macOS compatibility configurations from toolchains, testing scripts, image definitions, and SDK generation wrappers.
- Changes: fxr/1427822, fxr/1427821, fxr/1427820, fxr/1427818
Added new client commands to the Build API. Introduced
affected_testsandshould_file_changes_trigger_buildto identify impacted tests and intelligently trigger infra builds. Thefile_to_test_packagetool was also refined to usegn refsfor better precision.- Changes: fxr/1414397, fxr/1411717, fxr/1456129
- Bugs: b/349341932
Improved build graph performance and remote execution stability. Optimized task scheduling by seeding Ninja edge weights with empirical build data and added error checking for duplicate GN outputs. Resolved incremental build issues with Breakpad symbol generation and supported remote
fsatraceon C++ compiles via RBE.- Changes: fxr/1389273, fxr/1409574, fxr/1423654, fxr/1434755
- Bugs: b/42079382, b/456902833, b/448852833
Cobalt
The following updates have been made for Cobalt:
Rust 2024 Migration. Migrated the Cobalt codebase to the Rust 2024 edition.
- Changes: fxr/1451488
- Bugs: b/461906397
STRUCT Fields Marked Experimental. Marked
STRUCTmetric and report fields as experimental to prevent usage confusion; developers should avoid using these fields.- Changes: fxr/1426694
Fixed sync script. Resolved issues with the
sync_with_fuchsia.pyhelper script.- Changes: fxr/1451649
Component Framework
The following updates have been made for Component Framework:
Enhancements to fuchsia.component.sandbox. Updated
DirConnectorAPIs to support passing flags and subdirectories, and addedCreateServiceAggregatetoCapabilityStore.- Changes: fxr/1390873, fxr/1433674
Target required for capability routing. Capability routing now explicitly requires the target (
WeakInstanceToken) to ensure the initiator of a request is always accurately identified across the component graph.- Changes: fxr/1430014
Component Controller updates. Added
OpenExposedDirto thefuchsia.component.Controller, making it possible to open a child component's exposed directory directly from its controller.- Changes: fxr/1432594
CML target_availability feature. Introduced
target_availabilityincmcto omit capability offers during compilation if their target is excluded from the assembled manifest.- Changes: fxr/1378207
- Bugs: b/447668986
Inspect logging for routing errors. Component Manager now exposes a
routing_errorsInspect node to capture recent routing failures for better on-device diagnostics.- Changes: fxr/1477081
- Bugs: b/361087159
Strict bootfs entry handling. Component Manager now immediately exits if it fails to receive
bootfsentries fromuserbootinstead of continuing the bootstrap sequence.- Changes: fxr/1393914
StorageAdmin protocol deprecation. Moved the
fuchsia.sys2.StorageAdminprotocol to thefuchsia.component.StorageAdminprotocol. This change allowsfuchsia.component.StorageAdminto be used outside of fuchsia.git.- Changes: fxr/1449068
Disabled tracing by default on eng builds. Disabled tracing by default in Component Manager in eng builds to prevent random boot stalls caused by blocking
trace-providerIPCs. Developers who need this functionally can turn tracing back on through an assembly flag.- Changes: fxr/1420222
- Bugs: b/461878941, b/458746554
Diagnostics
The following updates have been made for Diagnostics:
Archivist & Logging Resiliency. Improved logging reliability by fixing a race condition during component shutdown and preventing buffer overflows from malformed data. Additionally, memory usage was reduced by moving the Syslog buffer to the heap.
- Changes: fxr/1485756, fxr/1441148, fxr/1433922, fxr/1422755, fxr/1420354, fxr/1418677, fxr/1416854
- Bugs: b/456489422, b/466294903, b/463610125, b/459462291
Inspect Framework Enhancements. Resolved an Inspect deadlock involving callback invocations and added Component Manager routing error tracking directly to Inspect. A new
PrintAlltesting utility was also introduced to simplify debugging Inspect hierarchies.- Changes: fxr/1477081, fxr/1426939, fxr/1408737, fxr/1408719
- Bugs: b/361087159
Sampler & Sampling API Overhaul. Refactored Sampler to use
fuchsia.diagnostics.Sample. This offloads diffing to the Archivist and effectively disambiguates metrics with identical IDs using event codes.- Changes: fxr/1440476, fxr/1440474, fxr/1440473, fxr/1440472, fxr/1425569, fxr/1425568, fxr/1480919
- Bugs: b/440153294, b/300170322, b/477650690
Diagnostics Persistence Redesign. Deprecated and removed the
DataPersistenceprotocol in favor offuchsia.diagnostics.Sample. To better preserve crash debug data, persistence no longer deletes data once saved and now properly handles lifecycleStopevents for faster termination.- Changes: fxr/1428034, fxr/1426906, fxr/1426905
- Bugs: b/460853191, b/454330813, b/434269135, b/412347960
Memory Monitor Optimizations. Significantly improved the performance and accuracy of memory collections, including compressing memory snapshots to reduce payload sizes from 17.5 MiB to 1.2 MiB. CPU usage and collection speed were also improved by skipping redundant Starnix VMO enumerations and fixing double-counting.
- Changes: fxr/1473900, fxr/1402456, fxr/1426414, fxr/1427794, fxr/1475045, fxr/1467928, fxr/1416614
Diagnostics Tooling Updates. The
ffx heapdumptool now supports profiling multiple processes simultaneously, while the 32-bit profiler gained DWARF-based stack sampling. Additionally,ffx diagnosticsnow surfaces HTTP failures during SSH verification as warnings rather than fatal errors.- Changes: fxr/1483050, fxr/1392493, fxr/1442829, fxr/1438414
Display
The following updates have been made for Display:
Fixed race condition in display engine events. Added synchronization to prevent potential driver crashes caused by concurrent access between the coordinator and engine drivers.
- Changes: fxr/1462709
- Bugs: b/472347498, b/473698115
Updated page size determination for Intel Display. Removed the hardcoded
PAGE_SIZEconstant from theintel-displaydriver, replacing it with runtime page size determination to support RFC 0016.- Changes: fxr/1418928
- Bugs: b/42146863
Driver Framework
The following updates have been made for Driver Framework:
Power and Suspend Capabilities. Added support for
fuchsia.power.broker/ElementRunnerin thefdf_power::Suspendablemix-in, allowing the driver host to proactively forward power handles to capable drivers.- Changes: fxr/1408244, fxr/1408243, fxr/1408242, fxr/1405783, fxr/1405782, fxr/1401844, fxr/1398853
Driver Host Colocation. Board drivers can now directly specify driver host colocation via new configurations and a driver-host devicetree visitor.
- Changes: fxr/1482415, fxr/1473261, fxr/1473260, fxr/1456058
- Bugs: b/475277351
Host-Side Driver Logging.
fdf::Loggeris now backed by the syslog structured backend in host-side tests, eliminating the need to #ifdef outFDF_LOGmacros during host compilation.- Changes: fxr/1481463
Driver Framework CLI & Performance Updates. Replaced the deprecated
list-hostscommand withffx driver host listandshow, and significantly improvedffx drivercommand and Driver Index startup speeds via concurrent component loading.- Changes: fxr/1447488, fxr/1484616, fxr/1483560, fxr/1447129, fxr/1447429, fxr/1444485
- Bugs: b/42161814
Rust Driver Runtime Improvements. Added a
libasync-based transport for runningzx::Channel-based FIDL protocols directly on the driver dispatcher, alongside a new timer API future and a dedicated Rust driver testing library.- Changes: fxr/1430614, fxr/1454712, fxr/1412042, fxr/1398715, fxr/1408720, fxr/1435088
- Bugs: b/456247802
Threading and Dispatcher Reliability. Prevented stalls by unifying thread pool logic and ensuring dispatcher thread limits are strictly enforced.
- Changes: fxr/1446055, fxr/1449009, fxr/1436414, fxr/1424954
- Bugs: b/467410367, b/42076454, b/457466669
Dictionary Offers Support. Node capabilities can now be securely offered and mapped via a Component Framework dictionary instead of the providing driver's outgoing directory.
- Changes: fxr/1430335
Diagnostic Enhancements. Driver Manager now prints stack traces to the serial console for drivers that hang during shutdown sequences, significantly improving debuggability.
- Changes: fxr/1477637, fxr/1484076
- Bugs: b/369134124
FIDL
The following updates have been made for FIDL:
FIDL Bindings Performance Enhancements. Improved C++ driver build times by ~36% by removing dependencies in messaging headers, and reduced Zircon memory allocations by eliminating stack-based buffers for incoming messages.
- Changes: fxr/1441295, fxr/1433575
FIDL Compiler Updates. Relaxed the
@availableattribute to allownotearguments alongside removed or replaced arguments for clearer API versioning communication.- Changes: fxr/1467249, fxr/1422438, fxr/1423155, fxr/1412044
- Bugs: b/473529252, b/459923005, b/457537341
Rust Bindings Evolution. Shifted bindings to default to natural types instead of wire types and renamed
Decodedwire types toOwned. Also migrated to Rust 2024 and improved null handle array handling in driver bindings.- Changes: fxr/1407314, fxr/1405835, fxr/1401913, fxr/1448508, fxr/1409895, fxr/1438595
- Bugs: b/441816805, b/461906397
Feedback
The following updates have been made for Feedback:
Domain configuration migration. Feedback configurations migrated to the new domain configuration (
feedback_config.json), and unused flags likepersisted_logs_num_fileswere removed.- Changes: fxr/1470022, fxr/1441517, fxr/1440454, fxr/1434174
Shutdown and reboot tracking enhancements. Improved reboot annotations and crash signatures by tracking all shutdown actions across boots, enabling configurable spontaneous reboot reasons via assembly, and fixing attribution of unreasoned Starnix shutdowns.
- Changes: fxr/1439556, fxr/1440270, fxr/1430814, fxr/1415521, fxr/1411799, fxr/1433734, fxr/1419135, fxr/1412934, fxr/1455135
- Bugs: b/469788876
Optimized log fetching with FXT format. Feedback now uses the FXT format instead of JSON to fetch logs from Archivist, significantly optimizing performance and memory usage by bypassing unnecessary serialization.
- Changes: fxr/1397933
Configurable report store size. The report store size limit is now configurable via assembly, with the limit increased to 10 MiB for large_disk products to prevent large minidumps from exceeding storage.
- Changes: fxr/1451238, fxr/1444818
Crash snapshot refinements. Removed the unused
build.snapshot.xmlattachment from crash snapshots and fixed a use-after-move bug that causedlog.kernel.previous_boot.txtto be incorrectly excluded.- Changes: fxr/1467113, fxr/1427641
Firmware
The following updates have been made for Firmware:
Recovery: BCB handling. Added support for
--sideloadBootloader Control Block (BCB) argument, recovery now reads and clears the bootloader message from the/miscpartition at startup to prevent consecutive accidental boots into the recovery image.- Changes: fxr/1477586, fxr/1395634
Recovery: remove fastboot UX. Removed
fastbootfrom the manual menu since it is natively accessible in recovery- Changes: fxr/147574
Recovery: standardized shutdown and reboot API usage. Migrated recovery reboot handling to the Shutdown API, enabling exact shutdown reason tracking to improve crash reporting and metrics.
- Changes: fxr/1465050, fxr/1456064, fxr/1442598, fxr/1414494
Recovery: system improvements. Exposed
bootfsarguments to recovery components to support boot slot identification during storage operations, and implemented robust deadlock detection.- Changes: fxr/1440152, fxr/1440968
Graphics and GPU
The following updates have been made for Graphics and GPU:
Supported dynamic page sizes in GPU drivers. Replaced hardcoded
PAGE_SIZEmacros with a runtime method across graphics drivers to support dynamically varying boot-time page sizes.- Changes: fxr/1421777, fxr/1418931, fxr/1418927
- Bugs: b/42146863
Improved Mali driver power management. Integrated a
SuspendBlockerin themsd-arm-malidriver to properly drain task queues before entering system suspend states.- Changes: fxr/1395533
I18n
The following updates have been made for I18n:
- Migrated ICU data synchronization to fuchsia_sync. The ICU data library
now uses
fuchsia_syncto improve deadlock detection and reduce memory overhead by removing lock poisoning.- Changes: fxr/1440144
IOT, Matter and Thread
The following updates have been made for IOT, Matter and Thread:
Thread Diagnostics Enhancements. Expanded Thread inspect to partially reach parity with thread dump feature in other 1p products.
- Changes: fxr/1482316, fxr/1482037, fxr/1475817, fxr/1476916, fxr/1476697, fxr/1476076, fxr/1474901, fxr/1479736, fxr/1473700
ePSKc and Border Agent Enhancements. Update ePSKc support to fix issues. ePSKc feature remains disabled for F30. Make sure the border agent broadcasts a service name similar to other 1p TBR products.
- Changes: fxr/1474641, fxr/1457588, fxr/1419894, fxr/1422314, fxr/1422974, fxr/1420636
TREL Socket Routing Fix. Fixed TREL compatibility issue with Netstack 3, which requires a
scope_idto send packets to link-local destinations.- Changes: fxr/1446253
Kernel
The following updates have been made for the Zircon Kernel:
- Enforced VMO Page Alignment (RFC-0238). Enforced strict page-aligned sizes for physical and contiguous VMO creation, and transitioned to safely zero out newly added pages.
- Runtime Page Size Support (RFC-0016). Removed compile-time
PAGE_SIZEandZX_PAGE_SIZEmacros from Zircon public headers, requiring developers to use explicit runtime page size checks.
Netstack
The following updates have been made for Netstack:
eBPF Filter Matcher Support. Added support for running eBPF filter matchers via the
fuchsia.net.filterAPI, enabling the use of packet details like interface index and socket UID.- Changes: fxr/1469824, fxr/1452652, fxr/1452112, fxr/1442663, fxr/1427002, fxr/1442331, fxr/1433000
- Bugs: b/455585276
Netdevice Banjo to FIDL & DFv2 Migration. Migrated network device and
network-tunbindings from legacy Banjo to FIDL protocols. Thenetdevicedriver was also updated to DFv2 to modernize device communication capabilities.- Changes: fxr/1442735, fxr/1442734, fxr/1426319, fxr/1439496, fxr/1442588, fxr/1432994
Performance and Memory Optimizations. Improved UDP early demux and migrated TCP Options serialization to a faster custom framework. Added discarding of idle TCP buffers to substantially reclaim memory.
- Changes: fxr/1477616, fxr/1475657, fxr/1430375, fxr/1422555, fxr/1395624, fxr/1442448
- Bugs: b/473819144, b/364698967
Socket Diagnostics and Interface Identity. Introduced
port_identity_koidandGetIdentitycapabilities to correlate device ports with API interfaces. Added telemetry support for TCP and UDP socket diagnostics.- Changes: fxr/1446953, fxr/1441270, fxr/1441630, fxr/1420226, fxr/1411874, fxr/1405753
- Bugs: b/460241935, b/460241186, b/449157844, b/449158183
NDP Neighbor Advertisement Compliance. Improved IPv6 NDP protocol stability by properly ignoring solicited multicast Neighbor Advertisements. NAs with an unspecified source address are now correctly permitted.
- Changes: fxr/1455728, fxr/1455148, fxr/1454628
- Bugs: b/470357048, b/455545032, b/470123141, b/454387514
TCP and UDP Protocol Fixes. Fixed improper POSIX connection timeout reporting and corrupted partial UDP checksum updates. Allowed connections sharing a 4-tuple on distinct devices and correctly applied TCP
USER_TIMEOUTto keep-alive segments.- Changes: fxr/1449528, fxr/1453794, fxr/1477438, fxr/1416654
- Bugs: b/468040882, b/469170628, b/475191687, b/321240038, b/457269123
Interface Telemetry & Traffic Counters. Created a
SamplerStatsservice to expose sampled interface transmit and receive byte counters via Inspect for fine-grained network attribution.- Changes: fxr/1405677, fxr/1409115
- Bugs: b/456247776
Netlink Handling Enhancements. Expanded Netlink buffer sizes for
NLM_F_DUMPup to 4MiB to resolve truncated messages. Added support for theSIOCGIFNAMEioctl and fixed route removals to use correct inherited metrics.- Changes: fxr/1438115, fxr/1422514, fxr/1421527
- Bugs: b/325639438
Netcfg and Topological API Enhancements. Added Topo Path elements to
InterfaceNamingIdentifierto cleanly handle multi-device provisioning. This eliminates system collisions when physical MACs are reused across logical interfaces.- Changes: fxr/1477456, fxr/1445952
- Bugs: b/459456549
Networking and mDNS improvements. Updated mDNS to support DNS name labels starting with dots, expanded Netlink neighbor FIDL extensions, and updated the
NetworkManagerfilesystem to supportStarnixNetworksstate translation.- Changes: fxr/1451557, fxr/1483497, fxr/1435084, fxr/1418918
- Bugs: b/459543591, b/459543400
Platform Drivers
The following updates have been made for Platform Drivers:
Rust Driver Manager Port. Ported core Driver Manager components to Rust, introducing firmware crash reporting and memory attribution tracking across driver hosts.
- Changes: fxr/1484077, fxr/1270745, fxr/1482413, fxr/1473603, fxr/1458795, fxr/1448640, fxr/1474602
- Bugs: b/473630025, b/475138011
Power-Aware Driver Topology. Registered a power element per driver and created a dedicated storage element, laying the foundation for advanced power-aware topology tracking.
- Changes: fxr/1415476, fxr/1399934, fxr/1401845, fxr/1400853
USB DWC3 Controller Robustness. Resolved multiple DWC3 controller stability issues, fixing transfer resource assignments and ensuring continuous interrupt handling to prevent system suspend blocking.
Network Device FIDL Migration. Migrated underlying network device interfaces for
virtio,dwmac, andgvnicdrivers from Banjo to FIDL, alongside a DFv2 port forvirtio.- Changes: fxr/1438996, fxr/1438995, fxr/1420196, fxr/1433916
Virtio Link State Fix. Fixed a
virtionetwork driver issue where link state was not read on restart, preventing thenetstackfrom receiving incorrect states after device suspension.- Changes: fxr/1423296
- Bugs: b/460146006
DWMAC Stability Enhancements. Eliminated edge-case failures by increasing device reset timeouts and fixed dispatcher crashes triggered by binding failures in the
DWMACdriver.- Changes: fxr/1438300, fxr/1441274
SDMMC & SDIO System Hang Fixes. Corrected SDHCI bus idle logic and resolved a critical system hang in SDIO caused by an incorrect fallback to High-Speed mode.
- Changes: fxr/1475121, fxr/1442508
Storage Partition Forwarding. Introduced a
block-relaycomponent that seamlessly forwards GPT partitions to the driver framework by generating nodes for each designated partition.- Changes: fxr/1452656, fxr/1473180
- Bugs: b/437443063, b/438829467, b/470140477
Platform Bus IOMMUs Support. Added a
RegisterIommuAPI to the platform bus protocol to configure and construct multiple IOMMUs.- Changes: fxr/1429620
- Bugs: b/462183060
Interrupt Wake Vector Policy Change. Board drivers are now explicitly required to set interrupt wake vectors via metadata. Support for client drivers passing the
ZX_INTERRUPT_WAKE_VECTORflag is completely removed.- Changes: fxr/1454708, fxr/1453461
Sysmem Padding Constraints. Added
pad_for_block_sizeandpad_beyond_image_sizebuffer constraints to assist participants requiring additional bytes past image boundaries for system optimizations.- Changes: fxr/1395453
Power Management
The following updates have been made for Power Management:
Introduced the fuchsia.power.cpu FIDL library and refactored CPU performance limits. The new
DomainControllerprotocol exposes the CPU as a cooling device in Starnix, while CPU boost logic now uses thefuchsia.hardware.cpu.ctrl:DeviceAPI to support RPPM.- Changes: fxr/1383541, fxr/1383542, fxr/1383543, fxr/1471343, fxr/1477522
Replaced the single
SetBoostFIDL API with a multiplexedBoostAPI. The new protocol allows boosting the system via multiple sources simultaneously until the returnedEventPairhandle is dropped.- Changes: fxr/1482656, fxr/1481917
Removed all support for opportunistic dependencies in the Power Broker framework. Assertive dependency is now the sole supported requirement type, simplifying claim tracking and lease contingencies.
- Changes: fxr/1425778, fxr/1468408, fxr/1470800, fxr/1469140, fxr/1425779, fxr/1394033, fxr/1469920, fxr/1434034
Improved battery percentage accuracy and charging current metrics. Battery level drops are now smoothed by a rate limiter, and the FIDL API now returns charging current in microamps (µA) with updated "
Charging" field names.- Changes: fxr/1426922, fxr/1446912, fxr/1421257, fxr/1395625, fxr/1465072, fxr/1426322
Refactored battery telemetry and internal processing. The Battery Manager now enforces event ordering internally to prevent discarded updates and records voltage, capacity, and time-to-full estimates in Inspect only when meaningful changes occur.
- Changes: fxr/1463356, fxr/1455968, fxr/1444897, fxr/1409963, fxr/1410016, fxr/1483192
Added hardware trippoint monitoring and enhanced thermal logging. Introduced the
TrippointWatcherprotocol to directly monitor hardware trippoints and updated thermal logging to accurately track maximum temperatures.- Changes: fxr/1480436, fxr/1466727, fxr/1481897, fxr/1481898, fxr/1467913, fxr/1391615
Migrated core power services to the unified Shutdown API. Previous reboot and power-off methods are deprecated in favor of
Shutdownto ensure shutdown reasons are universally logged.- Changes: fxr/1465053, fxr/1451155, fxr/1453790
Added Inspect persistence and improved system observability. The
power_state_recordercan now persist Inspect history to disk across reboots, while new wake lease events and health nodes improve timeline tooling and startup monitoring.- Changes: fxr/1440451, fxr/1452868, fxr/1409815, fxr/1383721, fxr/1445737
Made Suspender connection logic async in the System Activity Governor (SAG). This prevents SAG from blocking startup while waiting on the Suspender connection, allowing driver tokens to be fetched prior to starting drivers.
- Changes: fxr/1420419, fxr/1408243
Rust
The following updates have been made for Rust:
Rust 2024 Migration. Began migrating the source tree to Rust 2024 by enforcing new safety lints (e.g.,
missing_unsafe_on_extern) and resolving legacy closure capture lifetimes.- Changes: fxr/1445566, fxr/1433081, fxr/1430225, fxr/1455868, fxr/1438596, fxr/1435177
- Bugs: b/461906397, b/470359393
Third-Party Crate Updates. Rolled dependencies to include performance optimizations for
zerocopyand restricted visibility for the unmaintainedbincodecrate.- Changes: fxr/1467463, fxr/1453048, fxr/1438616, fxr/1433139
Security
The following updates have been made for Security:
Scrutiny Configuration Updates. Added
component_tree_configand boot args configurations to Scrutiny policies, enabling the ingestion of dynamic dictionaries and kernel arguments for accurate capability routing audits.- Changes: fxr/1446193, fxr/1446188, fxr/1446192
Sealing Keys API Update. Introduced the
DeleteAllKeysfunction to Keymint sealing keys to support comprehensive key deletion operations.- Changes: fxr/1405533
TEE Manager Dependency Resolution. Moved
tee_managerto the base package set and configured it to use the base resolver, preventing a dependency cycle where persistent storage could not be unlocked during package resolution.- Changes: fxr/1405675
Cryptography API and Certificate Updates. Rolled TLS root certificates and migrated codebase logic to the new
fuchsia-merkleAPIs, replacing deprecatedMerkleTreemethods.- Changes: fxr/1466732, fxr/1418719
Software Delivery
The following updates have been made for Software Delivery:
Paving Target Removal and Paver Improvements. Paving support has been officially removed from Fuchsia. The
moonflowerpaver now prevents bricking devices with corrupted boot partitions and supportsvbmetaimages and new boards.- Changes: fxr/1157773, fxr/1153612, fxr/1413481, fxr/1421524, fxr/1467462, fxr/1467461
OTA and System Updater Enhancements. The system updater and committer now use the Shutdown API to ensure precise crash reporting tracking. The updater also adds support for packageless updates, verifies existing blobs during recovery, and improves Omaha client timer management.
Package Resolver Sandboxing and Blobfs API Migration. Untrusted HTTP blob parsing is now sandboxed in the
http-clientcomponent rather thanpkg-resolver. Additionally, the blobfs client fully migrated to theBlobReaderandBlobCreatorAPIs, dropping legacy file and directory variants.- Changes: fxr/1442048, fxr/1448648, fxr/1355246, fxr/1412354, fxr/1409394, fxr/1409854
- Bugs: b/324080864
ELF Runner Configurations and API Exposure. The ELF runner now exposes a public API for independent launch info assembly and fixes service exposure issues by automatically cloning outgoing directory permissions. It also adds exception-based policy configurations for the
bad_handlesjob policy.- Changes: fxr/1484647, fxr/1476224, fxr/1446910, fxr/1445735, fxr/1449531
- Bugs: b/403545512, b/475945829, b/42151766
Fuchsia Merkle Tree API Optimization. The
fuchsia-merklelibrary replaced older builder APIs with memory-optimizedMerkleRootBuilderandMerkleVerifierprimitives. This prevents unnecessary interior hash storage and efficiently handles streaming block-unaligned data.- Changes: fxr/1418723, fxr/1418722, fxr/1418714, fxr/1371261
- Bugs: b/437178186
Windowed Stats Inspection Enhancements. Time series inspection for Windowed Stats was re-architected to remove periodic buffer writes and prevent pre-allocating large arrays. This includes a new
Simple8bRledecoder,Diffstatistic calculations, and improved locking.- Changes: fxr/1420194, fxr/1408464, fxr/1408463, fxr/1409114, fxr/1407354, fxr/1407094
- Bugs: b/456247776
Starnix
The following updates have been made for Starnix:
Kernel and Machina Environments Updates. Bumped the Starnix kernel version to 6.6.30 and updated the default Debian images for Machina targets to Bookworm (Linux kernel 6.1.0-42).
- Changes: fxr/1483417, fxr/1481904, fxr/1480359
- Bugs: b/376183479, b/463755437
SELinux and Access Control Enhancements. Strengthened security with new
ptraceaccess checks, SECCOMP audit integration, and NNP/nosuidtransition checks. Added policy capabilities likememfd_classandcgroup_seclabelto expand access control coverage.Networking and eBPF Capabilities. Expanded networking features by adding BPF matchers in
iptables, implementing several IPv6 sysctls, and stubbingAF_QIPCRTRsockets. Improved eBPF utility by enabling FIDL map sharing and adding basicSO_ANDROID_DROP_REASONsupport.Terminal Line Discipline Improvements. Improved terminal correctness by adding support for
IXONflow control and various line discipline flags. Fixed a bug affecting writes queued after newlines.- Changes: fxr/1485679, fxr/1485397, fxr/1483884, fxr/1481905
- Bugs: b/322874329
Power, CPU, and Thermal Management. Enhanced power controls with boot- time CPU boosting, new userspace charging/cooling devices, and more accurate shutdown logging via the unified
Shutdownprotocol.- Changes: fxr/1481917, fxr/1483942, fxr/1383543, fxr/1420421, fxr/1463128
Storage and File System Integration. Migrated Starnix to use real block devices instead of VMOs for significantly better performance. Enhanced File- Based Encryption (FBE) with inline encryption support and
fstab-specified key locations.- Changes: fxr/1425841, fxr/1458653, fxr/1421599, fxr/1462928, fxr/1475527
- Bugs: b/450325631, b/407091711, b/468138097
Core Execution and Process Management. Optimized syscall execution by mapping register states directly to the restricted state VMO to eliminate redundant data movement. Refined memory accounting for shadow processes and implemented
PTRACE_SETREGSET.- Changes: fxr/1425534, fxr/1435074, fxr/1439505, fxr/1422783
- Bugs: b/397697912
Starnix Filesystem Crypto Upgrades. Starnix now uses the
lblk32algorithm instead of legacyfxfsforfscryptdirectory and symlink keys. Inline cryptography hardware communication is now synchronous to prevent async issues during syscalls.- Changes: fxr/1435294
- Bugs: b/452741473, b/460564319, b/436902004
Storage
The following updates have been made for Storage:
Block FIDL protocols unified. The Volume, Partition, and Block protocols have been unified into a single
fuchsia.storage.block.BlockFIDL protocol to decouple block components from the Driver Framework.- Changes: fxr/1456131
Blobfs stops serving blobs as files. Blobs are no longer served over
fuchsia.io/Fileand must be accessed viaBlobReaderand written viaBlobCreatororBlobWriter. Online compression and theVMEXcapability have also been removed.- Changes: fxr/1467968, fxr/1468049, fxr/1430358
Blob volume flashing performance improved. Flashing a new blob volume is significantly faster (dropping from over 120s to under 40s) by having clients unsparse the payload.
- Changes: fxr/1418919
- Bugs: b/460510280
Blobfs overwrite configuration exposed. An
OverwriteConfigurationFIDL capability has been added to Blobfs and the SDK, allowing products to control blob overwrite state and formatting.- Changes: fxr/1481616, fxr/1480136, fxr/1467128
- Bugs: b/477257822
Fxfs 32-bit object IDs and caching. New Starnix volumes limit inode IDs to 32 bits (introducing a non-rollback Fxfs version change) and cache object keys to vastly improve
GetAttributesperformance.- Changes: fxr/1438674, fxr/1437314, fxr/1369737
- Bugs: b/453445060
Fxfs memory optimization. Fxfs reduces memory usage for merkle verification by at least 75% and now names backing VMOs for mutable files "
fxfs-file" to aid memory profiling.- Changes: fxr/1374161, fxr/1437814
- Bugs: b/437178186, b/455860616
F2FS synchronization hardened. Fixed race conditions during orphan recycling and improved vnode hierarchy synchronization to reliably preserve data blocks for open orphan files.
- Changes: fxr/1439954, fxr/1409334, fxr/1416174
- Bugs: b/461500756, b/441767506
Block Driver Framework improvements. A new
block-relaycomponent directly forwards system GPT partitions to the Driver Framework. Block server implementations also improved Force Unit Access (FUA) handling and moved request processing to a dedicated thread to prevent concurrency issues.- Changes: fxr/1452656, fxr/1439555, fxr/1480180
- Bugs: b/437443063, b/438829467, b/409872119, b/474224981
System-wide storage behavior updates. Unified
read_direntsto consistently returnZX_ERR_BUFFER_TOO_SMALLfor small buffers and removed hardcodedPAGE_SIZEassumptions in favor of dynamic checks to improve portability.- Changes: fxr/1440157, fxr/1439114, fxr/1421526
- Bugs: b/293629067, b/42146863
Testing
The following updates have been made for Testing:
fx test Timeouts, Statistics, and Reliability.
fx testnow delegates timeouts totest_managerto collect backtraces, disables them automatically during debugging, and adds a--pr statsflag. A bug causing the temporary package server to leak after errors was also fixed.- Changes: fxr/1413094, fxr/1401540, fxr/1428934, fxr/1482036, fxr/1484976, fxr/1458528
- Bugs: b/303314982, b/462419969, b/475373731, b/477846133, b/465540282
Shutdown and Reboot API Migration. Deprecated
PerformRebootacross testing interfaces (e.g.,honeydew,sl4f) in favor ofShutdownandShutdownOptions. This allows clients to specify explicit shutdown reasons, improving reboot reason tracking.- Changes: fxr/1475364, fxr/1475363, fxr/1455218, fxr/1475195, fxr/1465071, fxr/1465057
Lacewing and Honeydew Affordances. Added support for handling target IP changes during tests via
device.register_for_on_device_ip_change(). The serial interface also gained a newreadmethod to read bytes directly from the serial port.- Changes: fxr/1396715, fxr/1420274
Debugging and System Target Improvements. Updated
test_managerto recursively attachDebugAgent, ensuring all components within a test's realm are covered. Additionally,debug_blockdevices can now be exposed as system test targets.- Changes: fxr/1396614, fxr/1479336
- Bugs: b/438253057, b/303314982
Timekeeping
The following updates have been made for Timekeeping:
Starnix /dev/rtc0 implementation. Added a passive
/dev/rtc0device in Starnix eliminates bogusrtc0open errors.- Changes: fxr/1452809
Fine-grained alarm driver errors. Introduced fine-grained driver errors to the alarms FIDL API to improve unrecoverable error reporting.
- Changes: fxr/1425564, fxr/1425565
Configurable Timekeeper backstop. Exposed the minimum UTC reference to backstop difference as an adjustable product assembly configuration.
- Changes: fxr/1455928, fxr/1430617
Toolchain
The following updates have been made for Toolchain:
Toolchain Rolls. Rolled Rust, Clang, and LLVM toolchain packages to incorporate the latest
libcupdates and math function improvements.- Changes: fxr/1476058, fxr/1476738, fxr/1453609, fxr/1421174
- Bugs: b/473053705, b/460091098
C++23 Compatibility. Fixed missing includes and compiler warnings to improve compatibility when building the codebase in C++23 mode.
- Changes: fxr/1469901, fxr/1422439
- Bugs: b/468047456, b/459923005
Tools
The following updates have been made for Tools:
fx: macOS support officially retired. The
fxand related CLI tools are no longer built for macOS and now explicitly report the platform as unsupported.- Changes: fxr/1467117, fxr/1407254, fxr/1407281
New fx debug command. Added
fx debugas a convenient wrapper aroundffx debug connectthat automatically starts an ephemeral package server if needed.- Changes: fxr/1436314
- Bugs: b/450890445
Deprecated fx unarchive-package. The
fx unarchive-packagedevshell command has been retired and is fully superseded byffx package archive extract.- Changes: fxr/1454908
New ffx target shell plugin. Introduced
ffx target shellto establish an interactive shell session with the target device over RCS.- Changes: fxr/1433974
New ffx driver host subcommands. Introduced
ffx driver host listandffx driver host show, fully replacing the deprecatedffx driver list- hostscommand.- Changes: fxr/1447129, fxr/1447488
Address filtering for ffx target list. Added
--allow-addrsand--deny-addrsfiltering options, replacing the deprecated--no-ipv4and--no-ipv6flags.- Changes: fxr/1441271
Fastboot unprovisioned device flashing. Fastboot now automatically detects unprovisioned devices with corrupt system containers during flashing, falling back to overwriting
superdirectly or prompting for a full wipe.- Changes: fxr/1434625
- Bugs: b/464027981
Simplified ffx trace FIDL data.
ffx tracenow drops raw FIDL data by default to declutter the Perfetto UI, with a new--retain-raw-fidlflag available to override this behavior.- Changes: fxr/1483556
ffx doctor USB driver checks.
ffx doctornow explicitly checks theffx-usb-driverprocess status and warns if the socket path mismatches configured environments.- Changes: fxr/1420157
FDomain Client API Expansion and Synchronization Refactor. The
FDomainclient API gained multiple functional improvements and fixes for hanging tasks on transport death. Standard library locks were also migrated tofuchsia_syncto automatically surface lock cycle deadlocks.Debugger exception handling improvements.
zxdbnow correctly steps over exceptions, captures full stack traces for general crashes, and includes a newexception-infoverb for detailed exception printing.- Changes: fxr/1411755, fxr/1409614, fxr/1421434, fxr/1408538
- Bugs: b/444070494
Tracing
The following updates have been made for Tracing:
FFX Trace output cleaner by default. The
ffx tracetool drops raw FIDL data from IPC trace events by default to save space and declutter the Perfetto UI, with a new--retain-raw-fidlflag to preserve it.- Changes: fxr/1483556, fxr/1432774
Trace2json interface and processing updates. The
trace2jsontool now requires--output-file, adds a--categoryflag for filtering, and introduces a split trace output format (--system-trace-events-file) to reduce RAM usage for large traces.- Changes: fxr/1453792, fxr/1374306, fxr/1405280, fxr/1404954, fxr/1407676, fxr/1407573, fxr/1407256, fxr/1407255
Trace Manager storage and stability improvements. Trace Manager now uses cache storage to allow system cleanup under severe low disk pressure, fixes a streaming mapping leak, and resolves timeout hangs by refactoring socket writes.
- Changes: fxr/1456138, fxr/1427100, fxr/1427729, fxr/1421694, fxr/1422943, fxr/1416636
Rust API enhancements and performance optimizations. The Rust tracing API now supports
Stringand&'static strtypes, adds vthread duration support, and optimizes tracing macros to prevent unnecessary heap allocations on the hot path.- Changes: fxr/1440480, fxr/1439014, fxr/1451534, fxr/1421114
- Bugs: b/387512895, b/467764830, b/456523982
CPU Profiler and kernel tracing enhancements. The CPU profiler now emits data in the standard Fuchsia Trace (FXT) format, while kernel tracing adds a
kernel:powercategory and fixeskernel:retainboot tracing behavior.- Changes: fxr/1404210, fxr/1428957, fxr/1410274, fxr/1419114, fxr/1421556, fxr/1419214
- Bugs: b/444078037, b/461656870, b/387568974, b/457763821
UI
The following updates have been made for UI:
Prevented GPU fallback for empty scenes. Added a default black display layer in Scenic to prevent accidental GPU fallbacks that previously degraded performance on empty scenes.
- Changes: fxr/1453589
- Bugs: b/399228128
Removed
CpuRenderfrom Scenic. Removed theCpuRenderoption within Scenic to simplify and streamline rendering paths.- Changes: fxr/1419014
Enabled Flatland display rendering reuse.
FlatlandDisplay.SetContent()can now be called repeatedly, enabling better reuse of display instances across tests and applications.- Changes: fxr/1475736
- Bugs: b/454715223, b/42156567
Optimized Scenic composition performance. Recycled
SceneStateand skippedViewTreerecomputations when no diff exists, significantly reducing per-frame CPU allocation overhead.- Changes: fxr/1415517, fxr/1458168, fxr/1421775
Fixed Escher compositor color artifacts. Corrected color premultiplication in
RectangleCompositorto prevent visual double multiplication artifacts for non-premultiplied blend modes.- Changes: fxr/1398913
Consolidated UI input handlers. Moved all UI input handlers to a single event loop, averting CPU priority shifting and significantly improving input latency consistency.
- Changes: fxr/1486357
Added Wake Lease support to Input Pipeline. Pointer injectors, mouse, touch, and buttons in the input pipeline now fully manage system wake leases.
- Changes: fxr/1414254, fxr/1412014, fxr/1411994, fxr/1404593
Input pipeline and
virtconshortcuts. Resolved input pipeline racing crashes by ensuring shortcuts are registered only after the pipeline starts.- Changes: fxr/1429441
Video
The following platform updates have been made for Video:
- Page-aligned VMO allocations and dynamic page size support. Updated
camera and media components to use runtime page sizes and page-aligned
allocations to comply with strict
zx_vmo_create_contiguousrequirements.- Changes: fxr/1451555, fxr/1416775, fxr/1416774
- Bugs: b/460506492, b/42146863
WLAN and Connectivity
The following platform updates have been made for WLAN and Connectivity:
Opportunistic Wireless Encryption (OWE) Preparations. Added FIDL APIs, the
OweFeaturedriver feature flag, and theProtocol::OWEvariant to support Opportunistic Wireless Encryption.- Changes: fxr/1430224, fxr/1429548, fxr/1401724
- Bugs: b/458136222
MAC Randomization Support. Added
factory_addrfields andSetMacAddressFIDL methods across multiple protocols to enable MAC randomization, and corrected invalid MAC generation.- Changes: fxr/1405997, fxr/1405996, fxr/1411522, fxr/1405995, fxr/1408898, fxr/1405994, fxr/1407776, fxr/1407775, fxr/1407774, fxr/1407773, fxr/1469160
- Bugs: b/470957439
Hash-to-Element (H2E) SAE Support. Enabled direct hash-to-element testing for supported drivers via a new driver feature flag.
- Changes: fxr/1319469, fxr/1440478
WLAN FIDL API Changes and Removals. Evolved
WlanSoftmacandNL80211Messageto flexible types for future extensibility, and completely removed deprecatedDataPersistence,ppp, and unused SL4F WLAN code.- Changes: fxr/1447130, fxr/1405673, fxr/1434090, fxr/1427732, fxr/1451210, fxr/1440709, fxr/1272004
- Bugs: b/462157777, b/385368895
Connection Reliability & Roaming Fixes. Resolved connect/roam failures by overriding channel 165+ bandwidth to 20MHz and enabling legacy fallback logic. Addressed unnecessary disconnects and fixed 5GHz AP channel startup to explicitly verify DFS regulatory support.
- Changes: fxr/1446010, fxr/1446009, fxr/1407278, fxr/1407277, fxr/1470060, fxr/1415519, fxr/1459149
- Bugs: b/335283785
System Stability & Firmware Crash Recovery. Improved stability by moving
PhyImplNotifyto a separate dispatcher to prevent driver freezes during firmware crashes, plumbing events directly toDeviceMonitor. Also updatedwlancfgto cleanly trigger reboots without panicking and migrated standard locks tofuchsia_syncfor better deadlock detection.- Changes: fxr/1420219, fxr/1321226, fxr/1446011, fxr/1423275, fxr/1439910, fxr/1439908
- Bugs: b/447408672
Telemetry, Metrics, and Indications. Expanded telemetry to log scan events, post-roam RSSI deltas, and accurate policy-induced roam disconnects. Fixed country code reporting so changes propagate correctly and worldwide networks report as "00".
- Changes: fxr/1446848, fxr/1446374, fxr/1429475, fxr/1438374, fxr/1434376, fxr/1441519, fxr/1412034, fxr/1409034