日期:2025 年 4 月 8 日
版本:F26
我們已實施下列變更:
無障礙設定
我們已針對 A11y 進行以下更新:
- 新增設定,讓產品可從場景圖表中移除 A11y View,這可提供更大的彈性,同時保留平台程式碼的預設啟用狀態。
- 變更:fxr/1177413
音訊
我們已對 Audio 進行以下更新:
- 透過新的用途列舉和彈性通訊協定,改善音訊串流管理:我們推出了
AudioRenderUsage2
和AudioCaptureUsage2
列舉,以及Usage2
聯集,以改善音訊串流分類和管理。這包括為螢幕閱讀器提供新的ACCESSIBILITY
串流用途,以及 AudioCore 的內部遷移作業,以便使用這些新類型。相關的通訊協定和方法也已轉換為彈性,以提高適應性。 - 新增即時音訊裝置通知:在 Rust 共用支援程式庫中,新增
AudioDeviceRegistry
裝置事件訂閱項目,讓 Rust 用戶端在新增及移除音訊裝置時收到通知。- 變更:fxr/1150852
- 修正多項錯誤並進行多項改善:解決
aml-g12 driver
中與 VMO 大小計算相關的問題、改善音訊測試中檢查排序的穩定性、更新建構目標可見度以確保正確性,以及解決對臨時陣列參照的嚴格 LLVM 檢查問題。 - 移除未使用的音訊驅動程式庫:刪除未使用的
aml-dsp
驅動程式庫和程式庫,以簡化程式碼庫,並避免日後重構發生衝突。- 變更:fxr/1162754
藍牙
我們已對藍牙進行下列更新:
- 更新
ffx bluetooth peer
子工具,納入list
、list --details
和show
指令,取代先前在bt-cli
中的功能。 - 改善將大型窺探待處理作業拆成較小分塊的功能,以符合 FIDL 訊息大小限制。
- 變更:fxr/1179337
- 錯誤:fxb/369818216
- 更新
Uuid
類型,以便衍生Eq
和Hash
,讓集合運算和比較作業更容易。- 變更:fxr/1185556
- 已更新
fuchsia-bluetooth
目標,讓主機可使用,並讓ffx
存取必要類型。- 變更:fxr/1153395
- 錯誤:fxb/352389551
- 修正因
vec!
用法不當而導致的建構錯誤。- 異動:fxr/1172272
- 更新
bt-transport-uart
,只將一個讀取工作排入佇列,避免出現多個 HciTransport 連線要求的問題。- 變更:fxr/1178452
- 更新的徵求 UUID,可用於掃描篩選器清單。
- 變更:fxr/1177633
- 錯誤:fxb/42174576
- 更新 BCM4381 的 UART 旗標,以便正確設定並啟用 UART 流量。
- 變更:fxr/1174939
- 已更新
bt-hci-broadcom
中的韌體載入作業,以避免潛在的堆疊溢位。- 變更:fxr/1174715
建構
我們已針對 Build 進行下列更新:
- 新增對
bazel_test_package_group
和每個 API 級別.ifs
檔案的支援,以便使用共用資料庫。這些變更可強化測試中的模組化,並支援逐步開發介面。 - 改善建構系統的穩健性,並在準備 Bazel 整合作業方面取得進展。在
fx gen
期間重構工作區邏輯並產生remote_services.bazelrc
,有助於改善這些問題。 - 在 Rust 建構設定中新增設定檔支援功能。
profile-rust
變化版本現已推出,並可在 rustc 輸入內容中加入設定檔路徑,進而強化效能分析功能。 - 修正序列化問題:這個修正程式可改善建構系統的穩定性和可用性。
- 異動:fxr/1187292
- 錯誤:fxb/389747855
- 簡化 SDK 建構程序。為所有類別要求 SDK 區域、重新定位工具鍊定義、在組合中新增指標記錄器設定,以及移除
emu_dimensions
,可改善 SDK 建構體驗。 - 改善 LinkMap 功能:修正 generate_linkmap 中的錯誤,包括標記和命名修正。
- 變更:fxr/1164755
鈷豔藍
我們已為 Cobalt 進行下列更新:
- 將 Cobalt 切換為 Rust 記錄:Cobalt 的假資料使用 Rust 記錄,而非追蹤記錄。
- 變更:fxr/1178820
- 錯誤:fxb/344980783
- 改善設定驗證工具測試:在設定驗證工具中新增指標與報表的測試。
- 變更:fxr/1167098
- 推出原型 STRUCT 指標註冊、驗證和觀察功能,包括使用範例,說明如何透過欄位、類型和報表定義結構體指標,以便匯總資料。
- 變更:fxr/1154692
- 改用參數化測試,改善整數直方圖報表的測試功能。
- 變更:fxr/1178562
- 實作浮點步進調節係數,並驗證
step_multiplier
大於 1。 - 更新 Tink、Abseil-cpp、Protobuf 和 Protobuf-gn 子模組,並解決已淘汰的 Tink API 用法。
- 在設定驗證工具中新增指標與報表的測試,以改善測試涵蓋範圍。
- 變更:fxr/1164614
元件架構
我們已為元件架構進行下列更新:
- 更新元件管理工具,讓該工具能夠從公開的根目錄中找出追蹤能力。
- 變更:fxr/1159135
- 改善重複商品的錯誤訊息,使其更清楚易懂。
- 變更:fxr/1185612
- 修正元件偵錯模式中的無法到達模式 Lint,以及元件架構中的 Clippy Lint。
- 修正
on_terminate=reboot
的處理方式,以便乾淨俐落地停止,並透過重複待處理的關機記錄改善擷取方式。 - 更新元件管理工具,以便使用診斷字典中的
LogSink
,並透過常見的Echo
伺服器程式碼改善incoming_integration_test
。
診斷
我們已對「診斷」功能進行以下更新:
- 改善
ffx inspect
工具,在產生的選取器中使用樹狀結構名稱、簡化存取子選取方式、存取子清單,並引入--component
取代--manifest
。 - 更新 Archivist pipeline 通訊協定,以便在字典
diagnostics-accessors
中使用,簡化其路由和組合可設定性。Scrutiny 支援動態字典。 - 淘汰
ffx log
中的--select
和--force-select
,改用--set-severity
和--force-set-severity
。ffx log
現在也支援模糊比對元件,並修正了非動態選取器。 - 更新 Rust 記錄功能,以便使用
log
並支援鍵/值組合 - 更新篩選器,支援
CountChildren
。- 變更:fxr/1169237
- 錯誤:b/367365982
- 推出了檢測資料處理元件,可透過
fuchsia_debugdata::Publisher
發布設定檔。- 變更:fxr/1169956
- 錯誤:fxb/42068707
- 新增「檢查分配」分析工具,可分析 JSON 輸入內容中的分配大小。
- 異動:fxr/1175804
- 錯誤:fxb/340342858
- 為
ffx
分析器新增buffer_size_mb
引數,以便控制每個 CPU 的緩衝區大小。- 變更:fxr/1175519
- 重新整理診斷工具路徑,以便優先使用特定路徑並使用診斷字典。包括移除
LogSink
和InspectSink
的不必要路徑,以及從字典中路由檢查。 - 改善自剖析報表和檢查效率。自訂報表現在會在自訂匯總中摘要非葉節點。Inspect 現可自動在 C++ 中移除重複的字串參照。
- 將 LogSink 設為開放式通訊協定,方便 API 進行演進。
- 變更:fxr/1185852
- 錯誤:fxb/319500512
- 更新意見回饋元件,以便處理多種重新啟動前的原因。新增了
kNetstackMigration
支援功能,以及LastReboot
資訊中的「planned」布林值。- 變更:fxr/1183312
- 修正診斷組合項覆寫的序列化問題。
- 異動:fxr/1187292
- 錯誤:fxb/389747855
- 新增
inspect-runner
測試,驗證驅動程式是否公開檢查功能。- 變更:fxr/1185918
- 修正 InspectSink 路由問題。
- 變更:fxr/1185918
螢幕
我們已對多媒體廣告進行以下更新:
- 顯示器驅動程式庫堆疊正在遷移至新型 Fuchsia 平台基礎架構,例如 DFv2 和 FIDL。
驅動程式架構
我們已對 Driver Framework 進行下列更新:
- 在驅動程式管理器中新增
RestartWithDictionary
FIDL 方法,以便重新啟動具有自訂功能的節點。- 異動:fxr/1118792
- 新增對驅動程式管理器中的匯流排拓樸的支援,讓用戶端可以查詢匯流排區段。
- 變更:fxr/1148813
- 使用
fake-bti
和fake-object
元件擴充 SDK,以強化驅動程式庫開發作業。 - 已為
driver_index
啟用on_terminate: reboot
,以便清除元件退出。- 變更:fxr/1184778
- 改善建構期間的驅動程式元件資訊清單驗證功能。
- 變更:fxr/1181593
FIDL
我們已對 FIDL 進行以下更新:
- 製作新的 Rust FIDL 繫結原型、修正事件方法的請求參數,並移除 fidlc 中的
kind
,改用kind_v2
。 - 已將
\@no_resource
註解新增至 fidlc,並為 FIDL 類型定義可序列化的名稱。
韌體
我們已針對韌體進行以下更新:
- 為 NUC 和 VIM3 新增「slot-unbootable-reason」快速啟動變數,指出為何標示某個插槽無法啟動
- 變更:fxr/1173757
GPU
我們已針對 GPU 進行下列更新:
- 改善多個領域中的記錄和錯誤處理功能。在
HangRecovery
中新增更多記錄,以便更清楚顯示函式行為、在 MagmaTestDriverBase 中將預設測試狀態設為NOT_FOUND
,以便擷取遺漏的測試,並改善 Magma 錯誤記錄,以便顯示狀態字串而非數字。 - 簡化 Magma 元件和修訂的指令緩衝區提交作業。移除了未使用的
CachePolicy
參數和magma::ZirconPlatformDevice
類別。在 msd_c.h 中新增內容 API 和序列信號匯入/釋放函式。修訂的指令緩衝區提交作業,可支援可變數的指令緩衝區數量,並修正零資源處理作業。 - 改善 Vulkan 和 Swapchain 實作項目。將 flatland_view 遷移至新的 C++ 繫結,為 Vulkan 交換鏈層新增碎片,並修改 vkcube 以使用一般交換鏈碎片。
- 修正當機和不穩定問題。在非密封和模擬器環境中停用
ForceQuit
和AcquireZeroTimeout
測試,以便進行圖片管道交換鏈結測試,解決當機問題。重新加入誤刪的 DFv2 驅動程式庫單元測試。將 msd-arm-mali 的關閉逾時時間提高至 10 秒,以減輕片段問題。將zx_bit_pin
區塊大小縮減至 32 MB,以避免在綁定記憶體時發生錯誤。 - 新增及更新 Magma 平台測試。在 Mali 測試驅動程式庫中新增測試,包括大型對應測試,以及更新的剖析器和 MMIO 測試。
- 變更:fxr/1184654
物聯網、Matter 和 Thread
我們已針對 IOT、Matter 和 Thread 做出以下更新:
- 更新 IpAddr、Lowpan 和 Weave 的記錄:Lowpan 和 Weave 現已使用 Rust 記錄。
- 已解決 clippy lint 違規問題:現在已修正建構重構的 Lint 錯誤。
- 異動:fxr/1167272
- 錯誤:fxb/381896734
- 修正 Matter 的事件時間估算器。
核心
我們已對核心進行以下更新:
- 推出用於評估記憶體停滯的新架構,提供系統效能瓶頸的深入分析資料。這包括將
ZX_INFO_MEMORY_STALL
新增至zx_object_get_info
,以及專用於管理停滯測量系統呼叫的停滯資源。
平台驅動程式
我們已針對平台驅動程式進行下列更新:
- 更新多個驅動程式 (包括 sdmmc、sdhci、aml-uart、aml-securemem、vim3-clk 和 pdev),以便使用 SDK 程式庫和 FIDL 處理中繼資料和通訊,取代舊版方法。
- 重構熱能驅動程式庫查詢表和感應器驅動程式庫。感應器驅動程式庫現在使用新的服務監控器和記錄功能,而非追蹤功能。
- 將 dwc3 和 vim3 驅動程式遷移至 Bazel。Vim3 網頁掃描器引數現在是平台設定的一部分。
- 分別使用程式碼重構和描述元結構體,改善感應器管理器和 starnix nanohub 驅動程式庫。
- 已更新
aml-uart
驅動程式庫,以便使用單一調度器和WakeLease
類別,並移除aml-uart
的 DFv1 驅動程式庫。
電源管理
我們已對電源管理功能進行以下更新:
- 在驅動程式中新增了 Inspect 整合功能,包括元素執行元件和嘗試時間記錄的電源驅動程式,以及用於驗證驅動程式庫檢查曝光率的新測試。
- 在 USB 端點中新增選用的喚醒租約和與完成作業相關聯的租約支援功能,以改善電源管理。
- 實作假電源感應器進行測試,模擬未整合 ODPM 的裝置上 ODPM 的行為。
- 變更:fxr/1180113
- 實作新的
Admin.PerformReboot
API,用於啟動裝置重新啟動,同時維持對已淘汰的Admin.Reboot
的支援。- 異動:fxr/1179339
- 改善電源管理偵錯和指標,包括針對元素執行緒的檢查整合和新的多步驟暫停/繼續執行延遲指標。
- 停用租用權最佳化功能,強化電源管理。
- 變更:fxr/1185915
- 使用較高層級的電源方法簡化 SDMMC 驅動程式庫。
- 變更:fxr/1185697
荒漠油廠
我們已對 Rust 進行以下更新:
- 已將 libc crate 更新至 0.2.169。
- 變更:fxr/1187914
- 將 either 和 bitflags 的 crates 分別更新為 1.13.0 和 2.7.0。
- 將 tokio 更新為 LTS 1.38.1 版。
- 變更:fxr/1185753
- 為追蹤資料庫建立許可清單,允許多個用戶端使用。從診斷/記錄中移除追蹤程式庫的用量,因此可縮減大小。記錄說明文件現在會參照記錄資料夾,且基準測試已調整。
Starnix
我們已為 Starnix 進行下列更新:
- 透過多個新的鉤子和改善的權限檢查,強化 sestarnix 的安全性。這些鉤子包括
file_ioctl()
、inode_getattr()
、inode_permission()
、inode_listxattr()
、sb_statfs
、sb_kern_mount
、sb_mount
和sb_umount
的鉤子,以及可設定的todo-deny
項目支援、根據政策驗證安全性層級、透過檔案名稱轉換標示anon_inodes
,以及在file_permission()
中使用快取的安全性類別。此外,file_permission()
現在會略過FsNode
權限檢查以提升效能,並新增剖析資料以進行診斷、強制執行 readlink 權限檢查,以及修訂尚未標示的檔案系統處理方式。 - 新增模組將目錄匯出至
/proc/device-tree
的功能,並公開 sysfs 顯示面板端點,以支援端口顯示設定初始化。 - 擴充 cgroup 支援功能,並解決測試不穩定的問題。修正 cgroup 測試不穩定的問題,並支援在 cgroup 中凍結工作。
儲存空間
我們已對儲存空間做出以下更新:
- 為虛擬檔案系統 (VFS) 新增 Get/SetFlags2 支援,並將 SetFlags 變更為使用 io2 標記。特徵方法已從
update_flags
重新命名為set_flags
,fuchsia.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 設定。
- 改善儲存空間和基準測試功能:儲存空間基準測試現在會在支援儲存空間主機的專屬領域中執行。
測試
我們已為測試功能進行以下更新:
- 強化 Utest Core:改善核心單元測試的幾項功能,包括超時修正、記憶體對應調整和強化的當機處理機制。
- 強化測試基礎架構和工具:針對測試基礎架構和工具提供各種強化功能和錯誤修正。
計時
我們已對打卡系統進行以下更新:
- 實作新的
fuchsia.time.alarms
FIDL API,用於管理喚醒鬧鐘,並利用 hrtimer 裝置做為後端。這包括要求 hrtimer 存取權、為 Starnix 設定 API 的條件式服務,以及將其與 vim3 板整合。喚醒鬧鐘管理員也收到了整合修正,包括GetProperties()
和暫時性的CancelSync()
Fidl API,而alarms
crate 也已分離出來,以利測試。在喚醒鬧鐘服務中新增追蹤功能,並在 hrtimer 驅動程式庫程式中實作解析度修正,解決長時間休眠的問題。也將max_ticks
的詳細資料新增至 hrtimer FIDL,並修正 hrtimer 設定,以便支援更多平台。 - 重新設計的時間管理員持續狀態,以便日後擴充資料。
- 變更:fxr/1186616
工具
我們已對工具進行下列更新:
ffx
以下是 ffx
的更新內容:
- 強化模擬器,提供 UEFI 支援功能,以便執行完整磁碟 GPT 映像檔啟動和 OTA 測試。
ffx emu start --uefi
標記可啟用這項功能。- 變更:fxr/1151236
- Bug:b/369407864、b/369410009
- 在
ffx log
中新增模糊搜尋元件別名和網址的支援功能。請使用--component
標記 (取代已淘汰的--moniker
標記)。- 變更:fxr/1172436
- 改善模擬器 MAC 位址衍生值,以便進行一致的 UEFI OTA 測試。名稱為
fuchsia-5254-X-Y
的模擬器會直接從名稱衍生 MAC 位址。- 變更:fxr/1170873
- 錯誤:b/383061309
- 延長
ffx target wait
逾時時間。ffx target wait
現已設有 6 秒的逾時值,可更妥善地處理速度較慢的裝置。- 變更:fxr/1169238
- 改善
ffx
工具中的錯誤處理和環境變數處理機制。針對ffx product
下載作業提供更詳盡的錯誤訊息。ffx config
中更嚴格的環境變數處理機制。 - 修正
check-goldens
和ffx emu
錯誤。check-goldens
不再發出 GN 路徑警告。ffx emu
現在在使用 QEMU v9 以上版本時,會正確指派主機通訊埠。
fx
以下是 fx
的更新內容:
- 修正
fx flash-kola
產品組合選項。fx flash-kola
會正確選取多產品版本中的產品組合。- 異動:fxr/1167112
UI
我們已針對 UI 進行以下更新:
- 在 Scenic 中實作效能最佳化。包括快取 koids、取代互斥鎖佇列、避免在運算中複製、實作新的 DisplayPower 通訊協定,以及最佳化資料處理。
- 為 Escher 和 Vulkan 進行最佳化和更新。這包括在 Escher 中預先配置結構體、更新 Vkcube 以使用交換鏈結碎片,以及為 Vulkan 交換鏈結層新增碎片。
- 為 CPU 算繪器新增線性混合和多圖支援功能。
- 改善 UI 開發人員偵錯工具。這包括透過將 ui_visual_debugging_level 傳遞至視窗管理員來進行偵錯,以及透過新的 Cycle、List 和 SetOrder 函式強化視窗管理。
影片
我們已對影片做出下列更新:
- 重新配置 MPSC 佇列:MPSC 佇列容器已移至常用目錄,以便在多個 Scenic 元件中使用。
- 變更:fxr/1178434
- 更新媒體記錄:媒體元件中的記錄功能現在使用 Rust 記錄,而非追蹤,以改善記錄功能。
- 變更:fxr/1177343
- 錯誤:fxb/344980783
WLAN
我們已對 WLAN 進行以下更新:
- 在檢查中加入詳細不相容性詳細資料,並直接在掃描結果中提供不相容性資訊,以改善掃描結果資訊。
- 改善 WLAN 元件的穩健性和錯誤處理機制。新增 Lint 來防止恐慌,修正 Fullmac 和用戶端介面復原期間的潛在展開錯誤,並改善 PhyManager 中的錯誤追蹤和回報。WLAN 裝置監控器和設定現在會在發生錯誤時觸發重新啟動行為。
- 透過簡化架構和強化功能,改善了監視器服務和裝置監控器。簡化監視器服務架構、強制 DeviceWatcher 的用戶端限制、採用 DeviceMonitor 伺服器的慣用風格、整合新的介面處理方式,以及重構 CreateIface 要求/回應格式。
- 漫遊基礎工作。漫遊監控器現在可以指定主動或被動掃描,並更新漫遊 syslog 和 SME 代理程式
- 在 WLAN 堆疊中實作各種強化功能。包括切換至 Rust 記錄、移除不必要的 WPA3 支援檢查、在個別連線嘗試之間新增掃描輪詢、使用 LastSample 填入政策進行遙測計數器、修正 ffx wlan 引數攝入、新增 SYN4381 晶片支援,以及針對國家/地區代碼設定新增 API。
- 在 Devicetree 中新增支援序列裝置複合節點和 iommu 名稱屬性,以改善裝置管理。
- 新增了模擬測試,用於驗證 BRCMFMAC 驅動程式的頻道能力。
- 變更:fxr/1165055
- 更新 BRCMFMAC 驅動程式庫,以便有條件地設定 RSNE IE,修正關聯指示中的錯誤。
- 變更:fxr/1182452