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 ptraceUAPI.
- Added "button" support in Starnix input device.
- Added support and fixes for overlayfsin 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 fsverityioctl.
- Initial support for Perfetto as consumer for Starnix traces.
- Initial support for inotifyand ensuring that the corresponding LTP tests are passing.
- Implemented gettimeofdayandclock_gettimein vDSO to get faster speeds.
- Implemented Magma semaphore import and export to return sync files.
- Implemented MADV_DONTFORKandMADV_WIPEONFORKformadvise().
- 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 Mutexinstead ofRwLock.
- Synchronously handle triggered events.
- Use DenseMapinstead ofHashMap.
- Use Futex instead of zx::Port.
 
- Use 
- Wired up statfsfor 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 ProcessDeferredAccessibilityEventsImplwhich 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 listtool.
- Added ffx ffx-storagein-tree only.
- Added an ABI check to Overnet between host tool and device.
- Removed support for fetching PBv1 from the ffx producttool.
- Removed the unused ffx product-bundletool.
- Removed the Overnet tool.
- Updated ffx target flashto communicate directly to device.
- Updated ffx target flashto loadProductBundlefrom zip without extracting the zip.
Diagnostics
The following updates have been made for Diagnostics:
- Added various additional APIs for asserting Inspectdata 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 inspectandquery.
- Updated log_listenerto use the same API asffx log.
- Updated run-test-suiteto 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.
- 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 for more information about the long-term support of the wire format.
- Removed transport error from fpromise::result constructors.
- Updated TransportErrto serialize for natural bindings.
- Updated @transitionalto be behind an allowlist.
Timekeeping
The following updates have been made for Timekeeping:
- Updates to use mmapto read large files instead of loading wholesale which resulted in 7MiB of saved RAM.