blob: da4501125615524ff2188820b4d9cc9e03920d4e [file] [log] [blame] [view]
**Date:** November 22, 2023
**Version:** F15
The following changes have been implemented:
### Application Runtimes (Flutter, Starnix, and Web)
#### Starnix
The following updates have been made for Starnix:
* Added a self-profile container feature which allows breakdown of CPU for
individual syscalls.
* Added `ptrace` UAPI.
* Added "button" support in Starnix input device.
* Added support and fixes for `overlayfs` in Starnix.
* Added an `InterruptibleEvent`-based waiter for Futex support.
* Fixed various security findings when using and handling Futexes.
* Initial support for lock ordering and functionality in Starnix.
* Initial support for RISC-V architecture, adding vDSO and getting first set of
tests to pass.
* Initial support for `fsverity` `ioctl`.
* Initial support for Perfetto as consumer for Starnix traces.
* Initial support for `inotify` and ensuring that the corresponding LTP tests
are passing.
* Implemented `gettimeofday` and `clock_gettime` in vDSO to get faster speeds.
* Implemented Magma semaphore import and export to return sync files.
* Implemented `MADV_DONTFORK` and `MADV_WIPEONFORK` for `madvise()`.
* Improve the binder interface by making it more reliable and fix various race
and locking issues.
* Performance improvements for syscalls using the following techniques:
* Use `Mutex` instead of `RwLock`.
* Synchronously handle triggered events.
* Use `DenseMap` instead of `HashMap`.
* Use Futex instead of `zx::Port`.
* Wired up `statfs` for remote filesystems.
#### Web
The following updates have been made for Web:
* Improved memory allocation efficiency by always sending constraints before
waiting.
* Fixed two fiddle check failures when the replies are missing to avoid crashes
in some edge cases.
* Removed loop in `ProcessDeferredAccessibilityEventsImpl` which improves the
performance of accessibility features.
### Connectivity (Bluetooth, IOT, WLAN, Netstack)
The following updates have been made for Connectivity:
#### Bluetooth
* Fixed issues where some speakers were unable to connect audio.
* Fixed an issue where media information was not showing up when paired with
some phones.
### Developer
The following updates have been made for Developer workflows:
* Added `ffx auth plugin`.
* Added a default SDK version if no version is passed into the
`ffx product list` tool.
* Added `ffx ffx-storage` in-tree only.
* Added an ABI check to Overnet between host tool and device.
* Removed support for fetching PBv1 from the `ffx product` tool.
* Removed the unused `ffx product-bundle` tool.
* Removed the Overnet tool.
* Updated `ffx target flash` to communicate directly to device.
* Updated `ffx target flash` to load `ProductBundle` from zip without
extracting the zip.
### Diagnostics
The following updates have been made for Diagnostics:
* Added various additional APIs for asserting `Inspect` data in Rust.
* Deleted `remote-diagnostics-bridge`.
* Fixed moniker format returned by `ArchiveAccessor`.
* Improved Diagnostics Persistence performance by enabling requesting persisting
data associated when multiple tags are used at the same time.
* Improved formatting of arrays for `ffx inspect` and `query`.
* Updated `log_listener` to use the same API as `ffx log`.
* Updated `run-test-suite` to leverage a faster protocol for logging when
running on the host.
* Updated all Rust components to use `InspectSink`.
### FIDL
The following updates have been made for FIDL:
* Added `fidl::IsWire<T>`.
* Added experimental flag for `allow_arbitrary_error_types`.
* Added compatibility [best practices][fidl-best-practices].
* Enabled unknown interactions everywhere.
* Fixed HLCPP conversion with unknown interactions.
* Included resolved type of aliases in IR (Intermediate Representation).
* Removed "has envelope" property.
* Removed FIDL wire format V1. See [RFC-0229: FIDL 2023][rfc-0229] for
more information about the long-term support of the wire format.
* Removed transport error from `fpromise::result constructors`.
* Updated `TransportErr` to serialize for natural bindings.
* Updated `@transitional` to be behind an allowlist.
### Timekeeping
The following updates have been made for Timekeeping:
* Updates to use `mmap` to read large files instead of loading wholesale which
resulted in 7MiB of saved RAM.
[fidl-best-practices]: /docs/contribute/updatability/best-practices.md
[rfc-0229]: /docs/contribute/governance/rfcs/0229_fidl_2023.md