Kể từ ngày 27 tháng 3 năm 2025, bạn nên sử dụng android-latest-release
thay vì aosp-main
để xây dựng và đóng góp cho AOSP. Để biết thêm thông tin, hãy xem phần Thay đổi đối với AOSP.
GWP-ASan và KFENCE
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
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ốcarrow_forward
GWP-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
.
GWP-ASanarrow_forward
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
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-07-27 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-07-27 UTC."],[],[],null,["# GWP-ASan and KFENCE are probabilistic memory detection tools for userspace\nand the kernel, respectively. When enabled, a small number of allocations are\nguarded with additional memory pages that surround the allocated memory.\nThis allows detecting buffer overflows and use-after-frees at a negligible\nperformance overhead. Even with a small sample rate for the guarded allocations,\nwhen deployed at scale they can effectively detect memory safety bugs.\nSince their introduction these tools have helped identify numerous platform\nbugs and have proved to be a valuable tool for improving stability and security.\nWe encourage vendors to enable them and to closely monitor the bugs detected on\nend user devices.\n\n\nDevelopers should check the presence of crashes by checking\n`/data/tombstones`, `logcat` or by monitoring the vendor\n[DropboxManager](https://developer.android.com/reference/android/os/DropBoxManager)\npipeline for end user bugs.\n\n\nFor more information see our docs on debugging Android native\ncode.\n[Debugging Native Android Platform Codearrow_forward](/docs/core/tests/debug)\n\nGWP-ASan for detecting userspace memory safety bugs\n---------------------------------------------------\n\n\nGWP-ASan was introduced in Android 11 for userspace\nheap allocations. When GWP-ASan detects a bug, it records a crash report with\n`Cause: [GWP-ASan]:` and terminates the process. The bug reports\ncontain additional allocation and deallocation information that make it easier\nto identify the root cause.\n\n\nGWP-ASan is randomly enabled, at start-up, for 1% of system processes or\napps and for applications that set the `android:gwpAsanMode` in their\n`AndroidManifest.xml` file.\n[GWP-ASanarrow_forward](https://developer.android.com/ndk/guides/gwp-asan)\n\nKFENCE for detecting kernel memory safety bugs\n----------------------------------------------\n\n\nAndroid 12 introduced KFENCE for kernel heap\nallocations. When KFENCE detects a bug, it records a crash report starting\nwith `BUG: KFENCE,` disables the guard pages and continues execution.\nThis enables a kernel bug detection mechanism that minimally impacts the user\nexperience.\n\n\nTo learn more about KFENCE see the documentation available at [https://www.kernel.org](https://www.kernel.org/doc/html/latest/dev-tools/kfence.html)"]]