Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Cấu hình hạt nhân

Sử dụng cài đặt cấu hình sau làm cơ sở cho cấu hình hạt nhân Android. Cài đặt được tổ chức thành các tệp .cfg cho android-base , android-base- ARCHandroid-recommended :

  • tùy chọn android-base cho phép các tính năng cốt lõi của Android và phải được định cấu hình theo chỉ định của tất cả các thiết bị.
  • Tùy chọn android-base- ARCH cho phép các tính năng cốt lõi của Android và phải được định cấu hình theo chỉ định của tất cả các thiết bị thuộc kiến ​​trúc ARCH . Không phải tất cả các kiến ​​trúc đều có một tệp tương ứng của các tùy chọn bắt buộc dành riêng cho kiến ​​trúc. Nếu kiến ​​trúc của bạn không có tệp, thì cấu trúc đó không có yêu cầu cấu hình hạt nhân cụ thể cho kiến ​​trúc bổ sung cho Android.
  • android-recommended . Các tùy chọn này kích hoạt các tính năng nâng cao của Android và là tùy chọn cho các thiết bị.

Các tệp cấu hình này nằm trong kho kernel/configs . Sử dụng tập hợp các tệp cấu hình tương ứng với phiên bản của hạt nhân bạn đang sử dụng.

Để biết chi tiết về các điều khiển đã được thực hiện để tăng cường hạt nhân trên thiết bị của bạn, hãy xem Bảo mật hệ thống và hạt nhân . Để biết chi tiết về các cài đặt bắt buộc, hãy xem Tài liệu Định nghĩa Tương thích Android (CDD) .

Tạo cấu hình hạt nhân

Đối với các thiết bị có định dạng defconfig tối giản, hãy sử dụng tập lệnh merge_config.sh trong cây nhân để kích hoạt các tùy chọn:

ARCH=ARCH scripts/kconfig/merge_config.sh <...>/device_defconfig <...>/android-base.cfg <...>/android-base-ARCH.cfg <...>/android-recommended.cfg

Thao tác này tạo tệp .config mà bạn có thể sử dụng để lưu tệp defconfig mới hoặc biên dịch hạt nhân mới với các tính năng Android được bật.

Yêu cầu cấu hình hạt nhân bổ sung

Trong một số trường hợp, người bảo trì nền tảng có thể chọn từ nhiều tính năng nhân để đáp ứng sự phụ thuộc của Android. Những phụ thuộc như vậy không thể được thể hiện trong các tệp phân mảnh cấu hình hạt nhân (được mô tả ở trên) vì định dạng cho các tệp đó không hỗ trợ các biểu thức logic. Trong Android 9 trở lên, Bộ kiểm tra khả năng tương thích (CTS)Bộ kiểm tra nhà cung cấp (VTS) xác minh rằng các yêu cầu sau được đáp ứng:

  • CONFIG_OF=y hoặc CONFIG_ACPI=y
  • Các hạt nhân 4.4 và 4.9 có CONFIG_ANDROID_LOW_MEMORY_KILLER=y HOẶC có cả CONFIG_MEMCG=yCONFIG_MEMCG_SWAP=y
  • CONFIG_DEBUG_RODATA=y hoặc CONFIG_STRICT_KERNEL_RWX=y
  • CONFIG_DEBUG_SET_MODULE_RONX=y hoặc CONFIG_STRICT_MODULE_RWX=y
  • Chỉ dành cho ARM64: CONFIG_ARM64_SW_TTBR0_PAN=y hoặc CONFIG_ARM64_PAN=y

Ngoài ra, tùy chọn CONFIG_INET_UDP_DIAG phải được đặt thành y cho hạt nhân 4.9 trong Android 9 trở lên.

Bật tùy chọn chế độ máy chủ USB

Đối với âm thanh chế độ máy chủ USB, hãy bật các tùy chọn sau:

CONFIG_SND_USB=y
CONFIG_SND_USB_AUDIO=y
# CONFIG_USB_AUDIO is for a peripheral mode (gadget) driver

Đối với MIDI ở chế độ máy chủ USB, hãy bật tùy chọn sau:

CONFIG_SND_USB_MIDI=y

Seccomp BPF với TSYNC

Secure Computing Berkeley Packet Filter (Seccomp BPF) là một công nghệ bảo mật hạt nhân cho phép tạo các hộp cát xác định ngữ cảnh trong đó một tiến trình có thể thực hiện các lệnh gọi hệ thống. Tính năng đồng bộ hóa luồng (TSYNC) cho phép sử dụng Seccomp BPF từ các chương trình đa luồng. Khả năng này bị giới hạn đối với các kiến ​​trúc có Seccomp hỗ trợ ngược dòng (ARM, ARM64, x86 và x86_64).

Android Live-Lock Daemon

Android 10 bao gồm Android Live-Lock Daemon ( llkd ), được thiết kế để bắt và giảm thiểu các bế tắc của hạt nhân. Để biết chi tiết về cách sử dụng llkd , hãy tham khảo Android Live-Lock Daemon .

Sử dụng vDSO32 trên ARM64

Đối tượng chia sẻ động ảo (vDSO) là một giải pháp thay thế cho các lệnh gọi hệ thống, khi được sử dụng và định cấu hình đúng cách, có thể giảm chi phí chu kỳ. Android 10 bổ sung hỗ trợ vDSO32 trên nhân 64-bit (Android đã hỗ trợ vDSO64 trên nhân 64-bit và vDSO32 trên nhân 32-bit). Sử dụng vDSO32 ( CONFIG_VDSO_COMPAT ) trên kiến ​​trúc ARM64 giúp tăng thời lượng pin 0,4% và các cải tiến hiệu suất khác.

Cộng đồng Linux đang tích cực làm việc để thống nhất vDSO trên các kiến ​​trúc . Bạn có thể thiết lập vDSO trong nhân Linux của mình bằng cách bật vDSO32 với CONFIG_COMPATCONFIG_CROSS_COMPILE_COMPAT_VDSO với bộ ba trình biên dịch arm32. Nhóm Android Kernel đã hỗ trợ các phiên bản cũ hơn của loạt bản vá vDSO vào thiết bị Pixel, vì vậy bạn có thể tìm thấy các ví dụ trong bản dựng nhân Pixel ( LINUX_FCC_CROSS_COMPILE_ARM32_PREBUILTS_BIN , đường dẫn CROSS_COMPILE_ARM32 và cấu hình CONFIG_CROSS_COMPILE_ARM32 ).