Fuchsia F21 版本資訊

日期:2024 年 7 月 26 日

版本:F21

我們已實施下列變更:

藍牙

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

  • 我們在將藍牙堆疊遷移至 DFv2 並改良其 API 方面取得重大進展
    • bt-hci-intelbt-fct-hcibt-hci-passthrough 驅動程式已遷移至 DFv2 和新的 HciTransport 通訊協定。
    • fuchsia.hardware.bluetooth.VirtualControllerfuchsia.hardware.bluetooth.Peerfuchsia.hardware.bluetooth.Emulator API 已完成現代化。
    • fuchsia.bluetooth.snoop FIDL API 改為新式 API。
  • 改善藍牙功能和可靠性
    • 實作 AudioOffloadController.Stop 方法和 bredr.Connection 通訊協定。
    • 新增支援在假控制器中設定 LE 連線角色的功能,並修正 BrEdrDynamicChannel 中的當機問題。
    • 已實作 IsoStreamServer
  • 強化藍牙測試和開發功能
    • 所有 bt-host Bazel 單元測試都已合併為一個套件,以加快 Fuchsia Bazel 建構作業的速度。
    • EmulatorDevice 中實作 HciTransport API。

開發人員

我們已為開發人員進行下列更新:

ffx

元件架構

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

  • 穩定性強化:

連線驅動程式

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

  • 修正可能在啟動期間發生的當機問題,進而提升 SDIO 驅動程式庫的穩定性。

診斷

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

  • 已最佳化 LogTracer,以免在 Rust 中使用記錄檔 crate 時,建立不必要的記錄檔。
  • 避免在例外狀況中封鎖興趣聆聽,以免在關機期間造成問題。
  • Power broker 會在檢查中加入租賃記錄。
  • 對 C++ syslog API 進行各種改善。

螢幕

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

驅動程式架構

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

  • 移除 Syslog 依附元件:從驅動程式庫執行階段共用程式庫中移除 syslog 依附元件。在某些情況下,當 Bazel 驅動程式要求缺少的 libsyslog.so 時,這也能解決執行階段的連結錯誤。

FIDL

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

  • 改善 FIDL 效能和工具
    • 改善 FIDL Rust 用戶端喚醒器,並在 C++ 中將句柄計數新增至斷言檢查。
  • 為多個 API 級別 FIDL 繫結實作 RFC-0232
  • 改善 FIDL API 設計和說明文件
  • 在 FIDL 中為平台和外部元件強制執行 ABI 檢查。
  • API 級別參照標準化:ZX_*_SINCE() 巨集現在支援 HEAD 關鍵字,可讓 API 級別參照保持一致,並為未來的 API 變更做好準備。

國際化

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

  • 移除空白遷移群組,以清理建構系統。

IOT

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

  • 修正探索 Proxy 解決方法的問題,並防止新增錯誤的 IPv4 位址,進而提升 IOT 堆疊的可靠性。

核心

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

  • 改善計時器功能:platform_set_oneshot_timer 函式現在會使用原始時標做為輸入內容,並支援 Sstc 功能,可在監控模式中直接設定計時器比較值。
  • 強化系統呼叫記錄和偵錯功能:系統呼叫現在會在 LTRACE 中依名稱記錄,且系統核心記錄的暫停失敗功能已改善。
  • 解決競爭狀況和穩定性問題:修正了在熱插拔期間暫停和執行緒排程後,與 CPU 閒置狀態相關的競爭狀況,並將頁面配置和髒頁處理的變更還原,以確保穩定性。
  • 推出新的 VMO 系統呼叫:新增 zx_vmo_get_stream_sizezx_vmo_set_stream_size,這些屬性最終會取代 VMO 內容大小的使用屬性。
  • 修正多項錯誤:解決 std::find 中的斷言失敗問題,並改善網頁快取行為。

平台驅動程式

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

  • 強化的 GPIO 公用程式:GPIO 公用程式工具現在支援設定針腳函式,並包含中斷功能。
  • 改善 USB 功能和穩定性:USB 連線偵測功能現在運作正常,且 fusb302 驅動程式庫更新可避免重複的 GoodCRC 訊息,解決 VIM3 電源週期問題。
  • 驅動程式執行階段最佳化:驅動程式執行階段共用程式庫不再依附 syslog 程式庫,可解決執行階段連結錯誤。
  • Amlogic 顯示強化功能:在呼叫 SetDisplayPower(false) 時,Amlogic 顯示編碼器的顏色會變成綠色,方便進行偵錯。
  • 節點拓撲驗證:sherlockastro device-enumeration-test 已遷移至使用驅動程式庫開發服務的別名來驗證節點拓撲。
  • ElementControl 管道佈建: Topology.AddElement 現在可讓用戶端提供自己的 ElementControl 管道。雖然目前用戶端仍可使用傳回的管道,但這項行為將會淘汰。

