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
tosrc/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
andNETLINK
. - 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
andfix 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
andffx 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 offfx 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.