日期: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 中实现了
gettimeofday
和clock_gettime
,以提高速度。 - 实现了 Magma 信号量导入和导出,以便返回同步文件。
- 为
madvise()
实现了MADV_DONTFORK
和MADV_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 inspect
和query
的数组格式。 - 更新了
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。