Özel cihaz geliştirme

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

Özel bir flaş yapılandırması oluşturun

Fastboot talimatları fastboot-info.txt adlı bir yapıtta tanımlanır. Birden fazla hedef oluşturursanız, $OUT_DIR içinde birden fazla fastboot-info.txt dosyanız olur. Ve $ANDROID_PRODUCT_OUT oluşturduğunuz en güncel hedefi işaret eder. 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ığını tanıtabilirsiniz.

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

  • flash %s : Belirli bir bölümü yanıp söner. İsteğe bağlı bağımsız değişkenler arasında --slot-other, filename_path , and --apply-vbmeta` yer alır.
  • update-super : Süper bölümü günceller.
  • if-wipe : Bir silme 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 -> örneğin if-wipe erase cache ile birlikte kullanılabilir).

Flaş kilidi durumunu belirleme

Bir aygıt için özel bir flashboot arka plan programı (flashbootd) oluşturuyorsanız, önyükleyici ve önyükleyici kilit durumunu elde edebilmeniz gerekir. getFlashLockState() @SystemApi önyükleyici durumunu iletir ve PersistentDataBlockManager.getFlashLockState() sistem API'si, uyumlu cihazlarda önyükleyicinin kilit durumunu döndürür.

Geri dönüş değeri Koşullar
FLASH_LOCK_UNKNOWN Yalnızca, yanıp sönen kilitleme/kilit açma özelliğini destekliyorlarsa, flaş kilit durumunu almak için gereken önyükleyici değişikliklerini daha önce desteklemeyen, Android 7.x veya daha yeni bir sürüme yükseltme yapan cihazlar tarafından döndürülür.
  • Android 7.x veya üstünü çalıştıran yeni cihazlar FLASH_LOCK_LOCKED veya FLASH_LOCK_UNLOCKED durumunda olmalıdır.
  • Yanıp sönerek kilit açma/kilitleme özelliğini desteklemeyen, Android 7.x veya daha yeni bir sürüme yükseltilen cihazlar FLASH_LOCK_LOCKED durumunu döndürmelidir.
FLASH_LOCK_LOCKED Yanıp sönerek kilitleme/kilit açmayı desteklemeyen (yani cihaz her zaman kilitlidir) veya yanıp sönerek kilitleme/kilit açmayı destekleyen ve kilitli durumda olan herhangi bir cihaz tarafından döndürülür.
FLASH_LOCK_UNLOCKED Yanıp sönen kilitleme/kilit açmayı destekleyen ve kilit açık durumda olan herhangi bir cihaz tarafından döndürülür.

Üreticiler, kilitli ve kilidi açılmış önyükleyicilere sahip cihazların döndürdüğü değerleri test etmelidir. Örneğin AOSP, ro.boot.flash.locked önyükleme özelliğine dayalı olarak bir değer döndüren bir referans uygulaması 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