Aşağıdaki yapılandırma ayarlarını bir Android çekirdek yapılandırması için temel olarak kullanın. Ayarlar, android-base- ARCH
android-base
, android-base- ARCH
android-base
android-base- ARCH
ve android-recommended
için .cfg
dosyaları halinde düzenlenmiştir:
-
android-base
seçenekler temel Android özelliklerini etkinleştirir ve tüm cihazlar tarafından belirtildiği gibi yapılandırılmalıdır. -
android-base- ARCH
seçenekleri, temel Android özelliklerini etkinleştirir ve ARCH mimarisinin tüm cihazlarında belirtildiği gibi yapılandırılmalıdır. Tüm mimarilerde, mimariye özgü gerekli seçeneklerin karşılık gelen bir dosyası yoktur. Mimarinizin dosyası yoksa Android için mimariye özgü ek çekirdek yapılandırma gereksinimleri yoktur. -
android-recommended
. Bu seçenekler, gelişmiş Android özelliklerini etkinleştirir ve cihazlar için isteğe bağlıdır.
Bu konfigürasyon dosyaları kernel/configs
konfigürasyon kernel/configs
. Kullandığınız çekirdeğin sürümüne karşılık gelen yapılandırma dosyaları kümesini kullanın.
Aygıtlarınızda çekirdeği güçlendirmek için halihazırda gerçekleştirilmiş olan kontrollerle ilgili ayrıntılar için bkz. Sistem ve çekirdek güvenliği . Gerekli ayarlarla ilgili ayrıntılar için Android Uyumluluk Tanımı Belgesine (CDD) bakın .
Çekirdek yapılandırması oluşturuluyor
Minimalist defconfig
biçimine sahip aygıtlar için, seçenekleri etkinleştirmek için çekirdek ağacındaki merge_config.sh
komut dosyasını kullanın:
ARCH=ARCH scripts/kconfig/merge_config.sh <...>/device_defconfig <...>/android-base.cfg <...>/android-base-ARCH.cfg <...>/android-recommended.cfg
Bu, yeni bir defconfig
dosyasını kaydetmek veya Android özellikleri etkinleştirilmiş yeni bir çekirdek derlemek için kullanabileceğiniz bir .config
dosyası oluşturur.
Ek çekirdek yapılandırma gereksinimleri
Bazı durumlarda, platform yöneticisi bir Android bağımlılığını karşılamak için birden çok çekirdek özelliği arasından seçim yapabilir. Bu tür bağımlılıklar, çekirdek yapılandırma parçası dosyalarında (yukarıda açıklanmıştır) ifade edilemez çünkü bu dosyaların biçimi mantıksal ifadeleri desteklemez. Android 9 ve sonraki sürümlerde, Uyumluluk Test Paketi (CTS) ve Satıcı Test Paketi (VTS) aşağıdaki gereksinimlerin karşılandığını doğrular:
-
CONFIG_OF=y
veyaCONFIG_ACPI=y
- 4.4 ve 4.9 çekirdeklerinde
CONFIG_ANDROID_LOW_MEMORY_KILLER=y
VEYA hemCONFIG_MEMCG=y
hem deCONFIG_MEMCG_SWAP=y
-
CONFIG_DEBUG_RODATA=y
veyaCONFIG_STRICT_KERNEL_RWX=y
-
CONFIG_DEBUG_SET_MODULE_RONX=y
veyaCONFIG_STRICT_MODULE_RWX=y
- Yalnızca ARM64 için:
CONFIG_ARM64_SW_TTBR0_PAN=y
veyaCONFIG_ARM64_PAN=y
Ek olarak, CONFIG_INET_UDP_DIAG
seçeneği, Android 9 ve sonraki sürümlerde 4.9 çekirdek için y
olarak ayarlanmalıdır.
USB ana bilgisayar modu seçeneklerini etkinleştirme
USB ana bilgisayar modu sesi için aşağıdaki seçenekleri etkinleştirin:
CONFIG_SND_USB=y CONFIG_SND_USB_AUDIO=y # CONFIG_USB_AUDIO is for a peripheral mode (gadget) driver
USB ana bilgisayar modu MIDI için aşağıdaki seçeneği etkinleştirin:
CONFIG_SND_USB_MIDI=y
TSYNC ile Seccomp BPF
Güvenli Hesaplama Berkeley Paket Filtresi (Seccomp BPF), bir işlemin sistem çağrıları yapabileceği bağlamı tanımlayan sanal alanların oluşturulmasını sağlayan bir çekirdek güvenlik teknolojisidir. İş parçacığı senkronizasyonu (TSYNC) özelliği, çok iş parçacıklı programlardan Seccomp BPF'nin kullanılmasını sağlar. Bu yetenek, Seccomp desteği yukarı akışa sahip mimarilerle sınırlıdır (ARM, ARM64, x86 ve x86_64).
Android Live-Lock Daemon
Android 10, çekirdek kilitlenmelerini yakalamak ve azaltmak için tasarlanmış Android Live-Lock Daemon'u ( llkd
) içerir. llkd
kullanmayla ilgili ayrıntılar için, Android Live-Lock llkd
bakın.
ARM64'te vDSO32'yi kullanma
Sanal dinamik paylaşılan nesne (vDSO), doğru kullanıldığında ve yapılandırıldığında döngü maliyetlerini düşürebilen sistem çağrılarına bir alternatiftir. Android 10, 64 bit çekirdeklerde vDSO32 desteği ekler (Android halihazırda 64 bit çekirdeklerde vDSO64'ü ve 32 bit çekirdeklerde vDSO32'yi desteklemektedir). ARM64 mimarisinde vDSO32 ( CONFIG_VDSO_COMPAT
) kullanılması, pil ömründe yüzde 0,4 artış ve diğer performans iyileştirmeleri sağlar.
Linux topluluğu, vDSO'ları mimariler arasında birleştirmek için aktif olarak çalışıyor. Sen ile vDSO32 etkinleştirerek Linux çekirdeği vDSO ayarlayabilirsiniz CONFIG_COMPAT
ve CONFIG_CROSS_COMPILE_COMPAT_VDSO
arm32 derleyici üçlüsü ile. Piksel çekirdek (kurar size örnek bulabilirsiniz böylece Android Çekirdek ekip, Piksel cihazlara vDSO yama serisinin eski sürümlerini backported etti LINUX_FCC_CROSS_COMPILE_ARM32_PREBUILTS_BIN
yolu, CROSS_COMPILE_ARM32
referans ve CONFIG_CROSS_COMPILE_ARM32
yapılandırma).