Fuchsia F12 版本说明

日期:2023 年 8 月 24 日

版本:F12

已实现以下更改:

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

Starnix

Starnix 进行了以下更新:

  • src/proc 重命名为了 src/starnix
  • 修复了各种 gVisor 和 LTP 测试,以确保它们通过测试。
  • arm64 启用了 gVisor 支持。
  • 实现了 RLIMIT
  • 实现了 sysinfo()
  • 添加了对 arm64 受限模式的支持。
  • 修复了 binder 和远程 binder 支持。
  • 改进了 arm64 的可调试性。
  • 为 Starnix 内核使用子软件包。
  • 启用了线程内异常处理。
  • SECCOMPNETLINK 的初始支持。
  • 在 Starnix 中初步支持 Fxfs。

组件框架

我们对组件框架进行了以下更新:

  • 从平台中移除了对 appmgr (CFv1) 的支持。

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

Connectivity 进行了以下更新:

蓝牙

  • 修复了使用蓝牙音箱时媒体播放时间偶尔不准确的问题。
  • 修复了在视频通话进行期间连接后蓝牙音频会恢复的问题。
  • 初步支持 HFP 带内音频。
  • 缩短了将 A2DP 流式传输到音箱时的延迟时间。

Matter

  • 修复了多设备情况下的身份响应问题,以防止响应泛滥。
  • 为相关事项启用了“检查”功能。
  • 修复了订阅超时期间 localhome 中的崩溃问题。
  • 修复了 usonia 中主节点选举发生崩溃的问题。
  • 修复了在转换超出范围的颜色时发生崩溃的问题。这会影响用户体验,导致某些颜色不准确。
  • 在 Fuchsia mDNS 堆栈中实现了缓存刷新处理。

线程

  • 在 Nest 线程控制器中启用了线程遥测功能。
  • 启用了动态日志记录功能。

WLAN

  • brcmfmac 驱动程序中启用了 VIM3 支持。
  • 稳定了 brcmfmac WLAN 驱动程序恢复。
  • 更改了 brcmfmac 中的线程配置文件以及网络堆栈。

开发者

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

  • 支持使用集成了 Bazel 的 Fuchsia SDK 进行驱动程序开发。这取决于特定驱动程序的所需接口。
  • 支持 ffx 通过 USB 连接到目标设备。
  • 改进了使用用户模式网络时的模拟器实例管理。
  • ffx 和其他工具的更新:
    • 已从实验阶段过渡:
    • ffx package archive cat:输出软件包归档文件中的文件内容。
    • ffx package archive create:创建软件包归档文件。
    • ffx package archive extract:将软件包归档解压缩到目录中。
    • ffx package archive list:列出软件包归档文件的内容。
    • ffx package far cat:输出远程归档文件中文件的内容。
    • ffx package far create:创建 FAR 归档文件。
    • ffx package far extract:将远程归档文件解压缩到目录中。
    • ffx package far list:列出远程归档文件的内容。
    • ffx package file-hash:计算一个或多个文件的 blob 哈希。

诊断

我们对“诊断”进行了以下更新:

  • 改进了针对多个 Rust Inspect 进程的写入性能,使基准测试的速度平均提高了 70-80%。
  • 提升了 Rust 日志编码的性能,使基准测试速度提高了 30-60%。
  • 实现了一种新协议,允许 ffx logfix inspect 直接与归档工具通信,从而显著提升了这些工具的性能。在此修复之前,这些工具使用诊断桥接组件进行通信。
  • 改进了组件管理器 CPU 统计信息格式,使 Inspect 中的测量数据减少了约 70%,快照中的测量数据减少了约 55%。
  • 添加了对 Fuchsia 日志记录的 crate span 跟踪的支持。
  • 改进了分类错误消息和输出。
  • ffx log 的输出添加了已丢弃和已推出日志的计数。
  • 添加了对日志和检查的 CBOR 格式支持。
  • 使 ffx logffx test 的日志格式保持一致。
  • 现在,Archivist 会直接将已配置组件的日志转发到串行,而不会先将其发送到控制台组件。
  • Fuchsia 上的所有 Rust 代码现在都使用跟踪库进行结构化日志记录。

FIDL

我们对 FIDL 进行了以下更新:

  • 针对 SDK 中包含的 FIDL 添加了对 FIDL 注解 @available 的要求。
  • 添加了针对未知互动关键字的要求。

固件

固件进行了以下更新:

  • 提高了在遇到硬件初始化错误时启动的可靠性。
  • 将开机时的显示屏亮度降低了 50%。

车队服务(托管式操作系统和取证)

我们对车队服务进行了以下更新:

  • 已删除 LogStats

图形和媒体

图形和媒体进行了以下更新:

音频

  • 添加了虚拟音频驱动程序,以提高测试覆盖率。audio-driver-ctl 开发者工具已废弃,取而代之的是 ffx audio

显示

  • 针对虚拟显示屏堆栈的各种扩展和修复,添加了更多与硬件无关的测试功能。

GPU

  • 移除了系统驱动程序 C API,改用 C++。Starnix 环境中的图形硬件加速。

视频

  • 添加了性能调整,以便在已出厂的设备上改进播放效果。

HCI(输入、无障碍功能、i18n 和 View 系统)

我们对 HCI 进行了以下更新:

  • 为智能显示屏启用了 Flatland。提高性能并降低维护费用。
  • 进行了各种修复,以提高无障碍功能评分。

内核

内核进行了以下更新:

  • 添加了对 riscv64 的支持。

Rust

Rust 进行了以下更新:

  • 开始为 Rust 编译器推出 RISC-V 目标平台。

软件汇编

我们对软件汇编进行了以下更新:

  • 减少了旧版软件包中的内容。
  • 添加了在汇编时检查软件包的 ABI 修订版本以确定与平台的兼容性的功能。

计时

我们对时间记录功能进行了以下更新:

问题:使用推送通信时,需要大量内存和 CPU 资源。
影响:将时间源迁移到了拉取通信,从而减少了维护时钟所需的内存和 CPU。

工具链

  • Fuchsia 支持 HWASan