Ö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 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ü yanıp söndürür. İ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 arka plan programı (flashbootd) oluşturuyorsanız bootloader'ı ve bootloader kilit durumunu alabilmeniz gerekir. getFlashLockState() @SystemApi, önyükleyici durumunu iletir ve PersistentDataBlockManager.getFlashLockState() sistem API'si, uyumlu cihazlarda önyükleyicinin 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 sürümlere yükseltilen ve daha önce flaş kilidi/kilidini açma özelliğini destekledikleri halde flaş kilidi durumunu almak için gereken bootloader değişikliklerini desteklemeyen cihazlar tarafından döndürülür.
  • Android 7.x veya sonraki sürümlerin yüklü olduğu 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şlemini desteklemeyen (yani cihaz her zaman kilitli) veya kilit açma/kilit kapama işlemini destekleyen ve kilitli durumda olan herhangi bir cihaz tarafından döndürülür.
FLASH_LOCK_UNLOCKED Yanıp sönen kilit/kilit açma özelliğini destekleyen ve kilidi açılmış durumdaki herhangi bir cihaz tarafından döndürülür.

Üreticiler, kilitli ve kilidi açık önyükleyicilerle 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