Bölümlere genel bakış

Android cihazlar, cihaz yazılımının belirli bölümlerini depolamak için kullanılan çeşitli bölümler veya depolama alanı bölümleri içerir. Her bölümde, bölüme ait tüm yazılımların bölüm resmi (IMG dosyası) veya anlık görüntüsü bulunur. Şekil 1'de, bir cihazdaki çekirdek bölümlerinin düzeni gösterilmektedir:

Temel bölümlerin düzeni.

Şekil 1. Temel bölümlerin düzeni.

Bölümler üç kategoriye ayrılır:

  • Sistem bölümleri, işletim sistemi ve diğer özellikler güncellenirken güncellenen bölümlerdir. system, boot ve init_boot temel sistem bölümleridir.

  • Satıcı bölümleri, ilk sürümden sonra hiçbir zaman güncellenmeyecek cihaza ve donanıma özgü kod içerir. vendor, vendor_boot ve odm bölümleri temel tedarikçi bölümleridir.

  • Güncellenemeyecek bölümler, içerikleri güncellenmeyen veya kullanıcı verileriyle güncellenen bölümlerdir.

Sistem ve tedarikçi bölümlerindeki kod, tedarikçi arayüzü (VINTF) adlı kararlı bir arayüz kullanarak etkileşim kurabilir.

Sistem bölümleri

Aşağıda, tüm sistem bölümlerinin ve kullanımlarının listesi verilmiştir:

  • boot bölümünü Bu bölümde Genel Çekirdek Görüntüsü (GKI) bulunur. Bu bölüm, Android 12 ve önceki sürümlerde kullanıma sunulan cihazlardaki genel ramdisk'i de içerir. Genel ramdisk hakkında daha fazla bilgi için Genel ramdisk resim içerikleri başlıklı makaleyi inceleyin.

  • init_boot bölümü (Android 13 ve sonraki sürümler). Bu bölümde genel bir ramdisk bulunur. Android 11 ve 12'de genel ramdisk, boot bölümündedir.

  • system bölümünü Bu bölümde, OEM ürünleri için kullanılan sistem görüntüsü bulunur.

  • system_ext bölümüne Bu bölüm, sistem kaynaklarını ve system bölümündeki ortak sistem görüntüsünü genişleten özel sistem modüllerini içerir.

  • system_dlkm bölümüne Bu bölümde GKI modülleri bulunur. Bu bölüm hakkında daha fazla bilgi için GKI modülü bölümü uygulama başlıklı makaleyi inceleyin.

  • product bölümünü Bu bölüm, diğer bölümlerle birlikte paketlenmemiş, ürüne özel modüller içerebilir.

  • pvmfw bölümünü Bu bölümde, korumalı sanal makinelerde çalışan ilk kod olan Korumalı Sanal Makine Donanım Yazılımı (pvmfw) saklanır. Daha fazla bilgi için Korumalı Sanal Makine Donanım Yazılımı başlıklı makaleyi inceleyin.

  • generic_bootloader bölümünü Bu bölümde genel önyükleme yükleyici bulunur.

Tedarikçi firma bölümleri

Aşağıda, tüm tedarikçi firma bölümlerinin ve kullanımlarının listesi verilmiştir:

  • vendor_boot bölümünü Bu bölüm, tedarikçiye özgü önyükleme kodunu içerir. Daha fazla bilgi için Tedarikçi firma önyükleme bölümleri bölümüne bakın.

  • recovery bölümüne Bu bölümde, kablosuz (OTA) güncelleme işlemi sırasında başlatılan kurtarma görüntüsü saklanır. Sorunsuz güncellemeleri destekleyen cihazlar, kurtarma resimlerini boot veya init_boot görüntüsünde bulunan bir ramdisk olarak saklayabilir. Sorunsuz güncellemeler hakkında daha fazla bilgi için A/B (seamless) güncellemeleri başlıklı makaleyi inceleyin.

  • vbmeta bölümünü 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.

  • vendor bölümünü Bu bölüm, tedarikçi firmaya özgü olan ve AOSP'ye dağıtılacak kadar genel olmayan tüm ikili dosyaları içerir.

  • vendor_dlkm bölümünü Bu bölümde tedarikçi firma çekirdek modülleri bulunur. Tedarikçi firma çekirdek modüllerini vendor bölümü yerine bu bölümde depolayarak vendor bölümünü güncellemeden çekirdek modüllerini güncelleyebilirsiniz. Daha fazla bilgi için Tedarikçi ve ODM DKLM bölümleri bölümüne bakın.

  • odm bölümünü Bu bölümde, çip üzerinde sistem (SoC) tedarikçi firma kart destek paketlerinde (BSP'ler) orijinal tasarım üreticisi (ODM) özelleştirmeleri yer alır. 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. Bu bölüm genellikle, cihazların birden fazla donanım SKU'su için tek bir tedarikçi resmi kullanabilmesi amacıyla özelleştirmeleri içermek için kullanılır. Daha fazla bilgi için ODM bölümleri bölümüne bakın.

  • odm_dlkm bölümünü Bu bölüm, ODM çekirdek modüllerini depolamaya ayrılmıştır. ODM çekirdek modüllerini odm bölümü yerine bu bölümde depolayarak odm bölümünü güncellemeden ODM çekirdek modüllerini güncelleyebilirsiniz. Daha fazla bilgi için Tedarikçi ve ODM DKLM bölümleri bölümüne bakın.

  • 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.

Güncellenemeyecek bölümler

Aşağıda, güncellenemeyen tüm bölümlerin ve bunların kullanımlarının listesi verilmiştir:

  • cache bölümünü 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 ve userdata'teki alan durumuna bağlıdır. Genellikle 50 ila 100 MB yeterlidir.

  • userdata bölümünü 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ü Cihazınızda meta veri şifrelemesi 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ölme güncelleme kuralları ve önerileri

Tüm sistem bölümlerinin bir bütün olarak, tüm tedarikçi bölümlerinin ise ayrı bir bütün olarak güncellenmesini ö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ölmelerinizi 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ümler güncellenmelidir:

  • boot ve system_dlkm bölümleri
  • init_boot, system, system_ext ve product bölümleri

Dinamik bölümler

Android 11 ve sonraki sürümleri çalıştıran cihazlar, kablosuz (OTA) güncellemeler sırasında bölüm oluşturmanıza, yeniden boyutlandırmanıza veya bölüm silmenize olanak tanıyan Android için kullanıcı alanı bölümlendirme sistemi olan dinamik bölümleri destekleyebilir. Daha fazla bilgi için Dinamik bölümler bölümüne bakın.

  • 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.

  • tos bölümünü Bu bölüm, Trusty OS'nin ikili görüntüsünü içerir ve yalnızca cihazda Trusty varsa kullanılır. Daha fazla bilgi için Trusty OS (TOS) bölümleri 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 işleme modüllerini temel 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 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çin product_available: true tanımlanmalıdır. product_available: true içermeyen bazı VNDK kitaplıkları, ürün modülleri tarafından kullanılamaz.