Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Konfigurasi Kernel

Gunakan pengaturan konfigurasi berikut sebagai dasar untuk konfigurasi kernel Android. Pengaturan tersebut akan disusun dalam .cfg file untuk android-base , android-base- ARCH , dan android-recommended :

  • android-base pilihan mengaktifkan fitur Android inti dan harus dikonfigurasi seperti yang ditetapkan oleh semua perangkat.
  • android-base- ARCH pilihan mengaktifkan fitur Android inti dan harus dikonfigurasi seperti yang ditentukan oleh semua perangkat arsitektur ARCH . Tidak semua arsitektur memiliki file yang sesuai dengan opsi khusus arsitektur yang diperlukan. Jika arsitektur Anda tidak memiliki file, arsitektur tersebut tidak memiliki persyaratan konfigurasi kernel khusus arsitektur tambahan untuk Android.
  • android-recommended . Opsi ini mengaktifkan fitur Android lanjutan dan opsional untuk perangkat.

File konfigurasi ini terletak di kernel/configs repo. Gunakan kumpulan file konfigurasi yang sesuai dengan versi kernel yang Anda gunakan.

Untuk rincian tentang kontrol sudah dilakukan untuk memperkuat kernel pada perangkat Anda, lihat Sistem dan keamanan kernel . Untuk rincian tentang pengaturan yang diperlukan, lihat Definisi Dokumen Android Compatibility (CDD) .

Membuat konfigurasi kernel

Untuk perangkat yang memiliki minimalis defconfig Format, gunakan merge_config.sh skrip di pohon kernel untuk mengaktifkan pilihan:

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

Ini menghasilkan .config file yang dapat Anda gunakan untuk menyimpan baru defconfig file atau mengkompilasi sebuah kernel baru dengan Android fitur diaktifkan.

Persyaratan konfigurasi kernel tambahan

Dalam beberapa kasus, pengelola platform dapat memilih dari beberapa fitur kernel untuk memenuhi ketergantungan Android. Dependensi tersebut tidak dapat dinyatakan dalam file fragmen konfigurasi kernel (dijelaskan di atas) karena format untuk file tersebut tidak mendukung ekspresi logis. Di Android 9 dan lebih tinggi, Uji Kompatibilitas Suite (CTS) dan vendor Test Suite (VTS) memverifikasi bahwa persyaratan berikut puas:

  • CONFIG_OF=y atau CONFIG_ACPI=y
  • 4.4 dan 4.9 kernel memiliki CONFIG_ANDROID_LOW_MEMORY_KILLER=y OR memiliki kedua CONFIG_MEMCG=y dan CONFIG_MEMCG_SWAP=y
  • CONFIG_DEBUG_RODATA=y atau CONFIG_STRICT_KERNEL_RWX=y
  • CONFIG_DEBUG_SET_MODULE_RONX=y atau CONFIG_STRICT_MODULE_RWX=y
  • Untuk ARM64 saja: CONFIG_ARM64_SW_TTBR0_PAN=y atau CONFIG_ARM64_PAN=y

Selain itu, CONFIG_INET_UDP_DIAG pilihan harus diatur ke y untuk 4,9 kernel di Android 9 dan lebih tinggi.

Mengaktifkan opsi mode host USB

Untuk audio mode host USB, aktifkan opsi berikut:

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

Untuk mode host USB MIDI, aktifkan opsi berikut:

CONFIG_SND_USB_MIDI=y

Secomp BPF dengan TSYNC

Secure Computing Berkeley Packet Filter (Seccomp BPF) adalah teknologi keamanan kernel yang memungkinkan pembuatan kotak pasir yang menentukan konteks di mana suatu proses dapat melakukan panggilan sistem. Fitur sinkronisasi utas (TSYNC) memungkinkan penggunaan Seccomp BPF dari program multithread. Kemampuan ini terbatas pada arsitektur yang mendukung upstream Seccomp (ARM, ARM64, x86, dan x86_64).

Android Live-Lock Daemon

Android 10 termasuk Android Live-Lock Daemon ( llkd ), yang dirancang untuk menangkap dan mengurangi kernel kebuntuan. Untuk rincian tentang menggunakan llkd , lihat Android Live-Lock Daemon .

Menggunakan vDSO32 pada ARM64

Objek bersama dinamis virtual (vDSO) adalah alternatif untuk panggilan sistem yang, bila digunakan dan dikonfigurasi dengan benar, dapat mengurangi biaya siklus. Android 10 menambahkan dukungan untuk vDSO32 pada kernel 64-bit (Android sudah mendukung vDSO64 pada kernel 64-bit dan vDSO32 pada kernel 32-bit). Menggunakan vDSO32 ( CONFIG_VDSO_COMPAT ) pada arsitektur ARM64 memberikan peningkatan 0,4 persen dalam hidup baterai dan peningkatan kinerja lainnya.

Komunitas Linux aktif bekerja pada pemersatu vDSOs di seluruh arsitektur . Anda dapat mengatur vDSO di kernel Linux Anda dengan memungkinkan vDSO32 dengan CONFIG_COMPAT dan CONFIG_CROSS_COMPILE_COMPAT_VDSO dengan triplet arm32 compiler. Tim Android Kernel telah backported versi patch seri vDSO ke dalam perangkat Pixel, sehingga Anda dapat menemukan contoh dalam Pixel kernel membangun ( LINUX_FCC_CROSS_COMPILE_ARM32_PREBUILTS_BIN jalan, CROSS_COMPILE_ARM32 referensi, dan CONFIG_CROSS_COMPILE_ARM32 config).