| **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 |