日期:2025 年 7 月 15 日
版本:F27
已实现以下更改:
无障碍设置
针对无障碍功能进行了以下更新:
- 通过使
ColorConverter
协议连接取决于AttachA11yView
标志,改进了 A11yManager 的模块化程度。- 变更:fxr/1207064
音频
针对音频进行了以下更新:
- 改进了音频设备注册表 (ADR),以妥善处理复合设备的移除,防止潜在的崩溃。此外,还引入了一个新的平台配置标志,用于控制 ADR 服务的抢先启动。
- 增强型音频驱动程序,可提高稳定性和识别能力。
AML-G12 驱动程序现在会公开
manufacturer
和product
属性,使用 SDKplatform-device
库,并且如果Stop
在Start
之前调用,也不会再崩溃。intel-hda
驱动程序现在可以正确处理第二个环形缓冲区的创建。- 更改: fxr/1258030、 fxr/1239285、 fxr/1238289、 fxr/1239505、 fxr/1239045
- bug:fxb/366517646、
- 更新了虚拟音频驱动程序,以直接提供
Composite
FIDL 协议,并弃用了CompositeConnector
。现代非旧版虚拟音频驱动程序现已包含在开发 build 中,通过了测试验证,并部分支持位置通知。- 更改: fxr/1257744、 fxr/1210065、 fxr/1251145、 fxr/1251144
- bug:fxb/388880875
- 显著增强了
audio_driver_tests
套件,包括全面的负面测试、竞态条件修复以及执行时间缩短 25%。该套件现在分为basic
、admin
和realtime
软件包,以便进行更有针对性的测试。 - 扩展了音频功能的路由服务,以帮助从 devfs 迁移。
StreamConfigConnectorService
已拆分为不同的Input
和Output
服务。- 变更: fxr/1221166、 fxr/1221224
蓝牙
针对蓝牙进行了以下更新:
- 允许使用同一本地地址发布多个 LE 广告
- 引入了一种配置分流音频的 SCO 索引的方法,并更新了测试框架以提供此功能。
- 更改: fxr/1261384、 fxr/1257764
- 引入并实现了
fuchsia.bluetooth.sys.Access.SetConnectionPolicy
FIDL API,允许应用控制蓝牙堆栈的 BR/EDR 连接性。- 更改: fxr/1232025、 fxr/1231720
- 重构了免触摸配置文件 (HFP) 配置架构,以明确启用具有特定功能的音频网关 (AG) 和免触摸 (HF) 角色,从而完成从已弃用的
bluetooth.hfp.enabled
字段的迁移。 - 改进了 MAC 地址处理,
bt-hci
驱动程序现在使用新式驱动程序元数据库检索 MAC 地址,并使用fdf_metadata::MetadataServer
转发bt-transport-uart
,取代了旧版方法。 - 从
fuchsia.hardware.bluetooth
和未使用的fuchsia.hardware.bt.hci
和fuchsia.hardware.bt.vendor
Banjo 库中移除了旧版 HLCPP 支持,完成了向新版 FIDL 和 C++ 绑定的迁移。- 更改: fxr/1233153、 fxr/1238356、 fxr/1238626
- bug:fxb/327637386
- 向
bt-init
的组件清单 (CML) 及其集成测试框架添加了SuspendEnabled
和SystemActivityGovernor
功能。- 变更:fxr/1260724
- 蓝牙组件现在可以启动,并具有可选的
config
功能,从而实现更灵活的系统配置。- 变更:fxr/1260204
- 添加了新的 FIDL 接口,以支持连接的同步群组 (CIG) 管理。
- 变更:fxr/1254284
- 将
bt-gap
查找bt-host
组件的超时时间从 5 秒增加到 100 秒,以提高稳健性。- 变更:fxr/1252604
- 引入了
ConnectionReceiver2
FIDL,该 FIDL 支持新蓝牙连接的唤醒租约握手和流量控制。- 变更:fxr/1248027
- 使用现代服务路由替换了蓝牙
devfs
功能路由,以简化客户端升级。- 变更:fxr/1222688
钴蓝
针对 Cobalt 进行了以下更新:
- 通过将系统配置文件移至信封级,提高了数据上传效率,这通过对观测批次中的系统配置文件进行去重,显著减少了上传的字节数。
- 变更: fxr/1249825、 fxr/1221014
- 通过添加缺失的 include 来遵守“按需包含”准则,修复了 build 问题。
- 变更:fxr/1254359
- 在源生成器中允许使用非驼峰式 Rust 枚举,确保包含特殊字符的事件代码可以正常使用,而不会导致 build 失败。
- 变更:fxr/1253535
- 已完成从已弃用的
step_multiplier
到step_multiplier_float
的迁移,以实现整数直方图报告,包括移除旧的字段定义和验证。
组件框架
针对组件框架进行了以下更新:
- 向
fuchsia.component.Realm
FIDL 协议添加了一个新方法GetResolvedInfo
,用于查询已解析的组件信息。- 变更:fxr/1235109
- bug:fxb/363315648
- 将组件模型迁移到
fuchsia.io2
库,替换已弃用的fuchsia.io
功能。- 更改: fxr/1229305、 fxr/1233484、 fxr/1232086
- bug:fxb/324111518
- 为 Realm Builder 添加了持久存储分片,可在重启时保留组件数据,这对于需要状态持久性的测试特别有用。
- 变更:fxr/1233390
- 增强型组件清单和工具。这包括支持 CML 中的弱字典、
cmc
中字典内的服务,以及改进命令行工具中的错误消息和实参标准化。 - 扩展了对配置功能的支持。已为内置 runner 添加支持,并且 Component Manager 现在会在路由期间对配置功能执行类型检查。
- 更改: fxr/1256827、 fxr/1235158
- 提升了性能和稳定性。现在,Component Manager 已启用完整的链接时优化 (LTO),从而缩减其二进制文件大小,并且
service-broker
现在可以更及时地关闭。
构建
针对 build 进行了以下更新:
- 提升了性能和开发者体验。这包括缓存 Bazel 查询结果、优化“平衡”编译模式以使用 ThinLTO,以及增强 DTC 和
fx build
目标名称的错误报告功能。- 变更: fxr/1240809、 fxr/1255703、 fxr/1213986、 fxr/1233124
- bug:fxb/42084668
- 重构了 Bazel 集成工作流。现在,树内 IDK 代码库是在
fx gen
时生成的,并且已移除--config=no_sdk
标志,取而代之的是用于宿主 build 的显式--config=host
标志,从而修复了增量 build 问题。- 更改: fxr/1252735、 fxr/1253252、 fxr/1253187
- bug:fxb/338009514
诊断
针对“诊断”功能进行了以下更新:
- 采用 FXT 格式进行日志提取和流式传输,取代反馈服务和
ArchiveAccessor
中的 JSON。基于 Rust FFI 层构建的新 C++ 日志解码器进一步提升了日志解析性能和内存效率。- 更改: fxr/1231051、 fxr/1231050、 fxr/1205644、 fxr/1253426
- bug:fxb/389545819
- 改进了诊断性能和稳定性,包括收集快照的性能指标、清除系统日志记录器中的内存,以及修复了在日志记录期间
get_koid
失败时发生的崩溃问题。 - 将
select_all_for_moniker
替换为select_all_for_component
,修复了 Inspect 特有的一个 bug,即错误地省略了根选择器。- 变更:fxr/1237284
- 增强了内核和系统级诊断功能,为
k pmm dump
命令添加了统计信息,并确保dmesg_restrict
正确处理非特权 syslog 访问。- 变更: fxr/1233568、 fxr/1232625
- 增强了 Power Broker 可观测性,提供了更高效、更全面的检查事件,包括将捆绑依赖项信息纳入
add_element
事件,以及将多个update_level
事件合并为一个事件。 - 添加了新的检查指标和数据源,包括
ota_health_verification
和 UTC 时间调整的指标,以及用于更轻松地进行调试的结构化配置。- 更改: fxr/1222047、 fxr/1256970、 fxr/1234127、 fxr/1230544
- bug:fxb/400778800
显示
扩展了像素格式支持。Magma 和 virtio-gpu 现在支持
R8G8B8A8
格式,从而提高了与更多硬件和应用的兼容性。- 变更:fxr/1234067
改进了图形渲染和稳定性。修复了 Intel 显示驱动程序中的关闭崩溃问题。
- 变更:fxr/1252457
驱动程序框架
针对驱动程序框架进行了以下更新:
- 已完成 Rust 驱动程序主机过渡:已移除 C++
driver_host
,从而完成向 Rust 实现的过渡。现在,核心产品和驱动程序测试领域中默认启用 Rust 驱动程序主机,从而简化驱动程序执行环境。 - 改进了驱动程序主机稳定性和调试:通过修复关机顺序、锁争用问题以及为驱动程序崩溃自检提供新协议,提高了可靠性。Perfetto 中新增了“driver_dispatcher”轨迹类别,有助于进行调试。
- 添加了新驱动程序:为用户空间快速启动添加了
usb-fastboot-function
驱动程序。- 变更:fxr/1258844
- 增强的驱动程序开发 API:
OnBind
方法现在提供node_token
以引用子节点。Rust 驱动程序新增了用于条件逻辑的pipe_if
和pipe_opt
方法,以及用于简化字符串键控属性使用的新BindRules2
和ParentSpec2
类型。 - 增强了模拟和测试支持:改进了
mock-mmio
的诊断功能,可提供详细的ZX_ASSERT
消息。mock-mmio
库现在位于合作伙伴 SDK 中,并且其 API 已更新以保持一致性。- 变更: fxr/711448、 fxr/1171413、 fxr/1248867、 fxr/1248336
- bug:fxb/382792202
- 增强的安全性和政策执行:驱动程序运行时现在强制执行以下规定:驱动程序只能使用其组件清单中明确允许的调度程序角色,从而增强系统安全性。
FIDL
针对 FIDL 进行了以下更新:
- 通过将生成的函数正文移出头文件并解耦有线绑定和自然绑定,减少冗余的编译工作,显著缩短了 C++ 构建时间。
- 更改: fxr/1260904、 fxr/1255849、 fxr/1221350
- bug:fxb/361634289
- 改进了 Rust 线绑定的工程学和性能。增强功能包括支持按值/引用进行编码、预解码的消息缓冲区,以及用于非阻塞发送的应急机制。通过优化填充归零来提升性能,并且渠道关闭错误现在明确包含墓志铭。
- 为 Rust FIDL 绑定添加了对
zx::Counter
的支持。- 变更:fxr/1220866
- 添加了新的静态 Python FIDL 后端 (
fidlgen_python
),并且默认情况下会为所有 FIDL 库生成绑定。此初始版本支持协议方法、可靠的外部类型导入、必需的结构体字段,并改进了 IDE 可发现性。
GPU 和图形
针对 GPU 和图形进行了以下更新:
- 显著改进了 Magma 的核心。信号量现在使用
zx::counter
而不是zx::vmo
,以获得更好的性能并减少内存使用量。 此外,上下文创建现在支持优先级,连接关闭时缓冲区释放更安全,并且提供了一个新的 C++ 到 C 绑定库。 - 将图形驱动程序从
devfs
迁移到 FIDL 服务。这项系统级工作旨在对图形组件(包括 Mali 驱动程序和 Magma 集成)进行现代化改造,从而提高安全性并清晰呈现公开的功能。旧版 DFv1 库也已移除。 - 扩展了像素格式支持。Magma 和 virtio-gpu 现在支持
A2B10G10R10
、P010
,从而提高了与更多硬件和应用的兼容性。- 更改: fxr/1260347、 fxr/1233329、 fxr/1233364
- bug:fxb/42073721
- 改进了图形渲染和稳定性。Vulkan 交换链现在可以正确处理
alphaComposite
模式,确保正确渲染不透明表面。- 变更:fxr/1233007
- 改进了图形服务的 FIDL API 和 ABI。
fuchsia.vulkan.loader/Loader
协议现已标记为进行 ABI 检查。Magma 服务 FIDL 现在更清晰地公开了CombinedDevice
协议,从而简化了客户端 API。
IoT、Matter 和 Thread
针对 IOT、Matter 和 Thread 进行了以下更新:
- 更新了
third_party/openthread
依赖项。此更新包含新功能和修复,例如改进了边框代理和路由管理器功能、支持 ePSKc,以及使 LoWPAN 组件与最新的 OpenThread 版本保持一致。Fuchsia 的平台代码、测试和绑定也已更新,以实现兼容性。 - 添加了对 ping 设备 RLOC 地址的支持,此功能现在直接在 OpenThread 网络堆栈中处理。
- 变更:fxr/1259525
内核
针对内核进行了以下更新:
- 为
zx_vmar_map
实现了ZX_VM_FAULT_BEYOND_STREAM_SIZE
标志。这样一来,超出 VMO 内容大小的内存访问会发生故障,从而提高与 POSIXmmap
语义的兼容性。 添加了对 ktrace 流式传输的支持。
zx_ktrace_read
现在会使用其读取的数据,从而使用户空间可以通过在循环中调用此系统调用来流式传输内核轨迹数据。在此清理过程中,移除了未使用的zx_ktrace_write
系统调用。添加了对可映射的内核时钟的支持。这些时钟支持高效的读取访问,在大多数情况下无需进入内核。如需详细了解设计,请参阅 RFC 0266。
Netstack
我们针对 Nestack 进行了以下更新:
- 计划在 F27 推广到 100% 之后、F28 开始推广之前,通过功能标志启用 Netstack3。
- 全面支持 TCP 选择性确认 (SACK),包括基于 SACK 的丢包恢复和拥塞控制更新,以显著提高 TCP 在丢包网络上的性能。
- 变更:fxr/1242089
- bug:fxb/42078221
- 改进了 TCP ACK 行为:默认启用延迟 ACK,引入了快速确认期,并确保了更准确的窗口更新计算,从而提升了性能。
- 通过修复多个严重 bug,增强了 TCP 可靠性和正确性,包括 CUBIC 中的算术溢出、无序 SACK 导致的内核崩溃、错误的 RTT/RTO 计算以及不正确的重传计时器重新启动。
- 通过根据路径 MTU 更新动态调整最大分段大小 (MSS),并使 ICMP 错误传播与 Linux 行为保持一致,改进了 TCP 对网络状况的响应。
- 更改: fxr/1233389、 fxr/1216279
- bug:fxb/404628798、fxb/42052672
- 通过更正对无序和重复分片的处理,修复了 IP 分片重组,并将 IPv4 重组超时时间减少到 15 秒,以符合 RFC-791 的要求。
- 通过重构 DAD 机制使其与 IP 无关并添加必要的配置选项,为 IPv4 重复地址检测 (DAD) 做好准备。
- 更改: fxr/1254245、 fxr/1253164
- 使用 LRU 政策限制了路径 MTU 缓存大小,以缓解因重复的 PacketTooBig 消息而可能造成的拒绝服务漏洞。
- 变更:fxr/1237566
- bug:fxb/404634511
- netstack 现在会针对发送到未绑定 UDP 端口的数据报发送 ICMP 端口不可达消息,并受到现有 ICMP 速率限制的保护。
- 变更:fxr/1239544
- 通过新的
fuchsia.net.filter.SocketControl
FIDL 协议引入了对基于 eBPF 的套接字出站过滤器的支持,从而实现了高级数据包过滤功能。- 更改: fxr/1255225、 fxr/1255356
- bug:fxb/407809292
- 通过数据包标记增强网络过滤功能,允许
fuchsia.net.filter
规则标记数据包,并在转发决策中使用这些标记。 - 改进了连接跟踪功能,可解析内部 ICMP 错误数据包,将其与原始连接相关联,以针对 ICMP 错误启用 NAT 等功能。
- 变更:fxr/1255147
- bug:fxb/328057704
- 为与新的 API 标准保持一致,
fuchsia.netpol
FIDL 库已重命名为fuchsia.net.policy
。- 变更:fxr/1238424
- 加强了 NDP 和 MLD 消息验证,以强制执行 RFC 中规定的正确跳数限制,并确保在接口停用时重置已学习的 IPv6 参数。
- 更改: fxr/1240784、 fxr/1219885、 fxr/1246645
- bug:fxb/42179534
- 通过更精细的计数器增强网络可观测性,包括每个设备的 IP 计数器、每个套接字的 UDP 计数器和 MLD Inspect 计数器。
- 更改: fxr/1238625、 fxr/1235064、 fxr/1219884
- bug:fxb/42081990
平台驱动程序
平台驱动程序进行了以下更新:
- 将各种设备类从旧版基于 devfs 文件的系统迁移到组件服务。通过更新串行、摄像头、音频、图形和网络等类以使用基于服务的现代协议,改进了系统架构和客户端通信。
- 添加了新的
usb-vsock
驱动程序以取代overnet-usb
,从而实现基于 VSOCK 的 FFX 通信。这包括新的两阶段同步协议、vsock 框架,以及对其他复合设备配置(例如 adb+vsock)的支持。 - 更新了
usb-peripheral
驱动程序,以使用现代元数据库来检索 MAC 地址和序列号。还修复了重置后接口计数不正确的 bug。 - 将
platform-bus
驱动程序迁移到 DFv2,现在在其 FIDL API 中使用ParentSpec2
,并支持NodeController/OnBind
事件。这简化了集成,并允许主板驱动程序直接配置唤醒源。 - 为 HVDC-P Opti 添加了驱动程序:此新驱动程序支持
power_supply
和 IIO 设备,以及 Starnix 的/dev/qbg
和/dev/qbg_battery
节点。现在,即使出现故障,也可以正常运行,而不会导致系统不稳定。
电源管理
针对电源管理进行了以下更新:
- 添加了可限制 CPU 温控客户端的
ThermalLoadDriver
,为ThermalPolicy
提供了一种替代方案,并包含用于测试的新轨迹计数器。- 变更:fxr/1257685
- 添加了在超过关机阈值时让电源管理器记录温度的功能,从而改进了热事件的诊断。
- 变更:fxr/1243011
- 显著改进了 Power Broker 的检查数据,以提高可观测性和效率。这些变化包括增强的事件详情、优化的数据存储和更简化的事件日志记录。
软件交付
我们针对软件交付进行了以下更新:
- 向
system-update-committer
添加了健康检查协议,该协议会使耗时超过 5 分钟的提交失败,从而提高整体更新可靠性。- 更改: fxr/1233611、 fxr/1214029
- 改进了
system-update-checker
的诊断日志记录,以检测何时与 UpdateManager 的连接断开。- 变更:fxr/1233534
- 迁移了恢复组件,以使用
ArchiveReader
和新的Open
方法,取代已弃用的LogProcessor
。- 更改: fxr/1236647、 fxr/1222509
- bug:fxb/324111518
Starnix
针对 Starnix 进行了以下更新:
- 为套接字操作实现了一套安全钩子,增强了创建、绑定、连接、监听和关闭各种套接字类型的安全性。
- 为 BPF 操作添加了一组全面的安全钩子,涵盖
bpf
、bpf_map
、bpf_prog
和 BPF 资源的分配,以及必要的功能检查。 - 针对各种内核操作实现了新的安全钩子,包括用于检查内存映射权限的
mmap
、用于接收文件描述符的file_receive
和用于设置资源限制的task_setrlimit
。 - 对 SELinux 异常和政策管理进行了现代化改造,用灵活的配置功能取代了基于文件的配置,移除了过时的异常,并添加了对许可主题网域的支持。
- 更新了 SEStarnix,以使用新的 API、性能缓存和扩展的测试覆盖范围,对
ioctl
调用执行扩展权限 (xperm) 检查,从而实现精细的控制。 - 引入了对“私有”匿名文件系统节点的支持,这些节点会绕过对
signalfd
、eventfd
和sync_file
等内部文件类型的 SELinux 检查,以提高兼容性和性能。 - 改进了套接字标签和分类,确保在创建时为套接字(TCP、UDP、原始 IP)分配正确的安全类和上下文。
- 更新了
fuchsia.starnix.binder
FIDL API 以包含WriteBytes
方法,从而提供了一种更高效的方式来执行小内存写入,避免了 VMO 创建。 - 在 Starnix 中添加了对 Fxfs 上文件级加密 (FBE) 的支持。这包括支持符号链接和正确处理加密路径。加密密钥现在安全地存储在
/data
中,从而改进了卷管理并实现了可靠的冷启动模拟。
存储
存储空间进行了以下更新:
- 修复了 fxfs 的 bug 并提升了其性能。这些更改通过以下方式提高了文件系统的稳健性:防止重复创建墓碑、优化稀疏映像创建、增强线程管理以实现更好的并行性,以及确保在 Crypt 服务无响应时文件系统仍能正常运行。
- 提高了 Blobfs 可靠性。这些改进包括防止因空指针取消引用而导致的崩溃、添加对以原子方式覆盖现有 blob 的支持,以及主动检查现有写入者以防止出现竞态条件。
- 添加了对 Fxfs 的支持,以持久保留文件访问时间 (
atime
)。这可确保在访问文件或目录时,atime
属性能够正确更新和存储。
测试
以下是针对测试进行的更新:
- 改进了主机端框架和执行。Honeydew 框架、testrunner 和宿主-目标测试工作流得到了显著增强。这包括将 Honeydew 迁移到现代
fidlgen_python
绑定、添加restart
会话功能、重构ffx
用法以保持一致性、在失败后执行设备健康检查,以及提高串行测试的可靠性。 - 增强了系统和驱动程序测试。音频、图形和其他系统驱动程序的测试已变得更加全面和稳健。音频驱动程序测试现在包含新的负测试用例和更严格的检查,Vulkan 测试已重新整理为封闭式套件,启动测试现在支持 DTBO,并且 TEE 测试已重新启用。
计时
针对时间管理功能进行了以下更新:
- 为 Timekeeper 引入了电源管理集成,包括一个功能标志和相关逻辑,用于防止在时钟启动之前过早更新时钟。
- 通过禁止负启动时间轴参考调整(表示由重置引起的无效状态),增强了 RTC 可靠性。
- 变更:fxr/1259245
- 通过检查添加了以下内容,增强了时间跟踪的可观测性和可调试性:UTC 调整成功/失败的指标、上次调整的详细日志记录,以及公开结构化配置数据。
- 通过以下方式改进了 Starnix UTC 时间准确性和可配置性:将参考时间轴更正为启动、实现外部调整的代理,以及最终确定可设置的 UTC 时间的路由。
- 引入了全面的外部 UTC 时间调整机制,包括核心决策逻辑、集成到 UTC 控制环路、异步命令处理和可配置的以安全性为中心的时间窗口限制。
- 通过添加组件实例 ID 并以实验方式使存储 AIB 可用,为 Timekeeper 启用了永久性存储。
- 更改: fxr/1227104、 fxr/1226786
- 通过以下方式改进了闹钟处理和 RTC 仿真:根据设备属性修正了计时器索引选择,并优化了常开计数器的使用。
工具
针对工具进行了以下更新:
fx
针对 fx 进行了以下更新:
- 改进了
fx set
命令,以更好地管理 build 目录。现在,默认使用--auto-dir
创建特定于产品的 build 目录,而out/default
则成为一个便捷的符号链接。修复了多个 bug,包括--dir
和--fint-params-path
标志的问题,并且不再将 build 目录存储在fx.config
中,从而避免了过时问题。 - 标准化并改进了目标选择标记。为了与
ffx
保持一致,fx -d
标志现已弃用,改用fx -t
或fx --target
。- 更改: fxr/1252244、 fxr/1214024
- 向
fx build
命令添加了一条警告,提醒开发者不要使用 Ninja 目标名称,而应使用 GN 标签。此更改有助于鼓励正确使用 build 实参,并为未来的 Bazel 集成做好准备。- 变更:fxr/1233124
- bug:fxb/42084668
- 增强了来自
fx
的 build 分析功能,可报告更多上下文信息,例如 build 是由fx test
还是fx multi
触发的,并包含来自args.json
的更多 build 实参。
ffx
针对 ffx 进行了以下更新:
- 从
ffx
中移除了基于守护程序的软件包服务器。所有关联的命令(ffx repository add
、list
、remove
、status
等)也会被移除。用户现在应使用独立的ffx repository server
命令。 - 改进了网络和连接。
ffx
现在可以正确处理带有范围 ID 的 IPv6 地址,为连接失败提供更有用的错误消息,并更可靠地发现和管理目标,尤其是在通过 USB/VSOCK 连接时。还添加了对通过 VSOCK 的 Overnet 的支持。 - 为
ffx
和fx
命令添加了选择启用的终端用户界面 (TUI),以提供增强的格式设置。可以通过ffx.ui.mode
配置启用此功能。fx use
命令率先采用了此功能。- 变更:fxr/1255350
- 更新了
ffx product
和ffx package
,使其成为独立的可执行文件,不再捆绑到主ffx
二进制文件中。此变更可缩短构建时间。 - 更新了
ffx test run
命令,使其更适合自动化,支持严格的输出要求和机器可读的 JSON。 - 将
ffx inspect
命令的--component
标志替换为--data
,以便进行更直观的查询。- 变更:fxr/1148106
- 改进了
ffx driver
命令,新增了--unbound
标志,用于仅列出未绑定的节点,并更准确地报告无法绑定的节点。- 变更: fxr/1236072、 fxr/1236071
- 提高了刷写速度和可靠性。由于传输缓冲区大小增加,
ffx flash
命令现在处理大型图片的速度明显更快。现在,它还可以通过自动重新分块来正确处理大型稀疏图片。还修复了导致fx flash
中出现“未知 Ninja 路径”错误的 bug。 - 更新了
ffx trace
命令,以更好地直观呈现 FIDL IPC 轨迹。它采用双遍方法来正确呈现 Perfetto 中的异步双向 FIDL 调用(以单个连续流程的形式),并将事件名称设置为 FIDL 方法名称,以便于调试。
zxdb
zxdb 进行了以下更新:
- 在 zxdb 中默认启用了主机端展开,利用完整的调试信息来提供更高质量的回溯。添加了
--force-remote-unwind
选项,用于恢复之前的目标端行为。- 变更: fxr/1172993、fxr/1195609
- bug:fxb/292107156
界面
界面进行了以下更新:
- 在 Flatland 中启用了直接显示。这样一来,系统可以直接显示客户端图片,而不是先合成再显示,从而提高渲染效率。此外,该版本还对缓冲区收集导入流程进行了关键修复。
- 改进了输入系统和核心界面稳定性。这些更改修复了 Scenic 的 vsync 区间计算中的问题,以防止崩溃,并添加了对鼠标设备的支持。
- 更改: fxr/1249219、 fxr/1236342
- 增强了界面服务的性能和可配置性。现在可以使用线程和内存配置文件配置 Scenic 和 Scene Manager,从而让集成商能够微调资源分配。此外,Scenic 的帧预测边距现在可参数化。
WLAN 和连接
针对 WLAN 和连接进行了以下更新:
- 为
wlanix
引入了新的GetMacAddress
FIDL 方法,用于检索设备的 MAC 地址。- 变更: fxr/1259485
wlantool
命令行实用程序现在可以使用 BSSID 而不是 SSID 连接到网络。- 变更:fxr/1226545
- 优化了漫游算法,使其更具响应性和效率。这包括使扫描退避呈指数级增长、更智能地重置退避,以及通过移除 SNR 作为触发器来简化静止漫游配置文件。
- 通过以下方式简化了核心 WLAN FIDL API:移除未使用的方法和迁移标志;将特定于 SoftMAC 的类型移出通用库;重命名与统计信息相关的 API,以提高清晰度。
- 通过公开 WLAN 抢占、SDIO 总线指标和固件 RX/TX 错误的新计数器来增强驱动程序遥测,从而改进监控。
- 通过调整最大 TX glom 帧来防止批次大小超出协议限制,解决了稳定性问题。
- 更改:fxr/1228148