Android cihazlar, başlatma işleminde farklı işlevler sunan çeşitli bölümler içerir.
Standart bölümler
boot
bölümüne Bu bölüm bir çekirdek resmi içerir vemkbootimg
kullanılarak oluşturulur. Yeni bir önyükleme bölümünü yüklemeden doğrudan bir resmi veya resmi yüklemek için sanal bölüm kullanabilirsiniz. Bu bölüm, Android 13'ten önce kullanıma sunulan cihazlardaki genel ramdisk'i de içerir.çekirdek. Sanal
kernel
bölümü, yeni çekirdek görüntüsünü eski çekirdek görüntüsünün üzerine yazarak çekirdeğin (zImage
,zImage-dtb
,Image.gz-dtb
) üzerine yazar. Sağlanan geliştirme çekirdeği uyumlu değilsevendor
,system
veyadtb
bölümünü (varsa) ilişkili çekirdek modülleriyle güncellemeniz gerekebilir.ramdisk. Sanal
ramdisk
bölümü, yeni ramdisk resmini eski ramdisk resminin üzerine yazarak ramdisk'in üzerine yazar.
Yazma işlemi, eMMC'deki mevcut görüntünün başlangıç konumunu belirler ve yeni görüntüyü bu konuma kopyalar. Yeni resim (çekirdek veya ramdisk) mevcut resimden daha büyük olabilir. Önyükleyici, yer açmak için verileri resmin ardından taşıyabilir veya işlemi bir hatayla bırakabilir.
init_boot
bölümüne Bu bölüm, Android 13 ve sonraki sürümlerle başlatılan cihazlar için genel RAM'i içerir.system
bölümünü Bu bölümde Android çerçevesi bulunur.odm
bölümüne Bu bölümde, çip üzerinde sistem (SoC) tedarikçi firma kart destek paketlerinde (BSP'ler) orijinal tasarım üreticisi (ODM) özelleştirmeleri bulunur. Bu tür özelleştirmeler, ODM'lerin SoC bileşenlerini değiştirmesini veya özelleştirmesini ve donanım soyutlama katmanlarında (HAL'ler) kart özel bileşenleri, arka plan programları ve ODM'ye özel özellikler için çekirdek modülleri uygulamasını sağlar. Bu bölüm isteğe bağlıdır. Genellikle, cihazların birden fazla donanım SKU'su için tek bir tedarikçi görüntüsü kullanabilmesi amacıyla özelleştirmeleri içermek için kullanılır. Ayrıntılar için ODM bölümlendirme bölümüne bakın.odm_dlkm
bölümüne Bu bölüm, ODM çekirdek modüllerini depolamaya ayrılmıştır. ODM çekirdek modülleriniodm_dlkm
bölümünde (odm
bölümünün aksine) depolamak,odm
bölümünü güncellemeden ODM çekirdek modüllerini güncellemeyi mümkün kılar.recovery
bölümüne Bu bölümde, OTA işlemi sırasında başlatılan kurtarma görüntüsü saklanır. Sorunsuz güncellemeleri destekleyen cihazlar, kurtarma resimlerini ayrı bir resim yerineboot
veyainit_boot
resminde bulunan bir ramdisk olarak depolayabilir.cache
bölümüne Bu bölüm geçici verileri depolar ve cihazda sorunsuz güncellemeler kullanılıyorsa isteğe bağlıdır. Önbellek bölümünün önyükleme cihazından yazılabilir olması gerekmez ancak silinebilir olması gerekir. Bölme boyutu, cihaz türüne veuserdata
'teki alan durumuna bağlıdır. Genellikle 50-100 MB yeterlidir.misc
bölümüne Bu bölüm, kurtarma bölümü tarafından kullanılır ve 4 KB veya daha büyüktür.userdata
bölümüne Bu bölümde, kullanıcı tarafından yüklenen uygulamalar ve özelleştirme verileri dahil olmak üzere veriler bulunur.metadata
bölümünü Bu bölüm, cihaz meta veri şifrelemesi kullandığında meta veri şifreleme anahtarını depolamak için kullanılır. Boyut 16 MB veya daha büyüktür. Şifre şifrelenmez ve verileri anlık görüntülenmez. Cihaz fabrika ayarlarına sıfırlandığında silinir. Bu bölümün kullanımı kesinlikle sınırlıdır.vendor
bölümüne Bu bölüm, AOSP'ye dağıtılamayan tüm ikili dosyaları içerir. Cihaz özel bilgiler içermiyorsa bu bölümü atlayabilirsiniz.vendor_dlkm
bölümüne Bu bölüm, tedarikçi çekirdek modüllerini depolamaya ayrılmıştır. Tedarikçi firma çekirdek modüllerinivendor
bölümünün yerinevendor_dlkm
bölümünde depolamak, çekirdek modüllerinivendor
bölümünü güncellemeden güncellemeyi mümkün kılar.radio
bölümünü Bu bölüm, radyo resmini içerir ve yalnızca özel bir bölümde radyoya özel yazılım içeren bir radyo içeren cihazlar için gereklidir.tos
bölümünü Bu bölüm, Trusty OS'in ikili görüntüsünü depolar ve yalnızca cihazda Trusty varsa kullanılır. Ayrıntılar için Hükümler ve Koşullar bölümündeki Bölümler'e bakın.pvmfw
bölümünü Bu bölüm, korumalı sanal makinelerde çalışan ilk kod olan Korumalı Sanal Makine Donanım yazılımını (pvmfw) depolar. Daha fazla bilgi için Korumalı Sanal Makine Donanım Yazılımı başlıklı makaleyi inceleyin.
Dinamik bölümler
Android 11 ve sonraki sürümleri çalıştıran cihazlar, Android için kullanıcı alanındaki bir bölümleme sistemi olan dinamik bölümleri destekleyebilir. Bu sistem, kablosuz (OTA) güncellemeler sırasında bölüm oluşturmayı, yeniden boyutlandırmayı veya silme işlemini sağlar. Ayrıntılar için Dinamik bölümler başlıklı makaleyi inceleyin.
Kritik bölümleri belirleme
Cihazın çalışması için belirli bölümler veya veriler gerekiyorsa bu bölümleri ya da verileri tamamen korumalı veya yeniden flaşlanabilir olarak belirtmeniz gerekir. Yani bu bölümler veya veriler, fastboot oem
komutu kullanılarak yeniden oluşturulabilir, sağlanabilir veya ayıklanabilir olmalıdır.
Buna cihaza özel fabrika ayarları, seri numaraları, kalibrasyon verileri ve daha fazlası gibi veriler dahildir.
Android 11'deki değişiklikler
Android 11, kitaplıklara bağlantı oluşturmayla ilgili kısıtlamalar ve yeni Soong resim varyantları da dahil olmak üzere bölümlerde çok sayıda değişiklik içerir.
Şekil 1. Android 11'de bölüm düzeni
Tek Sistem Görüntüsü (SSI).
system
vesystem_ext
resimlerini içeren yeni, kavramsal bir resim. Bu bölümler bir hedef cihaz grubu için ortak olduğunda bu cihazlar SSI'yi paylaşabilir vesystem
ilesystem_ext
resimlerinin oluşturulmasını atlayabilir.system_ext
bölümünüsystem
kaynaklarını kullanabilen ve aşağıdaki özellikleri taşıyan sistem modüllerini içerebilen yeni bir bölüm:system
bölümündeki AOSP sistem modüllerini genişletin. Bu tür modüllerin daha sonrasystem
bölümüne yüklenebilmesi için AOSP'ye aktarılmasını öneririz.OEM'ye veya SoC'ye özgü modülleri gruplandırın. Bu tür modüllerin
product
veyavendor
bölümüne yüklenebilmesi için paketten çıkarılmasını öneririz.
system
bölümüne OEM ürünleri için kullanılan genel sistem görüntüsü. Özel modülleri, AOSP'ye aktararak veyasystem_ext
bölümüne taşıyaraksystem
bölümünden taşımanızı öneririz.product
bölüm. Bu bölüm artık diğer bölümlerle birlikte paketlenmemiş, ürüne özel modülleri yüklemek için izin verilen arayüzleri kullanabilir.
VNDK değişiklikleri
Satıcı Yerel Geliştirme Seti (VNDK), system
bölümüne yüklenen ve yalnızca satıcıların HAL'lerini uygulamak için tasarlanmış bir kitaplık grubudur.
Android 10 ve önceki sürümlerde
vendor
bölümü,system
bölümündeki VNDK kitaplıklarına bağlantı verebilir ancaksystem
bölümündeki diğer kitaplıklara bağlantı veremez.product
bölümündeki yerel modüller,system
bölümündeki herhangi bir kitaplığa bağlantı verebilir.Android 11 ve sonraki sürümlerde
product
vevendor
bölümleri,system
bölümündeki VNDK kitaplıklarına bağlanabilir ancaksystem
bölümündeki diğer kitaplıklara bağlanamaz.
Soong ürün varyantları
Soong derleme sistemi, bağımlılıkları derlemek için görüntü varyantlarını kullanır. Yerel modüller (/build/soong/cc
), sistem işleme modüllerini çekirdek varyantta, tedarikçi firma işleme modüllerini ise tedarikçi firma varyantında değiştirebilir. Bir resim varyantındaki modül, farklı bir resim varyantındaki diğer modüllere bağlanamaz.
Android 10 veya önceki sürümlerde bir sistem modülü otomatik olarak temel varyantları oluşturur. Ayrıca,
Android.bp
dosyalarındavendor_available: true
tanımlayarak tedarikçi varyantları da oluşturabilir. Bu, tedarikçi modüllerinin sistem modüllerine bağlanmasını sağlar.system
kitaplıklarının tedarikçi varyantları olan VNDK kitaplıkları,Android.bp
dosyalarındavendor_available: true
öğesini tanımlayarak tedarikçi modülleri için tedarikçi varyantları da oluşturabilir (örneğe bakın).Android 11'de bir sistem modülü,
vendor_available: true
öğesini tanımlayarak bir ürün varyantı (temel ve satıcı varyantlarına ek olarak) da oluşturabilir.Android 12 veya sonraki sürümlerde,
vendor_available: true
içeren bir sistem modülü, temel varyanta ek olarak bir tedarikçi varyantı oluşturur. Ürün varyantı oluşturmak içinproduct_available: true
tanımlanmış olmalıdır.product_available: true
içermeyen bazı VNDK kitaplıkları ürün modülleri tarafından kullanılamaz.