Fuchsia F23 版本資訊

版本:F23

我們已實施下列變更:

無障礙設定

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

  • 修正與停用節點行為相關的錯誤,改善螢幕閱讀器行為。

音訊

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

  • 音訊驅動程式和驅動程式庫 API

    • 開放與音訊訊號處理和環形緩衝區相關的重要 FIDL 通訊協定,以改善 ABI 相容性。
    • 已變更複合音訊的 devfs 別名名稱,以符合標準命名方式。
    • 新增電源轉換檢查 (aml-g12-tdm 音訊驅動程式庫)。
    • 新增 aml-g12-tdm 驅動程式庫的電源轉換追蹤功能。
    • 改善 aml-g12-audio-composite 驅動程式庫的記錄功能。
  • AudioCore 和智慧螢幕支援

    • 停用導致 SSH 連線錯誤的部分音訊測試。
  • AudioDeviceRegistry 服務

    • audio_device_registry 中新增追蹤功能,以便追蹤電源轉換。
    • 清楚說明記錄功能。
    • 修改 WatchDevicesAdded 方法,讓系統即使在空白向量存在的情況下,也能立即回應第一個呼叫。
  • 音訊開發人員工具

    • ffx audio device play 指令中新增 --channels 旗標,用於控制有效管道和音訊裝置的電源狀態。
    • 修正 ffx audio recordffx audio device record 中的錯誤和環形緩衝區處理方式,以便正確擷取音訊。

藍牙

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

  • Message Access Service (MAS) 用戶端已實作,可連線至多個 MAS 執行個體。
  • 免持聽筒設定檔 (HFP) 現已支援 AudioDeviceRegistry 產品,相容性也更佳:HFP 現已採用首個支援的 DAI 影格格式,可改善硬體相容性。在使用 AudioDeviceRegistry 的產品上,當裝置連線時,會將對等端新增至登錄表,且媒體可在沒有有效通話的情況下開始/停止音訊。
  • BR/EDR 舊版配對功能現在支援 PIN 碼要求,並與 PairingStateManager 整合,以便管理配對方法選項 (SSP 或舊版)。我們也新增了設定,可根據產品組合啟用/停用舊版配對功能。檢查配對屬性已更新,以反映這些變更。
  • 已新增 L2CAP 連線導向通道。
  • LE 遠端功能查詢現在可正常失敗,可改善連線相容性。
  • 藍牙 FIDL 現代化:多個列舉已更新為靈活的列舉。Vendor 通訊協定已更新術語和說明文件。我們已針對 fuchsia.bluetooth.Channel 和相關通訊協定重新設計了流程控制,使用 zircon 網路介面上的 FIDL 流程控制。支援 L2CAP 連線導向通道。隨著這些變更,許多藍牙通訊協定也將進入階段,以便加入 SDK。
  • 使用浮雕定義來浮雕各種藍牙測試函式:這是使用已壓縮的結構體的變更。

建構

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

  • 新增環境變數 TEST_UNDECLARED_OUTPUTS_DIR_OVERRIDE,用於控制未宣告輸出內容的寫入位置:這項功能可用於測試。
  • scoped_global_logger 新增 Bazel 建構目標:此目標適用於樹狀結構內 Bazel 目標。

鈷豔藍

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

  • 遷移 Cobalt 元件,改用 FUCHSIA_LOG 巨集,而非已淘汰的 fuchsia_logging:: 嚴重性層級。

元件架構

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

  • 新增支援元件管理服務,以便從字典中的 environment 和設定值,將執行元件工具功能路由至 environment
  • fuchsia.component.decl 中新增對弱服務商品的支援。
  • 移除動態設定功能,並改用 Bedrock 字典。
  • 元件結束碼和結束狀態現在會在 OnStop 事件中回報,而 StopConclusionComponentStopOutcome 已合併,以便簡化元件停止程序。

