Özel cihaz geliştirme

Bu sayfada, kendi cihazınız için bir derleme oluşturuyorsanız gerçekleştirmeniz gerekebilecek çeşitli görevler açıklanmaktadır.

Özel flaş yapılandırması oluşturma

Hızlı önyükleme talimatları, fastboot-info.txt adlı bir yapıda tanımlanır. Birden fazla hedef oluşturursanız $OUT_DIR içinde birden fazla fastboot-info.txt dosyanız olur. $ANDROID_PRODUCT_OUT ise oluşturduğunuz en güncel hedefi gösterir. Bu sayfada, hızlı önyüklemenin yürüteceği görevler listelenir ve m fastboot_info kullanılarak yeniden oluşturulabilir. fastboot-info.txt dosyasını değiştirerek özel yanıp sönme mantığı ekleyebilirsiniz.

fastboot-info.txt dosyası aşağıdaki komutları destekler:

  • flash %s: Belirli bir bölümü biçimlendirir. İsteğe bağlı bağımsız değişkenler arasında --slot-other,filename_path, and--apply-vbmeta` bulunur.
  • update-super: Süper bölümü günceller.
  • if-wipe: Silme işlemi belirtilirse koşullu olarak başka bir bileşeni çalıştırır.
  • erase %s: Belirli bir bölümü siler (yalnızca if-wipe ile birlikte kullanılabilir -> ör. if-wipe erase cache).

Flaş kilidi durumunu belirleme

Bir cihaz için özel bir flashboot arka plan programı (flashbootd) oluşturuyorsanız bootloader ve bootloader kilit durumunu alabilmeniz gerekir. getFlashLockState() @SystemApi, bootloader durumunu iletir ve PersistentDataBlockManager.getFlashLockState() sistem API'si, uyumlu cihazlarda bootloader'ın kilit durumunu döndürür.

Döndürülen değer Rahatsızlıklar
FLASH_LOCK_UNKNOWN Yalnızca Android 7.x veya sonraki bir sürüme yükseltilen ve daha önce kilit/kilit açma özelliğini destekleyen ancak flaş kilit durumunu almak için gereken önyükleyici değişikliklerini desteklemeyen cihazlar tarafından döndürülür.
  • Android 7.x veya sonraki sürümleri çalıştıran yeni cihazlar FLASH_LOCK_LOCKED veya FLASH_LOCK_UNLOCKED durumunda olmalıdır.
  • Android 7.x veya sonraki sürümlere yükseltilen ve yanıp sönme/kilit açma/kilitleme özelliğini desteklemeyen cihazlar FLASH_LOCK_LOCKED durumunu döndürmelidir.
FLASH_LOCK_LOCKED Kilit/kilit açma ışığını desteklemeyen (yani cihaz her zaman kilitli olan) veya kilit/kilit açma ışığını destekleyen ve kilitli durumda olan herhangi bir cihaz tarafından döndürülür.
FLASH_LOCK_UNLOCKED Kilit/kilit açma ışığını destekleyen ve kilidi açık durumdaki tüm cihazlar tarafından döndürülür.

Üreticiler, kilitli ve kilidi açık önyükleme cihazları tarafından döndürülen değerleri test etmelidir. Örneğin, AOSP, ro.boot.flash.locked önyükleme özelliğine göre değer döndüren bir referans uygulama içerir. Örnek kod aşağıdaki dizinlerde bulunur:

  • frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java
  • frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java