Android 11, Genel Çekirdek Görüntüsü ve satıcı önyükleme bölümü kavramını tanıtıyor. Satıcının önyükleme bölümü, GKI ile uyumlu çekirdek modüllerini saklar ve ilk aşama init tarafından yüklenir. Android 11'in piyasaya sürülmesinden önceki Çekirdek Modülleri de satıcı ve ODM bölümlerinde depolanır ve satıcı işlemleri tarafından yüklenir.
Android 11 veya üzeri için çekirdek ve tüm çekirdek modülleri, diğer bölümlerden bağımsız olarak güncellenebilir. Satıcı bölümünde depolanan çekirdek modüllerine yönelik güncellemeleri etkinleştirmek için (satıcı bölümü güncellemesi olmadan), tüm satıcı bölümü modüllerini Satıcı DLKM (dinamik olarak yüklenebilir çekirdek modülü) adı verilen yeni bir bölüme taşıyın. Daha sonra bu bölümü bağımsız olarak güncelleyebilirsiniz. Benzer şekilde, ODM bölümünde saklanan tüm çekirdek modüllerini ODM DLKM adı verilen 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 satıcı_dlkm içeriği
- Satıcı çekirdek modülleri
-
modprobe
yapılandırma dosyaları - Bir
modules.load
dosyası
/odm/lib/modules içindeki odm_dlkm içeriği
- ODM çekirdek modülleri
-
modprobe
yapılandırma dosyaları - Bir
modules.load
dosyası
Çekirdek modülü yapılandırma dosyaları hakkında daha fazla ayrıntı için Çekirdek Modül Desteği'ne bakın.
Destek oluşturun
vendor_dlkm
ve odm_dlkm
oluşturmak, diğer dinamik bölümleri oluşturmaya benzer bir süreçtir.
satıcı_dlkm yapı örneği
vendor_dlkm
aşağıdaki örnekte 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, satıcı 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
vendor_dlkm
için aşağıdaki girişi fstab'a ekleyin. Bayrakları cihaza göre değiştirin. Örnek olarak CL Add vendor_dlkm
to CF'yi kullanın.
vendor_dlkm /vendor_dlkm ext4 noatime,ro,errors=panic wait,logical,first_stage_mount,slotselect,avb
odm_dlkm yapı örneği
Aşağıdaki örnekte gösterildiği gibi odm_dlkm
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
odm_dlkm
için aşağıdaki girişi fstab'a ekleyin. Bayrakları cihaza göre değiştirin. Örnek olarak CL Add odm_dlkm
to CF'yi 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 bunları BOARD_VENDOR_KERNEL_MODULES
içinde listeleyin.
modules.load
içeriğini geçersiz kılmak istiyorsanız bunu BOARD_VENDOR_KERNEL_MODULES_LOAD
belirtebilirsiniz.
Derleme sırasında, BOARD_VENDOR_KERNEL_MODULES
listelenen modüller $ANDROID_PRODUCT_OUT/vendor_dlkm/lib/modules
dizinine yüklenir. /vendor/lib/modules
konumunda /vendor_dlkm/lib/modules
adresine giden 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 yapısı, modüller üzerinde depmod
çalıştırır ve depmod
çıktı dosyalarını görüntüye kopyalar. Yapı, bir modules.load
dosyası oluşturur ve bunu görüntüde saklar. Bu dosya BOARD_ODM_KERNEL_MODULES
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
listelenen modüller $ANDROID_PRODUCT_OUT/odm_dlkm/lib/modules
dizinine yüklenecek. /odm/lib/modules
konumunda /odm_dlkm/lib/modules
adresine giden sembolik bir bağlantı oluşturulacaktır.
Satıcı ve ODM çekirdek modülleri için her zaman /vendor/lib/modules
ve /odm/lib/modules
kullanın.
Asla /vendor_dlkm/lib/modules kullanmayın. vendor_dlkm
bölümü olmayan cihazlar BOARD_VENDOR_KERNEL_MODULES
doğrudan /vendor/lib/modules
dizinine yükler. /vendor_dlkm/lib/modules
mevcut olmadığından bu sorunludur.
Asla /odm_dlkm/lib/modules kullanmayın. odm_dlkm
bölümü olmayan cihazlar BOARD_ODM_KERNEL_MODULES
doğrudan /odm/lib/modules
dizinine yükler. /odm_dlkm/lib/modules
mevcut olmadığından bu sorunludur.
Bölüm montajı 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
bölümlerine eklenir. Bu olduğunda, /vendor/lib/modules
ve /odm/lib/modules
adresindeki sembolik bağlantılar kullanılabilir hale gelir.
Daha sonra bir satıcı işlemi (bir '.rc' betiği gibi), modules.load
belirtilen sıraya göre çekirdek modüllerini yükleyebilir. Satıcı süreci gerekirse modülleri daha sonra da yükleyebilir.
İlgili belgeler
Satıcı-önyükleme bölümünün (satıcının RAMDisk'ini içeren) oluşturulmasına ilişkin belgeler için Çekirdek Modül Desteği'ne bakın.