Fuchsia F12 release notes

Date: August 24, 2023

Version: F12

The following changes have been implemented:

Application Runtimes (Flutter, Starnix, and Web)

Starnix

The following updates have been made for Starnix:

  • Renamed src/proc to src/starnix.
  • Landed fixes for various gVisor and LTP tests to ensure they pass.
  • Enabled gVisor support for arm64.
  • Implemented RLIMIT.
  • Implemented sysinfo().
  • Added arm64 restricted mode support.
  • Fixed binder and remote binder support.
  • Improved debuggability on arm64.
  • Use subpackages for Starnix kernel.
  • Enabled in-thread exception handling.
  • Initial support for SECCOMP and NETLINK.
  • Initial support for Fxfs in Starnix.

Component Framework

The following updates have been made for Component Framework:

  • Removed support for appmgr (CFv1) from the platform.

Connectivity (Bluetooth, IOT, WLAN, Netstack)

The following updates have been made for Connectivity:

Bluetooth

  • Fixed occasional media playback time inaccuracy when using a Bluetooth speaker.
  • Fixed Bluetooth audio resumes after connecting during an ongoing video call.
  • Initial in-band audio support for HFP.
  • Improved latency when streaming A2DP to a speaker.

Matter

  • Fixed identify response in the case of multiple devices to prevent response flood.
  • Enabled inspect for matter.
  • Fixed crash in localhome during subscription timeout.
  • Fixed a crash in leader election in usonia.
  • Fixed a crash in converting out of range colors. This affects the user experience where some colors were inaccurate.
  • Implemented cache flush handling in the Fuchsia mDNS stack.

Thread

  • Enabled Thread telemetry in the Nest thread controller.
  • Enabled the Dynamic logging feature.

WLAN

  • Enabled VIM3 support in brcmfmac driver.
  • Stabilized brcmfmac WLAN driver recovery.
  • Changed thread profile in brcmfmac along with netstack.

Developer

The following updates have been made for Developer workflows:

  • Support driver development with the Fuchsia SDK with Bazel integration. This depends on the specific driver's required interfaces.
  • Support ffx connecting to target devices through USB.
  • Improved emulator instance management when using user mode networking.
  • Updates in ffx and other tools:
    • Graduated from experimental:
    • ffx package archive cat: Print the contents of a file in a package archive.
    • ffx package archive create: Create a package archive.
    • ffx package archive extract: Extract a package archive into a directory.
    • ffx package archive list: List the contents of a package archive.
    • ffx package far cat: Print the contents of a file in a far archive.
    • ffx package far create: Create a far archive.
    • ffx package far extract: Extract a far archive into a directory.
    • ffx package far list: List the contents of a far archive.
    • ffx package file-hash: Compute the blob hash of one or more files.

Diagnostics

The following updates have been made for Diagnostics:

  • Improved the performance of writing for multiple Rust Inspect processes that resulted in 70-80% faster benchmarks on average.
  • Improved the performance of Rust logging encoding that resulted in 30-60% faster benchmarks.
  • Implemented a new protocol that allows ffx log and fix inspect to directly communicate with Archivist which results in a significant performance improvement for these tools. Before this fix, the tools used the diagnostics bridge component to communicate.
  • Improved the component manager CPU stats format which resulted in ~70% less bytes for measurements in Inspect and ~55% less bytes in snapshots.
  • Added support for tracing crate spans for Fuchsia Logging.
  • Improved Triage error messages and output.
  • Added the count of dropped and rolled out logs to the output of ffx log.
  • Added support for CBOR format for Logs and Inspect.
  • Aligned the formatting of logs of ffx log and ffx test.
  • Archivist now forwards logs for configured components to serial directly without first sending them to the console component.
  • All Rust code on Fuchsia now uses the tracing library for structured logging.

FIDL

The following updates have been made for FIDL:

  • Added a requirement for the FIDL annotation @available for FIDLs that are included in the SDK.
  • Added a requirement for unknown interaction keywords.

Firmware

The following updates have been made for Firmware:

  • Improved boot reliability when encountering hardware initialization errors.
  • Reduced display brightness during power-up by 50%.

Fleet Services (Managed OS and Forensics)

The following updates have been made for Fleet Services:

  • Deleted LogStats.

Graphics and Media

The following updates have been made for Graphics and Media:

Audio

  • Virtual audio drivers added for improved test coverage. audio-driver-ctl developer tool deprecated in favor of ffx audio.

Display

  • Various extensions and fixes for the fake display stack, adding more hardware-agnostic test capabilities.

GPU

  • Removed the system driver C API in favor of C++. Hardware acceleration for graphics in the Starnix environment.

Video

  • Added performance tweaks for improved playback on shipped devices.

HCI (Input, A11y, i18n, and View System)

The following updates have been made for HCI:

  • Enabled Flatland for Smart Display. Improves performance and reduces maintenance cost.
  • Various fixes to improve accessibility ratings.

Kernel

The following updates have been made for the Kernel:

  • Added support for riscv64.

Rust

The following updates have been made for Rust:

  • Began rolling RISC-V targets for the Rust compiler.

Software Assembly

The following updates have been made for Software Assembly:

  • Reduced the contents in the legacy bundle.
  • Added the ability to check a package's ABI revision to determine compatibility with platform, at assembly time.

Timekeeping

The following updates have been made for Timekeeping:

Issue: High memory and CPU resources are needed when using push communications for time sources.
Impact: Migrated time sources to pull communication which reduces the memory and CPU needed for clock maintenance.

Toolchain

  • HWASan is supported on Fuchsia.