Version: F25
The following changes have been implemented:
The following updates have been made for A11y:
The following updates have been made for Audio:
audio_device_registry to ensure that pre-existing devices are detected and initialized before responding to the initial WatchDevicesAdded call. ADR can now be demand-started rather than depending on always being eagerly started.aml-g12-tdm driver to new GPIO calls.audio.The following updates have been made for Bluetooth:
bt-init eager, starting it on device boot, and routed some additional Bluetooth capabilities to session for component use.fuchsia.bluetooth.le.Connection/ConnectL2cap to support LE Connection-Oriented Channels.PrivilegedPeripheral protocol to support LE Advertisements with static address when privacy mode is enabled.The following updates have been made for Cobalt:
The following updates have been made for Component Framework:
component CLI tool and the ffx tool have been updated. The component show command now displays runner information, the on-device component CLI now includes a config subcommand, and ffx's fuchsia-controller now uses a common SSH configuration. cmc format now supports reading from stdin.fuchsia.pkg.PackageResolver-boot capability.fuchsia.sys2.ConfigOverride protocol in Component Manager, along with a supporting CLI library. This allows developers to override structured configuration values, and fixes issues where fields not using a configuration capability were rejected.fuchsia-component library by cleaning unused service connection APIs and removed a deprecated function, along with adding a clarification of service instance names in the outgoing directory. Additionally, component::Clone was migrated to fuchsia.unknown/Cloneable.The following updates have been made for Connectivity Drivers:
The following updates have been made for Diagnostics:
ffx inspect. ffx inspect now supports --name, fuzzy matching of monikers and URLs, and improved the usage of --component supersedes and --manifest.ffx log. Prints boot time in addition to UTC time in the first line to enable computing back clock time from boot times, removed --select and --force-select, updated log interest selectors to no longer require any sort of escaping in monikers, and fixed interest interest on reconnectionLogStream protocol in Archivist to fetch original FXT records directly, with attribution. This improves performance compared to using ArchiveAccessor.SelfProfilesReport to support custom leaf rollups for analyzing CPU usage within complex CUJs.--job-only flag was added to the attach command for direct job attachment (Fuchsia only).The following updates have been made for Display:
The following updates have been made for Driver Framework:
fuchsia_driver_package to Bazel.ddk::GetMetadata() connection handling, added dev-class directory routing to driver_playground, and migrated driver SDK to use span<const T>.const ToFidlInputReport() in input driver and moved Phys-iter lib to //src/devices/lib/io-buffer.std::format based logging API for drivers.fdio::open, kRestrictedLibcSymbols, Node.Clone handling, driver_context renaming.NodePropertyDictionary2, to replace NodePropertyDictionary in DriverStartArgs.fuchsia_driver_package for exporting to Bazel.std::format for drivers.ffx driver.fdio::open_deprecated replaced the call with fdio::open.span<const T> instead of const vector<T>&, and moved the phys-iter to //src/devices/lib/io-buffer.driver_context to thread_context, and updated the fake-bti library to modern C++ standards.Node.Clone method from driver_manager.The following updates have been made for GPU:
unsquashable flag, removing explicit timestamps, and renaming fences to fence_signalers; changing fence-signaling to observe vsyncs; migrating the Flatland swapchain from HLCPP; and fixing fake Flatland's fuchsia.ui.composition.Allocator.RegisterBufferCollection implementation.The following updates have been made for I18n:
jiri hook in favor of direct generator script calls during gn gen, improving efficiency and icu_root accuracy. Introduced build/icu/jiri_generated/config.json, managed by a Jiri hook, to optimize reading icu_config_info and added a validation target for data integrity.The following updates have been made for IOT:
The following updates have been made for Platform Drivers:
SetBufferMode().aml-light driver by migrating it to the //sdk/lib/driver/platform-device/cpp SDK library and refactoring its build targets.SpmiRegisterArray. Additionally, support for GetProperties and WatchControllerWriteCommands has been implemented.The following updates have been made for Power Management:
The following updates have been made for Rust:
or_fun_call and set_contains_or_insert lints, removed dead code detected by the new toolchain, and enabled clippy::redundant_clone, clippy::needless_collect, clippy::collection_is_never_read, and clippy::clear_with_drain.nom to zerocopy for improved performance and simpler code.The following updates have been made for SDK:
span<const T> in the driver library, improving flexibility and reducing boilerplate.gen-android-starnix-container host tool, fuchsia.system.state, and fake-platform-device for improved out-of-tree development.sys library through migration to Node.Clone2 and use of Open3 for service connections in tests, addressing permission issues.const ToFidlInputReport() in input_report_reader and interrupt acknowledgement in the Rust SDK, enhancing functionality and consistency.sdk_source_set() behavior, handling of POSIX flags in fdio, and resolving issues with fx build --fint-params-path.fserve, fpublish, and pm commands, as well as time-related library exceptions for FIDL versioning, cleaning up the SDK.The following updates have been made for Software Delivery:
FindDynamicDataSink API to replace UseBlockDevice, shifting block device lookup responsibility to the paver service. Added AndroidPartitionerTest and Vim3DevicePartitionerTest to improve reliability and handle edge cases like multiple GPT devices and prevent accidental bootloader wipes.ResetPartitionTables occurring during GetMetadata calls, improving paver stability. Correctly reports last-boot-attempt, fixing unexpected behavior with unbootable slots. Added support for Sorrel.AbrClientFactory to streamline client creation. Deduplicated GUID lookup tables. ResetPartitionTables now replaces functions depending on direct GPT access. Added unit testing for KolaAbrClient.fuzz_percentage_range over inspect. Comment edited to reflect paver's reporting of pending status on final boot attempt.Node.Clone to Node.Clone2 for io2 migration. Updated fuchsia_fs functions. Used open3 fdio. Sorted appended manifest and manifest list for determinism.PolicyEngine and migrated to QueryConfigurationStatusAndBootAttempts to report boot attempts on successful commits.The following updates have been made for Starnix:
FS_IOC_REMOVE_ENCRYPTION_KEY does not correctly handle locking./sys/fs/selinux/avc/cache_stats and category set normalization for security contexts.BPF_MSH instruction and adjusting packet access instructions. The eBPF verifier is enhanced to improve struct handling and prevent array bounds check bypasses.cgroup and cgroup2 filesystems, and cpuset as a CgroupV1 filesystem, to be mountable. The cgroup.controllers interface file is also made accessible.FIONBIO ioctl and capabilities calculation during execve. FIONBIO correctly handles the NONBLOCK flag based on user input, and capabilities for set-user-ID root programs are correctly calculated during execve. However, file capabilities and SECBIT_NOROOT are not yet addressed for the latter.The following updates have been made for Testing:
ffx. The old uncompressed API is deprecated.Timer.Restart core test by extending the timer deadline.msd-arm-mali to log more errors, aiding in debugging flakes.FailEarlyWake pager test, preventing indefinite blocking.AndroidPartitionerTest, to ensure correct GPT identification on Android devices.ConstantMetricsProcessor.ConstantMetricsProcessor for freeform metrics.The following updates have been made for Tools:
tunneling and ninjalog tools: tunneling now has improved error messages with diagnostic suggestions and ninjalog now supports Ninja log format v7.temperature-cli tool for getting, setting, and waiting on temperature trip points.make-fuchsia-vol to use product bundles as the primary source for image files, preferring sparse images.paver: Added AndroidPartitionerTest and Vim3DevicePartitionerTest. Fixed GetMetadata error on unsupported block devices. Improved storage-host compatibility in tests. Added unbootable_reason to FIDL API. Correctly reports last-boot-attempt and addressed a flaky test.package_manager_test to use foreground repo server and fixed a flaky test.test_list_tool to correctly handle file-relative blobs in package manifests.The following updates have been made for ffx:
ffx to retry target add on any non-fatal ssh error.The following updates have been made for fx:
fx create-pb-zip.fx command with automatic fx gen invocation after forced clean, and added a new command fx rbe cleanlogs to remove logs from fuchsia-reproxy-wrap.sh.fx generator for synchronizing BUILD.bazel and BUILD.gn files in dual-build targets.The following updates have been made for UI:
fuchsia.ui.VisualDebuggingLevel, allows developers to control debug features, including scenic tint, Starnix purple screen, and driver green screen for display off. The ui_visual_debugging_level now uses availability transitional routing, removing the need for routing in Starnix-related tests.starnix-touch-test was refactored to reuse GetTouchEventSequenceOfLen. This simplifies multi-reader and close testing.ChoosePreferredPixelFormat() to ChosePreferredRenderTargetFormat(), and removed the unused DisplayManager::SetVsyncCallback() method.The following updates have been made for WLAN:
Fullmac FIDL interfaces. Several Fullmac FIDL messages were converted to use tables for improved clarity and ABI compatibility.fuchsia.wlan.common FIDL. Interfaces and commands were moved into more specific FIDLs.wlandevicemonitor and a new build parameter for product bundles without a policy layer.