Fuchsia F30 版本資訊

日期:2026 年 4 月 7 日

版本:F30

無障礙設定

我們針對無障礙功能進行了下列平台更新:

  • 強化無障礙記錄功能。擴大多指和多點觸控縮放動作的記錄,以利偵錯放大功能。

音訊

音訊平台更新如下:

  • PacketStream API 和 FIDL 改善項目。推出 PacketStream API,支援 AAC 和 SBC 等編碼音訊串流格式。為支援非 PCM 音訊格式,我們更新了 FIDL 通訊協定,導入可擴充的聯集 (Format2/SupportedFormats2),並淘汰封閉式 Composite 通訊協定,改用新的開放式版本。

  • 廣泛的診斷和檢查功能。擴充驅動程式和 AudioDeviceRegistry (ADR) 的檢查診斷功能,納入環形緩衝區指標、排程延遲和時脈網域註解。這些新增項目會保留在每個工作階段中,並進一步匯總至新的 diagnostics_summary 區段,大幅提升開發人員的疑難排解和效能分類效率。

  • FFX 音訊 CLI 工具改良。強化 ffx audio CLI 工具,在裝置資訊輸出內容中顯示裝置名稱,並修正說明中的文字顯示錯誤。此外,ffx audio play 現在會將無障礙輸入內容正確地傳送至 Accessibility 使用模式,而不是 Background

  • 效能最佳化和驅動程式修正。重新啟用音訊目標的連結時間最佳化 (LTO),以提升效能。此外,我們也強制執行連續 VMO 大小的頁面捨入作業,藉此修正 aml-g12 驅動程式庫的驅動程式庫相容性,以符合更嚴格的系統呼叫 API 需求。

藍牙

我們針對藍牙進行了下列平台更新:

  • 可設定的 RFCOMM 最大封包大小。以每個 DLC 為基礎進行 max_packet_size 協商,以正確符合 RFCOMM 5.5.3 規格。

  • 在 BondingData 中保存裝置類別。BondingData FIDL 結構體中新增選用的裝置類別欄位,讓 bt-gap 在系統重新啟動後仍可保留該欄位。

  • AVRCP 連線和音量。可視需求啟動 AVRCP 控制和瀏覽連線,並整合 bt-avrcp-vol- control 元件,輕鬆管理用戶端的音量控制,進而提升效率

  • MAP OBEX 連線穩定性。在 MAS 傳輸連線後立即啟動 OBEX CONNECT,並正確等待用戶端啟動 OBEX DISCONNECT,提高裝置相容性。

  • 修正 Sapphire 自動偵測錯誤。解決特定耳機的重大音訊跳過問題,方法是在配對期間和 A2DP 啟用時,抑制 autosniff 行為。

  • Sapphire 封包篩選功能強化。AdvertisingPacketFilter::Config 中新增明確的傳送模式,並強制執行預設 RSSI 底限,防止控制器錯誤地忽略有效對等互連裝置。

  • 基礎架構和可觀測性更新。新增組件設定,可將設定檔要求動態路由至 bt-rfcomm,並導入 GATT 設定檔探索失敗的診斷追蹤功能。

建構

Build 的更新內容如下:

  • 為 Rust 啟用 LTO,並清除最佳化設定。 預設將連結時間最佳化 (LTO) 擴展至 Rust 程式碼集,以提升執行階段效能並縮減二進位檔大小。此外,也為特定核心目標啟用 LTO,現在可以獨立調整最佳化層級。

  • 將建構系統遷移至 Rust 2024 版本。更新全域 Rust 工具鍊設定,以利用新版本並為 Rust 二進位檔設定 max- page-size 連結引數。

  • 進階 Bazel 遷移作業和改良的 IDK 工具。導入新的 Bazel 規則,簡化 IDK 預先建構作業,並從 SDK 中移除已淘汰的 fuchsia_fidl_llcpp_library() 規則。現在,系統會在第一次 bazel build 時產生偵錯符號,以節省額外負擔。

  • 從建構系統中移除舊版 macOS 支援。從工具鍊、測試指令碼、映像檔定義和 SDK 生成包裝函式中,捨棄 macOS 相容性設定。

  • 在 Build API 中新增用戶端指令。推出 affected_testsshould_file_changes_trigger_build,可識別受影響的測試,並智慧地觸發基礎架構建構作業。file_to_test_package 工具也經過改良,可使用 gn refs 提升精確度。

  • 提升建構圖表效能,並改善遠端執行的穩定性。透過以實證建構資料填入 Ninja 邊緣權重,最佳化工作排程,並新增重複 GN 輸出內容的錯誤檢查。解決 Breakpad 符號生成作業的增量建構問題,並透過 RBE 支援 C++ 編譯的遠端 fsatrace