連線驅動程式

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

  • dwmac 驅動程式庫現在會直接實作 NetworkDevice 通訊協定,改善大多數基準測試的成效。
  • brcmfmac 驅動程式庫現在會正確設定 wnm iovar,解決 VIM3 上的 BCME_BUSY 錯誤。
  • 已移除 fuchsia.hardware.network/DeviceClass 最新的 NEXT API 版本,影響 fuchsia.net.interfaces/Properties
  • 修正篩選器-fidl 測試,方法是保留每個測試案例的通訊埠:由於後續測試案例會將通訊埠繫結至與先前測試案例相同的通訊埠,因此篩選器-fidl 測試會出現不穩定的情形。這項變更會讓先前的案例保持開放的通訊端,以便網路堆疊為每個案例挑選新的連接埠。
  • 更新編織/測試,以便使用新型路徑 FIDL API:這項變更是指將新增路徑時,改為使用已淘汰的 fuchsia.net.stack AddForwardingEntry,而非 fuchsia.net.routes.admin
  • 透過命名 KeepResource 的成員,避免產生 unused_tuple_struct Lint

診斷

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

  • Archivist:
  • Sampler:
  • Syslog:
    • 改善相關的 C++ 程式庫。
    • 錯誤:b/299996898
  • 確保以檢查執行元件為基礎的測試視為系統測試。

螢幕

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

  • 將顯示器驅動程式庫堆疊遷移至現代 Fuchsia 平台基礎架構,例如 DFv2 和 FIDL。使用者不會看到任何變更。
  • 為了保持一致性,我們重新命名顯示器驅動程式:
    • 已將 simple-display 重新命名為 framebuffer-display
    • 已將 intel-i915 重新命名為 intel-display
    • 已將 virtio-guest 重新命名為 virtio-gpu-display

驅動程式架構

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

  • 改用列舉表示法,改善平台匯流排程式庫的中斷模式,提升類型安全性和程式碼清晰度。
  • 根據解析器重新命名驅動程式庫集合。
  • ** 簡化 ScopedGlobalLogger 以改善測試記錄,並重新啟用先前停用的測試並進行更新。與已移除的測試相關聯的未使用 API 也已刪除。**
  • 更新 GPIO FIDL:新增空位元組型,供日後的中斷選項使用,並將 SetPolarity 重新命名為 ConfigureInterrupt。GPIO 初始化中繼資料也已切換為使用 pinimpl 類型。
  • 簡化 ScopedGlobalLogger 實作方式,以改善實作方式:由於它實際上從未進行任何非同步呼叫,因此不需要為記錄器建立執行緒。
  • 使用 realm_builder_exposed_dir 轉送連線,簡化 driver_test_realm 中的轉送機制:這可修正公開 fuchsia.hardware.ramdisk 服務時,未使用轉送機制的問題,並讓我們使用 dtr_exposes,而非已淘汰的公開 Start 引數。
  • 將已淘汰的驅動程式庫測試程式庫片段遷移至內部命名空間:針對使用命名空間的測試新增警告,以防止新測試複製這些測試。
  • 透過額外的單元測試和程式碼精修,改善驅動程式庫程式傳輸和簡易驅動程式庫:驅動程式庫傳輸範例現在可展示 FIDL 用戶端互動、最佳化傳輸大小查詢,以及改善的位元率設定,而簡易驅動程式庫範例則可展示前景和背景驅動程式庫測試之間的差異。**

FIDL

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

  • 更新與音訊和元件管理相關的多個 FIDL 通訊協定,以便與 ABI 相容: fuchsia.hardware.audio.signalprocessing/Readerfuchsia.hardware.audio/RingBuffer 現已提供彈性方法和開放式通訊協定 (以及其組合通訊協定)。fuchsia.component/ComponentController 現已開放,可使用靈活的 OnEscrowOnStopInfo 事件。
  • 改善 FIDL 建構系統:「未命名版本」FIDL 程式庫不再進行相容性測試,且「命名版本」邏輯會在建構範本中整合。此外,我們也重新產生 fuchsia.io 的 Go 繫結。

GPU

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

  • 合併 arm-mali GPU 驅動程式庫的上游變更。

