Bölümlere genel bakış

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:

Çekirdek bölümlerin düzeni.

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, boot ve init_boot temel 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_boot ve odm bölümleri temel bölümlerdir.

  • 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şime geçebilir.

Sistem bölümleri

Aşağıda, tüm sistem bölümleri ve bunların kullanım alanları listelenmiştir:

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

  • init_boot bö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, boot bölümündedir.

  • system bölümü. Bu bölüm, OEM ürünlerinde kullanılan sistem görüntüsünü içerir.

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

  • system_dlkm bö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.

  • product bölümü. Bu bölüm, başka bölümlerle birlikte paketlenmemiş ürüne özel modüller içerebilir.

  • pvmfw bö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_bootloader bö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_boot bölümü. Bu bölüm, satıcıya özgü önyükleme kodu içerir. Daha fazla bilgi için Sağlayıcı önyükleme bölümleri başlıklı makaleyi inceleyin.

  • recovery bö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ülerini boot veya init_boot gö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.

  • vbmeta bölümü. Bu bölüm, tüm bölümlerin 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ü. Bu bölüm, tedarikçiye özel olan ve AOSP'ye dağıtılacak kadar genel olmayan tüm ikili dosyaları içerir.

  • vendor_dlkm bölümü. Bu bölümde, satıcı çekirdek modülleri yer alır. Tedarikçi ç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 konusuna bakın.

  • odm bö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, ODM'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 ODM'ye ö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çermek için 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_dlkm bölümü. 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 konusuna bakın.

  • 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 ö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:

  • cache bö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 ve userdata'daki alanın kullanılabilirliğine bağlıdır. Genellikle 50-100 MB yeterlidir.

  • userdata bölümü. Bu bölümde, kullanıcı tarafından yüklenen uygulamalar ve özelleştirme verileri de dahil olmak üzere veriler bulunur.

  • metadata bö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 satıcı 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ıca bağlı bağımlılıklar ve kararlı API'lerin olmaması nedeniyle aşağıdaki bölümlerin güncellenmesi gerekir:

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

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

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