日期:2024 年 7 月 26 日
版本:F21
我們已實施下列變更:
藍牙
我們已對藍牙進行下列更新:
- 我們在將藍牙堆疊遷移至 DFv2 並改良其 API 方面取得重大進展:
bt-hci-intel
、bt-fct-hci
和bt-hci-passthrough
驅動程式已遷移至 DFv2 和新的HciTransport
通訊協定。fuchsia.hardware.bluetooth.VirtualController
、fuchsia.hardware.bluetooth.Peer
和fuchsia.hardware.bluetooth.Emulator
API 已完成現代化。- 將
fuchsia.bluetooth.snoop
FIDL API 改為新式 API。- 變更:fxr/1011612
- 錯誤:fxb/42176826
- 改善藍牙功能和可靠性:
- 實作
AudioOffloadController.Stop
方法和bredr.Connection
通訊協定。 - 新增支援在假控制器中設定 LE 連線角色的功能,並修正
BrEdrDynamicChannel
中的當機問題。 - 已實作
IsoStreamServer
。- 變更:fxr/987032
- 實作
- 強化藍牙測試和開發功能:
- 所有
bt-host
Bazel 單元測試都已合併為一個套件,以加快 Fuchsia Bazel 建構作業的速度。- 變更:fxr/1070483
- 在
EmulatorDevice
中實作HciTransport
API。- 變更:fxr/1066016
- 所有
開發人員
我們已為開發人員進行下列更新:
ffx
- 改善各種
ffx
指令的可用性和可靠性:- 改善
ffx repository add-from-pm
和ffx target show
的錯誤回報功能。 - 修正
ffx component doctor
和ffx starnix adb
的問題。 - 改善重新連線邏輯和錯誤處理機制。
- 已將
ffx target wait
遷移為無守護進程。- 變更:fxr/1061752
- 新增
ffx
指令和選項:- 推出 fxfs 設定檔管理指令 (
stop_profile
和delete_profile
)。 - 在
ffx profile memory
中加入--undigested
標記。- 變更:fxr/1067193
- 推出 fxfs 設定檔管理指令 (
- 改善
- 清理多個
ffx
指令的輸出內容和記錄。 - 未消化記憶體剖析:
ffx profile memory
中的--undigested
標記現在只會顯示未消化的記憶體。- 變更:fxr/1067193
元件架構
我們已為元件架構進行下列更新:
- 穩定性強化:
- 修正開啟服務目錄時的競爭狀況。
- 變更:fxr/1067303
- 移除與元件事件相關的無效程式碼。
- 變更:fxr/1067492
- 錯誤:fxb/347752627
- 修正開啟服務目錄時的競爭狀況。
連線驅動程式
我們已針對連線驅動程式進行下列更新:
- 修正可能在啟動期間發生的當機問題,進而提升 SDIO 驅動程式庫的穩定性。
- 異動:fxr/1065872
診斷
我們已對診斷功能進行以下更新:
- 已最佳化 LogTracer,以免在 Rust 中使用記錄檔 crate 時,建立不必要的記錄檔。
- 變更:fxr/1061641
- 避免在例外狀況中封鎖興趣聆聽,以免在關機期間造成問題。
- 變更:fxr/1065413
- Power broker 會在檢查中加入租賃記錄。
- 變更:fxr/1066704
- 對 C++ syslog API 進行各種改善。
- 錯誤:b/299996898
螢幕
我們已對多媒體廣告進行以下更新:
- 簡化顯示器驅動程式庫堆疊:
- 移除未使用的 DFv1 驅動程式庫,並預設啟用 DFv2 驅動程式庫元件。
驅動程式架構
我們已對 Driver Framework 進行下列更新:
- 移除 Syslog 依附元件:從驅動程式庫執行階段共用程式庫中移除 syslog 依附元件。在某些情況下,當 Bazel 驅動程式要求缺少的 libsyslog.so 時,這也能解決執行階段的連結錯誤。
- 變更:fxr/1068592
FIDL
我們已對 FIDL 進行以下更新:
- 改善 FIDL 效能和工具:
- 改善 FIDL Rust 用戶端喚醒器,並在 C++ 中將句柄計數新增至斷言檢查。
- 為多個 API 級別 FIDL 繫結實作 RFC-0232:
- 在 fidlc 中新增支援功能,並更新 GN 建構工具,以便使用特定 API 級別版本。
- 變更:fxr/955053
- 錯誤:fxb/42085274
- 移除已淘汰的
@available legacy
引數,並更新相關文件。
- 在 fidlc 中新增支援功能,並更新 GN 建構工具,以便使用特定 API 級別版本。
- 改善 FIDL API 設計和說明文件:
- 針對方法和型別宣告右側的禁止屬性,明確說明 AST。
- 在 FIDL 中為平台和外部元件強制執行 ABI 檢查。
- API 級別參照標準化:
ZX_*_SINCE()
巨集現在支援HEAD
關鍵字,可讓 API 級別參照保持一致,並為未來的 API 變更做好準備。
國際化
我們已對 I18n 進行以下更新:
- 移除空白遷移群組,以清理建構系統。
- 變更:fxr/1070932
IOT
我們已針對 IOT 進行以下更新:
- 修正探索 Proxy 解決方法的問題,並防止新增錯誤的 IPv4 位址,進而提升 IOT 堆疊的可靠性。
核心
我們已對核心進行以下更新:
- 改善計時器功能:
platform_set_oneshot_timer
函式現在會使用原始時標做為輸入內容,並支援 Sstc 功能,可在監控模式中直接設定計時器比較值。 - 強化系統呼叫記錄和偵錯功能:系統呼叫現在會在 LTRACE 中依名稱記錄,且系統核心記錄的暫停失敗功能已改善。
- 解決競爭狀況和穩定性問題:修正了在熱插拔期間暫停和執行緒排程後,與 CPU 閒置狀態相關的競爭狀況,並將頁面配置和髒頁處理的變更還原,以確保穩定性。
- 推出新的 VMO 系統呼叫:新增
zx_vmo_get_stream_size
和zx_vmo_set_stream_size
,這些屬性最終會取代 VMO 內容大小的使用屬性。- 變更:fxr/1047092
- 錯誤:fxb/340137331
- 修正多項錯誤:解決
std::find
中的斷言失敗問題,並改善網頁快取行為。
平台驅動程式
我們已為平台驅動程式進行下列更新:
- 強化的 GPIO 公用程式:GPIO 公用程式工具現在支援設定針腳函式,並包含中斷功能。
- 改善 USB 功能和穩定性:USB 連線偵測功能現在運作正常,且
fusb302
驅動程式庫更新可避免重複的GoodCRC
訊息,解決 VIM3 電源週期問題。 - 驅動程式執行階段最佳化:驅動程式執行階段共用程式庫不再依附 syslog 程式庫,可解決執行階段連結錯誤。
- 變更:fxr/1068592
- Amlogic 顯示強化功能:在呼叫
SetDisplayPower(false)
時,Amlogic 顯示編碼器的顏色會變成綠色,方便進行偵錯。- 變更:fxr/1060376
- 節點拓撲驗證:
sherlock
和astro
device-enumeration-test
已遷移至使用驅動程式庫開發服務的別名來驗證節點拓撲。 - ElementControl 管道佈建:
Topology.AddElement
現在可讓用戶端提供自己的ElementControl
管道。雖然目前用戶端仍可使用傳回的管道,但這項行為將會淘汰。
荒漠油廠
我們已對 Rust 進行以下更新:
- 工具鍊和依附元件更新:從
rust-ci
中移除--no-goma
標記,新增rutabaga_gfx
箱,移除dependency_on_unit_never_type_fallback
例項和-Awhere_clauses_object_safety
檢查器。 - 改善遠端執行作業和 API 級別處理:Rust 的遠端執行策略現在已正確傳播,且 Rustdoc 不再處理
api_level
標記。
電源管理
我們已對電源管理功能進行以下更新:
- 電源依附元件管理和術語:移除元素時,也會一併移除其依附元件。「Active」依附元件已重新命名為「assertive」,「passive」則為「opportunistic」。
- 假暫停初始化:
fake-suspend
目前已遭封鎖,直到初始化為止。- 變更:fxr/1065355
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
屬性。- 變更:fxr/1062452
軟體推送
我們已針對軟體提交機制進行以下更新:
- 套件目錄和快取最佳化:套件目錄已針對 fxblob 進行最佳化,大幅提升 blob 讀取速度,且套件快取不再需要儲存空間生命週期因應措施。
- 改善記錄和錯誤訊息:新增系統映像檔套件雜湊的記錄訊息,並強化套件相關的錯誤訊息。
Starnix
我們已為 Starnix 進行下列更新:
- 改善資源管理和歸因:Starnix 程式現在會以子項主體的形式回報,以便改善記憶體歸因。
- 強化信號處理和暫停/繼續功能:系統已針對程序導向信號進行最佳化,以便只中斷一個工作,並解決暫停等候器問題,避免在使用有效殼層繼續執行後無法回應。
- 檔案系統和資料儲存空間改善:在測試中新增資料儲存空間能力的路由,在實際的檔案系統上啟用 xts 測試,並新增從 tarball 到檔案系統的擴充屬性傳播功能。
- 圖形和輸入功能強化:在 GPU 裝置和裝置中新增以 Gfxstream 為基礎的 Rutabaga 例項,以便與輸入管線進行
touch_standby
狀態通訊。 - 改善政策處理、統計資料和位址空間管理:精進政策索引和權限檢查機制,確保統計資料在暫停後重新整理,並修正
user_new_limit
從錯誤位址空間讀取的問題。 - 其他錯誤修正和更新:解決各種問題,包括 bpf 檔案描述符處理、喚醒租約重新命名、ebpf 說明函式存根目錄和
FsNode.append_lock
修改。
測試
我們已為測試功能進行以下更新:
- 提升
fx test
使用者體驗:重新撰寫的fx test
提供偵錯強化功能,包括改善的引數剖析和實用建議。 - 改善測試穩定性和可靠性:SWD 端對端測試、網路測試和
ip-test-macro
現已更可靠且資訊豐富,同時也解決了 WLANhw-sim
自動連線功能中可能出現的錯誤。 - 更新標記名稱並移除未使用的檔案:為求清晰明確,
ffx-output-directory
標記已重新命名為artifact-output-directory
,未使用的mock.rs
檔案則已從fuchsia-component-test
中移除。 - 更穩健的
gvisor_syscall_tests
:這些測試更為穩健且準確,因為我們更新了原始 IP 通訊端測試、核心版本處理、PMTUD,並修正了IPPROTO_ICMP
。- 變更:fxr/1063593
- GPIO 和 netstack 測試更新:
gpio
測試已準備好進行 DFv2/gtest 轉換。netstack_test
巨集現在是明確的,需要明確的類型參數。
計時
我們已對打卡系統進行以下更新:
- 改善 TTRF 說明文件和測試:針對 Timekeeper 行為修改 (尚未啟用) 實作持續測試非同步指令,新增 TTRF 的範例程式碼說明文件,並移除過時的 CFv1 參照。
- 移除未使用的依附元件:移除未使用的電源拓撲依附元件權杖。
- 變更:fxr/1070977
工具鏈
我們已對工具鍊進行下列更新:
- 準虛擬化支援:
PlatformParavirtualizationConfig
現在預設為允許虛擬化 (如果支援的話)。已將半虛擬化支援功能 (包括 vsock 服務) 新增至「模擬 arm64 通用」板卡設定。
工具
我們已對工具進行下列更新:
- 藍牙控制器強化功能:假藍牙控制器現在支援設定 LE 連線角色。
- 變更:fxr/1066752
- 測試和工具更新: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
結構體可在檢查器中改善事件中繼資料的處理方式。記錄現在會在檢查中加入斷線資訊。