Android cihazlarda, cihaz yazılımının belirli bölümlerini içermek için kullanılan birkaç bölüm veya depolama alanının 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:
Şekil 1. Ç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 sürümden 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 tedarikçi bölümlerindeki kodlar, tedarikçi 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ümde, satıcıya özel önyükleme kodu bulunur. Daha fazla bilgi için Tedarikçi önyükleme 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ış Başlatma 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 özgü olan ve AOSP'ye dağıtılacak kadar genel olmayan tüm ikili dosyaları içerir.vendor_dlkmbölümü. Bu bölüm, satıcı çekirdek modüllerini içerir. 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 başlıklı makaleyi inceleyin.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 bunların kullanım alanları 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 önyükleyiciden yazılabilir olması gerekmez ancak silinebilir olması gerekir. Bölüm boyutu, cihaz türüne veuserdataüzerindeki 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ük, şifrelenmemiş ve verileri anlık görüntülenmemiş. 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ümler 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.