Genel bakış

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 ve mkbootimg 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 uyumsuzsa vendor , system veya dtb 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üllerinin odm_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ülerini boot veya init_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 ve userdata 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üllerinin vendor_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.

Android Bölüm Düzeni

Şekil 1. Android 11'deki bölüm düzeni

  • Tek Sistem Görüntüsü (SSI). system ve system_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 ve system ile system_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 sonra system bölümüne kurulabilmesi için AOSP'ye aktarılmasını öneririz.

    • OEM veya SoC'ye özgü modülleri paketleyin. product veya vendor 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 veya system_ext bölümüne taşıyarak system 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 ancak system 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 ve vendor bölümleri, system bölümündeki VNDK kitaplıklarına bağlanabilir ancak system 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ında vendor_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ında vendor_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çin product_available: true tanımlanmalıdır. product_available: true içermeyen bazı VNDK kitaplıkları ürün modüllerinde kullanılamaz.