GWP-ASan 和 KFENCE

GWP-ASan 和 KFENCE 分別是用於用戶空間和內核的概率內存檢測工具。啟用後,少量分配由圍繞已分配內存的附加內存頁面保護。這允許以可忽略的性能開銷檢測緩衝區溢出和釋放後使用。即使受保護分配的採樣率很小,當大規模部署時,它們也可以有效地檢測內存安全錯誤。自推出以來,這些工具已幫助識別了大量平台錯誤,並已被證明是提高穩定性和安全性的寶貴工具。我們鼓勵供應商啟用它們並密切監視在最終用戶設備上檢測到的錯誤。

開發人員應通過檢查/data/tombstoneslogcat或通過監視供應商DropboxManager管道是否存在最終用戶錯誤來檢查是否存在崩潰。

有關更多信息,請參閱我們關於調試 Android 本機代碼的文檔。

調試原生 Android 平台代碼

用於檢測用戶空間內存安全漏洞的 GWP-ASan

GWP-ASan 是在 Android 11 中引入的,用於用戶空間堆分配。當 GWP-ASan 檢測到錯誤時,它會記錄一個帶有Cause: [GWP-ASan]:的崩潰報告並終止進程。錯誤報告包含額外的分配和解除分配信息,可以更輕鬆地確定根本原因。

GWP-ASan 在啟動時為 1% 的系統進程或應用程序以及在其AndroidManifest.xml文件中設置android:gwpAsanMode的應用程序隨機啟用。

GWP-ASan

用於檢測內核內存安全漏洞的 KFENCE

Android 12 為內核堆分配引入了 KFENCE。當 KFENCE 檢測到錯誤時,它會記錄以BUG: KFENCE,禁用保護頁面並繼續執行。這啟用了一種內核錯誤檢測機制,該機制對用戶體驗的影響最小。

要了解有關 KFENCE 的更多信息,請參閱https://www.kernel.org上提供的文檔