鈷豔藍

Cobalt 的更新內容如下:

  • Rust 2024 遷移作業。將 Cobalt 程式碼集遷移至 Rust 2024 版本。

  • 標示為實驗性的 STRUCT 欄位。STRUCT 指標和報表欄位標示為實驗性,避免使用者混淆;開發人員應避免使用這些欄位。

  • 修正同步指令碼。已解決 sync_with_fuchsia.py 輔助指令碼的問題。

元件架構

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

  • 強化 fuchsia.component.sandbox。更新 DirConnector API,支援傳遞標記和子目錄,並將 CreateServiceAggregate 新增至 CapabilityStore

  • 能力轉送必須有目標。能力轉送現在明確需要目標 (WeakInstanceToken),確保要求發起者一律會在元件圖中準確識別。

  • 元件控制器更新。fuchsia.component.Controller 中新增 OpenExposedDir,方便直接從子元件的控制器開啟子元件的公開目錄。

  • CML target_availability 功能。推出 target_availability,可在編譯期間省略能力提案,前提是目標已從組裝的資訊清單中排除。cmc

  • 檢查記錄檔是否有轉送錯誤。元件管理服務現在會公開 routing_errors「檢查」節點,以便擷取最近的路由失敗情形,進一步診斷裝置端問題。

  • 嚴格處理啟動檔案系統項目。如果無法從 userboot 接收 bootfs 項目,元件管理服務現在會立即結束,而不是繼續執行啟動程序。

  • StorageAdmin 通訊協定已淘汰。已將 fuchsia.sys2.StorageAdmin 通訊協定移至 fuchsia.component.StorageAdmin 通訊協定。這項變更允許在 fuchsia.git 外部使用 fuchsia.component.StorageAdmin

  • 在工程版本中,預設會停用追蹤功能。在工程建構版本中,元件管理服務預設會停用追蹤功能,避免因封鎖 trace-provider 處理序間通訊 (IPC) 而隨機發生啟動停滯。如果開發人員需要這項功能,可以透過組件旗標重新啟用追蹤。

診斷

「診斷」頁面已進行下列更新:

螢幕

多媒體廣告的更新內容如下:

  • 修正顯示引擎事件中的競爭狀況。新增同步功能,避免協調器和引擎驅動程式同時存取,導致驅動程式庫當機。

  • 更新 Intel 螢幕的頁面大小判斷方式。intel-display 驅動程式庫中移除硬式編碼的 PAGE_SIZE 常數,並替換為執行階段頁面大小判斷,以支援 RFC 0016。

驅動程式架構

Driver Framework 的更新內容如下:

  • 電源和暫停功能。fdf_power::Suspendable mix-in 中新增 fuchsia.power.broker/ElementRunner 的支援,讓驅動程式代管程序主動將電源控制代碼轉送至支援的驅動程式。

  • 驅動程式代管程序共置。現在,主機板驅動程式可透過新設定和驅動程式庫程式代管程序裝置樹狀結構訪客,直接指定驅動程式庫程式主機共置。

  • 主機端驅動程式記錄。fdf::Logger 現在由主機端測試中的 syslog 結構化後端支援,因此在主機編譯期間,不必再 #ifdef out FDF_LOG 巨集。

  • 驅動程式架構 CLI 和效能更新。ffx driver host listshow 取代已淘汰的 list-hosts 指令,並透過並行載入元件,大幅提升 ffx driver 指令和 Driver Index 的啟動速度。

  • Rust Driver 執行階段改善。新增以 libasync 為基礎的傳輸方式,可直接在驅動程式庫程式調度器上執行以 zx::Channel 為基礎的 FIDL 通訊協定,同時新增計時器 API Future 和專用的 Rust 驅動程式庫測試程式庫。

  • 執行緒和調度器可靠性。統一執行緒集區邏輯,並確保嚴格執行調度器執行緒限制,避免發生停滯。

  • 支援字典優惠。現在可以透過元件架構字典安全地提供及對應節點能力,不必再透過提供驅動程式庫傳出目錄。

  • 診斷功能強化。現在,如果驅動程式在關機程序期間停止回應,驅動程式管理工具會將堆疊追蹤記錄列印到序列控制台,大幅提升偵錯能力。