核心

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

  • 虛擬記憶體:
    • 不允許為實體或連續的 VMOs 建立串流。
    • 開始移除目標 PmmNode 周圍的 pmm_ 包裝函式。
    • 新增選項,可為 VMOs 提供超出內容大小的零。
    • 禁止在實體 VMOs 上執行快取作業。
    • 新增 PMM 競技場選取演算法。
  • 電源:
    • 新增對暫停單調計時器的功能旗標支援。
  • 其他:

Matter

我們已針對 Matter 做出以下更新:

  • 改善 Matter/GHP:修正錯誤並提升穩定性。

平台驅動程式

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

  • 在 SPMI 中新增 FIDL API,用於表示匯流排上的目標/次要 SPMI 裝置,以便支援多部裝置。
  • 強化 GPIO,提供新的 FIDL 位元類型,以便日後使用中斷選項,並遷移至 pinimpl 通訊協定。核心驅動程式現在會在 gpioimplpinimpl 之間進行選擇。
  • 強化 I2C,納入裝置樹狀結構訪客支援,以便在 reg 欄位中支援多個周邊位址,並將 I2C 位址新增至產生的節點屬性。這可簡化複雜的 I2C 設定處理作業。
  • 為 SPI 新增裝置樹狀結構訪客,將 fuchsia.hardware.spi.businfo 中繼資料附加至 spiimpl 節點。
  • 為平台裝置新增資源屬性,讓驅動程式庫驗證正確的資源分配。
  • 新增 Banana Pi F3 的裝置樹狀架構來源。

荒漠油廠

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

  • 為第一方和第三方 Crate 啟用 rustdoc 子目標,提供 fx rustdoc-link 指令碼來合併產生的文件。
  • 改善對不可到達模式的偵測功能,特別是使用 neverInfallible 時。
  • 更新多個依附元件,包括修正 nom minimal-lexical 依附元件,並在 hexlog Crate 中啟用新功能。
  • 因與 LLD 不相容,暫時停用 Rust LTO。

軟體推送

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

Starnix

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

測試

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

  • 透過在每個基準測試案例目錄中儲存構件,改善 iperf 基準測試:這項修正可解決伺服器 JSON 輸出檔案和 trace.fxt 檔案彼此衝突的問題。
  • 更新透過迴圈執行對密封網狀結構的 iperf 基準測試:我們將現有測試重新用於使用 netemul 沙箱執行 iperf,並修改為基準測試。我們保留了用於執行 iperf 基準測試的現有 Python 指令碼,以便重複使用將 iperf JSON 輸出內容轉換為 fuchsiaperf 輸出內容的邏輯。

執行緒

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

  • 為 ot-radio 模組啟用全雙工交易:這項變更可提升 ot-radio 驅動程式庫的效能,並解決在傳送和接收方向上,傳輸量過高時,傳送交易會耗盡的問題。

計時

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

工具鏈

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

工具

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

  • 改善偵錯工具,包括支援從已附加的程序收集迷你傾印檔 (可用於偵錯測試逾時)、修正未驗證的列表表項目導致的當機問題、在端對端測試中一致納入 SSH 連接埠、將 CURRENT_SUPPORTED_API_LEVEL 更新至 22 (移除舊版 IPC 版本的相容性),以及移除舊版 DebugAgent 啟動器。
  • 更新 DevShell 以使用 jiri 的更新引數順序。
  • 停用 VSCode 的 Source Control 圖表視覺化功能,以改善 Fuchsia 存放區的效能。

ffx

