Android cihazlarda, cihaz yazılımının belirli bölümlerini içeren depolama alanının birkaç bölümü veya belirli kısımları bulunur. Her bölüm, bölüm resmi (IMG dosyası) veya bölümdeki tüm yazılımların anlık görüntüsünü içerir. Şekil 1'de bir cihazdaki temel bölümlerin düzeni gösterilmektedir:
1. şekil. Çekirdek bölümlerin düzeni.
Bölümler üç kategoride sınıflandırılır:
Sistem bölümleri, işletim sistemi ve diğer özellikler güncellenirken güncellenen bölümlerdir.
system,bootveinit_boottemel sistem bölümleridir.Satıcı bölümleri, ilk yayınlandıktan sonra hiçbir zaman güncellenmeyebilecek cihaza ve donanıma özgü kod içerir.
vendor,vendor_bootveodmbölümleri temel satıcı bölümleridir.Güncellenemeyen bölümler, içerikleri güncellenmeyen veya kullanıcı verileriyle güncellenen bölümlerdir.
Sistem ve satıcı bölümlerindeki kodlar, satıcı arayüzü (VINTF) adı verilen sabit bir arayüzü kullanarak etkileşimde bulunabilir.
Sistem bölümleri
Aşağıda, tüm sistem bölümleri ve bunların kullanım alanları listelenmiştir:
bootbölümü. Bu bölümde Genel Çekirdek Görüntüsü (GKI) bulunur. Bu bölümde, Android 12 ve önceki sürümlerde kullanıma sunulan cihazlardaki genel ramdisk de bulunur. Genel ramdisk hakkında daha fazla bilgi için Genel ramdisk görüntü içerikleri başlıklı makaleyi inceleyin.init_bootbölümü (Android 13 ve sonraki sürümler). Bu bölüm genel bir ramdisk içeriyor. Android 11 ve 12'de genel ramdisk,bootbölümündedir.systembölümü. Bu bölüm, OEM ürünlerinde kullanılan sistem görüntüsünü içerir.system_extbölümü. Bu bölüm, sistem kaynaklarını vesystembölümündeki ortak sistem görüntüsünü genişleten tescilli sistem modüllerini içerir.system_dlkmbölümü. Bu bölüm GKI modüllerini içerir. Bu bölüm hakkında daha fazla bilgi için GKI modül bölümü uygulama başlıklı makaleyi inceleyin.productbölümü. Bu bölüm, başka bölümlerle birlikte paketlenmemiş ürüne özel modüller içerebilir.pvmfwbölümü. Bu bölüm, korumalı sanal makinelerde çalışan ilk kod olan Protected Virtual Machine Firmware'i (pvmfw) depolar. Daha fazla bilgi için Protected Virtual Machine Firmware (Korumalı Sanal Makine Donanım Yazılımı) başlıklı makaleyi inceleyin.generic_bootloaderbölümü. Bu bölüm, genel önyükleyiciyi içerir.
Tedarikçi bölümleri
Aşağıda, tüm satıcı bölümleri ve bunların kullanım alanları listelenmiştir:
vendor_bootbölümü. Bu bölüm, satıcıya özgü önyükleme kodu içerir. Daha fazla bilgi için Sağlayıcı başlatma bölümleri başlıklı makaleyi inceleyin.recoverybölümü. Bu bölüm, kablosuz (OTA) güncelleme işlemi sırasında başlatılan kurtarma görüntüsünü depolar. Sorunsuz güncellemeleri destekleyen cihazlar, kurtarma görüntülerinibootveyainit_bootgörüntüsünde bulunan bir ramdisk olarak depolayabilir. Sorunsuz güncellemeler hakkında daha fazla bilgi için A/B (sorunsuz) güncellemeler başlıklı makaleyi inceleyin.miscbölümü. Bu bölüm, kurtarma bölümü tarafından kullanılır ve 4 KB veya daha büyüktür.vbmetabölümü. Bu bölüm, tüm bölümler için Doğrulanmış Önyükleme bilgilerini içerir. Bu bilgiler, her bölüme yüklenen görüntülerin güvenilir olduğunu doğrular. Doğrulanmış Başlatma hakkında daha fazla bilgi için Doğrulanmış Başlatma başlıklı makaleyi inceleyin.vendorbölümü. Bu bölüm, tedarikçiye özel olan ve AOSP'ye dağıtılacak kadar genel olmayan tüm ikili dosyaları içerir.vendor_dlkmbölümü. Bu bölümde, satıcı çekirdek modülleri yer alır. Tedarikçi çekirdek modüllerinivendorbölümü yerine bu bölümde depolayarak çekirdek modüllerinivendorbölümünü güncellemeden güncelleyebilirsiniz. Daha fazla bilgi için Tedarikçi ve ODM DKLM bölümleri konusuna bakın.odmbölümü. Bu bölüm, çip üzerinde sistem (SoC) satıcısı kart destek paketlerinde (BSP'ler) özgün tasarım üreticisi (ODM) özelleştirmelerini içerir. Bu tür özelleştirmeler, OEM'lerin SoC bileşenlerini değiştirmesine veya özelleştirmesine ve donanım soyutlama katmanlarında (HAL'ler) kart özel bileşenleri, arka plan programları ve OEM'e özel özellikler için çekirdek modüllerini uygulamasına olanak tanır. Bu bölüm isteğe bağlıdır. Bu bölüm genellikle özelleştirmeleri içerecek şekilde kullanılır. Böylece cihazlar, birden fazla donanım SKU'su için tek bir satıcı resmi kullanabilir. Daha fazla bilgi için ODM bölümleri konusuna bakın.odm_dlkmbölümü. Bu bölüm, ODM çekirdek modüllerini depolamaya ayrılmıştır. ODM çekirdek modülleriniodmbölümü yerine bu bölümde depolayarakodmbölümünü güncellemeden ODM çekirdek modüllerini güncelleyebilirsiniz. Daha fazla bilgi için Tedarikçi ve ODM DKLM bölümleri konusuna bakın.radiobölümü. Bu bölüm, radyo görüntüsünü içerir ve yalnızca özel bir bölümde radyoya özel yazılım içeren radyo bulunan cihazlar için gereklidir.
Güncellenemeyen bölümler
Aşağıda, güncellenemeyen tüm bölümler ve kullanımları listelenmiştir:
cachebölümü. Bu bölüm geçici veriler içerir ve cihazınızda sorunsuz güncellemeler kullanılıyorsa isteğe bağlıdır. Bu bölümün bootloader'dan yazılabilir olması gerekmez ancak silinebilir olması gerekir. Bölüm boyutu, cihaz türüne veuserdata'daki alanın kullanılabilirliğine bağlıdır. Genellikle 50-100 MB yeterlidir.userdatabölümü. Bu bölümde, kullanıcı tarafından yüklenen uygulamalar ve özelleştirme verileri de dahil olmak üzere veriler bulunur.metadatabölümü. Cihazınızda meta veri şifreleme kullanılıyorsa bu bölüm meta veri şifreleme anahtarını içerir. Bu bölümün boyutu 16 MB veya daha büyüktür, şifrelenmemiştir ve verilerinin anlık görüntüsü alınmamıştır. Bu bölüm, cihaz fabrika ayarlarına sıfırlandığında silinir.
Bölüm güncelleme kuralları ve önerileri
Tüm sistem bölümlerini bir bütün olarak, tüm tedarikçi bölümlerini ise başka bir bütün olarak güncellemenizi öneririz. Bölüm grubunu bir bütün olarak güncelleyerek her bölümdeki resimler arasındaki arayüzlerin sabit kaldığını doğrulamak için test yapabilirsiniz.
Bölümlerinizi nasıl güncellediğinizden bağımsız olarak, sıkı bağlı bağımlılıklar ve kararlı API'lerin olmaması nedeniyle aşağıdaki bölümlerin güncellenmesi gerekir:
bootvesystem_dlkmbölümleriinit_boot,system,system_extveproductbölümleri
Dinamik bölümler
Android 11 ve sonraki sürümlerin yüklü olduğu cihazlar, kablosuz (OTA) güncellemeleri sırasında bölümleri oluşturmanıza, yeniden boyutlandırmanıza veya yok etmenize olanak tanıyan, Android için bir kullanıcı alanı bölümleme sistemi olan dinamik bölümleri destekleyebilir. Daha fazla bilgi için Dinamik bölümler başlıklı makaleyi inceleyin.
Soong ürün varyantları
Soong derleme sistemi, derleme bağımlılıklarını bölmek için görüntü varyantlarını kullanır. Yerel modüller (/build/soong/cc), sistem süreci modüllerini temel varyanta, satıcı süreci modüllerini ise satıcı varyantına dönüştürebilir. Bir resim varyantındaki modül, farklı bir resim varyantındaki diğer modüllere bağlanamaz.
Android 12 veya sonraki sürümlerde, vendor_available: true içeren bir sistem modülü, temel varyanta ek olarak bir satıcı varyantı oluşturur. Ürün varyantı oluşturmak için product_available: true tanımlanmalıdır. product_available: true içermeyen bazı VNDK kitaplıkları, ürün modüllerinde kullanılamaz.