Genel Bakış

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Android cihazlar, önyükleme işleminde farklı işlevlere hizmet eden birkaç bölüm 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. Her iki görüntüyü de yeni bir önyükleme bölümünü flaş etmeden doğrudan flaş etmek için sanal bir bölüm kullanabilirsiniz. Bu bölüm ayrıca Android 13'ten önce başlatılan cihazlarda 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) ilişkili ç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 ramdisk'in ü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 görüntüyü takip ederek verileri taşıyabilir veya bir hata ile işlemden vazgeçebilir.

  • init_boot bölümü. Bu bölüm, Android 13 ve sonraki sürümlerle başlatılan cihazlar için genel ramdisk'i içerir.

  • system bölümü. Bu bölüm Android çerçevesini içerir.

  • odm bölümü. Bu bölüm, yonga üzerinde sistem (SoC) satıcı kartı destek paketlerine (BSP'ler) yönelik özgün tasarım üreticisi (ODM) özelleştirmelerini içerir. Bu tür özelleştirmeler, ODM'lerin SoC bileşenlerini değiştirmesini veya özelleştirmesini ve donanım soyutlama katmanlarında (HAL'ler) panoya özgü bileşenler, arka plan programları ve ODM'ye özgü özellikler için çekirdek modülleri uygulamasını sağlar. Bu bölüm isteğe bağlıdır; tipik olarak, cihazların birden çok donanım SKU'su için tek bir satıcı görüntüsü kullanabilmesi için özelleştirmeleri içermek üzere 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üllerini odm_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ü. Bu bölüm, OTA işlemi sırasında önyüklenen kurtarma görüntüsünü depolar. Kesintisiz güncellemeleri destekleyen cihazlar, kurtarma görüntülerini boot veya init_boot görüntüsünde (ayrı bir görüntü yerine) bulunan bir ramdisk olarak depolayabilir.

  • cache bölümü. Bu bölüm, geçici verileri depolar ve bir aygıt kesintisiz güncellemeler kullanıyorsa isteğe bağlıdır. Önbellek bölümünün önyükleyiciden yazılabilir olması gerekmez, ancak silinebilir olması gerekir. Bölme boyutu, aygıt türüne ve kullanıcı verilerinde kullanılabilir alan olup userdata bağlıdır; tipik olarak, 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 şifrelemesi kullandığında meta veri şifreleme anahtarını depolamak için kullanılır. Boyut 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 tüm ikili dosyaları içerir. Aygıt özel bilgiler içermiyorsa bu bölümü atlayabilirsiniz.

  • vendor_dlkm bölümü. Bu bölüm, satıcı çekirdek modüllerini depolamaya ayrılmıştır. Satıcı çekirdek modüllerini vendor_dlkm bölümünde depolamak ( vendor bölümünün aksine), vendor bölümünü güncellemeden çekirdek modüllerini güncellemeyi 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 özel yazılıma sahip bir radyo içeren aygıtlar için gereklidir.

  • tos bölümü. 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 bkz. TOS 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ümlerin oluşturulmasını, yeniden boyutlandırılmasını veya yok edilmesini sağlayan 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 tam korumalı veya yeniden yanıp sönebilir olarak belirlemelisiniz, yani bunlar yeniden oluşturulabilir, sağlanabilir veya bir fastboot oem komutu kullanılarak çıkarılabilir. 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ü varyantları dahil olmak üzere bölümlerde çok sayıda değişiklik içeriyor.

Android Bölme 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'yi paylaşabilir ve system ve system_ext görüntülerini oluşturmayı atlayabilir.

  • system_ext bölümü. system kaynaklarını kullanabilen ve aşağıdakileri içeren sistem modüllerini içerebilen yeni bir bölüm:

    • AOSP sistem modüllerini system bölümünde genişletin. Daha sonra system bölümüne kurulabilmeleri için bu tür modülleri AOSP'ye yüklemenizi öneririz.

    • OEM veya SoC'ye özel modülleri paketleyin. product veya vendor bölümüne kurulabilmeleri için bu tür modülleri ayırmanızı öneririz.

  • system bölümü. OEM ürünleri için kullanılan ortak sistem görüntüsü. Tescilli modülleri AOSP'ye yükleyerek veya system_ext bölümüne taşıyarak system bölümünden çıkarmanızı öneririz.

  • product bölümü. Bu bölüm artık diğer bölümlerle paketlenmemiş ürüne özel modülleri yüklemek için izin verilen arabirimleri kullanabilir.

VNDK değişiklikleri

Vendor Native Development Kit (VNDK) , system bölümüne yüklenen ve yalnızca satıcıların HAL'lerini uygulaması için tasarlanmış bir kitaplık kümesidir.

  • Android 10 ve önceki 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ğlanamaz. product bölümündeki yerel modüller, system bölümündeki herhangi bir kitaplığa bağlanabilir.

  • Android 11 ve sonraki 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 süreç modüllerini çekirdek varyanta ve satıcı süreç modüllerini satıcı varyantına 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 önceki sürümlerde, bir sistem modülü otomatik olarak temel değişkenler oluşturur. Ayrıca, Android.bp dosyalarında vendor_available: true tanımlayarak satıcı varyantları oluşturabilir; bu, satıcı modüllerinin sistem modüllerine bağlanmasını sağlar. Sistem kitaplıklarının satıcı varyantları olan system kitaplıkları, aynı zamanda, satıcı modülleri için satıcı varyantları, Android.bp dosyalarında vendor_available: true tanımlayarak oluşturabilir ( örneğe bakın).

  • Android 11'de, bir sistem modülü ayrıca vendor_available: true tanımlayarak bir ürün varyantı (temel ve satıcı varyantlarına ek olarak) oluşturabilir.

  • Android 12 veya sonraki sürümlerde, vendor_available: true olan bir sistem modülü, temel varyanta ek olarak bir satıcı varyantı 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.