日期:2025 年 10 月 9 日
版本:F28
我們已進行下列變更:
音訊
音訊的更新內容如下:
- 使用新的 FIDL API
audio_recording
服務,以 Zircon Socket 進行主機驅動測試,並重構服務,提升可靠性和簡便性。- 變更: fxr/1259507、 fxr/1292548
- 強化音訊驅動程式
signalprocessing
通訊協定的測試涵蓋範圍。 包括為拓撲、元素和狀態管理新增全面驗證,以及更新虛擬音訊測試驅動程式庫,以利進行這些更嚴格的測試。 - 改良
ffx audio
開發人員工具,提供更強大的play
指令、用於診斷的資料路徑追蹤功能,以及device info
指令的更直覺式輸出內容。 - 在測試案例後新增延遲,以減輕間歇性
ZX_ERR_ALREADY_BOUND
失敗情形,進而提升audio_driver_admin_tests
的可靠性。- 變更: fxr/1279375、 fxr/1301624
- 更新音訊驅動程式庫測試,以驗證支援僅限立體聲
DaiFrameFormats
的驅動程式 (例如I2S) 正確宣傳僅支援立體聲。- 變更: fxr/1288524
藍牙
藍牙的更新內容如下:
- 免持聽筒設定檔 (HFP) 免持聽筒角色大幅改善
- 變更: fxr/1294025、 fxr/1292774、 fxr/1006612、 fxr/1002861、 fxr/990257、 fxr/1257844
- 錯誤: b/42081254
- 提升 RFCOMM 穩定性和效能:實作背壓機制、分離 RX/TX 資料路徑,並將信用額度水位最佳化,避免在高輸送量情境中發生封包遺失問題。
- 推出新的測試功能程式庫和
bt-affordances-server
元件,可透過ffx bluetooth
控制藍牙。- 變更: fxr/1273999、 fxr/1252446、 fxr/1222506
- 錯誤:fxb/409779607
- 重構藍牙主機初始化,動態提供 HCI 驅動程式給特定
bt-host
元件,而非公開共用裝置目錄,提升安全性和彈性。 - 新增 FIDL API,讓用戶端與 LE 週期性廣告列車同步。
- 變更: fxr/1307249
- 在啟動時啟用低耗電模式,減少整體耗電量。
- 變更: fxr/1271388
- 加快 A2DP 來源整合測試速度:允許更多平行測試執行作業。
- 變更: fxr/1328367
- 錯誤:fxb/42148322
- 修正並啟用先前停用的 AT 指令測試,確保這些測試會做為持續整合檢查的一部分執行。
- 變更: fxr/1329344
- 修正測試中
WatchState
的HostServer
行為,確保其可正常運作為暫止的 Get,提升 GAP 測試的可靠性。- 變更: fxr/1322704
- 已啟用
bt-snoop-from-snapshot
工具,可處理 Starnix 錯誤報告- 變更: fxr/1310205
建構
我們對 Build 進行了下列更新:
- 使用 Bazel 建構 Fuchsia IDK (可整合的開發人員套件),而非 GN,這是建構系統遷移作業的一大里程碑。這項異動包括移除舊版
meta.json
生成指令碼,並為 SDK 原子類別、API 區域和標頭檔案新增驗證。 - 修正了導致 Bazel 漸進式建構作業中斷的重大錯誤,方法是修正 Clang 工具鍊版本檔案的追蹤方式。
- 變更: fxr/1326824
- 錯誤:fxb/432809101
- 提升 Remote Build Execution (RBE) 效能:將多執行緒 Rust 和 C++ ThinLTO 連結工作導向較大的工作站,並提高快取命中率。
- 提升產品建構效能:透過單一簡化的動作,執行圖片組裝和產品組合建立作業。
- 變更: fxr/1317731
- 更新了建構再生器,可列印緩慢步驟的計時資訊,協助找出效能回歸情形,並修正了導致每次建構時不必要再生的錯誤。
- 變更: fxr/1313624、 fxr/1308884
- 錯誤:fxb/427689271
- 為 RISC-V 建構作業啟用框架指標,現在在 LTO 建構作業期間,會正確使用原子 ('A') ISA 擴充功能。
- 變更: fxr/1265864、 fxr/1266384
- 錯誤:fxb/42086180
鈷豔藍
Cobalt 的更新內容如下:
- 簡化管道設定邏輯:以更直接的
SetChannel
取代SetSoftwareDistributionInfo
函式。- 變更: fxr/1330621
- 報表定義新增 Cookie bucket 支援,可計算信賴區間。這項變更也將
COOKIE_BUCKET_ID
重新命名為COOKIE_BUCKET
,讓命名更加清楚。- 變更: fxr/1297673、 fxr/1290824
元件架構
元件架構已進行下列更新:
- 新增內建的調度器元件,可動態啟動工作者元件,以回應能力要求。
- 變更: fxr/1245065
- 錯誤:fxb/415968290
- 在
fuchsia.component.Realm
通訊協定中新增GetChildOutput
函式,讓父項可使用 Bedrock API 存取子項的輸出字典。- 變更: fxr/1269705
- 錯誤:fxb/415965735
- 透過更有效率的代號資料表示法、延遲物件例項化和隨選要求產生等最佳化措施,大幅減少
component_manager
的記憶體用量。- 變更: fxr/1282667、 fxr/1262564
- 強化開發人員工具和可觀測性。
ffx component doctor
指令現在可以檢查字典內容,且可為元件啟用 heapdump 檢測,元件執行個體 ID 現在會透過檢查公開。 - 修正當元件向不同來源 (例如
parent
和framework
) 公開兩個具有相同目標名稱的功能時,發生的當機問題。- 變更: fxr/1294625
- 將從啟動檔案系統建立的 VMO 標示為不可調整大小,提升效率並防止對應失敗。
- 變更: fxr/1328664
- 錯誤: b/293969808
- 將
fuchsia.time.UtcClock
記憶體對應化,以便從 Starnix 等對效能要求嚴苛的元件更有效率地讀取時鐘。- 變更: fxr/1295066
- 更新 Component Manager 的沙箱實作,改用新版
fuchsia.io/Directory.Open
方法,提升與最新fuchsia.io
伺服器的相容性。- 變更: fxr/1319626
- 錯誤:fxb/324111518
- 已將
full-resolver
元件合併至pkg-resolver
。這項合併作業會從核心集移除元件,藉此減少工程建構的記憶體用量。- 變更: fxr/1274091
診斷
診斷功能已進行下列更新:
- 提升 Archivist 的可靠性和效能:新增恐慌掛鉤、為內部記錄緩衝區提供更有效率的
IOBuffer
,以及將序列記錄寫入作業移至專用執行緒,防止封鎖。- 變更: fxr/1329884、 fxr/1291128、 fxr/1319904
- 錯誤:fxb/319500512
- 為記錄服務導入新的
Flush
方法,確保所有緩衝記錄都會寫入,同時解決 Archivist 中潛在的終止問題。- 變更: fxr/1322376、 fxr/1324244
- 讀取檢查資料時,如果元件沒有回應,系統會更穩定。
現在,系統會對延遲節點的個別 FIDL 連線套用逾時時間,避免單一緩慢節點封鎖整個快照。
- 變更: fxr/1256184、 fxr/1257865
螢幕
多媒體廣告已進行下列更新:
- 將
ti-lp8556
和vim3-pwm-backlight
驅動程式遷移至 DFv2,並以宣傳的 FIDL 服務取代 devfs 節點,改善元件互動。- 變更: fxr/1323445、 fxr/1323684
- 統一執行緒模型、確保用戶端同步終止,防止使用後釋放錯誤,並修正圖片清除競爭條件,藉此提升 Display Coordinator 的穩定性。
- 變更: fxr/1328164, fxr/1328809, fxr/1329630
- 錯誤:fxb/336394440
- 將顯示器驅動程式庫介面從 Banjo 遷移至 FIDL,並導入多個 FIDL 配接器 (
EngineListener
、DisplayEngine
) 和統一的EngineListener
介面,以抽象化基礎通訊協定。 - 簡化顯示 FIDL 和 Banjo API:重新命名模稜兩可的型別 (例如將
DisplayMode
重新命名為DisplayTiming
)、移除多餘的BufferId
結構體,以及簡化CheckConfig()
方法。 - 強化 VSync 處理機制:針對所有顯示器驅動程式的所有 VSync 事件,要求提供有效的設定時間戳記,並移除用戶端在啟用 VSync 後選擇停用的功能。
- 變更: fxr/1329640, fxr/1332953
- 錯誤:fxb/401388764, fxb/316631158
- 強化設定驗證:拒絕空白設定、強制執行驅動程式庫宣告的
max_layer_count
,以及新增支援指定顏色圖層的display_destination
。 - 提升開發人員體驗:為多種顯示 API 類型新增
std::format
支援功能,並採用更完善的型別安全性和轉換模式,更新內部api-types
C++ 程式庫。- 變更: fxr/1332459, fxr/1319064
- 錯誤:fxb/314126494、 fxb/430957800
驅動程式架構
Driver Framework 的更新內容如下:
- 持續從 DFv1 遷移,移除許多已淘汰的 DDK 函式和中繼資料 ID。包括移除
device_add_metadata
、configure_auto_suspend
和舊版中繼資料常數 (例如DEVICE_METADATA_WIFI_CONFIG
)。 - 修正驅動程式庫節點穩定性問題:確保驅動程式驅動程式代管程序意外關閉時,驅動程式庫程式節點會適當隔離。
- 變更: fxr/1319550
- 持續將驅動程式遷移至 DFv2,包括
aml-pwm
、aml-nna
和aml-meson-power
。i2c-channel
程式庫也已更新為 DFv2 相容版本,可支援新式驅動程式。 - 啟用驅動程式庫元件,實作新的
Suspendable
特徵,加入選用的暫停和繼續生命週期掛鉤。- 變更: fxr/1307009
- 移除多個已淘汰的子指令 (包括
device
、lspci
、lsusb
和run-tool
),並新增node
子指令,提升人體工學設計,簡化ffx driver
外掛程式。 - 強化 Rust 驅動程式庫生態系統,新增
PlatformDevice
特徵,改善使用虛擬平台裝置進行測試的作業,並提供輔助方法,從啟動引數剖析驅動程式庫設定,以及支援模擬 MMIO 作業的mock-mmio
Crate。- 變更: fxr/1315256、 fxr/1304086
- 啟用驅動程式代管程序,偵測並減輕執行緒停滯問題:主動產生新的執行緒,確保進度順利推進,並根據實際停滯時間調整停滯計時器檢查。
- 變更: fxr/1153333, fxr/1327293, fxr/1309497
- 錯誤:fxb/42085539
- 修正平台匯流排驅動程式中的問題:預設 IRQ 模式未正確設定,可能導致層級觸發的中斷失敗。
- 變更: fxr/1294323
- 推出新的核心驅動程式和 FIDL 程式庫,用於互連。這個系統會管理及彙整多個用戶端的頻寬要求,並傳送至單一供應商驅動程式庫,簡化硬體互動。
- 變更: fxr/1261365、 fxr/1261364
意見回饋
意見回饋功能已進行下列更新:
- 產品現在可以透過設定檔,從快照中排除特定註解。這樣可減少不相關的資料,並避免收集無法使用的註解時發生錯誤。
- 新增多個註解,可改善診斷功能,包括
device.total-suspended-time
、system.last-reboot.total-suspended-time
、system.last-reboot.runtime
和build.platform.utc-backstop
。 - 使用
weight
參數強化crash_reporter
FIDL API,讓單一當機報告代表多個事件。- 變更: fxr/1286646
- 將擷取記錄的格式從 JSON 變更回 FXT,以解決效能問題。
- 變更: fxr/1275450
- 錯誤:fxb/389545819
- 改善診斷功能:在系統記錄記錄器的關機訊息中新增時間戳記,並記錄因快取空間不足而暫時儲存報表的時間。
- 變更: fxr/1298604、 fxr/1277299
- 錯誤:fxb/424240609、 fxb/360393048
- 新增
sysinfo_feedback_id
的設定選項。- 變更: fxr/1326965
- 錯誤:fxb/427264599
- 修正問題:系統會向 Cobalt 回報錯誤的重新啟動原因。
- 變更: fxr/1322850
- 錯誤:fxb/424646831
- 更新意見回饋,改為根據目前的註解數量進行檢查,而非舊版註解數量。
- 變更: fxr/1294865
- 錯誤:fxb/422177087、 fxb/373463212
- 重構修訂者測試,提升清晰度和可維護性。
- 變更: fxr/1329428, fxr/1328804
- 錯誤:fxb/383378552
FIDL
FIDL 的更新內容如下:
- 最佳化 C++ FIDL 程式碼產生功能,將產生的函式主體移出標頭並移至單一來源檔案,以縮短建構時間。這項變更可大幅加快 C++ 目標的編譯速度。
- 變更: fxr/1265227
- 錯誤:fxb/361634289
- 擴充 ABI 相容性檢查工具,可針對所有類別的 SDK FIDL 程式庫執行檢查,提升 API 穩定性保證。
- 變更: fxr/1261524
韌體
韌體更新內容如下:
- 實作傳遞開機載入程式檔案的標準機制。
現在可以使用
/chosen/google/bootloader-files
devicetree 節點,將開機載入程式檔案 (例如 SSH 金鑰) 傳遞至 Fuchsia。相關修正措施可確保這些檔案的暫存緩衝區正確對齊。- 變更: fxr/1295284、 fxr/1296945
GPU 和圖形
GPU 和 Graphics 的更新如下:
- 為 GPU 用戶端導入信任路徑,允許 Scenic 等信任的元件要求較高的 GPU 排程優先順序。包括新的
fuchsia.vulkan.loader.TrustedService
、可信的 Magma FIDL 通訊協定,以及簡化裝置探索作業的新magma_enumerate_devices
API。 - 新增對整個圖像堆疊的
STRAIGHT_ALPHA
混合模式支援,可轉譯尚未與 Alpha 值預先相乘的來源像素。包括 Flatland 中的新BlendMode2
,以及 Vulkan 指令緩衝區管線的更新。- 變更: fxr/1317804、 fxr/1326845
- 改善 GPU 驅動程式的電源管理:將
msd-arm-mali
驅動程式庫遷移至 ElementRunner 通訊協定,並在 Magma sys_driver 中建立一般電源管理工具,處理電源狀態要求。- 變更: fxr/1327299、 fxr/1303184
- 為 Vulkan 交換鏈新增即時呈現模式的支援功能,方便用戶盡快推送影格,以便在基準化時使用。
- 變更: fxr/1234054
- 更新預先建構的 Arm Mali ICD,納入多項改善項目,包括支援
VK_FORMAT_A2B10G10R10_UNORM_PACK32
格式和其他穩定性修正。 - 修正 use-after-free 錯誤,並新增主動取消用戶端連線的邏輯,以提升
msd-arm-mali
驅動程式的穩定性,避免連線重複造成硬體錯誤。- 變更: fxr/1291784、 fxr/1284084
- 已將 Magma 驅動程式庫測試遷移至標準驅動程式庫測試夾具和
fdf::AddOwnedChild()
,方便編寫及解讀測試。- 變更: fxr/1290424
- 錯誤:fxb/328305994
I18n
I18n 的更新內容如下:
- 更新 Fuchsia 的本地化匯出作業。
- 變更: fxr/1273986
物聯網、Matter 和 Thread
我們對物聯網、Matter 和 Thread 進行了以下更新:
- 已變更登陸的低功率無線個人區域網路 ePSKc (用於委派作業的強化預先共用金鑰),包括更新 OpenThread 依附元件、新增 Rust 繫結,以及與 FeatureConfig 服務整合。F28 不會啟用這項功能。
- 更新 LoWPAN 無線電平台,以處理 OpenThread 狀態變更,並啟用 CSL (Coordinated Sampled Listening) 傳輸器功能。
- 變更: fxr/1316006、 fxr/1315585
- 錯誤:fxb/424092850
- 實作重試機制,在發布服務失敗時重試,藉此提升 LoWPAN 邊界代理的可靠性。
- 變更: fxr/1255430
- 將 Weave 中的虛假目錄檔案設為唯讀,提升安全性。
- 變更: fxr/1327164
- 錯誤: b/334892038
核心
我們對 Kernel 進行了以下更新:
- 在 ARM64 上強化 CPU 暫停和繼續功能。整合 PSCI
CPU_SUSPEND
介面,並為 GICv3 中斷控制器和平台計時器新增暫停/繼續掛鉤,支援 CPU 暫停。為改善診斷功能,我們推出了新的 API,可回報系統喚醒來源。 - 推出更有效率的壓縮網頁儲存系統。以新的以時段為基礎的系統取代
VmTriPageStorage
實作項目,大幅減少記憶體儲存空間的負擔,從約 24% 降至約 5%。
網路堆疊
網路堆疊已進行下列更新:
- 為 IPv4 實作重複位址偵測 (DAD)。DHCP 用戶端現在會使用這項功能,避免新取得的位址發生 IP 衝突。
- 變更: fxr/1279264、 fxr/1290304
- 推出
fuchsia.net.settings
FIDL API,可動態設定網路設定,例如介面預設值和通訊端緩衝區大小。- 變更: fxr/1298364
- 錯誤:fxb/423607755
- 在 Netstack3 中啟用 eBPF 篩選器支援,用於輸入和輸出封包,可進行進階封包檢查和操控。
- 變更: fxr/1291250
- 錯誤: b/407809292
- 將 socket-proxy 元件設為重要,確保插座可用性和系統穩定性,因此終止時裝置會重新啟動。
- 變更: fxr/1329389
- 新增 FIDL 支援功能,可管理介面本機路由表,實現更精細的路由控制。
- 變更: fxr/1286598
- 錯誤:fxb/417225664
- 在 Netstack3 中實作有序的關機路徑,確保元件能乾淨且可靠地終止。
- 變更: fxr/1255691
- 在 Netstack3 中導入非重要傳輸通訊協定的動態序列化程式,大幅縮短編譯時間並縮減二進位檔大小。
- 變更: fxr/1324946
- 為 json5 設定檔啟用 Netcfg 支援功能,並透過註解和尾端逗號等功能,提升可讀性和可維護性。
- 變更: fxr/1309304
- 防止 Netstack3 轉送具有連結本機位址的 IPv6 封包,符合 RFC 4291 規範。
- 變更: fxr/1318785
- 修正 TCP 時間區間大小計算中的錯誤,這個錯誤可能會導致時間區間大小過大而發生恐慌。
- 變更: fxr/1282284
- 修正競爭狀況,避免快速停止及啟動重複位址偵測時發生恐慌。
- 變更: fxr/1306724
- 強化 Netlink 子系統,支援非受管理介面本機路由表。現在,當新增 IP 位址時,系統不會再安裝
/0
和/32
子網路路徑,與 Linux 行為更加一致。- 變更: fxr/1329160、 fxr/1316944
- 錯誤:fxb/427226662、 fxb/430063324
平台驅動程式
平台驅動程式的更新內容如下:
- 大幅重構 DWC3 USB 驅動程式庫,改用單一執行緒模型,簡化鎖定作業,並修正端點狀態追蹤問題。新增對監管機構繫結的支援,並對互連資源進行投票。
- 推出新的核心互連驅動程式,用於管理及彙整匯流排頻寬要求。此外,我們也改善了時脈和中斷的 Devicetree 訪客,以利更穩健地探索硬體,並支援可喚醒的中斷。
電源管理
電源管理功能已進行下列更新:
- 已將多個電源驅動程式和元件遷移至使用
ElementRunner
通訊協定,該通訊協定會反轉用戶端/伺服器與 Power Broker 的關係,以便更直接地管理電源層級。包括 UFS、msd-arm-mali、aml-sdmmc、sdmmc 和 timekeeper 元件。 - 強化電源管理和暫停功能,提供新的 API 來回報系統喚醒來源、透過 PSCI 支援更深層的省電狀態,以及更精細的 CPU 電源控制。為提升診斷成效,系統活動管理員現在會追蹤累計暫停時間。
- 改良 SDMMC 驅動程式庫,提升電源管理和暫停/繼續處理能力。現在會傳送關機通知、正確探查 eMMC 裝置並在恢復時重設匯流排設定,且
aml-sdmmc
驅動程式庫已遷移至ElementRunner
電源管理通訊協定。 - 大幅重構驅動程式庫電源管理程式庫,以利喚醒租用,進一步提升清楚度、正確性及易用性。包括重新命名類別、釐清手動和逾時型租約之間的責任,以及修正與暫停/繼續週期中租約失效相關的錯誤。
- 在「檢查」中新增更多資料,強化電源管理觀測和診斷功能。包括歷來溫度感應器讀數、Starnix 喚醒鎖定和主動式 epoll 計數的來源,以及 FSH 驅動程式的開機/單調時鐘偏差。
- 導入新的
poweroff_for_shutdown
設定,讓 Power Manager 在關機程序期間關閉裝置電源,而非重新啟動。- 變更: fxr/1270326
- 讓儲存空間電源管理取決於
fuchsia::suspending_token
,防止裝置進入無法暫停的狀態。- 變更: fxr/1307644
荒漠油廠
Rust 的更新內容如下:
- 大幅強化
fuchsia-async
,包括用於建立執行器的全新建構器模式、Scope
中對合作取消作業的支援,以及用於處理硬體中斷的OnInterrupt
串流。 將工作取消方法從cancel()
重新命名為abort()
,以符合新的取消語意。 - 強化工具:
fx clippy
現在接受 glob 模式和額外標記,且主機端的 Rust 測試會在失敗時產生符號化回溯追蹤,方便偵錯。
軟體交付
軟體交付服務的更新內容如下:
- 啟用新的「無套件」無線 (OTA) 更新流程。系統更新程式現在可以從 HTTP/S 網址擷取資訊清單,下載、暫存及提交更新,不必再使用傳統更新套件。
- 在套件資訊清單中新增 ABI 修訂版本,方便識別哪些套件使用哪些 ABI 修訂版本。
assembled_system.json
- 變更: fxr/1328584
- 記憶體用量最佳化,減少超過 690 KiB。
pkg-cache
我們改用更節省記憶體的內部資料結構,並避免不必要的資料副本,因此達成這項目標。- 變更: fxr/1313808、 fxr/1312425
- 推出新 API,可更直接地控制 Blob。
pkg-cache
和pkg-resolver
元件現在有新的 API (RetainedBlobs
、WriteBlobs
、FetchBlob
),可更直接地控制 Blob 擷取和垃圾收集作業。- 變更: fxr/1311006、 fxr/1297504
- 錯誤:fxb/423063230
Starnix
Starnix 已進行下列更新:
- 針對當機報告導入節流機制,減少當機迴圈程序造成的系統負載。如果程序在 8 分鐘內當機超過 8 次,後續的報告就會受到節流。
- 變更: fxr/1286224
- 新增對
io_cancel
系統呼叫的支援,可取消非同步 I/O 作業。- 變更: fxr/1322639
- 在
FileObject
上,為get-memory
和mmap
強制執行noexec
掛接選項。- 變更: fxr/1319384
- 實作 FsNode 存取權檢查的
CAP_DAC_READ_SEARCH
能力- 變更: fxr/1329465
- 加強 SELinux 強制執行:針對多項作業 (包括信號繼承 (
siginh
)、檔案系統掛接 (mounton
) 和各種通訊端與繫結器作業) 實作權限檢查。- 變更: fxr/1325222, fxr/1319305
- 修正系統記錄相關作業的權限檢查 (
/dev/kmsg
、/proc/kmsg
、syslog(2)
),與現代 Linux 行為保持一致。- 變更: fxr/1304324
- 針對私有匿名記憶體啟用 VMO 最佳化。此外,也修正了
smaps
生成,以支援這項功能,提升記憶體效率。- 變更: fxr/1275449
- 提升效能並減少記憶體用量:透過多項變更,包括啟用連結時間最佳化 (LTO)、縮減內部
Mapping
結構體的大小,以及新增clean_stack
函式來取消認可未使用的堆疊頁面。 - 更新
devpts
檔案系統,支援多個獨立執行個體,每個執行個體都有一組專屬的虛擬終端機,使用newinstance
掛接選項。- 變更: fxr/1320144
- 根據啟動時間軸 (包括暫停時間),將
/proc/uptime
中回報的系統運作時間與 Linux 行為對齊。- 變更: fxr/1263064
- 強化 eBPF 支援,新增多項功能,包括 32 位元記憶體作業、UDP 傳送/接收掛鉤、通訊端選項掛鉤,以及多項新的輔助函式。
- 修正繫結器無效回覆的罕見問題,這類回覆可能會以錯誤順序處理,導致從堆疊彈出錯誤交易。
- 變更: fxr/1273164
- 最佳化遠端繫結器通訊:將所有要傳回的寫入作業收集在單一
ioctl
呼叫中,減少 FIDL 流量。- 變更: fxr/1309944
- 更新工作優先順序和 niceness 處理方式,以更符合 Linux 行為,包括適當的
RLIMIT_RTPRIO
強制執行,現在預設為零。- 變更: fxr/1286324
- 新增
fastrpc
和dmaheap
的模組,為 Starnix 應用程式提供跨處理器 RPC 功能。- 變更: fxr/1249785
儲存空間
儲存空間服務已進行下列更新:
storage-host
改善。這項工作包括在掛接前使用 fsck 檢查資料量、在恢復原廠設定期間新增對加密磁碟區的清除支援,以及將核心儲存空間驅動程式移至組件套件,以縮減映像檔大小。- 啟用 Fshost,支援使用語意標籤比對及轉送區塊裝置。這樣一來,特定分割區就能靜態路由至元件,取代直接
/dev/class/block
存取的需求。- 變更: fxr/1322865、 fxr/1298085
- 錯誤:fxb/417772975
- 改善 fxfs 的效能和穩定性,包括根據記憶體壓力動態調整預先讀取大小、提升清除邏輯的效率,以及確保正確發出 I/O 障礙。
- fxfs 新增功能,包括支援透過
BlobCreator
通訊協定覆寫現有 Blob,以及初步支援將 Blob 磁碟區串流至磁碟。- 變更: fxr/1284252、 fxr/1288725、 fxr/1263965
- 錯誤:fxb/397501864
- 將 C++ VFS 和儲存空間一致性測試遷移至新版
fuchsia.io
(io2) API,並淘汰舊版 io1 方法。 - 改良 F2FS,初步支援在 FVM 上執行、與 Linux 進行以映像檔為基礎的相容性測試,以及增加預設的最小檔案系統大小。
- 強化區塊層和相關驅動程式。包括重新啟用直通 I/O、在區塊通訊協定和 ramdisk 驅動程式庫程式中新增 I/O 障礙支援,以及將 UFS 電源管理功能遷移至
ElementRunner
。 - 為唯讀 ext4 驅動程式新增
64bit
旗標的基本支援功能,可掛接具有較大區塊群組描述元的檔案系統。- 變更: fxr/1298007
- 錯誤:fxb/42073143
測試
測試功能已進行下列更新:
- 大幅強化 Honeydew 端對端測試架構,包括用於控制 USB 電源的
UsbPowerHub
裝置、重新命名的powerserver
功率測量程式庫、新的音訊和風景功能、改良的會話清理機制,以及修正不穩定來源後重新啟用螢幕截圖斷言。 - 對偵錯工具端對端測試進行多項改善,以提升穩定性,包括改善指令輸出同步、支援無序輸出比對、新增記錄,以及暫時停用 DebugAgent 整合功能,減少記錄垃圾內容。
- 新增 Lacewing 端對端測試,確認裝置在收到重新啟動指令時,會以預期原因重新啟動。
- 變更: fxr/1319705
- 新增 IPC 基準,比較傳輸大型訊息的不同方法,包括
BatchStream
的特定基準。- 變更: fxr/1317707、 fxr/1298804
- 錯誤:fxb/424251793
計時
我們對「時間記錄」進行了以下更新:
- 推出喚醒鬧鐘模擬功能,在缺少硬體支援的平台上提供一致的
fuchsia.time.alarms
API。- 變更: fxr/1278651、 fxr/1278650
- 新增
WakeAlarms.Set()
API,使用監聽器模式做為SetAndWait
的替代方案,以便更妥善地支援可託管的元件排定喚醒作業。- 變更: fxr/1312970、 fxr/1297351
- 錯誤:fxb/424009669
- 更新 Timekeeper,使用網路可連線服務,避免在沒有網路連線時嘗試同步時間,減少耗電量。
- 變更: fxr/1263009、 fxr/1274168
- 更新
fuchsia.time.alarms.Wake
API:修改SetAndWait
簽章,改善喚醒租用管理功能,並移除未使用的GetProperties
和CancelSync
方法。- 變更: fxr/1286527、 fxr/1289365
- 錯誤:fxb/419860677
- 修正潛在的計時器比較溢位問題,確保 Timekeeper 會等待
hrtimer
列舉,並防止重複的時鐘 ID 導致啟動失敗,藉此提升時間和鬧鐘服務的穩定性。 - 啟用從供電周邊裝置取得開機時間的功能,讓時間在重新啟動後仍可保留。
- 變更: fxr/1289542
- 將 Timekeeper 遷移至新的
ElementRunner
通訊協定,以改善電源管理整合。- 變更: fxr/1241004
工具鏈
工具鍊已進行下列更新:
- 更新 Clang 和 Rust 工具鍊至最新版本。
- 變更: fxr/1327414
- 錯誤:fxb/432745920
工具
工具的更新內容如下:
ffx
ffx 的更新內容如下:
- 啟用新的直接連線模式 (使用
-d
或--direct
旗標),讓許多指令不必透過精靈就能連線至目標。包括改善ffx target list
的行為,以及正確處理精靈專屬指令的錯誤。 - 新增
ffx wm
工具,用於管理視窗,並提供list
、focus
、cycle
和set_order
視窗的子指令。- 變更: fxr/1115713
- 更新
ffx target flash
指令,顯示進度指標,並在ffx target snapshot
中新增--upload
選項,將快照上傳至 GCS 值區。- 變更: fxr/1311604、 fxr/1303306
- 移除用於管理預設目標的舊版方法,並淘汰
ffx target default {set, unset}
指令和fx -d
旗標。- 變更: fxr/1326187
- 修正多個穩定性問題,包括可能因並行 SSH 連線而發生的死結,以及等待遠端控制 Proxy 時發生的逾時問題。
- 變更: fxr/1322632、 fxr/1325246
- 移除
ffx agis
指令。- 變更: fxr/1314044
fx
fx 的更新內容如下:
set-main-pb
產品組合管理工具現在提供文字式使用者介面 (TUI),方便選取產品組合,並依字母順序排序組合清單。- 變更: fxr/1294864、 fxr/1332954
- 啟用
fx
,針對輸入錯誤的指令提供實用建議。- 變更: fxr/1271284
- 錯誤:fxb/402762037
- 新增指令列旗標,包括
fx build
的--quiet
、fx create-pb-zip
的壓縮層級旗標 (-c
),以及在fx qemu
中略過修補 SSH 金鑰的選項。 fx
環境更可靠:使用預先建構的jq
版本,並修正fx rbe auth
的驗證問題。- 變更: fxr/1307764、 fxr/1322424
- 移除了
fx create
的已淘汰--with-base
標記。- 變更: fxr/1316251
- 在
fx serve
中自動轉送通訊埠,並提供共用程式庫,以避免在各種封裝工具中重複擷取網址,進而改善開發人員工作流程。- 變更: fxr/1272397、 fxr/1322724
- 錯誤:b/430504024
zxdb
zxdb 已進行下列更新:
- 改良 zxdb 除錯工具,支援
std::span
的 PrettyType,並修正display
指令,使其遵守設定的整數格式。- 變更: fxr/1312304、 fxr/1312344
- 錯誤:fxb/427471530
追蹤
我們對追蹤功能進行了以下更新:
- 大幅最佳化
ktrace_provider
串流模式,可縮短延遲時間、提高輪詢一致性、加快啟動速度,並提升核心緩衝區讀取效率,進而提高追蹤資料的可靠性。 - 透過
ffx trace
啟用裝置端緩衝區,即可串流追蹤記錄,在工作階段結束時傳輸資料,減少收集期間的 CPU 負荷。- 變更: fxr/1260408、 fxr/1260407
- 錯誤:fxb/413106095
- 在 FXT 追蹤格式中新增 blob 引數類型,用於嵌入不透明資料。此外,我們也提供新的
fxtdump
主機工具,可檢查及偵錯 FXT 檔案。- 變更: fxr/1277747、 fxr/1313809
- 錯誤:fxb/433532694
- 最佳化
trace2json
工具,大幅減少記憶體用量,並採用雙通道讀取方法和緩衝輸出串流,將執行速度提升高達 40%。- 變更: fxr/1328611、 fxr/1319010
- 提升 Rust 追蹤效能:啟用引數實習,減少追蹤大小,並最佳化鎖定使用情形,縮短 ATrace 事件的寫入時間。
- 變更: fxr/1314092、 fxr/1304684
- 更新追蹤引擎,使用新的可測試的滾動緩衝區實作項目,修正競爭條件。
- 變更: fxr/1307311, fxr/1307310
- 錯誤:fxb/303666620
UI
UI 方面有以下更新:
- 大幅提升 Scenic 的效能和診斷功能。
包括新的追蹤工具 (
scenic_session_present
、run_graphics_metrics
)、更完善的直接顯示失敗診斷功能、修正影格預測邏輯,以及增加 Escher 的清除間隔,進而提升效能。 - 新增對新 Vulkan 圖片格式的支援。Scenic 現在支援
A2B10G10R10UnormPack32
和R8Unorm
。- 變更: fxr/1298006
- 在 Flatland 中新增影格計數器疊加層,用於視覺偵錯。您可以透過元件設定或設定
visual_debugging_level
啟用這項功能。- 變更: fxr/1295168、 fxr/1321784
- 錯誤:fxb/423066970
- Scenic 支援的硬體顯示層數量上限已從 1 個增加至硬體支援的上限,因為先前的軟體限制已解決。
- 變更: fxr/1275807
- 錯誤:fxb/42078234、 fxb/370839049
- 修正 Escher 外部信號燈測試中的死結,方法是從背景執行緒發出信號,提升 Lavapipe 和 Goldfish 的測試可靠性。
- 變更: fxr/1330684
影片
影片的更新內容如下:
- 移除對已淘汰
ulib/syslog
的依附元件。- 變更: fxr/1329004
WLAN 和連線
WLAN 和連線功能有以下更新:
- 大幅改善 WLAN PHY 重設和復原機制,現在系統處於降級狀態時,
wlancfg
可以觸發重設,提升整體穩定性。- 變更: fxr/987896、 fxr/1283689
- 推出支援功能,可關閉及開啟 WLAN PHY。包括電源管理的新 FIDL 方法,以及確保驅動程式庫在開機後正確重新初始化。
- 變更: fxr/1263044
- 啟用
netcfg
,透過新的fuchsia.net.policy.properties
FIDL API 向socket-proxy
回報網路狀態,包括預設網路變更和 DNS 設定。- 變更: fxr/1306906、 fxr/1165212、 fxr/1211044
- 錯誤:fxb/385368910
- 改善 Broadcom Wi-Fi 驅動程式的連線穩定性:使用正確的管道頻寬來減少
NO_NETWORK
失敗次數,並使用更有效的取消驗證指令,在失敗後清除連線狀態。 - 修正錯誤:在繁忙環境中,Wi-Fi 掃描功能無法運作。
掃描結果現在會以 VMO 傳送,避免達到 FIDL 訊息大小限制。
- 變更: fxr/1305664
- 篩選潛在漫遊目標,確保安全防護機制相容,並修正導致漫遊至 WPA1/WPA2 混合模式網路時發生問題的錯誤,提升 WLAN 漫遊的可靠性。
- 變更: fxr/1295065、 fxr/1281584
- 大幅強化 WLAN 遙測功能,記錄更詳細的指標,包括連線中斷原因、掃描效能、連線時間長度、RX/TX 統計資料和復原事件。