Date: October 9, 2025
Version: F28
The following changes have been implemented:
Audio
The following updates have been made for Audio:
- Modernized the
audio_recording
service with a new FIDL API that uses Zircon Sockets for host-driven testing and refactored it for improved reliability and simplicity.- Changes: fxr/1259507, fxr/1292548
- Enhanced test coverage for the audio driver
signalprocessing
protocol. This includes adding comprehensive validation for topologies, elements, and state management, and updating the virtual audio test driver to facilitate these more rigorous tests.- Changes: fxr/1261446, fxr/1261669, fxr/1271544, fxr/1271879, fxr/1272228, fxr/1275645, fxr/1275682, fxr/1283529
- Improved the
ffx audio
developer tool with a more robustplay
command, data-path tracing for diagnostics, and more intuitive output for thedevice info
command.- Changes: fxr/1283469, fxr/1296889, fxr/1300168
- Improved the reliability of
audio_driver_admin_tests
by adding delays after test cases to mitigate intermittentZX_ERR_ALREADY_BOUND
failures.- Changes: fxr/1279375, fxr/1301624
- Updated audio driver tests to validate that drivers supporting
stereo-only
DaiFrameFormats
(e.g., I2S) correctly advertise stereo-only support.- Changes: fxr/1288524
Bluetooth
The following updates have been made for Bluetooth:
- Significant improvements to Hands-Free Profile (HFP) Hands Free role
- Changes: fxr/1294025, fxr/1292774, fxr/1006612, fxr/1002861, fxr/990257, fxr/1257844
- Bugs: b/42081254
- Improved RFCOMM stability and performance by implementing a backpressure
mechanism, separating the RX/TX datapaths, and optimizing credit watermark
levels to prevent packet loss in high-throughput scenarios.
- Changes: fxr/1317645, fxr/1310426, fxr/1309362, fxr/1309305
- Bugs: fxb/428738649
- Introduced a new testing affordance library and a
bt-affordances-server
component, allowing Bluetooth control viaffx bluetooth
.- Changes: fxr/1273999, fxr/1252446, fxr/1222506
- Bugs: fxb/409779607
- Refactored Bluetooth host initialization to dynamically offer HCI
drivers to specific
bt-host
components instead of exposing a shared device directory, improving security and flexibility.- Changes: fxr/1323485, fxr/1312284, fxr/1321904, fxr/1310865
- Bugs: fxb/369597375
- Added a new FIDL API to allow clients to synchronize with an LE periodic
advertising train.
- Changes: fxr/1307249
- Enable low power mode on supported Broadcom controllers at startup to
reduce overall power consumption.
- Changes: fxr/1271388
- Speed up A2DP source integration tests by allowing for more parallel
test execution.
- Changes: fxr/1328367
- Bugs: fxb/42148322
- Fixed and enabled previously disabled AT command tests to ensure they
run as part of continuous integration checks.
- Changes: fxr/1329344
- Corrected the behavior of
WatchState
in the testHostServer
to function properly as a Hanging Get, improving GAP test reliability.- Changes: fxr/1322704
- Enabled the
bt-snoop-from-snapshot
tool to process from Starnix bugreports- Changes: fxr/1310205
Build
The following updates have been made for Build:
- Build the Fuchsia IDK (Integratable Developer Kit) using Bazel instead of
GN, a major milestone in the build system migration. This change includes
removing legacy
meta.json
generation scripts and adding new validation for SDK atom categories, API areas, and header files.- Changes: fxr/1290384, fxr/1297511, fxr/1313807
- Bugs: fxb/413071161, fxb/417997995, fxb/419105478
- Fixed a critical bug that broke incremental Bazel builds by correcting
how Clang toolchain version files are tracked.
- Changes: fxr/1326824
- Bugs: fxb/432809101
- Improved Remote Build Execution (RBE) performance by directing
multi-threaded Rust and C++ ThinLTO link jobs to larger workers and
improving cache hits.
- Changes: fxr/1283945, fxr/1284784, fxr/1271296
- Improved build performance for products by performing image assembly and
product bundle creation in a single, streamlined action.
- Changes: fxr/1317731
- Updated the build regenerator to print timings for slow steps to help
identify performance regressions, and fixed a bug that caused unnecessary
regeneration on every build.
- Changes: fxr/1313624, fxr/1308884
- Bugs: fxb/427689271
- Enabled frame pointers for RISC-V builds, and now correctly use the
atomic ('A') ISA extension during LTO builds.
- Changes: fxr/1265864, fxr/1266384
- Bugs: fxb/42086180
Cobalt
The following updates have been made for Cobalt:
- Simplified channel setting logic by replacing the
SetSoftwareDistributionInfo
function with the more directSetChannel
.- Changes: fxr/1330621
- Introduced cookie bucket support to the report definition for computing
confidence intervals. This change also clarifies naming by renaming
COOKIE_BUCKET_ID
toCOOKIE_BUCKET
.- Changes: fxr/1297673, fxr/1290824
Component Framework
The following updates have been made for Component Framework:
- Added a new built-in dispatcher component that can dynamically launch
worker components in response to capability requests.
- Changes: fxr/1245065
- Bugs: fxb/415968290
- Added a
GetChildOutput
function to thefuchsia.component.Realm
protocol, allowing a parent to access a child's output dictionary using bedrock APIs.- Changes: fxr/1269705
- Bugs: fxb/415965735
- Reduced memory usage significantly in
component_manager
through optimizations like more efficient data representations for monikers, lazy object instantiation, and on-demand request generation.- Changes: fxr/1282667, fxr/1262564
- Enhanced developer tooling and observability. The
ffx component doctor
command can now inspect dictionary contents, heapdump instrumentation can be enabled for components, and component instance IDs are now exposed via Inspect.- Changes: fxr/1276851, fxr/1245024, fxr/1305244
- Fixed a crash that occurred when a component exposed two capabilities
with the same target name to different sources, such as
parent
andframework
.- Changes: fxr/1294625
- Marked VMOs created from bootfs as non-resizable, improving efficiency
and preventing mapping failures.
- Changes: fxr/1328664
- Bugs: b/293969808
- Made the
fuchsia.time.UtcClock
memory-mappable for more efficient clock reads from performance-sensitive components like Starnix.- Changes: fxr/1295066
- Updated Component Manager's sandbox implementation to use the modern
fuchsia.io/Directory.Open
method, improving compatibility with the latestfuchsia.io
servers.- Changes: fxr/1319626
- Bugs: fxb/324111518
- Merged the
full-resolver
component intopkg-resolver
. This merge reduces the memory footprint on eng builds by removing a component from the core set.- Changes: fxr/1274091
Diagnostics
The following updates have been made for Diagnostics:
- Improved Archivist's reliability and performance with a new panic hook,
a more efficient
IOBuffer
for its internal log buffer, and by moving serial log writes to a dedicated thread to prevent blocking.- Changes: fxr/1329884, fxr/1291128, fxr/1319904
- Bugs: fxb/319500512
- Implemented a new
Flush
method for the logging service to guarantee that all buffered logs are written, which also resolves a potential termination issue in Archivist.- Changes: fxr/1322376, fxr/1324244
- Made reading Inspect data more robust against unresponsive components.
Timeouts are now applied to individual FIDL connections for lazy nodes,
preventing a single slow node from blocking the entire snapshot.
- Changes: fxr/1256184, fxr/1257865
Display
The following updates have been made for Display:
- Migrated the
ti-lp8556
andvim3-pwm-backlight
drivers to DFv2, replacing devfs nodes with advertised FIDL services for improved component interaction.- Changes: fxr/1323445, fxr/1323684
- Improved the stability of the Display Coordinator by unifying its
threading model, ensuring synchronous client teardown to prevent
use-after-free errors, and fixing an image cleanup race condition.
- Changes: fxr/1328164, fxr/1328809, fxr/1329630
- Bugs: fxb/336394440
- Advanced the migration from Banjo to FIDL for the display driver
interface by introducing several FIDL adapters (
EngineListener
,DisplayEngine
) and a unifiedEngineListener
interface to abstract the underlying protocol.- Changes: fxr/1331050, fxr/1323744, fxr/1063854
- Bugs: fxb/341156315, fxb/314126494
- Simplified the display FIDL and Banjo APIs by renaming ambiguous types
(such as
DisplayMode
toDisplayTiming
), removing the redundantBufferId
struct, and streamlining theCheckConfig()
method.- Changes: fxr/1330862, fxr/1329435, fxr/1294328
- Bugs: fxb/314126494, fxb/433745174, fxb/422844790
- Enhanced VSync handling by requiring valid configuration stamps for all
VSync events across all display drivers and removing the unused ability for
clients to opt-out of VSyncs after enabling them.
- Changes: fxr/1329640, fxr/1332953
- Bugs: fxb/401388764, fxb/316631158
- Strengthened configuration validation by rejecting empty configurations,
enforcing the driver-declared
max_layer_count
, and adding support for specifying adisplay_destination
for color layers.- Changes: fxr/1324487, fxr/1310344, fxr/1325924
- Bugs: fxb/394413629, fxb/427978301, fxb/314126494
- Improved developer experience by adding
std::format
support to numerous display API types and modernizing the internalapi-types
C++ library with better type safety and conversion patterns.- Changes: fxr/1332459, fxr/1319064
- Bugs: fxb/314126494, fxb/430957800
Driver Framework
The following updates have been made for Driver Framework:
- Continued migration away from DFv1 by removing numerous deprecated DDK
functions and metadata IDs. This includes the removal of
device_add_metadata
,configure_auto_suspend
, and legacy metadata constants likeDEVICE_METADATA_WIFI_CONFIG
.- Changes: fxr/1322125, fxr/1319826, fxr/1325656, fxr/1273084
- Fixed an issue with driver node stability, by ensuring driver nodes are
properly quarantined when a driver host closes unexpectedly.
- Changes: fxr/1319550
- Continued the migration of drivers to DFv2, including
aml-pwm
,aml-nna
, andaml-meson-power
. Thei2c-channel
library was also updated with a DFv2-compatible version to support modern drivers.- Changes: fxr/1313966, fxr/1300644, fxr/1298045, fxr/1272265
- Enabled driver components to implement a new
Suspendable
trait to add optional suspend and resume lifecycle hooks.- Changes: fxr/1307009
- Streamlined the
ffx driver
plugin by removing several deprecated subcommands, includingdevice
,lspci
,lsusb
, andrun-tool
, and adding a newnode
subcommand with improved ergonomics.- Changes: fxr/1283898, fxr/1283895, fxr/1283897, fxr/1288302
- Enhanced the Rust driver ecosystem with a new
PlatformDevice
trait to improve testing with fake platform devices and a helper method for parsing driver configuration from start arguments and amock-mmio
crate to support mocking MMIO operations.- Changes: fxr/1315256, fxr/1304086
- Enabled the driver host to detect and mitigate stalled threads by
proactively spawning new ones to ensure forward progress and aligning stall
timer checks with the actual stall duration.
- Changes: fxr/1153333, fxr/1327293, fxr/1309497
- Bugs: fxb/42085539
- Fixed an issue in the platform bus driver where default IRQ modes were not
configured correctly, which could cause level-triggered interrupts to
fail.
- Changes: fxr/1294323
- Introduced a new core driver and FIDL library for interconnects. This
system manages and aggregates bandwidth requests from multiple clients to a
single vendor driver, simplifying hardware interaction.
- Changes: fxr/1261365, fxr/1261364
Feedback
The following updates have been made for Feedback:
- Products can now exclude specific annotations from snapshots via a
configuration file. This reduces irrelevant data and avoids collection
errors for unavailable annotations.
- Changes: fxr/1308013, fxr/1278189, fxr/1278188, fxr/1271298
- Added several new annotations for improved diagnostics, including
device.total-suspended-time
,system.last-reboot.total-suspended-time
,system.last-reboot.runtime
, andbuild.platform.utc-backstop
.- Changes: fxr/1314095, fxr/1312424, fxr/1291982, fxr/1288290
- Enhanced the
crash_reporter
FIDL API with aweight
parameter, allowing a single crash report to represent multiple occurrences.- Changes: fxr/1286646
- Reverted the switch from JSON to FXT format for fetching logs to resolve
a performance issue.
- Changes: fxr/1275450
- Bugs: fxb/389545819
- Improved diagnostics by adding a timestamp to the system log recorder's
shutdown message and logging when a report is temporarily stored due to
insufficient cache space.
- Changes: fxr/1298604, fxr/1277299
- Bugs: fxb/424240609, fxb/360393048
- Added a new configuration option for
sysinfo_feedback_id
.- Changes: fxr/1326965
- Bugs: fxb/427264599
- Fixed an issue where the incorrect reboot reason was reported to Cobalt.
- Changes: fxr/1322850
- Bugs: fxb/424646831
- Updated Feedback to check against current annotation counts instead of
legacy ones.
- Changes: fxr/1294865
- Bugs: fxb/422177087, fxb/373463212
- Refactored redactor tests to improve clarity and maintainability.
- Changes: fxr/1329428, fxr/1328804
- Bugs: fxb/383378552
FIDL
The following updates have been made for FIDL:
- Optimized C++ FIDL code generation to improve build times by moving
generated function bodies out of headers and into a single source file. This
change results in significant compilation speedups for C++ targets.
- Changes: fxr/1265227
- Bugs: fxb/361634289
- Expanded the ABI compatibility checker to run against all categories of
SDK FIDL libraries, improving API stability guarantees.
- Changes: fxr/1261524
Firmware
The following updates have been made for Firmware:
- Implemented a standard mechanism for passing bootloader files.
Bootloader files, such as SSH keys, can now be passed to Fuchsia using the
/chosen/google/bootloader-files
devicetree node. A related fix ensures the scratch buffer for these files is properly aligned.- Changes: fxr/1295284, fxr/1296945
GPU and Graphics
The following updates have been made for GPU and Graphics:
- Introduced a trusted path for GPU clients, allowing trusted components
like Scenic to request higher GPU scheduling priorities. This includes a new
fuchsia.vulkan.loader.TrustedService
, a trusted Magma FIDL protocol, and a newmagma_enumerate_devices
API to simplify device discovery.- Changes: fxr/1287884, fxr/1284254, fxr/1283465, fxr/1258630, fxr/1258629
- Added support for a
STRAIGHT_ALPHA
blend mode across the graphics stack, allowing rendering of source pixels that have not been premultiplied with alpha. This includes a newBlendMode2
in Flatland and updates to the Vulkan command buffer pipeline.- Changes: fxr/1317804, fxr/1326845
- Improved power management for GPU drivers by migrating the
msd-arm-mali
driver to the ElementRunner protocol and creating a generic power manager in the Magma sys_driver for handling power state requests.- Changes: fxr/1327299, fxr/1303184
- Added support for an immediate presentation mode to the Vulkan
swapchain, which is useful for benchmarking by allowing clients to push
frames as fast as they are rendered.
- Changes: fxr/1234054
- Updated the prebuilt Arm Mali ICDs to incorporate various improvements,
including support for the
VK_FORMAT_A2B10G10R10_UNORM_PACK32
format and other stability fixes.- Changes: fxr/1324684, fxr/1306844, fxr/1302284, fxr/1294804
- Improved stability of the
msd-arm-mali
driver by fixing a use-after-free bug and adding logic to proactively cancel client connections that repeatedly cause hardware errors.- Changes: fxr/1291784, fxr/1284084
- Migrated the Magma driver test to use the standard driver test fixture
and
fdf::AddOwnedChild()
, making tests easier to write and read.- Changes: fxr/1290424
- Bugs: fxb/328305994
I18n
The following updates have been made for I18n:
- Updated the localization export for Fuchsia.
- Changes: fxr/1273986
IOT, Matter, and Thread
The following updates have been made for IoT, Matter, and Thread:
- Landed lowpan ePSKc (Enhanced Pre-Shared Key for Commissioning) changed,
including updating OpenThread dependencies, adding Rust bindings, and
integrating with the FeatureConfig service. Feature won’t be enabled for
F28.
- Changes: fxr/1330424, fxr/1266386, fxr/1266385, fxr/1324725, fxr/1249121, fxr/1262724
- Updated the LoWPAN radio platform to handle OpenThread state changes and
enabled CSL (Coordinated Sampled Listening) transmitter functionality.
- Changes: fxr/1316006, fxr/1315585
- Bugs: fxb/424092850
- Improved the reliability of the LoWPAN border agent by implementing a
retry mechanism for publishing its service upon failure.
- Changes: fxr/1255430
- Improved security by making fake directory files in Weave read-only.
- Changes: fxr/1327164
- Bugs: b/334892038
Kernel
The following updates have been made for Kernel:
- Enhanced CPU suspend and resume on ARM64. Introduced support for CPU
suspend by integrating with the PSCI
CPU_SUSPEND
interface, and adding suspend/resume hooks for the GICv3 interrupt controller and platform timers. To improve diagnostics, introduced a new API to report system wake sources. - Introduced a more efficient compressed page storage system. Replaced the
VmTriPageStorage
implementation with a new slot-based system that significantly reduces memory storage overhead from ~24% to ~5%.
Netstack
The following updates have been made for Netstack:
- Implemented Duplicate Address Detection (DAD) for IPv4. The DHCP client
now uses this feature to prevent IP conflicts for newly acquired addresses.
- Changes: fxr/1279264, fxr/1290304
- Introduced the
fuchsia.net.settings
FIDL API to dynamically configure network settings, such as interface defaults and socket buffer sizes.- Changes: fxr/1298364
- Bugs: fxb/423607755
- Enabled eBPF filter support for ingress and egress packets in Netstack3,
allowing for advanced packet inspection and manipulation.
- Changes: fxr/1291250
- Bugs: b/407809292
- Made the socket-proxy component critical, causing the device to reboot
upon termination to ensure socket availability and system stability.
- Changes: fxr/1329389
- Added FIDL support for managing interface-local route tables, enabling
more granular routing control.
- Changes: fxr/1286598
- Bugs: fxb/417225664
- Implemented an orderly shutdown path in Netstack3 to ensure components
terminate cleanly and reliably.
- Changes: fxr/1255691
- Introduced dynamic serializers for non-critical transport protocols in
Netstack3, significantly reducing compilation times and binary size.
- Changes: fxr/1324946
- Enabled Netcfg support for json5 configuration files, improving
readability and maintainability with features like comments and trailing
commas.
- Changes: fxr/1309304
- Prevented Netstack3 from forwarding IPv6 packets with link-local
addresses, conforming to RFC 4291.
- Changes: fxr/1318785
- Corrected a bug in TCP window size calculation that could cause panics
with large window sizes.
- Changes: fxr/1282284
- Fixed a race condition that could cause a panic when rapidly stopping
and starting Duplicate Address Detection.
- Changes: fxr/1306724
- Enhanced the Netlink subsystem to support unmanaged, interface-local route
tables. It now also aligns more closely with Linux behavior by no longer
installing
/0
and/32
subnet routes when an IP address is added.- Changes: fxr/1329160, fxr/1316944
- Bugs: fxb/427226662, fxb/430063324
Platform Drivers
The following updates have been made for Platform Drivers:
- Refactored the DWC3 USB driver significantly to a single-threaded model
to simplify locking and received fixes for endpoint state tracking. Added
support for regulator binding and voting on interconnect resources.
- Changes: fxr/1317467, fxr/1320227, fxr/1303846, fxr/1291688
- Introduced a new core interconnect driver to manage and aggregate bus
bandwidth requests. Also improved Devicetree visitors for clocks and
interrupts for more robust hardware discovery and to support wake-capable
interrupts.
- Changes: fxr/1261365, fxr/1319284, fxr/1277163
Power Management
The following updates have been made for Power Management:
- Migrated multiple power drivers and components to use the
ElementRunner
protocol, which inverts the client/server relationship with Power Broker for more straightforward power level management. This includes UFS, msd-arm-mali, aml-sdmmc, sdmmc, and timekeeper components.- Changes: fxr/1324984, fxr/1327299, fxr/1317984
- Enhanced power management and suspend capabilities, with a new API to
report system wake sources, support for deeper power-saving states via PSCI,
and finer-grained CPU power control. For improved diagnostics, the system
activity governor now tracks cumulative suspend time.
- Changes: fxr/1324709, fxr/1324844, fxr/1313116, fxr/1320246
- Improved the SDMMC driver for better power management and suspend/resume
handling. It now sends power-off notifications, correctly probes eMMC
devices and resets bus settings on resume, and the
aml-sdmmc
driver was migrated to theElementRunner
power management protocol.- Changes: fxr/1324404, fxr/1317984, fxr/1307964
- Refactored the driver power management library for wake leases
significantly for improved clarity, correctness, and ease of use. This
included renaming classes, clarifying responsibilities between manual and
timeout-based leases, and fixing bugs related to lease invalidation across
suspend/resume cycles.
- Changes: fxr/1264034, fxr/1274644, fxr/1260264
- Enhanced power management observability and diagnostics by adding more
data to Inspect. This includes historical temperature sensor readings, the
source of Starnix wake locks and active epoll counts, and boot/monotonic
clock skew for FSH drivers.
- Changes: fxr/1265232, fxr/1288408, fxr/1325253
- Introduced a new
poweroff_for_shutdown
configuration to allow Power Manager to power off the device during the shutdown process, instead of rebooting.- Changes: fxr/1270326
- Made storage power management depend on the
fuchsia::suspending_token
to prevent the device from entering a non-suspendable state.- Changes: fxr/1307644
Rust
The following updates have been made for Rust:
- Made major enhancements to
fuchsia-async
, including a new builder pattern for creating executors, support for cooperative cancellation inScope
, and anOnInterrupt
stream for handling hardware interrupts. Renamed task cancellation methods fromcancel()
toabort()
to align with the new cancellation semantics.- Changes: fxr/1333172, fxr/1319645, fxr/1252944, fxr/1266484
- Bugs: fxb/379944929
- Enhanced tooling:
fx clippy
now accepts glob patterns and additional flags, and host-side Rust tests produce symbolized backtraces on failure for easier debugging.- Changes: fxr/1324949, fxr/1321597, fxr/1290564
Software Delivery
The following updates have been made for Software Delivery:
- Enabled a new "packageless" Over-the-Air (OTA) update flow. The system
updater can now fetch a manifest from an HTTP/S URL to download, stage, and
commit an update, removing the need for a traditional update package.
- Changes: fxr/1327407, fxr/1325250, fxr/1325669, fxr/1319784, fxr/1314424
- Bugs: fxb/432093924, fxb/429271527, fxb/429270435
- Added the ABI revision to the package manifest and
assembled_system.json
to make it easier to identify which ABI revisions are used by which packages.- Changes: fxr/1328584
- Optimized
pkg-cache
memory usage by over 690 KiB. This was achieved by switching to more memory-efficient internal data structures and avoiding unnecessary data copies.- Changes: fxr/1313808, fxr/1312425
- Introduced new APIs for more direct control over blobs. The
pkg-cache
andpkg-resolver
components now have new APIs (RetainedBlobs
,WriteBlobs
,FetchBlob
) for more direct control over blob fetching and garbage collection.- Changes: fxr/1311006, fxr/1297504
- Bugs: fxb/423063230
Starnix
The following updates have been made for Starnix:
- Introduced throttling for crash reporting to reduce system load from
crash-looping processes. If a process crashes more than 8 times in 8
minutes, subsequent reports will be throttled.
- Changes: fxr/1286224
- Added support for the
io_cancel
syscall, enabling asynchronous I/O cancellation.- Changes: fxr/1322639
- Enforced the
noexec
mount option forget-memory
andmmap
on aFileObject
.- Changes: fxr/1319384
- Implemented the
CAP_DAC_READ_SEARCH
capability for FsNode access checks- Changes: fxr/1329465
- Strengthened SELinux enforcement by implementing permission checks for
numerous operations, including signal inheritance (
siginh
), filesystem mounting (mounton
), and various socket and binder operations.- Changes: fxr/1325222, fxr/1319305
- Corrected permission checks for syslog-related operations (
/dev/kmsg
,/proc/kmsg
,syslog(2)
) to align with modern Linux behavior.- Changes: fxr/1304324
- Enabled VMO optimization for private anonymous memory. Also fixed
smaps
generation to support this feature, improving memory efficiency.- Changes: fxr/1275449
- Improved performance and memory usage through several changes, including
enabling Link-Time Optimization (LTO), reducing the size of the internal
Mapping
struct, and adding aclean_stack
function to de-commit unused stack pages.- Changes: fxr/1321047, fxr/1209409, fxr/1326985
- Updated the
devpts
filesystem to support multiple independent instances, each with its own set of pseudo-terminals, using thenewinstance
mount option.- Changes: fxr/1320144
- Aligned the system uptime reported in
/proc/uptime
with Linux behavior by basing it on the boot timeline, which includes time spent in suspend.- Changes: fxr/1263064
- Enhanced eBPF support with several new features, including 32-bit memory
operations, UDP send/recv hooks, socket option hooks, and several new helper
functions.
- Changes: fxr/1333048, fxr/1325673, fxr/1314099
- Fixed an uncommon issue with binder dead replies where they could be
processed out of order, causing the wrong transaction to be popped from the
stack.
- Changes: fxr/1273164
- Optimized Remote Binder communication by gathering all writes to be
returned in a single
ioctl
call, reducing FIDL traffic.- Changes: fxr/1309944
- Updated task priority and niceness handling to better align with Linux
behavior, including proper
RLIMIT_RTPRIO
enforcement, which now defaults to zero.- Changes: fxr/1286324
- Added new modules for
fastrpc
anddmaheap
to provide cross-processor RPC functionality to Starnix applications.- Changes: fxr/1249785
Storage
The following updates have been made for Storage:
storage-host
improvements. This effort includes checking the data volume with fsck before mounting, adding support for shredding encrypted volumes during factory reset, and moving core storage drivers into assembly bundles to reduce image size.- Changes: fxr/1299708, fxr/1303586, fxr/1303850, fxr/1302604
- Bugs: fxb/405398325, fxb/424554759, fxb/425682108
- Enabled Fshost to support matching and routing block devices using
semantic labels. This allows specific partitions to be statically routed
to components, replacing the need for direct
/dev/class/block
access.- Changes: fxr/1322865, fxr/1298085
- Bugs: fxb/417772975
- Made several performance and reliability improvements to fxfs, including
dynamic read-ahead sizing based on memory pressure, more efficient flushing
logic, and ensuring I/O barriers are issued correctly.
- Changes: fxr/1304282, fxr/1275678, fxr/1264814, fxr/1265324
- Added new capabilities to fxfs, including support for overwriting
existing blobs via the
BlobCreator
protocol and initial support for streaming a blob volume to disk.- Changes: fxr/1284252, fxr/1288725, fxr/1263965
- Bugs: fxb/397501864
- Migrated the C++ VFS and storage conformance tests to the modern
fuchsia.io
(io2) API, deprecating legacy io1 methods.- Changes: fxr/1327104, fxr/1281705, fxr/1277304
- Bugs: fxb/324080864, fxb/416093827
- Improved F2FS with initial support for running on FVM, an image-based
compatibility test with Linux, and an increase in the default minimum
filesystem size.
- Changes: fxr/1313265, fxr/1276524, fxr/1263124
- Enhanced the block layer and associated drivers. This includes
re-enabling passthrough I/O, adding support for I/O barriers in the block
protocol and ramdisk driver, and migrating UFS power management to
ElementRunner
.- Changes: fxr/1324984, fxr/1281444, fxr/1264004, fxr/1263624
- Bugs: fxb/402515764
- Added basic support for the
64bit
flag to the read-only ext4 driver, enabling it to mount filesystems with larger block group descriptors.- Changes: fxr/1298007
- Bugs: fxb/42073143
Testing
The following updates have been made for Testing:
- Made numerous enhancements to the Honeydew end-to-end testing framework,
including a
UsbPowerHub
device for controlling USB power, a renamedpowerserver
library for power measurement, new audio and scenic affordances, improved session cleanup mechanisms, and re-enabling screenshot assertions after fixing sources of flakiness.- Changes: fxr/1325891, fxr/1323554, fxr/1264624, fxr/1264205, fxr/1236208, fxr/1266024
- Made multiple improvements to debugger end-to-end tests to enhance
stability, including better command-output synchronization, support for
out-of-order output matching, additional logging, and the temporary
disabling of DebugAgent integration to reduce log spam.
- Changes: fxr/1331424, fxr/1323324, fxr/1322324, fxr/1287704, fxr/1286724, fxr/1285664
- Added a new Lacewing end-to-end test to verify that a device reboots
with the expected reason when instructed to do so.
- Changes: fxr/1319705
- Added new IPC benchmarks to compare different methods of transmitting
large messages, including a specific benchmark for
BatchStream
.- Changes: fxr/1317707, fxr/1298804
- Bugs: fxb/424251793
Timekeeping
The following updates have been made for Timekeeping:
- Introduced wake alarm emulation to provide a consistent
fuchsia.time.alarms
API on platforms lacking hardware support.- Changes: fxr/1278651, fxr/1278650
- Added the
WakeAlarms.Set()
API, which uses a listener pattern as an alternative toSetAndWait
, to better support escrowable components scheduling wakeups.- Changes: fxr/1312970, fxr/1297351
- Bugs: fxb/424009669
- Updated Timekeeper to use the network reachability service to avoid
attempting to sync time when there is no network connectivity, reducing
power consumption.
- Changes: fxr/1263009, fxr/1274168
- Updated the
fuchsia.time.alarms.Wake
API by modifying theSetAndWait
signature to improve wake lease management and removing the unusedGetProperties
andCancelSync
methods.- Changes: fxr/1286527, fxr/1289365
- Bugs: fxb/419860677
- Improved the robustness of time and alarm services by fixing a potential
timer comparison overflow, ensuring Timekeeper waits for
hrtimer
enumeration, and preventing startup failures from duplicate clock IDs.- Changes: fxr/1286769, fxr/1220286, fxr/1289668
- Enabled sourcing the boot time from a powered peripheral, allowing time
to persist across reboots.
- Changes: fxr/1289542
- Migrated Timekeeper to the new
ElementRunner
protocol for improved power management integration.- Changes: fxr/1241004
Toolchain
The following updates have been made for Toolchain:
- Updated Clang and Rust toolchains to their latest versions.
- Changes: fxr/1327414
- Bugs: fxb/432745920
Tools
The following updates have been made for Tools:
ffx
The following updates have been made for ffx:
- Enabled a new direct connection mode with the
-d
or--direct
flag, allowing many commands to connect to a target without a daemon. This includes improved behavior forffx target list
and proper error handling for daemon-specific commands.- Changes: fxr/1322633, fxr/1331306, fxr/1330860
- Added a new
ffx wm
tool for managing windows, with subcommands tolist
,focus
,cycle
, andset_order
windows.- Changes: fxr/1115713
- Updated the
ffx target flash
command to display a progress indicator, and added a new--upload
option toffx target snapshot
to upload the snapshot to a GCS bucket.- Changes: fxr/1311604, fxr/1303306
- Removed legacy methods for managing default targets, deprecating the
ffx target default {set, unset}
commands and thefx -d
flag.- Changes: fxr/1326187
- Fixed several stability issues, including a potential deadlock with
concurrent SSH connections and a timeout when waiting for a remote control
proxy.
- Changes: fxr/1322632, fxr/1325246
- Removed the
ffx agis
command.- Changes: fxr/1314044
fx
The following updates have been made for fx:
- Enhanced the
set-main-pb
tool for managing product bundles with a text-based user interface (TUI) for easier selection and now sorts the bundle list alphabetically.- Changes: fxr/1294864, fxr/1332954
- Enabled
fx
to provide helpful suggestions for mistyped commands.- Changes: fxr/1271284
- Bugs: fxb/402762037
- Added new command-line flags, including
--quiet
forfx build
, a compression level flag (-c
) forfx create-pb-zip
, and an option to skip SSH key patching infx qemu
.- Changes: fxr/1305164, fxr/1323549, fxr/1321986
- Made the
fx
environment more reliable, using a prebuilt version ofjq
and fixing authentication issues withfx rbe auth
.- Changes: fxr/1307764, fxr/1322424
- Removed the deprecated
--with-base
flag forfx create
.- Changes: fxr/1316251
- Improved the developer workflow with automatic port forwarding in
fx serve
and a shared library to deduplicate URL fetching logic across packaging tools.- Changes: fxr/1272397, fxr/1322724
- Bugs: b/430504024
zxdb
The following updates have been made for zxdb:
- Improved the zxdb debugger with PrettyType support for
std::span
and a fix for thedisplay
command to respect the configured integer format.- Changes: fxr/1312304, fxr/1312344
- Bugs: fxb/427471530
Tracing
The following updates have been made for Tracing:
- Optimized the
ktrace_provider
significantly for streaming mode, featuring reduced latency, more consistent polling, faster startup, and more efficient kernel buffer reads to improve trace data reliability.- Changes: fxr/1327303, fxr/1327302, fxr/1318986, fxr/1264024
- Enabled on-device buffering for streaming traces via
ffx trace
, allowing data transfer at the end of the session to reduce CPU overhead during collection.- Changes: fxr/1260408, fxr/1260407
- Bugs: fxb/413106095
- Added a new blob argument type to the FXT trace format for embedding
opaque data. A new
fxtdump
host tool is also available for inspecting and debugging FXT files.- Changes: fxr/1277747, fxr/1313809
- Bugs: fxb/433532694
- Optimized the
trace2json
tool to use significantly less memory and run up to 40% faster by adopting a two-pass reading approach and a buffered output stream.- Changes: fxr/1328611, fxr/1319010
- Improved Rust tracing performance by enabling argument interning to
reduce trace size and by optimizing lock usage to decrease write times for
ATrace events.
- Changes: fxr/1314092, fxr/1304684
- Updated the trace engine to use a new, more correct, and testable rolling
buffer implementation to fix race conditions.
- Changes: fxr/1307311, fxr/1307310
- Bugs: fxb/303666620
UI
The following updates have been made for UI:
- Made significant improvements to Scenic's performance and diagnostics.
This includes new tracing tools (
scenic_session_present
,run_graphics_metrics
), better diagnostics for direct-to-display failures, fixes to frame prediction logic, and performance improvements from increasing Escher's cleanup interval.- Changes: fxr/1272434, fxr/1272947, fxr/1272386, fxr/1270624, fxr/1286309, fxr/1260464
- Added support for new Vulkan image formats. Scenic now supports
A2B10G10R10UnormPack32
andR8Unorm
.- Changes: fxr/1298006
- Added a frame counter overlay to Flatland for visual debugging. It can
be enabled through component configuration or by setting the
visual_debugging_level
.- Changes: fxr/1295168, fxr/1321784
- Bugs: fxb/423066970
- Increased the maximum number of hardware display layers supported by
Scenic from one to the hardware-supported limit, as previous software
limitations have been resolved.
- Changes: fxr/1275807
- Bugs: fxb/42078234, fxb/370839049
- Fixed deadlocks in the Escher external semaphore test by signaling from
a background thread, improving test reliability on Lavapipe and Goldfish.
- Changes: fxr/1330684
Video
The following updates have been made for Video:
- Removed dependency on deprecated
ulib/syslog
.- Changes: fxr/1329004
WLAN and Connectivity
The following updates have been made for WLAN and Connectivity:
- Made major improvements to the WLAN PHY reset and recovery mechanism,
which now allows
wlancfg
to trigger a reset when the system is in a degraded state, improving overall stability.- Changes: fxr/987896, fxr/1283689
- Introduced support for powering the WLAN PHY down and up. This includes
new FIDL methods for power management and ensuring the driver is correctly
re-initialized after a power-up.
- Changes: fxr/1263044
- Enabled
netcfg
to report network status tosocket-proxy
, including default network changes and DNS configuration, via the newfuchsia.net.policy.properties
FIDL API.- Changes: fxr/1306906, fxr/1165212, fxr/1211044
- Bugs: fxb/385368910
- Improved connection stability for Broadcom Wi-Fi drivers by using the
correct channel bandwidth to reduce
NO_NETWORK
failures and using more effective deauthentication commands to clear connection state after a failure.- Changes: fxr/1327144, fxr/1324464, fxr/1322426
- Fixed a bug preventing Wi-Fi scanning from working in busy environments.
Scan results are now sent in a VMO to avoid hitting FIDL message size
limits.
- Changes: fxr/1305664
- Made WLAN roaming more reliable by filtering potential roam targets to
ensure compatible security protection and by fixing a bug that prevented
roaming to WPA1/WPA2 mixed-mode networks.
- Changes: fxr/1295065, fxr/1281584
- Enhanced WLAN telemetry significantly to log more detailed metrics for
disconnect reasons, scan performance, connection duration, RX/TX statistics,
and recovery events.
- Changes: fxr/1276964, fxr/1266799, fxr/1263244