GWP-ASan 與 KFENCE

GWP-ASan 和 KFENCE 分別為使用者空間和核心機率記憶體偵測工具。啟用後,系統會使用額外的記憶體頁面保護少數配置,這些頁面會環繞所分配的記憶體。這樣一來,您就能以微不足道的效能負載偵測緩衝區溢位和使用後釋放。即使受保護的配置有較低的取樣率,在大量部署時,仍能有效偵測記憶體安全錯誤。自推出以來,這些工具已協助我們找出許多平台錯誤,並證明自己是改善穩定性和安全性的有用工具。我們建議供應商啟用這項功能,並密切監控在使用者裝置上偵測到的錯誤。

開發人員應檢查 /data/tombstoneslogcat 或供應商 DropboxManager 管道,確認是否有使用者端錯誤。

詳情請參閱 Android 原生程式碼偵錯說明文件。

偵錯原生 Android 平台程式碼

GWP-ASan 用於偵測使用者空間記憶體安全錯誤

GWP-ASan 是在 Android 11 中針對使用者空間堆積分配作業推出。GWP-ASan 偵測到錯誤時,會使用 Cause: [GWP-ASan]: 記錄錯誤報告並終止程序。錯誤報告包含額外的配置和取消配置資訊,可讓您更輕鬆地找出根本原因。

系統會在啟動時隨機為 1% 的系統程序或應用程式啟用 GWP-ASan,以及在 AndroidManifest.xml 檔案中設定 android:gwpAsanMode 的應用程式。

GWP-ASan

使用 KFENCE 偵測核心記憶體安全錯誤

Android 12 推出了用於核心堆積配置的 KFENCE。當 KFENCE 偵測到錯誤時,會記錄一個從 BUG: KFENCE, 開始的當機報告,以便停用防護頁面並繼續執行。這可啟用可盡量減少對使用者體驗影響的核心錯誤偵測機制。

如要進一步瞭解 KFENCE,請參閱 https://www.kernel.org 提供的說明文件。