FIDL

FIDL 的更新內容如下:

意見回饋

我們對意見回饋功能進行了下列更新:

  • 網域設定遷移。意見回饋設定已遷移至新的網域設定 (feedback_config.json),並移除 persisted_logs_num_files 等未使用的旗標。

  • 強化關機和重新啟動追蹤功能。追蹤啟動時的所有關機動作,改善重新啟動註解和當機簽章;透過組件啟用可設定的自發性重新啟動原因;修正無原因 Starnix 關機的歸因。

  • 使用 FXT 格式擷取最佳化記錄。現在「意見回饋」會使用 FXT 格式,而非 JSON,從 Archivist 擷取記錄,藉此略過不必要的序列化作業,大幅提升效能並減少記憶體用量。

  • 可設定報表儲存庫大小。現在可透過組件設定報表儲存空間大小上限,並將大型磁碟產品的上限提高至 10 MiB,避免大型迷你傾印檔超出儲存空間。

  • 當機快照改良功能。從當機快照中移除未使用的 build.snapshot.xml 附件,並修正導致錯誤排除 log.kernel.previous_boot.txt 的使用後移動錯誤。

韌體

韌體已進行下列更新:

  • 復原:BCB 處理。新增支援 --sideload 系統啟動載入程式控制區塊 (BCB) 引數,現在復原功能會在啟動時讀取並清除 /misc 分區的系統啟動載入程式訊息,避免連續誤啟動復原映像檔。

  • 復原:移除 Fastboot 使用者體驗。已從手動選單中移除 fastboot,因為在復原模式中可直接存取

  • 復原:使用標準化關機和重新啟動 API。將復原重新啟動處理作業遷移至 Shutdown API,以便準確追蹤關機原因,進而改善當機報告和指標。

  • 復原:系統改善。向復原元件公開 bootfs 引數,以便在儲存空間作業期間支援開機插槽識別,並實作完善的死結偵測功能。

圖像和 GPU

以下是「圖形和 GPU」的更新內容:

  • GPU 驅動程式支援的動態頁面大小。在圖形驅動程式中,以執行階段方法取代硬式編碼的 PAGE_SIZE 巨集,支援動態變更的開機時間頁面大小。

  • 改善 Mali 驅動程式庫電源管理功能。msd-arm-mali 驅動程式庫中整合 SuspendBlocker,以便在進入系統暫停狀態前,正確排空工作佇列。

I18n

我們已對 I18n 進行下列更新:

  • 已將遷移的 ICU 資料同步處理作業移至 fuchsia_sync。ICU 資料庫現在使用 fuchsia_sync,可移除鎖定中毒,進而改善死結偵測功能並減少記憶體負擔。

物聯網、Matter 和 Thread

我們對物聯網、Matter 和 Thread 進行了下列更新:

核心

Zircon 核心的更新內容如下:

  • 強制執行 VMO 頁面對齊 (RFC-0238)。強制對齊頁面,嚴格限制實體和連續 VMO 的建立大小,並轉換為安全地將新加入的頁面歸零。
  • 支援執行階段網頁大小 (RFC-0016)。從 Zircon 公開標頭中移除編譯時間 PAGE_SIZEZX_PAGE_SIZE 巨集,要求開發人員使用明確的執行階段頁面大小檢查。

網路堆疊

網路堆疊已進行下列更新:

平台驅動程式

