Version: F23
The following changes have been implemented:
A11y
The following updates have been made for A11y:
- Improved screen reader behavior by fixing bugs related to behavior with disabled nodes.
Audio
The following updates have been made for Audio.
Audio drivers and driver API:
- Opened key FIDL protocols related to audio signal processing and ring
buffers for improved ABI compatibility.
- Changes: fxr/1105376
- Changed devfs alias names for composite audio to align with standard naming.
- Changes: fxr/1101196
- Added inspect for power transitions (
aml-g12-tdm
audio driver).- Changes: fxr/1107073
- Added tracing for power transitions for the
aml-g12-tdm
driver.- Changes: fxr/1103681
- Improved logging for the
aml-g12-audio-composite
driver.- Changes: fxr/1103473
- Opened key FIDL protocols related to audio signal processing and ring
buffers for improved ABI compatibility.
AudioCore and smart display support:
- Disabled some audio tests that were causing SSH connection errors.
- Changes: fxr/1100487
- Disabled some audio tests that were causing SSH connection errors.
AudioDeviceRegistry service:
- Added tracing to
audio_device_registry
to track power transitions.- Changes: fxr/1103681
- Clarified logging.
- Changes: fxr/1103473
- Modified the
WatchDevicesAdded
method to respond immediately to the first call, even with an empty vector.- Changes: fxr/1100522
- Added tracing to
Audio developer tools:
- Added a
--channels
flag to theffx audio device play
command to control active channels and the audio device's power state.- Changes: fxr/1097680
- Fixed glitches and ring buffer handling in
ffx audio record
andffx audio device record
to correctly capture audio.- Changes: fxr/1097205, fxr/1096946
- Added a
Bluetooth
The following updates have been made for Bluetooth:
- The Message Access Service (MAS) client has been implemented, enabling
connection to multiple MAS instances.
- Change: fxr/1099712
- Hands-Free Profile (HFP) now supports
AudioDeviceRegistry
products and is more compatible: HFP now uses the first supported DAI frame format for improved hardware compatibility. On products using theAudioDeviceRegistry
, peers are added to the registry on connect, and Media can start/stop audio without an active call.- Changes: fxr/1065732, fxr/1057872, fxr/1101553
- BR/EDR Legacy Pairing now supports PIN code requests and integrates with
the
PairingStateManager
to manage pairing method selection (SSP or legacy). Configuration for enabling/disabling legacy pairing based on product assembly has also been added. Inspect properties for pairing have been updated to reflect these changes.- Changes: fxr/1069533, fxr/1108261, fxr/1102453, fxr/1102393, fxr/1103486
- Bugs: b/342151162,
- L2CAP connection-oriented channels have been added.
- Change: fxr/1086595
- LE remote feature interrogation can now fail gracefully, improving
connection compatibility.
- Change: fxr/1108632
- Bluetooth FIDL modernization: Several enums updated to be flexible.
Vendor
protocol has updated terminology and documentation. Flow control has been reworked forfuchsia.bluetooth.Channel
and related protocols, using FIDL flow control over zircon sockets. Support for L2CAP connection-oriented channels. With these changes, many Bluetooth protocols are also staged to be added to the SDK. - Embossified various Bluetooth test functions to use emboss definitions:
This is a change from using packed structs.
- Change: fxr/1108697, fxr/1107957, fxr/1108733, fxr/1108772, fxr/1107956, fxr/1099714, fxr/1099716, fxr/1098652
- Bug: b/42167863
Build
The following updates have been made for Build:
- Added a new environment variable,
TEST_UNDECLARED_OUTPUTS_DIR_OVERRIDE
, to control the location where undeclared outputs are written: This is useful for testing purposes.- Changes: fxr/1110434
- Added a bazel build target for
scoped_global_logger
: This target is for in-tree Bazel targets.- Changes: fxr/1108085
Cobalt
The following updates have been made for Cobalt:
- Migrated the Cobalt component to use the
FUCHSIA_LOG
macro instead of the deprecatedfuchsia_logging::
severity levels.- Changes: fxr/1110397
- Bugs: b/299996898
Component Framework
The following updates have been made for Component Framework:
- Added support for Component Manager to rout runner capabilities from the
environment
and config values from dictionaries.- Changes: fxr/1097572, fxr/1100312
- Added support for weak service offers in
fuchsia.component.decl
.- Changes: fxr/1098532
- Bugs: b/356347441
- Removed dynamic config capabilities and replaced with bedrock
dictionaries.
- Changes: fxr/1099592
- Component exit code and termination status are now reported in the
OnStop
event, andStopConclusion
andComponentStopOutcome
have been merged for simplified component stopping.- Changes: fxr/1099940, fxr/1097098
Connectivity Drivers
The following updates have been made for Connectivity Drivers:
- The
dwmac
driver now directly implements the NetworkDevice protocol, improving performance in most benchmarks.- Changes: fxr/1089712
- Bugs: fxb/42068759
- The
brcmfmac
driver now correctly sets the wnm iovar, resolving aBCME_BUSY
error on VIM3.- Changes: fxr/1097798
- Removed the
fuchsia.hardware.network/DeviceClass
the latest NEXT API version, affectingfuchsia.net.interfaces/Properties
.- Changes: fxr/1099292
- Fixed filter-fidl tests by retaining sockets for each test case: The
filter-fidl tests are flaking due to subsequent test cases binding sockets
that happen to pick the same ports as preceding ones. This change keeps the
previous cases' sockets open so that the netstack will pick fresh ports
for each case.
- Changes: fxr/1099412
- Updated the weave/tests to use the modern route FIDL APIs: This is a
change from using the deprecated
fuchsia.net.stack AddForwardingEntry
for adding routes, usefuchsia.net.routes.admin
.- Changes: fxr/1097719
- Bugs: b/42081105
- Avoided the
unused_tuple_struct Lint
by making the members of KeepResource named.- Changes: fxr/1097972
Diagnostics
The following updates have been made for Diagnostics:
- Archivist:
- Enabled initial interest configuration from assembly.
- Changes: fxr/1107987
- Improved Inspect name filtering.
- Changes: fxr/1096232, fxr/1100559
- Enabled initial interest configuration from assembly.
- Sampler:
- Suppressed a spammy warning related to component IDs in templates and a
dead-code lint in the validator.
- Changes: fxr/1109450, fxr/1101655
- Bugs: b/351850634
- Suppressed a spammy warning related to component IDs in templates and a
dead-code lint in the validator.
- Syslog:
- Improved the relevant C++ libraries.
- Bugs: b/299996898
- Ensured inspect-runner based tests are treated as system tests.
- Changes: fxr/1102372
Display
The following updates have been made for Display:
- Migrated the display driver stack to modern Fuchsia Platform infrastructure, such as DFv2 and FIDL. No user-visible changes are expected.
- Renamed display drivers for consistency:
simple-display
toframebuffer-display
.intel-i915
tointel-display
.virtio-guest
tovirtio-gpu-display
.
Driver Framework
The following updates have been made for Driver Framework:
- Improved the platform bus library's interrupt mode by switching to an enum
representation, increasing type safety and code clarity.
- Changes: fxr/1100893
- Renamed driver collections based on their resolver.
- Changes: fxr/1105706
- ** Simplified
ScopedGlobalLogger
for improved test logging, and a previously disabled test has been re-enabled and updated. An unused API associated with a removed test has also been deleted.**- Changes: fxr/109755, fxr/1109495, fxr/1110349
- Updated GPIO FIDL: Added an empty bits type for future interrupt options,
and renamed
SetPolarity
toConfigureInterrupt
. GPIO init metadata was also switched to use pinimpl types.- Changes: fxr/1102576, fxr/1077897, fxr/1073686
- Bugs: fxb/42082459
- Improved the
ScopedGlobalLogger
implementation by simplifying it:As it never actually makes any async calls, there is no need to create a thread for the logger.- Changes: fxr/1109755
- Simplified the forwarding mechanism in
driver_test_realm
by usingrealm_builder_exposed_dir
to forward connections: This fixes an issue with exposing the fuchsia.hardware.ramdisk service which wasn't using the forwarding mechanism, and also allows us to usedtr_exposes
rather than the deprecated exposes Start argument.- Changes: fxr/1098232
- Migrated deprecated driver test library pieces into the internal
namespace: Added a warning to tests that are using the namespace to prevent
new tests from copying those tests.
- Changes: fxr/1105273
- Improved the driver transport and simple driver with additional unit tests
and code refinements: The driver transport example now
showcases FIDL client interaction, optimize d transfer size queries, and
improved bitrate setting, while the simple driver example demonstrates the
difference between Foreground and Background driver tests.**
- Changes: fxr/1100571, fxr/1096296
FIDL
The following updates have been made for FIDL:
- Updated Several FIDL protocols related to audio and component management for
ABI compatibility:
fuchsia.hardware.audio.signalprocessing/Reader
andfuchsia.hardware.audio/RingBuffer
now have flexible methods and open protocols (along with their composing protocols).fuchsia.component/ComponentController
is now open with flexibleOnEscrow
andOnStopInfo
events.- Changes: fxr/1105376, fxr/1105374
- Bugs: fxb/356225729
- Improved the FIDL build system: "Unversioned" FIDL libraries no longer
undergo compatibility tests, and "versioned" logic is consolidated in the
build template. Also, regenerated Go bindings for
fuchsia.io
.- Changes: fxr/1110521, fxr/1110519, fxr/1110085
- Bugs: fxb/325669391, fxb/356225729
GPU
The following updates have been made for GPU:
- Merged upstream changes for
arm-mali
GPU driver.
Kernel
The following updates have been made for Kernel:
- Virtual memory:
- Disallowed stream creation for physical or contiguous VMOs.
- Changes: fxr/1021612
- Bugs: fxb/330793404
- Began to eliminate the
pmm_
wrapper functions around the goal PmmNode.- Changes: fxr/1102014
- Added an option for supplying zeros to VMOs beyond their content size.
- Changes: fxr/1104694
- Disallowed cache ops on physical VMOs.
- Changes: fxr/1097312
- Added new PMM arena selection algorithm.
- Changes: fxr/1074514
- Disallowed stream creation for physical or contiguous VMOs.
- Power:
- Added support for pausing monotonic timer behind feature flag.
- Changes: fxr/1093967
- Added support for pausing monotonic timer behind feature flag.
- Other:
- Removed support for IMX UART.
- Changes: fxr/1098052
- Bugs: fxb/326502088
- Removed support for IMX UART.
Matter
The following updates have been made for Matter:
- Improved Matter/GHP: Fixed bugs and improved stability.
Platform Drivers
The following updates have been made for Platform Drivers:
- Added a FIDL API in SPMI that represents target/secondary SPMI devices on a
bus, enabling support for multiple devices.
- Changes: fxr/1104132
- Bugs: 361309707
- Enhanced GPIO with a new FIDL bits type for future interrupt options and
migrated toward the
pinimpl
protocol. The core driver now selects betweengpioimpl
andpinimpl
.- Changes: fxr/1077897, fxr/1102576, fxr/1106972
- Bugs: fxb/42082459
- Enhanced I2C to include devicetree visitor support for multiple peripheral
addresses in the
reg
field, and added the I2C address to generated node properties. This simplifies handling of complex I2C configurations.- Changes: fxr/1105482, fxr/1105615
- Added a devicetree visitor for SPI, attaching
fuchsia.hardware.spi.businfo
metadata tospiimpl
nodes.- Changes: fxr/1095739
- Added resource properties to platform devices, allowing driver validation of
correct resource allocation.
- Changes: fxr/1107895
- Added device tree source for Banana Pi F3.
- Changes: fxr/1099853
Rust
The following updates have been made for Rust:
- Enabled rustdoc subtargets for first and third-party crates, providing an
fx rustdoc-link
script to merge generated documentation.- Changes: fxr/1104273
- Improved detection of unreachable patterns, especially with
never
orInfallible
.- Changes: fxr/1102156, fxr/1102157, fxr/1102158, fxr/1102159
- Bugs: fxb/357638987
- Updated several dependencies, including a fix for the
nom
minimal-lexical
dependency, and enabled new features in thehex
andlog
crates. - Temporarily disabled Rust LTO due to incompatibility with LLD.
Software Delivery
The following updates have been made for Software Delivery:
- Improved the Omaha client and pkgctl command.
- Changes: fxr/1106796, fxr/1096372
- Bugs: fxb/357638242
- Added commands to manipulate blobs and fixed related bugs.
- Changes: fxr/1045998
- Improved the pkg command and fixed a bug in the omaha-client.
- Changes: fxr/1098171, fxr/1099243
- Added collision checking to the artifactory command.
- Changes: fxr/1098024
- Fixed clippy lints and re-enabled warn-all on some targets.
- Changes: fxr/1099405
- Bugs: fxb/356474618
Starnix
The following updates have been made for Starnix:
- Modularized several file systems. selinuxfs, layeredfs, overlayfs,
functionfs, tracefs, FUSE, tun, ext4, and the loop device are now modularized.
File system registrations and creation are also centralized, and nmfs is
registered using
FsRegistry
. - Improved the Starnix runner with new features: Moved runner utilities to a
library, hrtimer events can wake containers, added
SuspendContainer
, and added a feature flag for internal wake locks.- Changes: fxr/1111192, fxr/1111093, fxr/1111092, fxr/1110673, fxr/1109192
- Added support for PERCPU_ARRAY map type in BPF.
- Changes: fxr/1111712
- Updated the input system. The
is_uinput_running()
function is fixed, an ioctl for retrieving device names is added, and input devices now use unique Fuchsia vendor and product IDs.- Changes: fxr/1110634, fxr/1103574, fxr/1102435
- Enhanced POSIX timer syscalls. Support for the alarm type is added,
timer deadlines are refactored, and a pointer check in
timer_settime
is corrected.- Changes: fxr/1104312, fxr/1103868, fxr/1105016
- Updated the Open syscall API. Removed the Open1 fallback and Open3 is now
required. StarnixNodeConnection now implements Open3.
- Changes: fxr/1100253, fxr/1100860
- Bugs: fxb/359323478, fxb/360032389
- Fixed how symlink target sizes are reported in remotefs.
- Changes: fxr/1097114
- SELinux received substantial improvements. Audit logs are emitted to the
kernel log, file system labeling is improved, fake mode is disabled, and a
metadata file is added.
- Changes: fxr/1106432, fxr/1091452, fxr/1097713
Testing
The following updates have been made for Testing:
- Improved iperf benchmarks by storing artifacts in a per benchmark case
directory: This fixes a problem where the server JSON output file and the
trace.fxt
file were clobbering each other.- Changes: fxr/1100484
- Updated the iperf benchmarks that run over loopback run against a hermetic
netstack: Existing tests were repurposed to run iperf using netemul sandbox
and modified into benchmarks. The existing python script for running the
iperf benchmarks was kept to reuse the logic for turning iperf JSON output
to fuchsiaperf output.
- Changes: fxr/1096183
- Bugs: fxb/349129633
Thread
The following updates have been made for Thread:
- Enabled full-duplex transaction for the ot-radio module: This change
improves the performance of the
ot-radio
driver and resolved an issue of starving TX transactions when throughput is high in both TX and RX direction.- Changes: fxr/1099455
Timekeeping
The following updates have been made for Timekeeping:
- Added more balanced time source logging.
- Changes: fxr/1108513, fxr/1108727, fxr/1104327, fxr/1103866
- Added the ability to force-start from RTC: This change adds the ability
to force-start the clock from RTC, but ignores known bad RTC readings.
- Changes: fxr/1100898
Toolchain
The following updates have been made for Toolchain:
- Updated the Fuchsia platform and Zircon toolchain to use C++20 and Clang
default configurations.
- Changes: fxr/1093351, fxr/1111012
- Bugs: fxb/42064981
- Updated C++ toolchains to generate link maps by default.
- Changes: fxr/1100073
- Bugs: fxb/358673680
- Enabled Shadow Call Stack (SCS) for Rust on AArch64 and RISC-V.
- Changes: fxr/791504
- Bugs: fxb/42069386, fxb/360955800
- Added missing headers after the libc++ update for Fuchsia and Cobalt.
- Changes: fxr/1100755, fxr/1100813
- Bugs: fxb/359865937
- Updated the
emit_tool_path
variable to be plumbed through the Rust GNIs.- Changes: fxr/1100759
Tools
The following updates have been made for Tools:
- Improved the debugger, including support for collecting minidumps from
attached processes (useful for debugging test timeouts), a fix for a crash
caused by unverified line table entries, consistent inclusion of the SSH port
in end-to-end tests, an update to the
CURRENT_SUPPORTED_API_LEVEL
to 22 (removing older IPC version compatibility), and removal of the legacy DebugAgent launcher.- Changes: fxr/1093293, fxr/1110912, fxr/1110833, fxr/1110832, fxr/1108313, fxr/1093292
- Bugs: fxb/356667550, fxb/360821506
- Updated DevShell to use jiri's updated argument ordering.
- Changes: fxr/1106816
- Disabled VSCode's Source Control graph visualization to improve performance
with Fuchsia repositories.
- Changes: fxr/1108534
ffx
The following updates have been made for ffx
:
- Improved the stability of the emulator stability. Several changes were
made to improve emulator stability and address common issues.
- Changes: fxr/1109333, fxr/1109339, fxr/1107716, fxr/1107892
- Added support for bootloader Fat partitions and EFI product bundles. This
allows the emulator to launch from product bundles that only include
bootloader partitions or contain EFI based kernels.
- Changes: fxr/1104347, fxr/1094270
- Added FfxCoreSubCommand and check_core_constraints. This function makes
checks before command execution to ensure the command is invoked with the
machine interface, has only one config flag passed, and the config flag passed
is a path to a file. The target is also specified from the CLI. libfho will
invoke this function on the subtool before execution.
- Changes: fxr/1109449
- Added active_channels to play command. This adds a
--channels
flag to theffx audio device play
command. This flag manipulates which channels are activated and configures the audio device's power state from the CLI.- Changes: fxr/1097680
- Improved error handling. Several improvements were made to the error
handling and reporting of ffx. This includes reporting SSH errors properly,
improving the error message for port in use, and adding an error for incorrect
build directories.
- Changes: fxr/1109339, fxr/1105292, fxr/1106412
- Updated
ffx
to support direct connections with the--core
flag. This updates the ffx behavior for handling connections and providing FIDL protocols for developers. When passing the--core
flag to a command, non-daemon behavior will be put to use where possible.- Changes: fxr/1097107
- Cleaned up old configuration generation code and added a new
--assembly-override
option tofx set
. This option sets the new developer assembly overrides mapping up correctly inargs.gn
.- Changes: fxr/1104135, fxr/1098152
- Updated
OvernetConnector
to exit early and removes unnecessary ASCII art.- Changes: fxr/1099468, fxr/1101054, fxr/1100477, fxr/1098168
fx
The following updates have been made for fx
:
- Updated
fx serve
to exclusively use the foreground repository server, simplifying its operation.ffx
is now the default repository server, and related configurations have been updated. This also prepares for the removal of pm.- Changes: fxr/1100093, fxr/1100095, fxr/1100094, fxr/1100632
- Bugs: b/359260643
- Updated scripts to ensure they are on the path regardless of environment.
This change ensures that the scripts directory can be found on the
PATH
, even if the user has not usedfx-env.sh
.- Changes: fxr/1098552
- Exposed
fx set --rbe-mode=MODE
. This simplifies RBE configuration.- Changes: fxr/1092786
- Re-implemented
fx status
in python.- Changes: fxr/1099458
ffxutil
The following updates have been made for ffxutil
:
- Added SDK tool overrides in ffx config.
- Changes: fxr/1097204
UI
The following updates have been made for UI:
- Updated input pipeline events to include device ID.
- Changes: fxr/1107757
- Updated several UI tests to use new FIDL and C++ bindings.
- Changes: fxr/1108972, fxr/1099294, fxr/1093512, fxr/1091314
- Refactored UI tests and updated WebTestBase to use GraphicalPresenter.
- Changes: fxr/1099772, fxr/1101033, fxr/1101032
Video
The following updates have been made for Video:
- Deprecated
SetTags
has it is being removed. This change has been made multiple times to address the deprecation of SetTags.- Changes: fxr/1106196, fxr/1106197, fxr/1100554
- Bugs: b/299996898
- Deprecated
BuildAndInitializeWithTags
and replacing it withWithTags
.- Changes: fxr/1100417
- Bugs: b/299996898
- Upstream libcxx changes the way how cmath header is implicitly included,
causing build breakages on Fuchsia. This patch adds the missing 'cmath'
include to multiple Fuchsia components.
- Changes: fxr/1098073
- Bugs: fxb/358451491
- Routing LogSink manually is not needed, as this is done implicitly through
the client shard. Future CLs will update the routing used in the shard, so
it's necessary to cleanup these duplicate routes in order to update the
shards.
- Changes: fxr/1097792
WLAN
The following updates have been made for WLAN:
- Added roaming functionality. This feature allows WLAN to initiate roaming
through the fullmac device firmware. Upon roam, the Policy roam monitor is
now reinitialized to improve reliability.
- Changes: fxr/914513, fxr/1110335, fxr/1108533
- Changed FullmacDevice to use FIDL channel instead of Banjo. Improves
performance by using FIDL channels for communication between the FullmacDevice
struct and the vendor driver.
- Changes: fxr/1085652, fxr/1091692, fxr/1092932, fxr/1092933
- Improved WLAN logging.
wlancfg
now captures a snapshot of the system state when it successfully recovers from WLAN issues. Theclient-connections-toggle-events
node has been renamed, the log line now correctly states that the country code was received. The interface manager will log the state of all client and AP state machines before taking action during recovery. Thewlan_connectivity_states
,connected_networks
,disconnected_networks
, anddisconnect_sources
time series are now logged.- Changes: fxr/1109979, fxr/1100479, fxr/1100875, fxr/1088737, fxr/1088952
- Cleaned up tech-debt. The
log_cobalt_1dot1
macro has been made hygienic, AP state machines now expose their current state information, and two clippy lints have been addressed. Metric expiration has been updated.- Changes: fxr/1103634, fxr/1088736, fxr/1102192, fxr/1097681
- Bugs: fxb/357638987
- Fixed WLAN issues. An issue has been fixed where a phy removal during
iface removal could result in
wlandevicemonitor
keeping a stale iface. Thesend_assoc_req_frame
function no longer has arguments. TheWlanFullmacImplIfc
FFI is no longer accessed afterstop_fullmac_mlme()
has been called.- Changes: fxr/1102334, fxr/1106252, fxr/1097714