Fuchsia F26 版本資訊

日期:2025 年 4 月 8 日

版本:F26

我們已實施下列變更:

無障礙設定

我們已針對 A11y 進行以下更新:

  • 新增設定,讓產品可從場景圖表中移除 A11y View,這可提供更大的彈性,同時保留平台程式碼的預設啟用狀態。

音訊

我們已對 Audio 進行以下更新:

  • 透過新的用途列舉和彈性通訊協定,改善音訊串流管理:我們推出了 AudioRenderUsage2AudioCaptureUsage2 列舉,以及 Usage2 聯集,以改善音訊串流分類和管理。這包括為螢幕閱讀器提供新的 ACCESSIBILITY 串流用途,以及 AudioCore 的內部遷移作業,以便使用這些新類型。相關的通訊協定和方法也已轉換為彈性,以提高適應性。
  • 新增即時音訊裝置通知:在 Rust 共用支援程式庫中,新增 AudioDeviceRegistry 裝置事件訂閱項目,讓 Rust 用戶端在新增及移除音訊裝置時收到通知。
  • 修正多項錯誤並進行多項改善:解決 aml-g12 driver 中與 VMO 大小計算相關的問題、改善音訊測試中檢查排序的穩定性、更新建構目標可見度以確保正確性,以及解決對臨時陣列參照的嚴格 LLVM 檢查問題。
  • 移除未使用的音訊驅動程式庫:刪除未使用的 aml-dsp 驅動程式庫和程式庫,以簡化程式碼庫,並避免日後重構發生衝突。

藍牙

我們已對藍牙進行下列更新:

  • 更新 ffx bluetooth peer 子工具,納入 listlist --detailsshow 指令,取代先前在 bt-cli 中的功能。
  • 改善將大型窺探待處理作業拆成較小分塊的功能,以符合 FIDL 訊息大小限制。
  • 更新 Uuid 類型,以便衍生 EqHash,讓集合運算和比較作業更容易。
  • 已更新 fuchsia-bluetooth 目標,讓主機可使用,並讓 ffx 存取必要類型。
  • 修正因 vec! 用法不當而導致的建構錯誤。
  • 更新 bt-transport-uart,只將一個讀取工作排入佇列,避免出現多個 HciTransport 連線要求的問題。
  • 更新的徵求 UUID,可用於掃描篩選器清單。
  • 更新 BCM4381 的 UART 旗標,以便正確設定並啟用 UART 流量。
  • 已更新 bt-hci-broadcom 中的韌體載入作業,以避免潛在的堆疊溢位。

建構

我們已針對 Build 進行下列更新:

  • 新增對 bazel_test_package_group 和每個 API 級別 .ifs 檔案的支援,以便使用共用資料庫。這些變更可強化測試中的模組化,並支援逐步開發介面。
  • 改善建構系統的穩健性,並在準備 Bazel 整合作業方面取得進展。fx gen 期間重構工作區邏輯並產生 remote_services.bazelrc,有助於改善這些問題。
  • 在 Rust 建構設定中新增設定檔支援功能。profile-rust 變化版本現已推出,並可在 rustc 輸入內容中加入設定檔路徑,進而強化效能分析功能。
  • 修正序列化問題:這個修正程式可改善建構系統的穩定性和可用性。
  • 簡化 SDK 建構程序。為所有類別要求 SDK 區域、重新定位工具鍊定義、在組合中新增指標記錄器設定,以及移除 emu_dimensions,可改善 SDK 建構體驗。
  • 改善 LinkMap 功能:修正 generate_linkmap 中的錯誤,包括標記和命名修正。

鈷豔藍

我們已為 Cobalt 進行下列更新:

  • 將 Cobalt 切換為 Rust 記錄:Cobalt 的假資料使用 Rust 記錄,而非追蹤記錄。
  • 改善設定驗證工具測試:在設定驗證工具中新增指標與報表的測試。
  • 推出原型 STRUCT 指標註冊、驗證和觀察功能,包括使用範例,說明如何透過欄位、類型和報表定義結構體指標,以便匯總資料。
  • 改用參數化測試,改善整數直方圖報表的測試功能。
  • 實作浮點步進調節係數,並驗證 step_multiplier 大於 1。
  • 更新 Tink、Abseil-cpp、Protobuf 和 Protobuf-gn 子模組,並解決已淘汰的 Tink API 用法。
  • 在設定驗證工具中新增指標與報表的測試,以改善測試涵蓋範圍。

元件架構

我們已為元件架構進行下列更新:

  • 更新元件管理工具,讓該工具能夠從公開的根目錄中找出追蹤能力。
  • 改善重複商品的錯誤訊息,使其更清楚易懂。
  • 修正元件偵錯模式中的無法到達模式 Lint,以及元件架構中的 Clippy Lint。
  • 修正 on_terminate=reboot 的處理方式,以便乾淨俐落地停止,並透過重複待處理的關機記錄改善擷取方式。
  • 更新元件管理工具,以便使用診斷字典中的 LogSink,並透過常見的 Echo 伺服器程式碼改善 incoming_integration_test

診斷

我們已對「診斷」功能進行以下更新:

螢幕

我們已對多媒體廣告進行以下更新:

  • 顯示器驅動程式庫堆疊正在遷移至新型 Fuchsia 平台基礎架構,例如 DFv2 和 FIDL。

驅動程式架構

我們已對 Driver Framework 進行下列更新:

  • 在驅動程式管理器中新增 RestartWithDictionary FIDL 方法,以便重新啟動具有自訂功能的節點。
  • 新增對驅動程式管理器中的匯流排拓樸的支援,讓用戶端可以查詢匯流排區段。
  • 使用 fake-btifake-object 元件擴充 SDK,以強化驅動程式庫開發作業。
  • 已為 driver_index 啟用 on_terminate: reboot,以便清除元件退出。
  • 改善建構期間的驅動程式元件資訊清單驗證功能。

FIDL

我們已對 FIDL 進行以下更新:

韌體

我們已針對韌體進行以下更新:

  • 為 NUC 和 VIM3 新增「slot-unbootable-reason」快速啟動變數,指出為何標示某個插槽無法啟動

GPU

我們已針對 GPU 進行下列更新:

  • 改善多個領域中的記錄和錯誤處理功能。HangRecovery 中新增更多記錄,以便更清楚顯示函式行為、在 MagmaTestDriverBase 中將預設測試狀態設為 NOT_FOUND,以便擷取遺漏的測試,並改善 Magma 錯誤記錄,以便顯示狀態字串而非數字。
  • 簡化 Magma 元件和修訂的指令緩衝區提交作業。移除了未使用的 CachePolicy 參數和 magma::ZirconPlatformDevice 類別。在 msd_c.h 中新增內容 API 和序列信號匯入/釋放函式。修訂的指令緩衝區提交作業,可支援可變數的指令緩衝區數量,並修正零資源處理作業。
  • 改善 Vulkan 和 Swapchain 實作項目。將 flatland_view 遷移至新的 C++ 繫結,為 Vulkan 交換鏈層新增碎片,並修改 vkcube 以使用一般交換鏈碎片。
  • 修正當機和不穩定問題。在非密封和模擬器環境中停用 ForceQuitAcquireZeroTimeout 測試,以便進行圖片管道交換鏈結測試,解決當機問題。重新加入誤刪的 DFv2 驅動程式庫單元測試。將 msd-arm-mali 的關閉逾時時間提高至 10 秒,以減輕片段問題。將 zx_bit_pin 區塊大小縮減至 32 MB,以避免在綁定記憶體時發生錯誤。
  • 新增及更新 Magma 平台測試。在 Mali 測試驅動程式庫中新增測試,包括大型對應測試,以及更新的剖析器和 MMIO 測試。

物聯網、Matter 和 Thread

我們已針對 IOT、Matter 和 Thread 做出以下更新:

核心

我們已對核心進行以下更新:

  • 推出用於評估記憶體停滯的新架構,提供系統效能瓶頸的深入分析資料。這包括將 ZX_INFO_MEMORY_STALL 新增至 zx_object_get_info,以及專用於管理停滯測量系統呼叫的停滯資源。

平台驅動程式

我們已針對平台驅動程式進行下列更新:

電源管理

我們已對電源管理功能進行以下更新:

  • 在驅動程式中新增了 Inspect 整合功能,包括元素執行元件和嘗試時間記錄的電源驅動程式,以及用於驗證驅動程式庫檢查曝光率的新測試。
  • 在 USB 端點中新增選用的喚醒租約和與完成作業相關聯的租約支援功能,以改善電源管理。
  • 實作假電源感應器進行測試,模擬未整合 ODPM 的裝置上 ODPM 的行為。
  • 實作新的 Admin.PerformReboot API,用於啟動裝置重新啟動,同時維持對已淘汰的 Admin.Reboot 的支援。
  • 改善電源管理偵錯和指標,包括針對元素執行緒的檢查整合和新的多步驟暫停/繼續執行延遲指標。
  • 停用租用權最佳化功能,強化電源管理。
  • 使用較高層級的電源方法簡化 SDMMC 驅動程式庫。

荒漠油廠

我們已對 Rust 進行以下更新:

Starnix

我們已為 Starnix 進行下列更新:

儲存空間

我們已對儲存空間做出以下更新:

  • 為虛擬檔案系統 (VFS) 新增 Get/SetFlags2 支援,並將 SetFlags 變更為使用 io2 標記。特徵方法已從 update_flags 重新命名為 set_flagsfuchsia.io/Flags 則取代了 OpenFlags
  • 進階 UFS 驅動程式:在 UFS 驅動程式庫中新增 UFS 服務,並提供寫入保護和背景作業支援功能。
  • 更新 VFS:在 VFS (Rust) 中實作 Get/SetFlags2 支援,並更新 SetFlags 以使用 io2 標記。
  • 改善 Blob 和區塊處理方式:Fxblob 現會記錄損毀的 Blob 資料,以便進行分析,並修正 ChunkedArchiveError 根本原因對應。
  • 強化 Fxfs 並修正錯誤:啟用 fallocate,改善截斷時的覆寫範圍處理方式,並解決預留位置對齊問題和計算錯誤。
  • 更新 FVM 和 Fshost:解決 FVM 音量移除競爭問題、改善 fshost 中的 FVM 比對,並修正儲存空間主機的 CML 設定。
  • 改善儲存空間和基準測試功能:儲存空間基準測試現在會在支援儲存空間主機的專屬領域中執行。

測試

我們已為測試功能進行以下更新:

計時

我們已對打卡系統進行以下更新:

  • 實作新的 fuchsia.time.alarms FIDL API,用於管理喚醒鬧鐘,並利用 hrtimer 裝置做為後端。這包括要求 hrtimer 存取權、為 Starnix 設定 API 的條件式服務,以及將其與 vim3 板整合。喚醒鬧鐘管理員也收到了整合修正,包括 GetProperties() 和暫時性的 CancelSync() Fidl API,而 alarms crate 也已分離出來,以利測試。在喚醒鬧鐘服務中新增追蹤功能,並在 hrtimer 驅動程式庫程式中實作解析度修正,解決長時間休眠的問題。也將 max_ticks 的詳細資料新增至 hrtimer FIDL,並修正 hrtimer 設定,以便支援更多平台。
  • 重新設計的時間管理員持續狀態,以便日後擴充資料。

工具

我們已對工具進行下列更新:

ffx

以下是 ffx 的更新內容:

  • 強化模擬器,提供 UEFI 支援功能,以便執行完整磁碟 GPT 映像檔啟動和 OTA 測試。ffx emu start --uefi 標記可啟用這項功能。
  • ffx log 中新增模糊搜尋元件別名和網址的支援功能。請使用 --component 標記 (取代已淘汰的 --moniker 標記)。
  • 改善模擬器 MAC 位址衍生值,以便進行一致的 UEFI OTA 測試。名稱為 fuchsia-5254-X-Y 的模擬器會直接從名稱衍生 MAC 位址。
  • 延長 ffx target wait 逾時時間。ffx target wait 現已設有 6 秒的逾時值,可更妥善地處理速度較慢的裝置。
  • 改善 ffx 工具中的錯誤處理和環境變數處理機制。針對 ffx product 下載作業提供更詳盡的錯誤訊息。ffx config 中更嚴格的環境變數處理機制。
  • 修正 check-goldensffx emu 錯誤。check-goldens 不再發出 GN 路徑警告。ffx emu 現在在使用 QEMU v9 以上版本時,會正確指派主機通訊埠。

fx

以下是 fx 的更新內容:

  • 修正 fx flash-kola 產品組合選項。fx flash-kola 會正確選取多產品版本中的產品組合。

UI

我們已針對 UI 進行以下更新:

影片

我們已對影片做出下列更新:

  • 重新配置 MPSC 佇列:MPSC 佇列容器已移至常用目錄,以便在多個 Scenic 元件中使用。
  • 更新媒體記錄:媒體元件中的記錄功能現在使用 Rust 記錄,而非追蹤,以改善記錄功能。

WLAN

我們已對 WLAN 進行以下更新:

  • 在檢查中加入詳細不相容性詳細資料,並直接在掃描結果中提供不相容性資訊,以改善掃描結果資訊。
  • 改善 WLAN 元件的穩健性和錯誤處理機制。新增 Lint 來防止恐慌,修正 Fullmac 和用戶端介面復原期間的潛在展開錯誤,並改善 PhyManager 中的錯誤追蹤和回報。WLAN 裝置監控器和設定現在會在發生錯誤時觸發重新啟動行為。
  • 透過簡化架構和強化功能,改善了監視器服務和裝置監控器。簡化監視器服務架構、強制 DeviceWatcher 的用戶端限制、採用 DeviceMonitor 伺服器的慣用風格、整合新的介面處理方式,以及重構 CreateIface 要求/回應格式。
  • 漫遊基礎工作。漫遊監控器現在可以指定主動或被動掃描,並更新漫遊 syslog 和 SME 代理程式
  • 在 WLAN 堆疊中實作各種強化功能。包括切換至 Rust 記錄、移除不必要的 WPA3 支援檢查、在個別連線嘗試之間新增掃描輪詢、使用 LastSample 填入政策進行遙測計數器、修正 ffx wlan 引數攝入、新增 SYN4381 晶片支援,以及針對國家/地區代碼設定新增 API。
  • 在 Devicetree 中新增支援序列裝置複合節點和 iommu 名稱屬性,以改善裝置管理。
  • 新增了模擬測試,用於驗證 BRCMFMAC 驅動程式的頻道能力。
  • 更新 BRCMFMAC 驅動程式庫,以便有條件地設定 RSNE IE,修正關聯指示中的錯誤。