以下是 ffx 的更新內容:

  • 改善模擬器的穩定性。我們做出了幾項變更,以改善模擬器的穩定性並解決常見問題。
  • 新增對啟動載入器 Fat 分區和 EFI 產品套件的支援。這可讓模擬器從僅包含啟動載入器分區或含有以 EFI 為基礎的核心的產品套件啟動。
  • 新增 FfxCoreSubCommand 和 check_core_constraints。這個函式會在指令執行前進行檢查,確保指令是透過機器介面叫用,且只傳遞一個設定標記,而傳遞的設定標記是檔案的路徑。目標也會透過 CLI 指定。libfho 會在執行前對子工具呼叫此函式。
  • 已將 active_channels 新增至 play 指令。這會在 ffx audio device play 指令中加入 --channels 標記。這個標記會操控要啟用的管道,並透過 CLI 設定音訊裝置的電源狀態。
  • 改善錯誤處理機制。我們改善了 ffx 的錯誤處理和回報機制。這包括正確回報 SSH 錯誤、改善使用中連接埠的錯誤訊息,以及為不正確的建構目錄新增錯誤。
  • 已更新 ffx,以便支援使用 --core 標記的直接連線。這項更新會處理 ffx 行為,以便處理連線,並為開發人員提供 FIDL 通訊協定。將 --core 旗標傳遞至指令時,系統會盡可能使用非守護程序行為。
  • 清理舊版設定產生程式碼,並在 fx set 中新增 --assembly-override 選項。這個選項會在 args.gn 中正確設定新的開發人員組合覆寫對應項目。
  • 更新 OvernetConnector 以提早結束並移除不必要的 ASCII 圖片。

fx

以下是 fx 的更新內容:

  • 更新 fx serve,專門使用前景存放區伺服器,簡化其運作方式。ffx 現為預設的存放區伺服器,相關設定已更新。這也為移除 pm 做好準備。
  • 更新指令碼,確保無論環境為何,指令碼都會在路徑中。這項變更可確保即使使用者未使用 fx-env.sh,也能在 PATH 上找到指令碼目錄。
  • 已公開 fx set --rbe-mode=MODE這可簡化 RBE 設定。
  • 在 Python 中重新實作 fx status

ffxutil

以下是 ffxutil 的更新內容:

  • 在 ffx 設定中新增 SDK 工具覆寫值。

UI

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

影片

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

  • 已淘汰的 SetTags 已遭移除。我們已多次進行這項變更,以因應 SetTags 淘汰的問題。
  • 已淘汰 BuildAndInitializeWithTags,並替換為 WithTags
  • 上游 libcxx 變更了 cmath 標頭隱含納入的方式,導致 Fuchsia 的建構作業中斷。這個修正程式會將缺少的「cmath」套件加入至多個 Fuchsia 元件。
  • 您不需要手動設定 LogSink 的路由,因為這項作業會透過用戶端區塊隱含執行。日後的 CL 會更新分割區中使用的路由,因此必須清除這些重複的路由,才能更新分割區。

WLAN

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

  • 新增漫遊功能。這項功能可讓 WLAN 透過 fullmac 裝置韌體啟動漫遊功能。在漫遊時,現在會重新初始化政策漫遊監控器,以提升可靠性。
  • 將 FullmacDevice 變更為使用 FIDL 管道,而非 Banjo。使用 FIDL 管道,在 FullmacDevice 結構體和供應商驅動程式庫之間進行通訊,藉此提升效能。
  • 改善 WLAN 記錄功能。wlancfg 現在會在系統成功從 WLAN 問題復原時,擷取系統狀態的快照。client-connections-toggle-events 節點已重新命名,記錄行現在會正確指出已收到國家/地區代碼。介面管理員會在復原期間採取行動前,記錄所有用戶端和 AP 狀態機制的狀態。wlan_connectivity_statesconnected_networksdisconnected_networksdisconnect_sources 時序資料現在已記錄。
  • 清理技術債。log_cobalt_1dot1 巨集已完成清理,AP 狀態機器人現在會公開目前的狀態資訊,且已解決兩個 clippy 的 Lint 問題。指標到期日已更新。
  • 修正 WLAN 問題。修正了在移除介面時移除物理介面可能導致 wlandevicemonitor 保留舊版介面的問題。send_assoc_req_frame 函式不再有引數。呼叫 stop_fullmac_mlme() 後,系統就不會再存取 WlanFullmacImplIfc FFI。