DTO Desteği

Cihaz Ağacı Yerleşimi (DTO), orijinal verileri değiştiren ek yer paylaşımlı FDT'ler yükleyerek kullanıcı alanının çekirdekteki ilk cihaz ağacı verilerini çalışma zamanında değiştirmesine olanak tanıyarak mevcut Düzleştirilmiş Cihaz Ağacı (FDT) uygulamalarını genişletir. Android, kullanıcı alanından DT bloblarının çalışma zamanı güncellemelerini gerektirmez, ancak bunun yerine satıcıların libfdt veya libufdt yardımıyla cihaz ağacı yamasını önyükleyiciye eklemelerini önerir.

Android DTO desteği

DTO'lar için Android desteği Android sürümüne göre değişir:

  • Android 7.x ve önceki sürümleri, aygıt ağacı desteği gerektirmez ve satıcıların DT blob'larını çekirdeğe nasıl aktardıklarına veya bunları nerede depolayacaklarına ilişkin öneriler sunmaz.
  • Android 8.x, çekirdeğin karta özel ve yalnızca SoC'ye özel kısımlarını ayrı tutmak için aygıt ağacı desteğini önerir.
  • Android 9 ve üzeri, bir cihaz ağacı blob katmanı (DTBO) bölümünün mevcut olmasını ve en az bir DTO'nun uygulanmasını gerektirir.

DTO bölümleme gereksinimleri

Çoğu Android cihazı, derleme sırasında DT blobunu çekirdeğe ekler ve önyükleyici, blobu çekirdekten yükler. Bununla birlikte, DT blob'ları çip üzerinde sistem (SoC) çekirdeğinin bir parçası olarak kabul edildiğinden, Android'in DT bloblarının nasıl oluşturulacağı veya depolanacağı konusunda özel gereksinimleri yoktur. Cihazlar DT blobunu çekirdeğe ekleyebilir veya blobu ayrı bir bölümde depolayabilir; tek gereksinim, önyükleyicinin DT blobunun nasıl ve nereden yükleneceğini bilmesidir.

DTO'yu desteklemek için cihazların aşağıdaki özelliklere sahip olması gerekir:

  • Karta özgü bir DT katmanı için çekirdek görüntüsü başına bir DTBO bölümü ve önyükleyicinin SoC'ye özgü DTB'yi nereye ve nasıl yükleyeceğini bilmesi gerekir. Bölüm boyutu, SoC çekirdeğini oluşturmak için gereken değişiklik sayısına bağlıdır; gelecekteki güncellemeler için büyüyebilecek alana sahip bir boyut seçin; genellikle 8 MB'lık bir bölüm boyutu fazlasıyla yeterlidir.
  • A/B cihazları için güncellenen DTO bölümleri. Kurtarma çekirdeği Android çekirdeğiyle aynıdır ancak kablosuz (OTA) güncellemelerle güncellenebilmesi için bölümün A/B aygıtlarına göre ayarlanması gerekir. Bölüm boyutu, cihaza ve ana SoC çekirdeği DT blobunun üstündeki değişiklik sayısına bağlıdır.

DTO önyükleyici gereksinimleri

DTO'yu desteklemek için önyükleyici şunları yapmalıdır:

  • SoC'ye özgü DT blobunu satıcıya özgü bir şekilde (genellikle bloblar çekirdeğe eklenirken çekirdek görüntüsünün sonundan çıkarılır) nasıl ve nerede yükleneceğini (A/B aygıtları için önyükleme yuvası dikkate alınarak) öğrenin.
  • Yer paylaşımlı DT blobunun satıcıya özel bir şekilde nasıl ve nereden yükleneceğini öğrenin.
  • Birleştirilmiş aygıt ağacını çekirdeğe geçirmeden önce ana DT blobunu kaplamayla yamalayın.

Önyükleyiciye DTO desteği ekleme hakkında daha fazla ayrıntı için bkz. Cihaz Ağacı Kaplamaları .