荒漠油廠

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

電源管理

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

  • 電源依附元件管理和術語:移除元素時,也會一併移除其依附元件。「Active」依附元件已重新命名為「assertive」,「passive」則為「opportunistic」。
  • 假暫停初始化: fake-suspend 目前已遭封鎖,直到初始化為止。

SDK

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

  • 改善 IDK 原子產生:Fuchsia Bazel SDK 現在使用 //sdk:final_fuchsia_sdk,將 IDK 原子產生作業移至 Bazel 圖表,而空白的 *.api_summary.json 檔案則表示特定 API 級別不支援的 FIDL 程式庫。
  • 強化功能和測試:SDK 已移除 fbl/fzl_walk_json 更具彈性,且已新增 structured_config 的測試。
  • 新增 bin_name 支援:fuchsia_cc_binary 規則現在支援 bin_name 屬性。

軟體推送

我們已針對軟體提交機制進行以下更新:

  • 套件目錄和快取最佳化:套件目錄已針對 fxblob 進行最佳化,大幅提升 blob 讀取速度,且套件快取不再需要儲存空間生命週期因應措施。
  • 改善記錄和錯誤訊息:新增系統映像檔套件雜湊的記錄訊息,並強化套件相關的錯誤訊息。

Starnix

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

  • 改善資源管理和歸因:Starnix 程式現在會以子項主體的形式回報,以便改善記憶體歸因。
  • 強化信號處理和暫停/繼續功能:系統已針對程序導向信號進行最佳化,以便只中斷一個工作,並解決暫停等候器問題,避免在使用有效殼層繼續執行後無法回應。
  • 檔案系統和資料儲存空間改善:在測試中新增資料儲存空間能力的路由,在實際的檔案系統上啟用 xts 測試,並新增從 tarball 到檔案系統的擴充屬性傳播功能。
  • 圖形和輸入功能強化:在 GPU 裝置和裝置中新增以 Gfxstream 為基礎的 Rutabaga 例項,以便與輸入管線進行 touch_standby 狀態通訊。
  • 改善政策處理、統計資料和位址空間管理:精進政策索引和權限檢查機制,確保統計資料在暫停後重新整理,並修正 user_new_limit 從錯誤位址空間讀取的問題。
  • 其他錯誤修正和更新:解決各種問題,包括 bpf 檔案描述符處理、喚醒租約重新命名、ebpf 說明函式存根目錄和 FsNode.append_lock 修改。

測試

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

計時

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

  • 改善 TTRF 說明文件和測試:針對 Timekeeper 行為修改 (尚未啟用) 實作持續測試非同步指令,新增 TTRF 的範例程式碼說明文件,並移除過時的 CFv1 參照。
  • 移除未使用的依附元件:移除未使用的電源拓撲依附元件權杖。

工具鏈

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

  • 準虛擬化支援: PlatformParavirtualizationConfig 現在預設為允許虛擬化 (如果支援的話)。已將半虛擬化支援功能 (包括 vsock 服務) 新增至「模擬 arm64 通用」板卡設定。

工具

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

  • 藍牙控制器強化功能:假藍牙控制器現在支援設定 LE 連線角色。
  • 測試和工具更新:CTF 新增了 Realm 整合測試。已新增 Bazel SDK structured_config 的測試。bt-fct-hci 工具已遷移至 HciTransport。測試執行程式現在會在目標連線錯誤逾時時重新連線。
  • 測試 Phys VMO 清潔度和記錄:測試 phys VMO 會在傳回前先清理,以確保已知狀態。如果略過的 ContextSwitch 記錄 records_dropped 超過 0,系統就會發出警告。
  • 套件資訊來源:list-packages 工具現在會從 all_package_manifests.list 取得套件資訊。我們改善了 pkgstats 套件頁面的視覺設計。

UI

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

  • 偵錯功能強化:現在可將觸發區和顯示器電源狀態轉儲至「檢查」功能,方便偵錯。

WLAN

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

  • 測試強化功能:新增了在啟動期間刪除 fullmac 驅動程式的測試支援功能。已解決硬體 SIM 自動連線功能中可能出現的異常情形。我們改善了 Honeydew 測試輔助程式,以便偵測異常啟動情形。
  • 網路設定遷移:已更新儲存的網路設定格式和儲存空間,包括從舊版 stash 資料遷移。新的指標會追蹤網路設定遷移結果。
  • 漫遊功能改善:RoamManager 的服務函式已分開,以便日後轉換為以服務迴圈為基礎的服務。為求清晰明確,內部漫遊程式庫類型已更新,並移除不必要的欄位。改善了漫遊連線中斷處理方式,可區分可忽略的連線中斷與漫遊嘗試失敗。
  • 檢查器最佳化:InspectBoundedSetNode 結構體可在檢查器中改善事件中繼資料的處理方式。記錄現在會在檢查中加入斷線資訊。