平台驅動程式的更新內容如下:

  • Rust Driver Manager Port. 將核心驅動程式管理員元件移植到 Rust,並在驅動程式庫主機中導入韌體當機報告和記憶體歸因追蹤功能。

  • 電源感知驅動程式拓撲。為每個驅動程式庫註冊電源元素,並建立專用儲存空間元素,為進階電源感知拓撲追蹤奠定基礎。

  • USB DWC3 控制器穩健性。解決多個 DWC3 控制器穩定性問題,修正傳輸資源指派作業,並確保持續處理中斷作業,防止系統暫停作業遭到封鎖。

  • 網路裝置 FIDL 遷移。virtiodwmacgvnic 驅動程式的基礎網路裝置介面從 Banjo 遷移至 FIDL,並進行 virtio 的 DFv2 移植作業。

  • 修正 Virtio 連結狀態。修正 virtio 網路驅動程式庫問題,避免在重新啟動時未讀取連結狀態,導致 netstack 在裝置暫停後收到不正確的狀態。

  • DWMAC 穩定性提升。增加裝置重設逾時時間,並修正 DWMAC 驅動程式庫中因繫結失敗而觸發的調度器當機問題,避免發生極端案例失敗。

  • 修正 SDMMC 和 SDIO 系統當機問題。修正 SDHCI 匯流排閒置邏輯,並解決 SDIO 中因錯誤備用至高速模式而導致的重大系統停止運作問題。

  • 儲存空間分割轉送。導入 block-relay 元件,為每個指定分區產生節點,將 GPT 分區順暢轉送至驅動程式庫架構。

  • 平台匯流排 IOMMU 支援。在平台匯流排通訊協定中新增 RegisterIommu API,用於設定及建構多個 IOMMU。

  • 中斷喚醒向量政策異動。現在,主機板驅動程式必須透過中繼資料明確設定中斷喚醒向量。完全移除對傳遞 ZX_INTERRUPT_WAKE_VECTOR 旗標的用戶端驅動程式支援。

  • Sysmem 填補限制。新增 pad_for_block_sizepad_beyond_image_size 緩衝區限制,協助參與者在圖片界線外要求額外位元組,以利系統最佳化。

電源管理

電源管理功能已進行下列更新:

  • 導入 fuchsia.power.cpu FIDL 程式庫,並重構 CPU 效能限制。新的 DomainController 通訊協定會將 CPU 顯示為 Starnix 中的冷卻裝置,而 CPU 提升邏輯現在會使用 fuchsia.hardware.cpu.ctrl:Device API 支援 RPPM。

  • 將單一 SetBoost FIDL API 取代為多工 Boost API。 新通訊協定可透過多個來源同時提升系統效能,直到傳回的 EventPair 控制代碼遭捨棄為止。

  • 移除 Power Broker 架構中所有對機會依附元件的支援。現在,系統只支援「肯定依附元件」需求類型,簡化了索賠追蹤和租賃突發狀況。

  • 提升電量百分比準確度,並改善充電電流指標。頻率限制器現在會平緩電池電量下降情形,且 FIDL API 現在會傳回以微安 (µA) 為單位的充電電流,並更新「Charging」欄位名稱。

  • 重構電池遙測和內部處理程序。電池管理工具現在會在內部強制執行事件排序,防止更新遭到捨棄,並只在發生有意義的變化時,記錄電壓、容量和預估充飽電時間。

  • 新增硬體觸發點監控功能,並強化熱記錄功能。 導入 TrippointWatcher 通訊協定,直接監控硬體觸發點,並更新熱記錄功能,準確追蹤最高溫度。

  • 將核心電源服務遷移至統一的 Shutdown API。為確保系統會普遍記錄關機原因,我們已淘汰先前的重新啟動和關機方法,改用 Shutdown

  • 新增檢查持續性功能,並提升系統可觀測性。power_state_recorder現在可以在重新啟動時將檢查記錄保留在磁碟中,而新的喚醒租用事件和健康節點則可改善時間軸工具和啟動監控功能。

  • 在系統活動管理員 (SAG) 中,將 Suspender 連線邏輯設為非同步。這樣可避免 SAG 在等待 Suspender 連線時封鎖啟動程序,以便在啟動驅動程式前擷取驅動程式庫權杖。

荒漠油廠

Rust 已進行下列更新:

安全性

