Özel cihaz geliştirme

Bu sayfada, kendi cihazınız için derleme ayarlıyorsanız yapmanız gerekebilecek çeşitli görevler açıklanmaktadır.

Özel bir Flash yapılandırması oluşturma

Fastboot 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, fastboot'un 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ığı uygulayabilirsiniz.

fastboot-info.txt dosyası şu komutları destekler:

  • flash %s: Belirli bir bölümü yükler. İ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 belirtilmişse başka bir bileşeni koşullu olarak ç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 daemon'u (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 Koşullar
FLASH_LOCK_UNKNOWN Yalnızca Android 7.x veya sonraki sürümlere yükseltilen ve daha önce flash kilitleme/kilit açma özelliğini destekledikleri halde flash kilitleme durumunu almak için gerekli olan bootloader 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 ya FLASH_LOCK_LOCKED ya da FLASH_LOCK_UNLOCKED durumunda olmalıdır.
  • Android 7.x veya sonraki sürümlere yükseltilen ve kilidi açma/kilitleme özelliğini flaşlamayı desteklemeyen cihazlar FLASH_LOCK_LOCKED durumunu döndürmelidir.
FLASH_LOCK_LOCKED Kilit açma/kilit kapama işleminin gerçekleştirilmesini desteklemeyen (yani cihazın her zaman kilitli olduğu) veya kilit açma/kilit kapama işleminin gerçekleştirilmesini destekleyen ve kilitli durumda olan cihazlar tarafından döndürülür.
FLASH_LOCK_UNLOCKED Kilit açma/kilit kapatma işlemlerini destekleyen ve kilidi açılmış durumda olan herhangi bir cihaz tarafından döndürülür.

Üreticiler, kilitli ve kilidi açık önyükleyicilere sahip cihazlar tarafından döndürülen değerleri test etmelidir. Örneğin, AOSP, ro.boot.flash.locked önyükleme özelliğine göre bir değer döndüren 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