Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

實施範圍內的供應商日誌

Android 11添加了新的HAL IDumpstateDevice(版本1.1)。此HAL公開了新方法,以更嚴格地界定標準錯誤報告中包括的供應商日誌的範圍,並允許用戶構建打開和關閉供應商登錄(用戶構建的默認值為關閉)。這使OEM可以更好地控制特定類型的錯誤報告中包含的內容。

如果OEM選擇實施此可選的HAL,則此功能會影響OEM。 SoC可能會受到影響,具體取決於OEM選擇使用此HAL公開的內容。預計不會對運營商造成影響。

您在錯誤報告中包括的內容取決於您發現與調試有關的信息,但通常,越詳細越好。

實例和來源

IDumpstateDevice(已棄用)1.0版本的默認實現顯示了使用dumpstate util庫的示例: frameworks/native/cmds/dumpstate/DumpstateUtil.h 。 1.1 HAL還有Cuttlefish實現: device/google/cuttlefish/guest/monitoring/dumpstate_ext/*

源代碼位於此處:

實作

要實現此HAL,請實現android.hardware.dumpstate@1.1::IDumpstateDevice HAL接口。有許多可能的DumpstateMode值,但單個設備可能不支持所有值(例如,非Wear OS設備的WEAR)。

實現轉儲狀態HAL是可選的。如果使用Android 11啟動的所有新設備都實現了Dumpstate HAL,則必須實現IDumpstateDevice 1.1。在Android 11之前已經實現IDumpstateDevice 1.0的設備應該相對容易地升級到1.1,因此強烈建議這樣做,因為這樣可以大大減少錯誤報告中包含的無關私人信息的數量。

此功能取決於Android 11隨附的核心dumpstate更改,這些更改位於frameworks/native/cmds/dumpstate

實施此HAL可能需要對某些系統屬性,文件等進行一些SEPolicy更改,以使一切正常運行,並且需要與供應商協調以將所有相關信息轉儲到錯誤報告中。

客制化

設備用戶可以使用開發人員設置打開或關閉供應商登錄。關閉它時, dumpstateBoard_1_1可能仍會輸出OEM所確定的最少基本信息。關閉供應商註銷會使IDumpstateDevice::dumpstateBoard僅向錯誤報告中添加基本信息,而打開時包括OEM選擇的任何信息。

例如,您可以修改dumpstate.cpp (它調用IDumpstateDevice HAL方法),以增加為dumpstateBoard完成所指定的超時。但是, dumpstate.cpp的核心邏輯應保持不變。

超時可以是任何值,但是它們不應顯著增加錯誤報告完成的時間。特別是, DumpstateMode::CONNECTIVITY具有高度的時間敏感性,需要盡快運行以收集所有相關的調製解調器/ Wi-Fi /網絡日誌。

驗證方式

有一個針對IDumpstateDevice實現的VTS測試,還有針對常規BugreportManager功能的功能單元測試。

推薦的手動測試用例是frameworks/base/core/tests/bugreports/src/android/server/bugreports/BugreportManagerTest.java