blob: e6899d4b3ed8cd60b68657ace3a50115d858ff3a [file] [log] [blame] [view]
**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.