日期:2026 年 4 月 7 日
版本:F30
無障礙設定
我們針對無障礙功能進行了下列平台更新:
- 強化無障礙記錄功能。擴大多指和多點觸控縮放動作的記錄,以利偵錯放大功能。
音訊
音訊平台更新如下:
PacketStream API 和 FIDL 改善項目。推出
PacketStreamAPI,支援 AAC 和 SBC 等編碼音訊串流格式。為支援非 PCM 音訊格式,我們更新了 FIDL 通訊協定,導入可擴充的聯集 (Format2/SupportedFormats2),並淘汰封閉式Composite通訊協定,改用新的開放式版本。廣泛的診斷和檢查功能。擴充驅動程式和 AudioDeviceRegistry (ADR) 的檢查診斷功能,納入環形緩衝區指標、排程延遲和時脈網域註解。這些新增項目會保留在每個工作階段中,並進一步匯總至新的 diagnostics_summary 區段,大幅提升開發人員的疑難排解和效能分類效率。
FFX 音訊 CLI 工具改良。強化
ffx audioCLI 工具,在裝置資訊輸出內容中顯示裝置名稱,並修正說明中的文字顯示錯誤。此外,ffx audio play現在會將無障礙輸入內容正確地傳送至Accessibility使用模式,而不是Background。效能最佳化和驅動程式修正。重新啟用音訊目標的連結時間最佳化 (LTO),以提升效能。此外,我們也強制執行連續 VMO 大小的頁面捨入作業,藉此修正
aml-g12驅動程式庫的驅動程式庫相容性,以符合更嚴格的系統呼叫 API 需求。
藍牙
我們針對藍牙進行了下列平台更新:
可設定的 RFCOMM 最大封包大小。以每個 DLC 為基礎進行
max_packet_size協商,以正確符合 RFCOMM 5.5.3 規格。- 變更:fxr/1423394
- 錯誤:b/460778521
在 BondingData 中保存裝置類別。在
BondingDataFIDL 結構體中新增選用的裝置類別欄位,讓bt-gap在系統重新啟動後仍可保留該欄位。AVRCP 連線和音量。可視需求啟動 AVRCP 控制和瀏覽連線,並整合
bt-avrcp-vol- control元件,輕鬆管理用戶端的音量控制,進而提升效率MAP OBEX 連線穩定性。在 MAS 傳輸連線後立即啟動 OBEX
CONNECT,並正確等待用戶端啟動 OBEXDISCONNECT,提高裝置相容性。修正 Sapphire 自動偵測錯誤。解決特定耳機的重大音訊跳過問題,方法是在配對期間和 A2DP 啟用時,抑制
autosniff行為。Sapphire 封包篩選功能強化。在
AdvertisingPacketFilter::Config中新增明確的傳送模式,並強制執行預設 RSSI 底限,防止控制器錯誤地忽略有效對等互連裝置。基礎架構和可觀測性更新。新增組件設定,可將設定檔要求動態路由至
bt-rfcomm,並導入 GATT 設定檔探索失敗的診斷追蹤功能。
建構
Build 的更新內容如下:
為 Rust 啟用 LTO,並清除最佳化設定。 預設將連結時間最佳化 (LTO) 擴展至 Rust 程式碼集,以提升執行階段效能並縮減二進位檔大小。此外,也為特定核心目標啟用 LTO,現在可以獨立調整最佳化層級。
將建構系統遷移至 Rust 2024 版本。更新全域 Rust 工具鍊設定,以利用新版本並為 Rust 二進位檔設定
max- page-size連結引數。進階 Bazel 遷移作業和改良的 IDK 工具。導入新的 Bazel 規則,簡化 IDK 預先建構作業,並從 SDK 中移除已淘汰的
fuchsia_fidl_llcpp_library()規則。現在,系統會在第一次bazel build時產生偵錯符號,以節省額外負擔。從建構系統中移除舊版 macOS 支援。從工具鍊、測試指令碼、映像檔定義和 SDK 生成包裝函式中,捨棄 macOS 相容性設定。
在 Build API 中新增用戶端指令。推出
affected_tests和should_file_changes_trigger_build,可識別受影響的測試,並智慧地觸發基礎架構建構作業。file_to_test_package工具也經過改良,可使用gn refs提升精確度。提升建構圖表效能,並改善遠端執行的穩定性。透過以實證建構資料填入 Ninja 邊緣權重,最佳化工作排程,並新增重複 GN 輸出內容的錯誤檢查。解決 Breakpad 符號生成作業的增量建構問題,並透過 RBE 支援 C++ 編譯的遠端
fsatrace。
鈷豔藍
Cobalt 的更新內容如下:
Rust 2024 遷移作業。將 Cobalt 程式碼集遷移至 Rust 2024 版本。
- 變更:fxr/1451488
- 錯誤:b/461906397
標示為實驗性的 STRUCT 欄位。將
STRUCT指標和報表欄位標示為實驗性,避免使用者混淆;開發人員應避免使用這些欄位。- 變更:fxr/1426694
修正同步指令碼。已解決
sync_with_fuchsia.py輔助指令碼的問題。- 變更:fxr/1451649
元件架構
元件架構已進行下列更新:
強化 fuchsia.component.sandbox。更新
DirConnectorAPI,支援傳遞標記和子目錄,並將CreateServiceAggregate新增至CapabilityStore。能力轉送必須有目標。能力轉送現在明確需要目標 (
WeakInstanceToken),確保要求發起者一律會在元件圖中準確識別。- 變更:fxr/1430014
元件控制器更新。在
fuchsia.component.Controller中新增OpenExposedDir,方便直接從子元件的控制器開啟子元件的公開目錄。- 變更:fxr/1432594
CML target_availability 功能。推出
target_availability,可在編譯期間省略能力提案,前提是目標已從組裝的資訊清單中排除。cmc- 變更:fxr/1378207
- 錯誤:b/447668986
檢查記錄檔是否有轉送錯誤。元件管理服務現在會公開
routing_errors「檢查」節點,以便擷取最近的路由失敗情形,進一步診斷裝置端問題。- 變更:fxr/1477081
- 錯誤:b/361087159
嚴格處理啟動檔案系統項目。如果無法從
userboot接收bootfs項目,元件管理服務現在會立即結束,而不是繼續執行啟動程序。- 變更:fxr/1393914
StorageAdmin 通訊協定已淘汰。已將
fuchsia.sys2.StorageAdmin通訊協定移至fuchsia.component.StorageAdmin通訊協定。這項變更允許在 fuchsia.git 外部使用fuchsia.component.StorageAdmin。- 變更:fxr/1449068
在工程版本中,預設會停用追蹤功能。在工程建構版本中,元件管理服務預設會停用追蹤功能,避免因封鎖
trace-provider處理序間通訊 (IPC) 而隨機發生啟動停滯。如果開發人員需要這項功能,可以透過組件旗標重新啟用追蹤。
診斷
「診斷」頁面已進行下列更新:
封存者和記錄彈性。修正元件關閉期間的競爭狀況,並防止畸形資料造成緩衝區溢位,進而提升記錄可靠性。此外,我們將 Syslog 緩衝區移至堆積,進一步減少記憶體用量。
檢查架構強化功能。解決涉及回呼叫用的檢查死結,並直接在檢查中新增元件管理服務路由錯誤追蹤功能。此外,我們也推出了新的
PrintAll測試公用程式,可簡化檢查階層的偵錯作業。取樣器和取樣 API 大幅翻新。重構取樣器,以便使用
fuchsia.diagnostics.Sample。這會將差異卸載至 Archivist,並使用事件代碼有效消除 ID 相同的指標。重新設計診斷資料保留機制。淘汰並移除
DataPersistence通訊協定,改用fuchsia.diagnostics.Sample。為妥善保留當機偵錯資料,持久性不再刪除已儲存的資料,且現在可正確處理生命週期Stop事件,加快終止速度。記憶體監控最佳化。大幅提升記憶體收集作業的效能和準確度,包括壓縮記憶體快照,將有效負載大小從 17.5 MiB 縮減至 1.2 MiB。此外,系統會略過多餘的 Starnix VMO 列舉,並修正重複計算問題,進而提升 CPU 使用率和收集速度。
診斷工具更新。
ffx heapdump工具現在支援同時剖析多個程序,而 32 位元剖析器則新增了以 DWARF 為基礎的堆疊取樣功能。此外,ffx diagnostics現在會在 SSH 驗證期間,將 HTTP 失敗情形顯示為警告,而非嚴重錯誤。
螢幕
多媒體廣告的更新內容如下:
修正顯示引擎事件中的競爭狀況。新增同步功能,避免協調器和引擎驅動程式同時存取,導致驅動程式庫當機。
更新 Intel 螢幕的頁面大小判斷方式。從
intel-display驅動程式庫中移除硬式編碼的PAGE_SIZE常數,並替換為執行階段頁面大小判斷,以支援 RFC 0016。- 變更:fxr/1418928
- 錯誤:b/42146863
驅動程式架構
Driver Framework 的更新內容如下:
電源和暫停功能。在
fdf_power::Suspendablemix-in 中新增fuchsia.power.broker/ElementRunner的支援,讓驅動程式代管程序主動將電源控制代碼轉送至支援的驅動程式。驅動程式代管程序共置。現在,主機板驅動程式可透過新設定和驅動程式庫程式代管程序裝置樹狀結構訪客,直接指定驅動程式庫程式主機共置。
主機端驅動程式記錄。
fdf::Logger現在由主機端測試中的 syslog 結構化後端支援,因此在主機編譯期間,不必再 #ifdef outFDF_LOG巨集。- 變更:fxr/1481463
驅動程式架構 CLI 和效能更新。以
ffx driver host list和show取代已淘汰的list-hosts指令,並透過並行載入元件,大幅提升ffx driver指令和 Driver Index 的啟動速度。Rust Driver 執行階段改善。新增以
libasync為基礎的傳輸方式,可直接在驅動程式庫程式調度器上執行以zx::Channel為基礎的 FIDL 通訊協定,同時新增計時器 API Future 和專用的 Rust 驅動程式庫測試程式庫。執行緒和調度器可靠性。統一執行緒集區邏輯,並確保嚴格執行調度器執行緒限制,避免發生停滯。
支援字典優惠。現在可以透過元件架構字典安全地提供及對應節點能力,不必再透過提供驅動程式庫傳出目錄。
- 變更:fxr/1430335
診斷功能強化。現在,如果驅動程式在關機程序期間停止回應,驅動程式管理工具會將堆疊追蹤記錄列印到序列控制台,大幅提升偵錯能力。
FIDL
FIDL 的更新內容如下:
FIDL 繫結效能提升。移除訊息標頭中的依附元件,將 C++ 驅動程式庫建構時間縮短約 36%,並為傳入訊息消除以堆疊為基礎的緩衝區,減少 Zircon 記憶體配置。
FIDL 編譯器更新。放寬
@available屬性,允許note引數與已移除或取代的引數並存,以便更清楚地傳達 API 版本資訊。Rust 繫結演進。將繫結預設為自然類型,而非線路類型,並將
Decoded線路類型重新命名為Owned。此外,也遷移至 Rust 2024,並改善驅動程式庫繫結中的空值控制代碼陣列處理方式。
意見回饋
我們對意見回饋功能進行了下列更新:
網域設定遷移。意見回饋設定已遷移至新的網域設定 (
feedback_config.json),並移除persisted_logs_num_files等未使用的旗標。強化關機和重新啟動追蹤功能。追蹤啟動時的所有關機動作,改善重新啟動註解和當機簽章;透過組件啟用可設定的自發性重新啟動原因;修正無原因 Starnix 關機的歸因。
使用 FXT 格式擷取最佳化記錄。現在「意見回饋」會使用 FXT 格式,而非 JSON,從 Archivist 擷取記錄,藉此略過不必要的序列化作業,大幅提升效能並減少記憶體用量。
- 變更:fxr/1397933
可設定報表儲存庫大小。現在可透過組件設定報表儲存空間大小上限,並將大型磁碟產品的上限提高至 10 MiB,避免大型迷你傾印檔超出儲存空間。
當機快照改良功能。從當機快照中移除未使用的
build.snapshot.xml附件,並修正導致錯誤排除log.kernel.previous_boot.txt的使用後移動錯誤。
韌體
韌體已進行下列更新:
復原:BCB 處理。新增支援
--sideload系統啟動載入程式控制區塊 (BCB) 引數,現在復原功能會在啟動時讀取並清除/misc分區的系統啟動載入程式訊息,避免連續誤啟動復原映像檔。復原:移除 Fastboot 使用者體驗。已從手動選單中移除
fastboot,因為在復原模式中可直接存取- 變更:fxr/147574
復原:使用標準化關機和重新啟動 API。將復原重新啟動處理作業遷移至 Shutdown API,以便準確追蹤關機原因,進而改善當機報告和指標。
復原:系統改善。向復原元件公開
bootfs引數,以便在儲存空間作業期間支援開機插槽識別,並實作完善的死結偵測功能。
圖像和 GPU
以下是「圖形和 GPU」的更新內容:
GPU 驅動程式支援的動態頁面大小。在圖形驅動程式中,以執行階段方法取代硬式編碼的
PAGE_SIZE巨集,支援動態變更的開機時間頁面大小。改善 Mali 驅動程式庫電源管理功能。在
msd-arm-mali驅動程式庫中整合SuspendBlocker,以便在進入系統暫停狀態前,正確排空工作佇列。- 變更:fxr/1395533
I18n
我們已對 I18n 進行下列更新:
- 已將遷移的 ICU 資料同步處理作業移至 fuchsia_sync。ICU 資料庫現在使用
fuchsia_sync,可移除鎖定中毒,進而改善死結偵測功能並減少記憶體負擔。- 變更:fxr/1440144
物聯網、Matter 和 Thread
我們對物聯網、Matter 和 Thread 進行了下列更新:
強化執行緒診斷功能。擴充執行緒檢查功能,部分功能與其他第一方產品的執行緒傾印功能相符。
ePSKc 和邊界代理強化功能。更新 ePSKc 支援功能,修正問題。 F30 仍會停用 ePSKc 功能。請確認邊界代理程式會廣播與其他 1p TBR 產品類似的服務名稱。
TREL Socket 轉送修正。修正網路堆疊 3 的 TREL 相容性問題,這需要
scope_id將封包傳送至連結本機目的地。- 變更:fxr/1446253
核心
Zircon 核心的更新內容如下:
- 強制執行 VMO 頁面對齊 (RFC-0238)。強制對齊頁面,嚴格限制實體和連續 VMO 的建立大小,並轉換為安全地將新加入的頁面歸零。
- 支援執行階段網頁大小 (RFC-0016)。從 Zircon 公開標頭中移除編譯時間
PAGE_SIZE和ZX_PAGE_SIZE巨集,要求開發人員使用明確的執行階段頁面大小檢查。
網路堆疊
網路堆疊已進行下列更新:
支援 eBPF 篩選器比對。新增支援透過
fuchsia.net.filterAPI 執行 eBPF 篩選條件比對器,以便使用介面索引和通訊端 UID 等封包詳細資料。Netdevice Banjo 至 FIDL 和 DFv2 的遷移作業。已將舊版 Banjo 的網路裝置和繫結遷移至 FIDL 協定。
network-tunnetdevice驅動程式庫也已更新為 DFv2,以提升裝置通訊功能。效能和記憶體最佳化。改善 UDP 早期解多工,並將 TCP 選項序列化遷移至更快速的自訂架構。新增捨棄閒置 TCP 緩衝區的功能,大幅回收記憶體。
Socket 診斷和介面 ID。導入
port_identity_koid和GetIdentity功能,將裝置連接埠與 API 介面建立關聯。新增對 TCP 和 UDP 通訊端診斷的遙測支援。NDP 鄰居廣告法規遵循。正確忽略所要求的鄰居探索通告,提升 IPv6 NDP 通訊協定穩定性。現在可正確允許來源位址不明的 NA。
修正 TCP 和 UDP 通訊協定。修正 POSIX 連線逾時回報不正確的問題,以及部分 UDP 檢查碼更新損毀的問題。允許在不同裝置上共用 4 元組的連線,並正確套用 TCP
USER_TIMEOUT,以保持 keep-alive 區段運作。介面遙測和流量計數器。建立
SamplerStats服務,透過 Inspect 公開取樣介面傳輸和接收的位元組計數器,以進行精細的網路歸因。Netlink 處理功能強化。擴大 Netlink 緩衝區大小,最多可達 4MiB,以解決訊息遭截斷的問題。
NLM_F_DUMP新增對SIOCGIFNAMEioctl 的支援,並修正路徑移除作業,以使用正確的繼承指標。Netcfg 和拓撲 API 強化功能。在
InterfaceNamingIdentifier中新增 Topo Path 元素,以便清楚處理支援多種裝置的佈建作業。這樣一來,系統就不會因邏輯介面重複使用實體 MAC 而發生衝突。改善網路和 mDNS。更新 mDNS 以支援以點開頭的 DNS 名稱標籤、擴充 Netlink 鄰近 FIDL 擴充功能,以及更新
NetworkManager檔案系統以支援StarnixNetworks狀態轉換。
平台驅動程式
平台驅動程式的更新內容如下:
Rust Driver Manager Port. 將核心驅動程式管理員元件移植到 Rust,並在驅動程式庫主機中導入韌體當機報告和記憶體歸因追蹤功能。
電源感知驅動程式拓撲。為每個驅動程式庫註冊電源元素,並建立專用儲存空間元素,為進階電源感知拓撲追蹤奠定基礎。
USB DWC3 控制器穩健性。解決多個 DWC3 控制器穩定性問題,修正傳輸資源指派作業,並確保持續處理中斷作業,防止系統暫停作業遭到封鎖。
網路裝置 FIDL 遷移。將
virtio、dwmac和gvnic驅動程式的基礎網路裝置介面從 Banjo 遷移至 FIDL,並進行virtio的 DFv2 移植作業。修正 Virtio 連結狀態。修正
virtio網路驅動程式庫問題,避免在重新啟動時未讀取連結狀態,導致netstack在裝置暫停後收到不正確的狀態。- 變更:fxr/1423296
- 錯誤:b/460146006
DWMAC 穩定性提升。增加裝置重設逾時時間,並修正
DWMAC驅動程式庫中因繫結失敗而觸發的調度器當機問題,避免發生極端案例失敗。修正 SDMMC 和 SDIO 系統當機問題。修正 SDHCI 匯流排閒置邏輯,並解決 SDIO 中因錯誤備用至高速模式而導致的重大系統停止運作問題。
儲存空間分割轉送。導入
block-relay元件,為每個指定分區產生節點,將 GPT 分區順暢轉送至驅動程式庫架構。平台匯流排 IOMMU 支援。在平台匯流排通訊協定中新增
RegisterIommuAPI,用於設定及建構多個 IOMMU。- 變更:fxr/1429620
- 錯誤:b/462183060
中斷喚醒向量政策異動。現在,主機板驅動程式必須透過中繼資料明確設定中斷喚醒向量。完全移除對傳遞
ZX_INTERRUPT_WAKE_VECTOR旗標的用戶端驅動程式支援。Sysmem 填補限制。新增
pad_for_block_size和pad_beyond_image_size緩衝區限制,協助參與者在圖片界線外要求額外位元組,以利系統最佳化。- 變更:fxr/1395453
電源管理
電源管理功能已進行下列更新:
導入 fuchsia.power.cpu FIDL 程式庫,並重構 CPU 效能限制。新的
DomainController通訊協定會將 CPU 顯示為 Starnix 中的冷卻裝置,而 CPU 提升邏輯現在會使用fuchsia.hardware.cpu.ctrl:DeviceAPI 支援 RPPM。將單一
SetBoostFIDL API 取代為多工BoostAPI。 新通訊協定可透過多個來源同時提升系統效能,直到傳回的EventPair控制代碼遭捨棄為止。移除 Power Broker 架構中所有對機會依附元件的支援。現在,系統只支援「肯定依附元件」需求類型,簡化了索賠追蹤和租賃突發狀況。
提升電量百分比準確度,並改善充電電流指標。頻率限制器現在會平緩電池電量下降情形,且 FIDL API 現在會傳回以微安 (µA) 為單位的充電電流,並更新「
Charging」欄位名稱。重構電池遙測和內部處理程序。電池管理工具現在會在內部強制執行事件排序,防止更新遭到捨棄,並只在發生有意義的變化時,記錄電壓、容量和預估充飽電時間。
新增硬體觸發點監控功能,並強化熱記錄功能。 導入
TrippointWatcher通訊協定,直接監控硬體觸發點,並更新熱記錄功能,準確追蹤最高溫度。將核心電源服務遷移至統一的 Shutdown API。為確保系統會普遍記錄關機原因,我們已淘汰先前的重新啟動和關機方法,改用
Shutdown。新增檢查持續性功能,並提升系統可觀測性。
power_state_recorder現在可以在重新啟動時將檢查記錄保留在磁碟中,而新的喚醒租用事件和健康節點則可改善時間軸工具和啟動監控功能。在系統活動管理員 (SAG) 中,將 Suspender 連線邏輯設為非同步。這樣可避免 SAG 在等待 Suspender 連線時封鎖啟動程序,以便在啟動驅動程式前擷取驅動程式庫權杖。
荒漠油廠
Rust 已進行下列更新:
Rust 2024 遷移作業。開始將來源樹狀結構遷移至 Rust 2024,方法是強制執行新的安全 Lint (例如
missing_unsafe_on_extern),並解決舊版閉包擷取生命週期問題。第三方 Crate 更新。推出依附元件,包含
zerocopy的效能最佳化功能,以及未維護的bincodeCrate 瀏覽權限限制。
安全性
安全性方面有以下更新:
審查設定更新。在 Scrutiny 政策中新增
component_tree_config和啟動引數設定,可擷取動態字典和核心引數,以進行準確的能力轉送稽核。Sealing Keys API 更新。導入
DeleteAllKeys函式,將 Keymint 密封金鑰支援全面金鑰刪除作業。- 變更:fxr/1405533
TEE 管理員依附元件解析。將
tee_manager移至基本套件組合,並設定使用基本解析器,避免在套件解析期間無法解除鎖定永久儲存空間的依附元件週期。- 變更:fxr/1405675
Cryptography API 和憑證更新。推出 TLS 根憑證,並將程式碼庫邏輯遷移至新的
fuchsia-merkleAPI,取代已淘汰的MerkleTree方法。
軟體推送
軟體交付服務的更新內容如下:
移除鋪路目標並改善鋪路。Fuchsia 已正式移除鋪路支援。
moonflower分區映像檔安裝工具現在可防止裝置因啟動分區損毀而無法運作,並支援vbmeta映像檔和新主機板。強化 OTA 和系統更新程式。系統更新程式和提交者現在會使用 Shutdown API,確保精確追蹤當機回報。更新程式也新增了無封裝更新支援、在復原期間驗證現有 Blob,並改善 Omaha 用戶端計時器管理。
套件解析器沙箱和 Blobfs API 遷移。現在,系統會在
http-client元件中,而非pkg-resolver中,對不受信任的 HTTP Blob 剖析作業進行沙箱化。此外,blobfs 用戶端已完全遷移至BlobReader和BlobCreatorAPI,並捨棄舊版檔案和目錄變數。ELF Runner 設定和 API 曝光。ELF 執行元件現在會公開公用 API,用於獨立組裝啟動資訊,並自動複製傳出目錄權限,修正服務曝光問題。此外,這項功能也為
bad_handles工作政策新增以例外狀況為基礎的政策設定。Fuchsia Merkle Tree API 最佳化。
fuchsia-merkle程式庫以經過記憶體最佳化的MerkleRootBuilder和MerkleVerifier基本體,取代了舊版建構工具 API。這可避免不必要的內部雜湊儲存空間,並有效處理串流區塊未對齊的資料。改善視窗化統計資料檢查功能。我們重新設計了 Windowed Stats 的時間序列檢查功能,移除了週期性緩衝區寫入作業,並防止預先配置大型陣列。包括新的
Simple8bRle解碼器、Diff統計資料計算和改良的鎖定功能。
Starnix
Starnix 已進行下列更新:
Kernel 和 Machina 環境更新。將 Starnix 核心版本升級至 6.6.30,並將 Machina 目標的預設 Debian 映像檔更新至 Bookworm (Linux 核心 6.1.0-42)。
SELinux 和存取控管強化功能。透過新的
ptrace存取權檢查、SECCOMP 稽核整合和 NNP/nosuid轉換檢查,強化安全性。新增memfd_class和cgroup_seclabel等政策功能,擴大存取控管範圍。網路和 eBPF 功能。新增
iptables中的 BPF 比對器、實作多個 IPv6 sysctl,以及存根AF_QIPCRTR插座,擴充網路功能。啟用 FIDL 地圖共用功能並新增基本SO_ANDROID_DROP_REASON支援,提升 eBPF 公用程式。改善終端機行紀律。新增對
IXON流量控制和各種行規標記的支援,提升終端機的正確性。修正換行後影響佇列寫入作業的錯誤。電源、CPU 和散熱管理。強化電源控制功能,包括啟動時的 CPU 提升、新的使用者空間充電/冷卻裝置,以及透過統一的
Shutdown通訊協定記錄更準確的關機資訊。儲存空間與檔案系統整合。將 Starnix 遷移至使用實際區塊裝置,而非 VMO,大幅提升效能。增強型檔案型加密 (FBE),支援內嵌加密和
fstab指定的金鑰位置。核心執行和程序管理。將暫存器狀態直接對應至受限狀態 VMO,藉此最佳化系統呼叫執行作業,消除多餘的資料移動。針對影子程序修正記憶體會計,並實作
PTRACE_SETREGSET。Starnix 檔案系統加密升級。Starnix 現在會使用
lblk32演算法,而非舊版fxfs,用於fscrypt目錄和符號連結鍵。內嵌密碼編譯硬體通訊現在是同步的,可避免系統呼叫期間發生非同步問題。
儲存空間
儲存空間的更新內容如下:
封鎖 FIDL 通訊協定。磁碟區、分割區和區塊通訊協定已統一為單一
fuchsia.storage.block.BlockFIDL 通訊協定,可將區塊元件與驅動程式架構分離。- 變更:fxr/1456131
Blobfs 會停止將 Blob 做為檔案提供服務。系統不會再透過
fuchsia.io/File提供 Blob,必須透過BlobReader存取,並透過BlobCreator或BlobWriter寫入。線上壓縮和VMEX能力也已移除。提升 Blob 磁碟區閃爍效能。透過讓用戶端取消稀疏酬載,閃爍新的 BLOB 磁碟區的速度會大幅提升 (從超過 120 秒降至 40 秒以下)。
- 變更:fxr/1418919
- 錯誤:b/460510280
公開 Blobfs 覆寫設定。Blobfs 和 SDK 已新增
OverwriteConfigurationFIDL 能力,可讓產品控制 Blob 覆寫狀態和格式。Fxfs 32 位元物件 ID 和快取。新的 Starnix 磁碟區會將 inode ID 限制為 32 位元 (導入不可回溯的 Fxfs 版本變更),並快取物件金鑰,大幅提升
GetAttributes效能。Fxfs 記憶體最佳化。Fxfs 可將 Merkle 驗證的記憶體用量減少至少 75%,並為可變動檔案的支援 VMO 命名為「
fxfs-file」,以利記憶體剖析。F2FS 同步處理機制已強化。修正孤立回收期間的競爭狀況,並改善 vnode 階層同步處理,以可靠地保留開放式孤立檔案的資料區塊。
改善 Block Driver Framework。新的
block-relay元件會將系統 GPT 分區直接轉送至驅動程式架構。伺服器實作的封鎖功能也改善了強制單元存取 (FUA) 處理程序,並將要求處理程序移至專屬執行緒,避免發生並行問題。全系統儲存空間行為更新。統一
read_dirents一律為小型緩衝區傳回ZX_ERR_BUFFER_TOO_SMALL,並移除硬式編碼的PAGE_SIZE假設,改用動態檢查,提升可攜性。
測試
測試版已進行下列更新:
fx 測試逾時、統計資料和可靠性。
fx test現在會將逾時委派給test_manager,以收集回溯追蹤記錄、在偵錯期間自動停用逾時,並新增--pr stats標記。此外,我們也修正了錯誤,避免臨時套件伺服器在發生錯誤後洩漏資訊。關閉並重新啟動 API 遷移作業。淘汰測試介面 (例如
honeydew、sl4f) 中的PerformReboot,改用Shutdown和ShutdownOptions。這項功能可讓用戶端指定明確的關機原因,進而提升重新啟動原因的追蹤成效。Lacewing 和 Honeydew 輔助功能。新增支援功能:透過
device.register_for_on_device_ip_change()處理測試期間的目標 IP 變更。序列介面也新增了read方法,可直接從序列埠讀取位元組。偵錯和系統目標改善項目。更新
test_manager以遞迴附加DebugAgent,確保涵蓋測試領域中的所有元件。此外,debug_block裝置現在可以做為系統測試目標。
計時
我們對「時間記錄」進行了以下更新:
Starnix /dev/rtc0 實作。在 Starnix 中新增被動式
/dev/rtc0裝置,可消除虛假的rtc0開啟錯誤。- 變更:fxr/1452809
細微的鬧鐘驅動程式庫錯誤。在警報 FIDL API 中導入精細的驅動程式庫錯誤,以改善無法復原的錯誤回報功能。
可設定的 Timekeeper 備援。將最低世界標準時間參考值做為可調整的產品組裝設定,以避免差異。
工具鏈
工具鍊已進行下列更新:
工具鍊版本。已推出 Rust、Clang 和 LLVM 工具鍊套件,納入最新的
libc更新和數學函式改良功能。C++23 相容性。修正了缺少的 include 和編譯器警告,以提升在 C++23 模式下建構程式碼庫時的相容性。
工具
工具的更新內容如下:
fx:macOS 支援已正式終止。
fx和相關 CLI 工具不再適用於 macOS,且現在會明確回報平台不受支援。新的 fx 偵錯指令。新增
fx debug做為ffx debug connect的便利包裝函式,可在需要時自動啟動暫時性套件伺服器。- 變更:fxr/1436314
- 錯誤:b/450890445
已淘汰 fx unarchive-package。
fx unarchive-package開發人員殼層指令已淘汰,並完全由ffx package archive extract取代。- 變更:fxr/1454908
新的 ffx 目標殼層外掛程式。導入
ffx target shell,透過 RCS 與目標裝置建立互動式殼層工作階段。- 變更:fxr/1433974
新增 ffx 驅動程式代管程序子指令。推出
ffx driver host list和ffx driver host show,全面取代已淘汰的ffx driver list- hosts指令。針對 ffx 目標清單篩選位址。新增
--allow-addrs和--deny-addrs篩選選項,取代已淘汰的--no-ipv4和--no-ipv6旗標。- 變更:fxr/1441271
透過 Fastboot 刷寫未佈建的裝置。Fastboot 現在會在刷機期間自動偵測系統容器損毀的未佈建裝置,並直接覆寫
super,或提示完整抹除裝置。- 變更:fxr/1434625
- 錯誤:b/464027981
簡化 ffx 追蹤 FIDL 資料。
ffx trace現在預設會捨棄原始 FIDL 資料,讓 Perfetto UI 更簡潔,並提供新的--retain-raw-fidl旗標來覆寫這項行為。- 變更:fxr/1483556
ffx doctor USB 驅動程式庫檢查。
ffx doctor現在會明確檢查ffx-usb-driver程序狀態,如果插座路徑與設定的環境不符,就會發出警告。- 變更:fxr/1420157
FDomain 用戶端 API 擴充功能和同步重構。
FDomain用戶端 API 進行多項功能改善,並修正傳輸終止時工作停滯的問題。標準程式庫鎖定也已遷移至fuchsia_sync,可自動顯示鎖定週期死結。改善偵錯工具的例外狀況處理機制。
zxdb現在會正確略過例外狀況、擷取一般當機的完整堆疊追蹤記錄,並加入新的exception-info動詞,用於詳細列印例外狀況。
追蹤
追蹤功能已進行下列更新:
預設為 FFX 追蹤輸出清除器。
ffx trace工具預設會捨棄處理序間通訊 (IPC) 追蹤記錄事件中的原始 FIDL 資料,以節省空間並簡化 Perfetto UI,但您可以使用新的--retain-raw-fidl旗標保留這些資料。Trace2json 介面和處理更新。
trace2json工具現在需要--output-file,並新增--category旗標來進行篩選,同時推出分割追蹤輸出格式 (--system-trace-events-file),以減少大型追蹤記錄的 RAM 使用量。改善「追蹤管理員」的儲存空間和穩定性。現在,追蹤管理員會使用快取儲存空間,以便在磁碟空間嚴重不足時清理系統、修正串流對應洩漏問題,並透過重構通訊端寫入作業,解決逾時停止回應的問題。
改善 Rust API 並提升效能。Rust 追蹤 API 現在支援
String和&'static str類型,並新增 vthread 持續時間支援,以及最佳化追蹤巨集,避免在熱路徑上進行不必要的堆積分配。CPU 分析器和核心追蹤記錄功能強化。CPU 分析器現在會以標準 Fuchsia Trace (FXT) 格式發出資料,而核心追蹤記錄則會新增
kernel:power類別,並修正kernel:retain開機追蹤記錄行為。
UI
UI 方面有以下更新:
防止空場景的 GPU 回退。在 Scenic 中新增預設黑色顯示層,防止意外的 GPU 回退,這類回退先前會導致空白場景的效能降低。
- 變更:fxr/1453589
- 錯誤:b/399228128
已從 Scenic 移除
CpuRender。移除 Scenic 內的CpuRender選項,簡化及精簡算繪路徑。- 變更:fxr/1419014
啟用 Flatland 顯示器算繪重複使用功能。
FlatlandDisplay.SetContent()現在可以重複呼叫,以便在測試和應用程式中,更妥善地重複使用顯示執行個體。- 變更:fxr/1475736
- 錯誤:b/454715223、b/42156567
最佳化 Scenic 組合效能。如果沒有差異,系統會回收
SceneState和略過ViewTree重新計算作業,大幅減少每個影格的 CPU 分配負擔。修正 Escher 合成器色彩偽影。在
RectangleCompositor中修正色彩預先相乘,避免非預先相乘的混合模式出現視覺雙重相乘的構件。- 變更:fxr/1398913
合併的 UI 輸入處理常式。將所有 UI 輸入處理常式移至單一事件迴圈,避免 CPU 優先順序轉移,並大幅提升輸入延遲一致性。
- 變更:fxr/1486357
在輸入管道中新增 Wake Lease 支援。輸入管道中的指標注入器、滑鼠、觸控和按鈕,現在可全面管理系統喚醒租用。
輸入管道和
virtcon快速鍵。修正輸入管道競爭導致的當機問題,確保只有在管道啟動後才註冊快速鍵。- 變更:fxr/1429441
影片
影片平台已進行下列更新:
- 支援與頁面對齊的 VMO 分配和動態頁面大小。更新攝影機和媒體元件,使用執行階段網頁大小和網頁對齊分配,以符合嚴格的
zx_vmo_create_contiguous規定。
WLAN 和連線
我們對 WLAN 和連線功能進行了下列平台更新:
準備使用機會無線加密 (OWE)。新增 FIDL API、
OweFeature驅動程式功能旗標和Protocol::OWE變數,以支援機會無線加密。支援 MAC 隨機化。在多個通訊協定中新增
factory_addr欄位和SetMacAddressFIDL 方法,以啟用 MAC 隨機化功能,並修正無效的 MAC 生成作業。雜湊至元素 (H2E) SAE 支援。透過新的驅動程式庫程式功能旗標,為支援的驅動程式啟用直接雜湊至元素測試。
WLAN FIDL API 異動和移除。將
WlanSoftmac和NL80211Message演進為彈性類型,以利日後擴充,並完全移除已淘汰的DataPersistence、ppp和未使用的 SL4F WLAN 程式碼。連線穩定性與漫遊修正。將管道 165 以上的頻寬覆寫為 20 MHz,並啟用舊版備援邏輯,解決連線/漫遊失敗問題。修正不必要的連線中斷問題,並修正 5 GHz AP 管道啟動問題,明確驗證 DFS 法規支援。
系統穩定性與韌體當機復原。將
PhyImplNotify移至獨立的調度器,防止韌體當機期間驅動程式庫凍結,並將管道事件直接傳送至DeviceMonitor,提升穩定性。此外,我們也更新了wlancfg,可乾淨地觸發重新啟動,不會發生恐慌,並將標準鎖定遷移至fuchsia_sync,以利更準確地偵測死結。遙測、指標和指標。擴充遙測功能,記錄掃描事件、漫遊後 RSSI 差異,以及政策導致的漫遊中斷。修正國家/地區代碼報表,確保變更內容正確傳播,且全球網路回報為「00」。