日期:2023 年 11 月 22 日
版本:F15
已实现以下更改:
应用运行时(Flutter、Starnix 和 Web)
Starnix
Starnix 进行了以下更新:
- 添加了自定义性能分析容器功能,可对各个系统调用进行 CPU 细分。
- 添加了
ptrace
UAPI。 - 在 Starnix 输入设备中添加了“按钮”支持。
- 在 Starnix 中添加了对
overlayfs
的支持和修复。 - 添加了基于
InterruptibleEvent
的等待器,以支持 Futex。 - 修复了使用和处理 Futex 时出现的各种安全问题。
- 对 Starnix 中的锁定顺序和功能的初始支持。
- 初步支持 RISC-V 架构,添加了 vDSO 并使第一组测试通过。
- 对
fsverity
ioctl
的初始支持。 - 初步支持将 Perfetto 用作 Starnix 轨迹的使用方。
- 对
inotify
的初始支持,并确保相应的 LTP 测试通过。 - 在 vDSO 中实现了
gettimeofday
和clock_gettime
,以提高速度。 - 实现了 Magma 信号量导入和导出,以返回同步文件。
- 为
madvise()
实现了MADV_DONTFORK
和MADV_WIPEONFORK
。 - 通过提高 binder 接口的可靠性来改进 binder 接口,并修复了各种竞态和锁定问题。
- 使用以下技术改进了系统调用的性能:
- 不过,应使用
Mutex
代替RwLock
。 - 同步处理触发的事件。
- 不过,应使用
DenseMap
代替HashMap
。 - 使用 Futex,而非
zx::Port
。
- 不过,应使用
- 为远程文件系统连接了
statfs
。
Web
我们对 Web 版进行了以下更新:
- 通过始终在等待之前发送约束条件,提高了内存分配效率。
- 修复了在缺少回复时发生的两次 fiddle 检查失败问题,以避免在某些极端情况下发生崩溃。
- 移除了
ProcessDeferredAccessibilityEventsImpl
中的循环,从而提升了无障碍功能的性能。
连接(蓝牙、IoT、WLAN、Netstack)
Connectivity 进行了以下更新:
蓝牙
- 修复了某些音箱无法连接音频的问题。
- 修复了与某些手机配对时无法显示媒体信息的问题。
开发者
我们对开发者工作流进行了以下更新:
- 添加了
ffx auth plugin
。 - 如果未向
ffx product list
工具传递任何版本,则添加了默认 SDK 版本。 - 仅添加了树内
ffx ffx-storage
。 - 在主机工具和设备之间向 Overnet 添加了 ABI 检查。
- 移除了对从
ffx product
工具提取 PBv1 的支持。 - 移除了未使用的
ffx product-bundle
工具。 - 移除了 Overnet 工具。
- 更新了
ffx target flash
,以便直接与设备通信。 - 更新了
ffx target flash
,以便在不提取 ZIP 文件的情况下从 ZIP 文件加载ProductBundle
。
诊断
我们对“诊断”进行了以下更新:
- 添加了各种其他 API,用于在 Rust 中断言
Inspect
数据。 - 已删除
remote-diagnostics-bridge
。 - 修复了
ArchiveAccessor
返回的标识符格式。 - 通过启用在同时使用多个代码时请求保留关联数据的功能,提高了诊断持久性性能。
- 改进了
ffx inspect
和query
数组的格式设置。 - 更新了
log_listener
,使其使用与ffx log
相同的 API。 - 更新了
run-test-suite
,以便在主机上运行时利用更快的协议进行日志记录。 - 更新了所有 Rust 组件以使用
InspectSink
。
FIDL
我们对 FIDL 进行了以下更新:
- 添加了
fidl::IsWire<T>
。 - 为
allow_arbitrary_error_types
添加了实验性标志。 - 添加了兼容性最佳实践。
- 在所有位置启用了未知互动。
- 修复了存在未知互动的 HLCPP 转换问题。
- 在 IR(中间表示法)中添加了已解析的别名类型。
- 移除了“has envelope”属性。
- 移除了 FIDL 线格式 V1。如需详细了解线格格式的长期支持,请参阅 RFC-0229:FIDL 2023。
- 从
fpromise::result constructors
中移除了传输错误。 - 更新了
TransportErr
,以便对自然绑定进行序列化。 - 将
@transitional
更新为需要通过许可名单才能访问。
计时
我们对时间记录功能进行了以下更新:
- 更新为使用
mmap
读取大型文件,而不是批量加载,从而节省了 7 MiB 的 RAM。