版本:F25
我們已實施下列變更:
無障礙設定
我們已針對 A11y 進行以下更新:
- 還原 a11y 焦點動作復原功能,該功能未宣告節點。
- 異動:fxr/1148337
音訊
我們已對 Audio 進行以下更新:
- 更新
audio_device_registry
,確保系統在回應初始WatchDevicesAdded
呼叫之前,先偵測並初始化現有裝置。ADR 現可按需啟動,而非一律立即啟動。- 變更:fxr/1141292
- 將
aml-g12-tdm
驅動程式庫轉換為新的 GPIO 呼叫。- 變更:fxr/1140093
- 錯誤:fxb/42082459
- 更新音訊測試的命名方式,使其保持一致。請使用底線表示測試套件名稱,使用連字號表示測試元件名稱,並在兩者前面加上
audio
。- 變更:fxr/1147339
藍牙
我們已對藍牙進行下列更新:
- 完成遷移至新的 HCI 傳輸 FIDL 通訊協定。
- 修正了一些藍牙的 Rust lint,並將 syn 更新至 v.
- 改善藍牙設定檔和 GAP,包括轉送更新和修正重複複製和堆積配置問題。
- 新增
bt-init
急切功能,在裝置啟動時啟動,並將部分額外的藍牙功能導向工作階段,供元件使用。- 變更:fxr/1047295
- 實作
fuchsia.bluetooth.le.Connection/ConnectL2cap
以支援 LE 連線導向通道。- 變更:fxr/246713
- 建立
PrivilegedPeripheral
通訊協定,在啟用隱私權模式時支援使用靜態位址的 LE 廣告。- 變更:fxr/241712
- 完成將 HCI 指令和事件封包結構體遷移至 Emboss 封包檢視畫面。
- 變更:fxr/247713
- 錯誤:fxb/42167863
鈷豔藍
我們已為 Cobalt 進行下列更新:
- 更新系統指標運算方式,以便使用啟動時鐘提高準確度,並讓系統指標守護程式使用 Fuchsia 的時間概念,減少錯誤並為日後的強化做好準備。
- 修改驗證器測試,使用輔助函式來改善可讀性。
- 變更:fxr/1161883
元件架構
我們已為元件架構進行下列更新:
- 已更新
component
CLI 工具,並更新ffx
工具。component show
指令現在會顯示執行元件資訊,裝置端component
CLI 現在包含config
子指令,而ffx
的fuchsia-controller
現在使用一般安全殼層設定。cmc format
現在支援從 stdin 讀取資料。 - 更新 Component Manager,以便在執行巢狀結構時支援追蹤,並透過
fuchsia.pkg.PackageResolver-boot
功能公開啟動檔案系統套件解析器。 - 在元件管理服務中實作
fuchsia.sys2.ConfigOverride
通訊協定,並提供支援的 CLI 程式庫。這可讓開發人員覆寫結構化設定值,並修正未使用設定能力的欄位遭拒絕的問題。 - 清理未使用的服務連線 API 並移除已淘汰的函式,同時在傳出目錄中新增服務執行個體名稱的說明,以清理
fuchsia-component
程式庫。此外,component::Clone
已遷移至fuchsia.unknown/Cloneable
。
連線驅動程式
我們已針對連線驅動程式進行下列更新:
- 強化 brcmfmac 驅動程式庫,包括使用新的 GPIO 呼叫,並降低非致命錯誤的記錄層級,進而改善相容性、功能和記錄清晰度。
診斷
我們已對「診斷」功能進行以下更新:
- 改善
ffx inspect
的開發人員體驗。ffx inspect
現在支援--name
、別名和網址的模糊比對,並改善了--component supersedes
和--manifest
的使用方式。 - 改善
ffx log
的開發人員體驗。除了第一行的 UTC 時間外,也會顯示啟動時間,以便從啟動時間計算回溯時鐘時間,移除--select
和--force-select
,更新記錄興趣選取器,讓其不再需要在別名中使用任何形式的轉義,並修正重新連線的興趣問題 - 提升 Rust 記錄編碼/解碼效能。在許多基準測試中,速度提升約 60%。
- 更新與從單調時間轉換至啟動時間相關的其他項目。
- 在取樣器中新增電源仲介統計資料
- 在 Archivist 中推出新的
LogStream
通訊協定,可直接擷取原始 FXT 記錄,並顯示歸因資訊。與使用ArchiveAccessor
相比,這可改善效能。- 變更:fxr/1159075
- 更新
SelfProfilesReport
以支援自訂葉子匯總,以便分析複雜 CUJ 中的 CPU 用量。- 變更:fxr/1155217
- 增強工作篩選功能,以利偵錯。FIDL 用戶端現在可以使用工作專用篩選器,且
--job-only
標記已新增至attach
指令,以便直接附加工作 (僅限 Fuchsia)。 - 改善核心執行緒取樣器和偵錯工具,使其更健全。取樣器現在支援附加至初始化執行緒,而偵錯工具修正了與行表相關的當機問題,並改善了對非同步程序終止作業的處理方式。
- 改善 Archivist 的效能和穩定性。專用於記錄插座的執行緒可減少額外負擔,而關閉邏輯和內部緩衝區的變更則可提升穩定性,並採用非同步範圍。
- 改善診斷記錄和符號化功能。在符號化器和下載管理員中新增更多偵錯記錄,並修正 x64 Zircon 中負載相關的符號化問題。
- 改善診斷記錄中的嚴重性 API,提升開發人員使用體驗。
- 變更:fxr/1103655
- 錯誤:fxb/364293789
螢幕
我們已對多媒體廣告進行以下更新:
- 顯示器驅動程式庫堆疊正在遷移至新型 Fuchsia 平台基礎架構,例如 DFv2 和 FIDL。
驅動程式架構
我們已對 Driver Framework 進行下列更新:
- 新增對 ffx 驅動程式庫中顯示匯流程段的支援,並允許將
fuchsia_driver_package
匯出至 Bazel。 - 改善
ddk::GetMetadata()
連線處理方式、將開發人員等級目錄路由新增至driver_playground
,並將驅動程式庫 SDK 遷移至使用span<const T>
。 - 在輸入裝置驅動程式庫中定義
const ToFidlInputReport()
,並將 Phys-iter 程式庫移至//src/devices/lib/io-buffer
。 - 為驅動程式新增了以
std::format
為基礎的記錄 API。- 變更:fxr/1137617
- 與
fdio::open
、kRestrictedLibcSymbols
、Node.Clone
處理、driver_context
重新命名相關的清理程式碼。 - 修正驅動程式庫清理、建構驅動程式庫範本、sdmmc 回溯、驅動程式代管程序遷移、fake-pdev 處理、DFv1 許可清單、fdf/fake-pdev 命名空間、裝置監控器遍歷、相容性驅動程式庫和 cpu-ctrl 序列 ID 的問題。
- 新增對穩定的匯流排拓撲資訊支援,讓匯流排驅動程式可提供結構化拓撲資料和權杖,用於用戶端驗證,而基於整數的鍵不再用於 DFv1,且如果使用,則會傳回錯誤。
- 新增屬性字典資料類型
NodePropertyDictionary2
,用於取代DriverStartArgs
中的NodePropertyDictionary
。- 變更:fxr/1129901
- 新增了對
fuchsia_driver_package
的支援,可將其匯出至 Bazel。- 變更:fxr/1159533
- 為驅動程式新增了以
std::format
為基礎的記錄 API。- 變更:fxr/1137617
- 在
ffx driver
中新增對顯示匯流排區段的支援。- 變更:fxr/1149312
- 在驅動程式庫啟動失敗後,讓節點處於隔離狀態的更新
- 變更:fxr/1127478
- 修正 DDK 中的 FIDL 中繼資料擷取問題,並將
fdio::open_deprecated
呼叫替換為fdio::open
。 - 更新 SDK 驅動程式庫,以便使用
span<const T>
而非const vector<T>&
,並將phys-iter
移至//src/devices/lib/io-buffer
。 - 將
driver_context
重新命名為thread_context
,並將fake-bti
程式庫更新為新式 C++ 標準。 - 更新 Driver Host 以使用與 io2 相容的 Serve 簽名,並移除對
driver_manager
中已淘汰的Node.Clone
方法的處理。
GPU
我們已針對 GPU 進行下列更新:
- 改善 Vulkan 交換鏈功能:這包括使用
unsquashable
標記、移除明確的時間戳記,以及將柵欄重新命名為 fence_signalers,藉此簡化交換鏈呈現邏輯;變更柵欄訊號以觀察 vsyncs;從 HLCPP 遷移 Flatland 交換鏈;以及修正假 Flatland 的fuchsia.ui.composition.Allocator.RegisterBufferCollection
實作。 - 改善 virtio-gpu-display:移除對 sysmem1 的未使用參照,使用 DriverLayer 和 ConfigStamp,並簡化 Banjo 轉接器 API。
- 已遷移至 open3 fdio:包含與 fdio_open 遷移和一般 open 到 open3 遷移相關的變更。
- 在 msd_c.h 中新增函式:包括新增緩衝區匯入/釋放、建立/釋放連線,以及對應/釋放緩衝區函式。
國際化
我們已為 I18n 進行以下更新:
- 改善 ICU 建構程序和設定處理機制。移除了
jiri
鉤子,改為在gn gen
期間直接呼叫產生器指令碼,藉此提升效率和icu_root
準確度。推出由 Jiri 鉤子管理的build/icu/jiri_generated/config.json
,以便最佳化icu_config_info
的讀取作業,並新增資料完整性的驗證目標。
IOT
我們已針對 IOT 進行以下更新:
- 修正 GHP 的錯誤。
平台驅動程式
我們已針對平台驅動程式進行下列更新:
- 改善 AML CPU 驅動程式庫記錄功能,並將 imx227 驅動程式庫改為使用
SetBufferMode()
。 - 將
aml-light
驅動程式庫遷移至//sdk/lib/driver/platform-device/cpp
SDK 程式庫,並重構其建構目標,以便進行現代化。 - 移除暫停時間限制,可讓暫停時間任意延長。
- 變更:fxr/1106200
- 對 SPMI (系統電源管理介面) 架構進行了多項改善。包括針對模擬的 spmi 進行更新,以便進行非同步測試、啟用 UnownedClientEnd 的讀/寫存取權,以及新增對
SpmiRegisterArray
的支援。此外,我們已實作GetProperties
和WatchControllerWriteCommands
的支援功能。 - 新增方法,讓 SPMI 驅動程式庫用戶端可接收來自裝置的控制器寫入指令,完成 SPMI 的軟轉換。這會移除暫時性的建構檔案。
電源管理
我們已對電源管理功能進行以下更新:
- 改善可觀察性和評估功能。包括從追蹤記錄檔中捨棄無效的 Gonk 樣本、在檢查資料中使用實際時間,以及 Power Broker 的 Cobalt 指標。
- 改善平台電源管理。包括透過元件管理服務工具,以內建元件形式執行關機墊片;消除 Power Broker 中的潛在記憶體外洩情形;以及移除喚醒處理和完整喚醒處理電源元素。
- 持續開發 CPU 電源管理功能。包含 VIM3 的能源模型,以及支援使用能源模型設定核心的平台。
荒漠油廠
我們已對 Rust 進行以下更新:
- 改善程式碼品質和 linting。解決了
or_fun_call
和set_contains_or_insert
lint 的處理問題,移除了新工具鍊偵測到的死碼,並啟用clippy::redundant_clone
、clippy::needless_collect
、clippy::collection_is_never_read
和clippy::clear_with_drain
。 - 最佳化記錄記錄解碼功能。已從
nom
遷移至zerocopy
,以改善效能並簡化程式碼。- 變更:fxr/1160813
- 已從 async-io 遷移至 Tokio。計時器會延遲初始化,以解決 Tokio 主機/目標執行者的差異。
- 變更:fxr/1159422
- 為 RemoteLike 新增 Open3 支援。
- 變更:fxr/1158892
- 錯誤:fxb/335769966
SDK
我們已對 SDK 進行以下更新:
- 透過新的
span<const T>
支援和 FIDL 中繼資料函式,強化驅動程式庫程式開發作業,提升彈性並減少樣板。 - 擴充合作夥伴 SDK 功能,新增
gen-android-starnix-container
主機工具、fuchsia.system.state
和fake-platform-device
,以改善樹狀結構外開發作業。 - 透過遷移至
Node.Clone2
並在測試中使用Open3
進行服務連線,改善sys
程式庫中的 io2 相容性,解決權限問題。 - 在
input_report_reader
中新增對const ToFidlInputReport()
的支援,並在 Rust SDK 中新增中斷確認,提升功能和一致性。 - 使用 LLCPP FIDL 繫結、類型安全的 io2 替換項目,以及移除已淘汰的函式,以便改良 VFS 程式庫,簡化 API 並提升安全性。
- 修正
sdk_source_set()
行為、處理fdio
中的 POSIX 標記,並解決fx build --fint-params-path
的問題,進而改善建構系統。 - 移除已淘汰的
fserve
、fpublish
和pm
指令,以及 FIDL 版本設定的時間相關程式庫例外狀況,以清理 SDK。
軟體推送
我們已針對軟體提交機制進行以下更新:
- 新增
FindDynamicDataSink
API 取代UseBlockDevice
,將區塊裝置查詢責任轉移至分區映像檔安裝工具服務。新增AndroidPartitionerTest
和Vim3DevicePartitionerTest
,以提高可靠性,並處理多個 GPT 裝置等邊緣案例,並防止意外清除啟動載入程式。 - 在 FIDL API 中新增無法啟動的理由資料,以便改善錯誤回報和診斷功能。
- 變更:fxr/1153492
- 修正在
GetMetadata
呼叫期間發生在ResetPartitionTables
中的斷言,改善分區映像檔安裝工具穩定性。正確回報上次啟動嘗試,修正無法啟動的插槽的異常行為。新增對 Sorrel 的支援。 - 為儲存空間主機相容性和簡化測試進行重構。已移除
AbrClientFactory
,以簡化用戶端建立程序。已刪除重複的 GUID 查詢表。ResetPartitionTables
現在會取代依賴直接 GPT 存取權的函式。新增KolaAbrClient
的單元測試。 - 在檢查中公開
fuzz_percentage_range
。這則留言已編輯,反映出分區映像檔安裝工具在最終啟動嘗試時回報的待處理狀態。 - 已從
Node.Clone
遷移至Node.Clone2
,以便進行 io2 遷移。已更新fuchsia_fs
函式。使用 open3 fdio。排序附加的資訊清單和資訊清單,以便判定。 - 重構
PolicyEngine
並遷移至QueryConfigurationStatusAndBootAttempts
,以便在成功提交時回報啟動嘗試。
Starnix
我們已為 Starnix 進行下列更新:
- 實作 fscrypt ioctls,新增對使用者管理的加密金鑰支援功能。不過,系統尚未完全支援對已上鎖的加密目錄執行作業,且
FS_IOC_REMOVE_ENCRYPTION_KEY
無法正確處理上鎖作業。- 變更:fxr/1096181
- 強化 SELinux 以提升安全性和存取權控管功能。這包括透過
/sys/fs/selinux/avc/cache_stats
回報存取向量快取統計資料,以及針對安全性情境進行類別組合規格化的基本實作。 - 改善對 cBPF 和 eBPF 的支援。修正了幾個 cBPF 相容性問題,包括實作
BPF_MSH
指令和調整封包存取指令。我們強化了 eBPF 驗證器,以改善結構體處理方式,並防止陣列邊界檢查繞過。 - 已更新
cgroup
和cgroup2
檔案系統,並將cpuset
設為 CgroupV1 檔案系統,以便掛載。cgroup.controllers
介面檔案也能供存取。- 變更:fxr/1139553
- 錯誤:fxb/373898293
- 已重新啟用 Starnix 暫停功能。喚醒鎖定會在核心中追蹤,容器暫停會委派給執行元件,後者會監控已註冊的管道,以便恢復容器。相關修正項目會處理租用權取得順序,並改善執行程式代理程式的健全性。
- 新增對 aarch32 uapi 的支援。並附上對應的建構引數。
- 修正
FIONBIO
期間的FIONBIO
ioctl 和功能計算。execve
FIONBIO
會根據使用者輸入內容正確處理NONBLOCK
標記,且在execve
期間正確計算 set-user-ID 根目錄程式的功能。不過,後者尚未解決檔案功能和SECBIT_NOROOT
的問題。
測試
我們已為測試功能進行以下更新:
- 在多個領域改善測試基礎架構:
- 在啟動/引導環境中導入測試支援功能,讓啟動檔案系統測試能以元件形式執行。
- 變更:fxr/1115963
- 在 arm64 上啟用 crosvm 測試,並將其新增至官方核心測試環境。
- 變更:fxr/1144372
- 確保 CTF 構件複製至正確位置,解決從版本載入這些構件的問題。
- 變更:fxr/1144654
- 新增對 botanist 中 Kola 的序列金鑰佈建支援。
- 變更:fxr/1143877
- 在啟動/引導環境中導入測試支援功能,讓啟動檔案系統測試能以元件形式執行。
- 新增 API 來壓縮偵錯資料,大幅提升使用
ffx
的測試範圍機器人速度。舊版未壓縮 API 已淘汰。- 變更:fxr/1160356
- 改善各種測試:
- 延長計時器截止期限,修正
Timer.Restart
核心測試中的 flake。- 變更:fxr/1148133
- 錯誤:fxb/375681700
- 更新
msd-arm-mali
中的關閉測試,以記錄更多錯誤,協助偵錯 flake。- 變更:fxr/1163332
- 移除了
FailEarlyWake
分頁器測試中的競爭狀況,避免無限期阻斷。- 變更:fxr/1116952
- 透過確保 VMO 對應項目周圍的邊界頁面,修正核心 FIFO 測試中罕見的 flake 問題。
- 變更:fxr/1138832
- 將 msd-arm-mali 測試中的 1 秒逾時時間替換為無限逾時時間,可能可解決 flake 問題。
- 變更:fxr/1145312
- 延長計時器截止期限,修正
- 改善分區映像檔安裝工具測試,提升穩定性和相容性:
- 使用預先初始化的區塊裝置,更新儲存空間主機相容性的分區映像檔安裝工具測試。
- 變更:fxr/1161912
- 新增了回歸測試
AndroidPartitionerTest
,確保 Android 裝置上的 GPT 正確識別。- 變更:fxr/1161913
- 使用預先初始化的區塊裝置,更新儲存空間主機相容性的分區映像檔安裝工具測試。
- 更新測試工具和指標處理程序:
- 更新核心測試,以支援舊版和新版核心歸因模式。
- 已從
ConstantMetricsProcessor
中移除已淘汰的參數。- 變更:fxr/1151352
- 使用
ConstantMetricsProcessor
時,必須提供檔案名稱,才能使用自由格式指標。- 變更:fxr/1149474
- 強化 CTF 測試,以便使用新的 C++ FIDL 繫結。
- 變更:fxr/1151392
工具
我們已對工具進行下列更新:
- 更新
tunneling
和ninjalog
工具:tunneling
現已改善錯誤訊息,並提供診斷建議,ninjalog
則支援 Ninja 記錄格式 v7。 - 在
temperature-cli
工具中新增支援功能,可取得、設定及等待溫度觸發點。- 變更:fxr/1159452
- 更新
make-fuchsia-vol
,以便使用產品套裝組合做為圖片檔案的主要來源,並優先使用稀疏圖片。 - 加強型
paver
:新增AndroidPartitionerTest
和Vim3DevicePartitionerTest
。修正不支援的區塊裝置上的GetMetadata
錯誤。改善測試中的storage-host
相容性。已將unbootable_reason
新增至 FIDL API。正確回報last-boot-attempt
,並解決了不可靠的測試。 - 已將
package_manager_test
遷移至前景存放區伺服器,並修正不穩定的測試。 - 由於發生問題,因此將從轉移資訊清單複製 blob 的變更還原。
- 變更:fxr/1145134
- 改善
test_list_tool
,以便正確處理套件資訊清單中的檔案相關 blob。- 變更:fxr/1144841
ffx
以下是 ffx
的更新內容:
- 更新
ffx
,以便在任何非致命的 SSH 錯誤發生時重試target add
。- 變更:fxr/1149316
fx
以下是 fx
的更新內容:
- 新增對產品組合引數的支援,適用於
fx create-pb-zip
。- 變更:fxr/1157159
- 改善
fx
指令,在強制清除後自動叫用fx gen
,並新增fx rbe cleanlogs
指令,從fuchsia-reproxy-wrap.sh
移除記錄。 - 推出
fx generator
,用於在雙重建構目標中同步處理BUILD.bazel
和BUILD.gn
檔案。- 異動:fxr/1152797
UI
我們已針對 UI 進行以下更新:
- 新增
fuchsia.ui.VisualDebuggingLevel
設定,讓開發人員可控制偵錯功能,包括景觀色調、Starnix 紫色畫面,以及關閉螢幕時的驅動程式庫綠色畫面。ui_visual_debugging_level
現在使用可用性過渡路由,因此在 Starnix 相關測試中,不再需要路由。 - 在 Starnix 中新增測試,驗證在未開啟裝置時,觸控事件是否會遭到捨棄。
starnix-touch-test
已重構,以便重複使用GetTouchEventSequenceOfLen
。這可簡化多讀取器和關閉測試。 - 新增了螢幕保護程式元件,隱藏在標記後方,用於展示 Fuchsia Offload。
- 變更:fxr/1139416
- 為螢幕截圖新增 RGBA 支援功能。
- 變更:fxr/1114632
- 改善 Scenic 設定記錄和設定處理:更新 Scenic 設定記錄,以便在單一行中顯示,將
ChoosePreferredPixelFormat()
重新命名為ChosePreferredRenderTargetFormat()
,並移除未使用的DisplayManager::SetVsyncCallback()
方法。 - 為 CPU 轉譯器測試停用顯示組合功能。
- 變更:fxr/1153713
- 暫時停用直接顯示功能,並移除依賴事件的相關程式碼;現在的顯示測試會使用 vsync 而非訊號事件。
WLAN
我們已對 WLAN 進行以下更新:
- 改善
Fullmac
FIDL 介面。我們將多個Fullmac
FIDL 訊息轉換為使用表格,以便提升資訊清楚度和 ABI 相容性。 - 改善 WLAN 穩定性和診斷功能。解決不穩定的測試、保留已移除介面的檢查資料,並記錄統計資料查詢逾時的瑕疵。
- 重構
fuchsia.wlan.common
FIDL。介面和指令已移至更具體的 FIDL。- 變更:fxr/1142592
- 改善電源感知管道 改善電源狀態處理方式,並新增管道。
- 為 WLAN Core 和相關基礎架構新增端對端測試。這包括直接與
wlandevicemonitor
互動的測試,以及沒有政策層級的產品組合的新建構參數。- 變更:fxr/1152113