Google berkomitmen untuk memajukan ekuitas ras untuk komunitas kulit hitam. Lihat bagaimana.
Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Konfigurasi Kernel

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

  • Opsi android-base memungkinkan fitur inti Android dan harus dikonfigurasikan sebagaimana ditentukan oleh semua perangkat.
  • android-base- ARCH opsi android-base- ARCH memungkinkan fitur inti Android dan harus dikonfigurasi sebagaimana ditentukan oleh semua perangkat arsitektur ARCH . Tidak semua arsitektur memiliki file yang sesuai dari opsi yang diperlukan khusus arsitektur. Jika arsitektur Anda tidak memiliki file, itu tidak memiliki persyaratan konfigurasi kernel khusus arsitektur tambahan untuk Android.
  • android-recommended . Opsi ini mengaktifkan fitur Android canggih dan opsional untuk perangkat.

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

Untuk perincian tentang kontrol yang telah dilakukan untuk memperkuat kernel pada perangkat Anda, lihat Keamanan sistem dan kernel . Untuk detail tentang pengaturan yang diperlukan, lihat Dokumen Definisi Kompatibilitas Android (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 file .config yang dapat Anda gunakan untuk menyimpan file defconfig baru atau mengkompilasi kernel baru dengan fitur Android diaktifkan.

Persyaratan konfigurasi kernel tambahan

Dalam beberapa kasus, pengelola platform dapat memilih dari beberapa fitur kernel untuk memenuhi ketergantungan Android. Ketergantungan tersebut tidak dapat diekspresikan dalam file fragmen konfigurasi kernel (dijelaskan di atas) karena format untuk file-file tersebut tidak mendukung ekspresi logis. Di Android 9 dan lebih tinggi, Compatibility Test Suite (CTS) dan Vendor Test Suite (VTS) memverifikasi bahwa persyaratan berikut dipenuhi:

  • CONFIG_OF=y atau CONFIG_ACPI=y
  • 4.4 dan 4.9 kernel memiliki CONFIG_ANDROID_LOW_MEMORY_KILLER=y ATAU memiliki 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
  • Hanya untuk ARM64: CONFIG_ARM64_SW_TTBR0_PAN=y atau CONFIG_ARM64_PAN=y

Selain itu, opsi CONFIG_INET_UDP_DIAG harus disetel 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

Seccomp BPF dengan TSYNC

Secure Computing Berkeley Packet Filter (Seccomp BPF) adalah teknologi keamanan kernel yang memungkinkan penciptaan kotak pasir yang menentukan konteks di mana suatu proses dapat melakukan panggilan sistem. Fitur sinkronisasi ulir (TSYNC) memungkinkan penggunaan Seccomp BPF dari program multithreaded. Kemampuan ini terbatas pada arsitektur yang memiliki dukungan Seccomp di bagian hulu (ARM, ARM64, x86, dan x86_64).

Android Live-Lock Daemon

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

Menggunakan vDSO32 di ARM64

Virtual shared shared object (vDSO) virtual adalah alternatif untuk panggilan sistem yang, ketika 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 daya tahan baterai 0,4 persen dan peningkatan kinerja lainnya.

Komunitas Linux secara aktif bekerja untuk menyatukan vDSO lintas arsitektur . Anda dapat mengatur vDSO di kernel Linux Anda dengan mengaktifkan vDSO32 dengan CONFIG_COMPAT dan CONFIG_CROSS_COMPILE_COMPAT_VDSO dengan triplet kompilator arm32. Tim Android Kernel telah mendukung versi lama dari seri patch vDSO ke perangkat Pixel, sehingga Anda dapat menemukan contoh di Pixel kernel builds ( LINUX_FCC_CROSS_COMPILE_ARM32_PREBUILTS_BIN path, referensi CROSS_COMPILE_ARM32 , dan konfigurasi CONFIG_CROSS_COMPILE_ARM32 ).