Android cihazlar, önyükleme işleminde farklı işlevlere hizmet eden çeşitli bölümler içerir.
Standart bölümler
boot
bölümü. Bu bölüm bir çekirdek görüntüsü içerir vemkbootimg
kullanılarak oluşturulur. Yeni bir önyükleme bölümü oluşturmadan herhangi bir görüntüyü doğrudan flaşlamak için sanal bir bölüm kullanabilirsiniz. Bu bölüm aynı zamanda Android 13'ten önce başlatılan 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 uyumsuzsavendor
,system
veyadtb
bölümünü (varsa) ilgili çekirdek modülleriyle güncellemeniz gerekebilir.ramdisk. Sanal
ramdisk
bölümü, yeni ramdisk görüntüsünü eski ramdisk görüntüsünün üzerine yazarak ramdiskin üzerine yazar.
Üzerine 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 görüntü (çekirdek veya ramdisk) mevcut olandan daha büyük olabilir; yer açmak için, önyükleyici verileri görüntüyü takip ederek taşıyabilir veya bir hata vererek işlemi bırakabilir.
init_boot
bölümü. Bu bölüm, Android 13 ve sonraki sürümlerle başlatılan cihazlar için genel ramdiski içerir.system
bölümü. Bu bölüm Android çerçevesini içerir.odm
bölümü. Bu bölüm, çip üzerinde sistem (SoC) satıcı anakart destek paketlerine (BSP'ler) yönelik orijinal tasarım üreticisi (ODM) özelleştirmelerini içerir. Bu tür özelleştirmeler, ODM'lerin SoC bileşenlerini değiştirmesine veya özelleştirmesine ve donanım soyutlama katmanlarında (HAL'ler) anakarta özgü bileşenler, arka plan programları ve ODM'ye özgü özellikler için çekirdek modülleri uygulamasına olanak tanır. Bu bölüm isteğe bağlıdır; Genellikle, aygıtların birden çok donanım SKU'su için tek bir satıcı görüntüsünü kullanabilmesi amacıyla özelleştirmeleri içermek için kullanılır. Ayrıntılar için bkz. ODM Bölümleri .odm_dlkm
bölümü. Bu bölüm ODM çekirdek modüllerini depolamaya ayrılmıştır. ODM çekirdek modüllerininodm_dlkm
bölümünde saklanması (odm
bölümünün aksine),odm
bölümünü güncellemeden ODM çekirdek modüllerinin güncellenmesini mümkün kılar.recovery
bölümü. Bu bölüm, OTA işlemi sırasında başlatılan kurtarma görüntüsünü saklar. Kesintisiz güncellemeleri destekleyen cihazlar, kurtarma görüntüleriniboot
veyainit_boot
görüntüsünde bulunan bir ramdisk olarak (ayrı bir görüntü yerine) depolayabilir.cache
parçası. Bu bölüm, geçici verileri depolar ve cihaz kesintisiz güncellemeler kullanıyorsa isteğe bağlıdır. Önbellek bölümünün önyükleyiciden yazılabilir olmasına gerek yoktur ancak silinebilir olması gerekir. Bölüm boyutu aygıt türüne veuserdata
verilerindeki alanın kullanılabilirliğine bağlıdır; genellikle 50 MB–100 MB yeterlidir.misc
bölüm. 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ü. Bu bölüm, özelleştirme verileri de dahil olmak üzere kullanıcı tarafından yüklenen uygulamaları ve verileri içerir.metadata
bölümü. Bu bölüm, aygıt meta veri şifrelemesini kullandığında meta veri şifreleme anahtarını depolamak için kullanılır. Boyutu 16 MB veya daha büyük. Ş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ü. Bu bölüm, AOSP'ye dağıtılamayan herhangi bir ikili dosya içeriyor. Cihaz özel bilgiler içermiyorsa bu bölümü atlayabilirsiniz.vendor_dlkm
bölümü. Bu bölüm satıcının çekirdek modüllerini depolamaya ayrılmıştır. Satıcı çekirdek modüllerininvendor_dlkm
bölümünde depolanması (vendor
bölümünün aksine),vendor
bölümünü güncellemeden çekirdek modüllerinin güncellenmesini mümkün kılar.radio
bölümü. Bu bölüm radyo görüntüsünü içerir ve yalnızca özel bir bölümde radyoya özgü yazılıma sahip bir radyo içeren cihazlar için gereklidir.tos
. Bu bölüm, Trusty OS'nin ikili görüntüsünü saklar ve yalnızca cihaz Trusty içeriyorsa kullanılır. Ayrıntılar için Hizmet Şartları Bölümleri'ne bakın.pvmfw
bölümü. Bu bölüm, korumalı VM'lerde çalışan ilk kod olan Korumalı Sanal Makine Ürün Yazılımını (pvmfw) depolar. Daha ayrıntılı bilgi için Korumalı Sanal Makine Ürün Yazılımı'na bakın.
Dinamik bölümler
Android 11 ve üstünü çalıştıran cihazlar, kablosuz (OTA) güncellemeler sırasında bölümlerin oluşturulmasına, yeniden boyutlandırılmasına veya yok edilmesine olanak tanıyan, Android için bir kullanıcı alanı bölümleme sistemi olan dinamik bölümleri destekleyebilir. Ayrıntılar için bkz. Dinamik Bölümler .
Kritik bölümleri belirleme
Aygıtın çalışması için belirli bölümler veya veriler gerekiyorsa, bu bölümleri/verileri ya tamamen korumalı ya da yeniden flaşlanabilir olarak belirlemeniz gerekir; bu, bunların yeniden oluşturulabileceği, sağlandığı veya bir fastboot oem
komutu kullanılarak çıkarılabileceği anlamına gelir. Buna, cihaz başına fabrikaya özel ayarlar, seri numaraları, kalibrasyon verileri ve daha fazlası gibi veriler dahildir.
Android 11'deki değişiklikler
Android 11, kitaplıklara bağlantı kısıtlamaları ve yeni Soong görüntü çeşitleri de dahil olmak üzere bölümlerde çok sayıda değişiklik içeriyor.
Şekil 1. Android 11'deki bölüm düzeni
Tek Sistem Görüntüsü (SSI).
system
vesystem_ext
görüntülerini içeren yeni, kavramsal bir görüntü. Bu bölümler bir dizi hedef cihaz için ortak olduğunda, bu cihazlar SSI'yı paylaşabilir vesystem
ilesystem_ext
görüntülerini oluşturmayı atlayabilir.system_ext
bölümü.system
kaynaklarını kullanabilen ve aşağıdaki özelliklere sahip sistem modüllerini içerebilen yeni bir bölüm:AOSP sistem modüllerini
system
bölümünde genişletin. Bu tür modüllerin daha sonrasystem
bölümüne kurulabilmesi için AOSP'ye aktarılmasını öneririz.OEM veya SoC'ye özgü modülleri paketleyin.
product
veyavendor
bölümüne yüklenebilmeleri için bu tür modüllerin ayrıştırılmasını öneririz.
system
bölümü. OEM ürünleri için kullanılan ortak sistem görüntüsü. Tescilli modülleri AOSP'ye aktararak veyasystem_ext
bölümüne taşıyaraksystem
bölümünün dışına taşımanızı öneririz.product
bölümü. Bu bölüm artık başka bölümlerle birlikte paketlenmeyen ürüne özel modülleri yüklemek için izin verilen arabirimleri kullanabilir.
VNDK değişiklikleri
Satıcı Yerel Geliştirme Kiti (VNDK), system
bölümüne yüklenen ve satıcıların HAL'lerini uygulamaları için özel olarak tasarlanmış bir kitaplık kümesidir.
Android 10 ve daha düşük sürümlerde
vendor
bölümü,system
bölümündeki VNDK kitaplıklarına bağlanabilir 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ğlanabilir.Android 11 ve üzeri 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 çeşitleri
Soong yapı sistemi, yapı bağımlılıklarını bölmek için görüntü değişkenlerini kullanır. Yerel modüller ( /build/soong/cc
), sistem işlem modüllerini çekirdek değişkene ve satıcı süreç modüllerini satıcı değişkenine dönüştürebilir; bir görüntü varyantındaki bir modül, farklı bir görüntü varyantındaki diğer modüllere bağlanamaz.
Android 10 veya daha düşük sürümlerde, bir sistem modülü otomatik olarak çekirdek değişkenler oluşturur. Ayrıca
Android.bp
dosyalarındavendor_available: true
tanımlayarak satıcı değişkenleri de oluşturabilir; bu, satıcı modüllerinin sistem modüllerine bağlanmasını sağlar.system
kitaplıklarının satıcı değişkenleri olan VNDK kitaplıkları,Android.bp
dosyalarındavendor_available: true
tanımını yaparak satıcı modülleri için satıcı değişkenleri de oluşturabilir (bkz. örnek ).Android 11'de bir sistem modülü,
vendor_available: true
tanımını yaparak bir ürün çeşidi (temel ve satıcı çeşitlerine ek olarak) da oluşturabilir.Android 12 veya sonraki sürümlerde,
vendor_available: true
özelliğine sahip bir sistem modülü, çekirdek değişkene ek olarak bir satıcı değişkeni oluşturur. Bir ürün çeşidi oluşturmak içinproduct_available: true
tanımlanmalıdır.product_available: true
içermeyen bazı VNDK kitaplıkları ürün modüllerinde kullanılamaz.