GWP-ASan và KFENCE là các công cụ phát hiện bộ nhớ mang tính xác suất tương ứng cho không gian người dùng và hạt nhân. Khi được bật, một số ít lượt phân bổ sẽ được bảo vệ bằng các trang bộ nhớ bổ sung xung quanh bộ nhớ được phân bổ. Điều này cho phép phát hiện tình trạng tràn bộ đệm và sử dụng sau khi giải phóng với mức hao tổn hiệu suất không đáng kể. Ngay cả với tốc độ lấy mẫu nhỏ cho các lượt phân bổ được bảo vệ, khi được triển khai trên quy mô lớn, các lượt phân bổ này có thể phát hiện hiệu quả các lỗi về độ an toàn của bộ nhớ. Kể từ khi ra mắt, các công cụ này đã giúp xác định nhiều lỗi nền tảng và đã chứng minh là một công cụ có giá trị để cải thiện độ ổn định và bảo mật. Các nhà cung cấp nên bật các tính năng này và theo dõi chặt chẽ các lỗi được phát hiện trên thiết bị của người dùng cuối.
Nhà phát triển nên kiểm tra xem có sự cố hay không bằng cách kiểm tra /data/tombstones
, logcat
hoặc bằng cách theo dõi quy trình DropboxManager
của nhà cung cấp để tìm lỗi của người dùng cuối.
Để biết thêm thông tin, hãy xem tài liệu của chúng tôi về cách gỡ lỗi mã gốc Android.
Gỡ lỗi mã nền tảng Android gốcGWP-ASan để phát hiện lỗi về an toàn bộ nhớ trong không gian người dùng
GWP-ASan được giới thiệu trong Android 11 để phân bổ vùng nhớ khối xếp trong không gian người dùng. Khi phát hiện lỗi, GWP-ASan sẽ ghi lại báo cáo sự cố bằng Cause: [GWP-ASan]:
và chấm dứt quy trình. Báo cáo lỗi chứa thêm thông tin về việc phân bổ và giải phóng giúp bạn dễ dàng xác định nguyên nhân gốc rễ.
GWP-ASan được bật ngẫu nhiên, khi khởi động, cho 1% số quy trình hoặc ứng dụng hệ thống và cho các ứng dụng đặt android:gwpAsanMode
trong tệp AndroidManifest.xml
.
KFENCE để phát hiện lỗi an toàn về bộ nhớ nhân
Android 12 đã ra mắt KFENCE cho các lượt phân bổ vùng nhớ khối xếp hạt nhân. Khi phát hiện lỗi, KFENCE sẽ ghi lại báo cáo sự cố bắt đầu bằng BUG: KFENCE,
, vô hiệu hoá các trang bảo vệ và tiếp tục thực thi.
Điều này cho phép cơ chế phát hiện lỗi hạt nhân tác động tối thiểu đến trải nghiệm người dùng.
Để tìm hiểu thêm về KFENCE, hãy xem tài liệu tại https://www.kernel.org