安全性方面有以下更新:

  • 審查設定更新。在 Scrutiny 政策中新增 component_tree_config 和啟動引數設定,可擷取動態字典和核心引數,以進行準確的能力轉送稽核。

  • Sealing Keys API 更新。導入 DeleteAllKeys 函式,將 Keymint 密封金鑰支援全面金鑰刪除作業。

  • TEE 管理員依附元件解析。tee_manager 移至基本套件組合,並設定使用基本解析器,避免在套件解析期間無法解除鎖定永久儲存空間的依附元件週期。

  • Cryptography API 和憑證更新。推出 TLS 根憑證,並將程式碼庫邏輯遷移至新的 fuchsia-merkle API,取代已淘汰的 MerkleTree 方法。

軟體推送

軟體交付服務的更新內容如下:

Starnix

Starnix 已進行下列更新:

儲存空間

儲存空間的更新內容如下:

  • 封鎖 FIDL 通訊協定。磁碟區、分割區和區塊通訊協定已統一為單一 fuchsia.storage.block.Block FIDL 通訊協定,可將區塊元件與驅動程式架構分離。

  • Blobfs 會停止將 Blob 做為檔案提供服務。系統不會再透過 fuchsia.io/File 提供 Blob,必須透過 BlobReader 存取,並透過 BlobCreatorBlobWriter 寫入。線上壓縮和 VMEX 能力也已移除。

  • 提升 Blob 磁碟區閃爍效能。透過讓用戶端取消稀疏酬載,閃爍新的 BLOB 磁碟區的速度會大幅提升 (從超過 120 秒降至 40 秒以下)。

  • 公開 Blobfs 覆寫設定。Blobfs 和 SDK 已新增 OverwriteConfiguration FIDL 能力,可讓產品控制 Blob 覆寫狀態和格式。

  • Fxfs 32 位元物件 ID 和快取。新的 Starnix 磁碟區會將 inode ID 限制為 32 位元 (導入不可回溯的 Fxfs 版本變更),並快取物件金鑰,大幅提升 GetAttributes 效能。

  • Fxfs 記憶體最佳化。Fxfs 可將 Merkle 驗證的記憶體用量減少至少 75%,並為可變動檔案的支援 VMO 命名為「fxfs-file」,以利記憶體剖析。

  • F2FS 同步處理機制已強化。修正孤立回收期間的競爭狀況,並改善 vnode 階層同步處理,以可靠地保留開放式孤立檔案的資料區塊。

  • 改善 Block Driver Framework。新的 block-relay 元件會將系統 GPT 分區直接轉送至驅動程式架構。伺服器實作的封鎖功能也改善了強制單元存取 (FUA) 處理程序,並將要求處理程序移至專屬執行緒,避免發生並行問題。

  • 全系統儲存空間行為更新。統一 read_dirents 一律為小型緩衝區傳回 ZX_ERR_BUFFER_TOO_SMALL,並移除硬式編碼的 PAGE_SIZE 假設,改用動態檢查,提升可攜性。

測試

測試版已進行下列更新:

  • fx 測試逾時、統計資料和可靠性。fx test 現在會將逾時委派給 test_manager,以收集回溯追蹤記錄、在偵錯期間自動停用逾時,並新增 --pr stats 標記。此外,我們也修正了錯誤,避免臨時套件伺服器在發生錯誤後洩漏資訊。

  • 關閉並重新啟動 API 遷移作業。淘汰測試介面 (例如 honeydewsl4f) 中的 PerformReboot,改用 ShutdownShutdownOptions。這項功能可讓用戶端指定明確的關機原因,進而提升重新啟動原因的追蹤成效。

  • Lacewing 和 Honeydew 輔助功能。新增支援功能:透過 device.register_for_on_device_ip_change() 處理測試期間的目標 IP 變更。序列介面也新增了 read 方法,可直接從序列埠讀取位元組。

  • 偵錯和系統目標改善項目。更新 test_manager 以遞迴附加 DebugAgent,確保涵蓋測試領域中的所有元件。此外,debug_block 裝置現在可以做為系統測試目標。

計時

我們對「時間記錄」進行了以下更新:

  • Starnix /dev/rtc0 實作。在 Starnix 中新增被動式 /dev/rtc0 裝置,可消除虛假的 rtc0 開啟錯誤。

  • 細微的鬧鐘驅動程式庫錯誤。在警報 FIDL API 中導入精細的驅動程式庫錯誤,以改善無法復原的錯誤回報功能。

  • 可設定的 Timekeeper 備援。將最低世界標準時間參考值做為可調整的產品組裝設定,以避免差異。

