Fuchsia F15 版本说明

日期:2023 年 11 月 22 日

版本:F15

已实施以下变更:

应用运行时(Flutter、Starnix 和 Web)

斯达尼克

对 Starnix 进行了以下更新:

  • 添加了自分析容器功能,允许细分各个系统调用的 CPU。
  • 添加了 ptrace UAPI。
  • 在 Starnix 输入设备中添加了“按钮”支持。
  • 在 Starnix 中添加了对 overlayfs 的支持和修复。
  • 为 Futex 支持添加了基于 InterruptibleEvent 的 Waiter。
  • 修复了使用和处理 Futexe 时遇到的各种安全性问题。
  • 初步支持 Starnix 中的锁排序和功能。
  • 初步支持 RISC-V 架构,添加 vDSO 并获取首批测试通过。
  • 初步支持 fsverity ioctl
  • 初步支持 Perfetto 作为 Starnix 轨迹使用方。
  • 初步支持 inotify 并确保通过相应的 LTP 测试。
  • 在 vDSO 中实现了 gettimeofdayclock_gettime,以提高速度。
  • 实现了 Magma 信号量导入和导出,以便返回同步文件。
  • madvise() 实现了 MADV_DONTFORKMADV_WIPEONFORK
  • 改进了 binder 接口,使其更加可靠,并修复了各种竞态和锁定问题。
  • 采用以下方法提升了系统调用的性能:
    • 不过,应使用 Mutex 代替 RwLock
    • 同步处理触发的事件。
    • 不过,应使用 DenseMap 代替 HashMap
    • 使用 Futex,而不是 zx::Port
  • 为远程文件系统连接了 statfs

Web

我们对网站进行了以下更新:

  • 通过始终在等待之前发送约束条件,提高了内存分配效率。
  • 修复了在回复缺失时进行的两次小提琴检查失败的问题,以避免在某些极端情况下发生崩溃。
  • 移除了 ProcessDeferredAccessibilityEventsImpl 中的循环,从而提升无障碍功能的性能。

连接(蓝牙、IoT、WLAN、Netstack)

对连接性进行了以下更新:

蓝牙

  • 修复了部分音箱无法连接到音频的问题。
  • 修复了与某些手机配对时媒体信息不显示的问题。

开发者

我们对开发者工作流程进行了以下更新:

  • 添加了 ffx auth plugin
  • 添加了默认 SDK 版本(在未向 ffx product list 工具传递任何版本的情况下)。
  • 仅在树内添加了 ffx ffx-storage
  • 在主机工具和设备之间添加了 ABI 检查。
  • 取消了对从 ffx product 工具提取 PBv1 的支持。
  • 移除了未使用的 ffx product-bundle 工具。
  • 移除了 Overnet 工具。
  • 更新了 ffx target flash,以便直接与设备通信。
  • 更新了 ffx target flash,以从 zip 加载 ProductBundle,而不解压缩。

诊断

对“诊断”功能进行了以下更新:

  • 添加了各种其他 API,用于在 Rust 中断言 Inspect 数据。
  • 已删除“remote-diagnostics-bridge”。
  • 修复了 ArchiveAccessor 返回的名称格式。
  • 通过在同时使用多个标记时请求关联的持久性数据,提高了诊断持久性功能的性能。
  • 改进了 ffx inspectquery 的数组格式。
  • 更新了 log_listener,以使用与 ffx log 相同的 API。
  • 更新了 run-test-suite,以便在主机上运行时利用更快的协议进行日志记录。
  • 更新了所有 Rust 组件,以使用 InspectSink

FIDL

对 FIDL 进行了以下更新:

  • 添加了 fidl::IsWire<T>
  • allow_arbitrary_error_types 添加了实验性标记。
  • 添加了兼容性最佳实践
  • 在所有位置启用了未知互动。
  • 修复了互动未知的 HLCPP 转化。
  • 在 IR(中间表示法)中添加了已解析的别名类型。
  • 移除了“有信包”属性。
  • 移除了 FIDL 传输格式 V1。如需详细了解对有线格式的长期支持,请参阅 RFC-0229: FIDL 2023
  • fpromise::result constructors 中移除了传输错误。
  • 更新了 TransportErr,以进行自然绑定的序列化。
  • @transitional 更新为许可名单。

计时功能

对计时功能进行了以下更新:

  • 更新了使用 mmap 读取大型文件(而非批量加载),从而节省 7MiB 的 RAM。