Android 11, Genel Çekirdek Görüntüsü ve tedarikçi önyükleme bölümü kavramlarını kullanıma sunar. Tedarikçi firma önyükleme bölümü, GKI ile uyumlu çekirdek modüllerini depolar ve ilk aşamalı init tarafından yüklenir. Android 11'in yayınlanmasından önceki çekirdek modülleri de tedarikçi ve ODM bölümlerinde depolanır ve tedarikçi süreçleri tarafından yüklenir.
Android 11 veya sonraki sürümlerde çekirdek ve tüm çekirdek modülleri, diğer bölümlerden bağımsız olarak güncellenebilir. Tedarikçiye ait bölümde depolanan çekirdek modülleri için güncellemeleri etkinleştirmek üzere (tedarikçiye ait bölüm güncellemesi olmadan) tüm tedarikçiye ait bölüm modüllerini Tedarikçi DLKM (dinamik olarak yüklenebilir çekirdek modülü) adlı yeni bir bölüme taşıyın. Ardından bu bölümü bağımsız olarak güncelleyebilirsiniz. Benzer şekilde, ODM bölümünde depolanan tüm çekirdek modüllerini ODM DLKM adlı yeni bir bölüme taşıyabilirsiniz. Bu bölüm bağımsız olarak da güncellenebilir.
Bölüm konumu
vendor_dlkm
ve odm_dlkm
bölümleri, süper bölümde başka bir dinamik bölüm olarak bulunur.
/vendor/lib/modules içindeki vendor_dlkm içeriği
- Tedarikçi firma çekirdek modülleri
modprobe
yapılandırma dosyalarımodules.load
dosyası
/odm/lib/modules içindeki odm_dlkm içeriği
- ODM çekirdek modülleri
modprobe
yapılandırma dosyalarımodules.load
dosyası
Çekirdek modülü yapılandırma dosyaları hakkında daha fazla bilgi için Çekirdek Modülü Desteği başlıklı makaleyi inceleyin.
Destek oluşturma
vendor_dlkm
ve odm_dlkm
oluşturma işlemi, diğer dinamik bölümleri oluşturma işlemine benzer.
vendor_dlkm derleme örneği
vendor_dlkm
öğesini aşağıdaki örneklerde gösterildiği gibi oluşturun.
BoardConfig.mk
BOARD_USES_VENDOR_DLKMIMAGE := true
BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4
TARGET_COPY_OUT_VENDOR_DLKM := vendor_dlkm
BOARD_<GROUP_NAME>_PARTITION_LIST += vendor_dlkm
<GROUP_NAME>
yerine güncelleme grubunun uygun adını yazın. Güncelleme grubu, tedarikçi firma bölümünün bulunduğu grup olmalıdır.
A/B ve sanal A/B cihazlar için device.mk
AB_OTA_PARTITIONS += vendor_dlkm
fstab
fstab dosyasına vendor_dlkm
için aşağıdaki girişi ekleyin. İşaretleri cihaza göre değiştirin. Örnek olarak CL vendor_dlkm
'yi CF'ye ekle seçeneğini kullanın.
vendor_dlkm /vendor_dlkm ext4 noatime,ro,errors=panic wait,logical,first_stage_mount,slotselect,avb
odm_dlkm derleme örneği
odm_dlkm
öğesini aşağıdaki örneklerde gösterildiği gibi oluşturun.
BoardConfig.mk
BOARD_USES_ODM_DLKIMAGE := true
BOARD_ODM_DLKIMAGE_FILE_SYSTEM_TYPE := ext4
TARGET_COPY_OUT_ODM_DLKM := odm_dlkm
BOARD_<group_name>_PARTITION_LIST += odm_dlkm
A/B ve sanal A/B cihazlar için device.mk
AB_OTA_PARTITIONS += odm_dlkm
fstab
fstab dosyasına odm_dlkm
için aşağıdaki girişi ekleyin. Cihazlara göre işaretleri değiştirin. Örnek olarak CL odm_dlkm
'yi CF'ye ekle seçeneğini kullanın.
odm_dlkm /odm_dlkm ext4 noatime,ro,errors=panic wait,logical,first_stage_mount,slotselect,avb
Çekirdek modüllerini bir bölüme kopyalama
vendor_dlkm
bölümüne kopyalamak istediğiniz çekirdek modüllerini seçmek için BOARD_VENDOR_KERNEL_MODULES
bölümünde listeleyin.
modules.load
içeriğini geçersiz kılmak istiyorsanız bunu BOARD_VENDOR_KERNEL_MODULES_LOAD
içinde belirtebilirsiniz.
Derleme sırasında BOARD_VENDOR_KERNEL_MODULES
içinde listelenen modüller $ANDROID_PRODUCT_OUT/vendor_dlkm/lib/modules
'a yüklenir. /vendor/lib/modules
adresinde, /vendor_dlkm/lib/modules
adresine yönlendiren sembolik bir bağlantı oluşturulur.
Benzer şekilde, odm_dlkm
bölümüne kopyalamak istediğiniz çekirdek modüllerini seçmek için bunları BOARD_ODM_KERNEL_MODULES
içinde listeleyin. Platform derlemesi modüllerde depmod
çalıştırılır ve depmod
çıkış dosyalarını resme kopyalar.
Derleme işlemi, bir modules.load
dosyası oluşturur ve dosyayı görüntüde depolar.
Bu dosya, BOARD_ODM_KERNEL_MODULES
dosyasında listelenen tüm modülleri içerir.
modules.load
içeriğini geçersiz kılmak istiyorsanız bunu BOARD_ODM_KERNEL_MODULES_LOAD
içinde belirtebilirsiniz.
Derleme sırasında BOARD_ODM_KERNEL_MODULES
içinde listelenen modüller $ANDROID_PRODUCT_OUT/odm_dlkm/lib/modules
'a yüklenir. /odm/lib/modules
konumunda /odm_dlkm/lib/modules
'a yönlendiren bir sembolik bağlantı oluşturulur.
Tedarikçi ve ODM çekirdek modülleri için /vendor/lib/modules
ve /odm/lib/modules
değerlerini her zaman kullanın.
/vendor_dlkm/lib/modules yolunu hiçbir zaman kullanmayın. vendor_dlkm
bölümüne sahip olmayan cihazlar, BOARD_VENDOR_KERNEL_MODULES
'u doğrudan /vendor/lib/modules
'ye yükler. /vendor_dlkm/lib/modules
mevcut olmadığı için bu sorunludur.
/odm_dlkm/lib/modules
ifadesini hiçbir zaman kullanmayın. odm_dlkm
bölümü olmayan cihazlar, BOARD_ODM_KERNEL_MODULES
'u doğrudan /odm/lib/modules
'ye yükler. /odm_dlkm/lib/modules
mevcut olmadığı için bu sorunludur.
Bölüm bağlama ve modül yükleme
first_stage_init
sırasında vendor_dlkm
ve odm_dlkm
bölümleri sırasıyla /vendor_dlkm
ve /odm_dlkm
dizinlerine monte edilir. Bu durumda, /vendor/lib/modules
ve /odm/lib/modules
adreslerindeki sembolik bağlantılar kullanılabilir hale gelir.
Ardından bir tedarikçi süreci (.rc
komut dosyası gibi), çekirdek modüllerini modules.load
içinde belirtilen sıraya göre yükleyebilir. Tedarikçi firma işlemi, gerekirse modülleri daha sonra da yükleyebilir.
İlgili dokümanlar
Tedarikçi önyükleme bölümünün (tedarikçi RAMDisk'ini içeren) oluşturulmasıyla ilgili dokümanlar için Çekirdek Modülü Desteği başlıklı makaleyi inceleyin.