工具鏈

工具鍊已進行下列更新:

工具

工具的更新內容如下:

  • fx:macOS 支援已正式終止。fx 和相關 CLI 工具不再適用於 macOS,且現在會明確回報平台不受支援。

  • 新的 fx 偵錯指令。新增 fx debug 做為 ffx debug connect 的便利包裝函式,可在需要時自動啟動暫時性套件伺服器。

  • 已淘汰 fx unarchive-package。fx unarchive-package 開發人員殼層指令已淘汰,並完全由 ffx package archive extract 取代。

  • 新的 ffx 目標殼層外掛程式。導入 ffx target shell,透過 RCS 與目標裝置建立互動式殼層工作階段。

  • 新增 ffx 驅動程式代管程序子指令。推出 ffx driver host listffx driver host show,全面取代已淘汰的 ffx driver list- hosts 指令。

  • 針對 ffx 目標清單篩選位址。新增 --allow-addrs--deny-addrs 篩選選項,取代已淘汰的 --no-ipv4--no-ipv6 旗標。

  • 透過 Fastboot 刷寫未佈建的裝置。Fastboot 現在會在刷機期間自動偵測系統容器損毀的未佈建裝置,並直接覆寫 super,或提示完整抹除裝置。

  • 簡化 ffx 追蹤 FIDL 資料。ffx trace 現在預設會捨棄原始 FIDL 資料,讓 Perfetto UI 更簡潔,並提供新的 --retain-raw-fidl 旗標來覆寫這項行為。

  • ffx doctor USB 驅動程式庫檢查。ffx doctor 現在會明確檢查 ffx-usb-driver 程序狀態,如果插座路徑與設定的環境不符,就會發出警告。

  • FDomain 用戶端 API 擴充功能和同步重構。FDomain 用戶端 API 進行多項功能改善,並修正傳輸終止時工作停滯的問題。標準程式庫鎖定也已遷移至 fuchsia_sync,可自動顯示鎖定週期死結。

  • 改善偵錯工具的例外狀況處理機制。zxdb 現在會正確略過例外狀況、擷取一般當機的完整堆疊追蹤記錄,並加入新的 exception-info 動詞,用於詳細列印例外狀況。

追蹤

追蹤功能已進行下列更新:

UI

UI 方面有以下更新:

  • 防止空場景的 GPU 回退。在 Scenic 中新增預設黑色顯示層,防止意外的 GPU 回退,這類回退先前會導致空白場景的效能降低。

  • 已從 Scenic 移除 CpuRender移除 Scenic 內的 CpuRender 選項,簡化及精簡算繪路徑。

  • 啟用 Flatland 顯示器算繪重複使用功能。FlatlandDisplay.SetContent() 現在可以重複呼叫,以便在測試和應用程式中,更妥善地重複使用顯示執行個體。

  • 最佳化 Scenic 組合效能。如果沒有差異,系統會回收 SceneState 和略過 ViewTree 重新計算作業,大幅減少每個影格的 CPU 分配負擔。

  • 修正 Escher 合成器色彩偽影。RectangleCompositor 中修正色彩預先相乘,避免非預先相乘的混合模式出現視覺雙重相乘的構件。

  • 合併的 UI 輸入處理常式。將所有 UI 輸入處理常式移至單一事件迴圈,避免 CPU 優先順序轉移,並大幅提升輸入延遲一致性。

  • 在輸入管道中新增 Wake Lease 支援。輸入管道中的指標注入器、滑鼠、觸控和按鈕,現在可全面管理系統喚醒租用。

  • 輸入管道和 virtcon 快速鍵。修正輸入管道競爭導致的當機問題,確保只有在管道啟動後才註冊快速鍵。

影片

影片平台已進行下列更新:

  • 支援與頁面對齊的 VMO 分配和動態頁面大小。更新攝影機和媒體元件,使用執行階段網頁大小和網頁對齊分配,以符合嚴格的 zx_vmo_create_contiguous 規定。

WLAN 和連線

我們對 WLAN 和連線功能進行了下列平台更新: