На этой странице описывается несколько задач, которые вам может потребоваться выполнить при настройке сборки для своего устройства.
Создайте пользовательскую конфигурацию вспышки
Инструкции Fastboot определены в артефакте, называемом fastboot-info.txt
. Если вы создаете несколько целей, у вас будет несколько файлов fastboot-info.txt
в $OUT_DIR . А $ANDROID_PRODUCT_OUT
указывает на самую последнюю созданную вами цель. На этой странице перечислены задачи для fastboot, которые нужно выполнить, и ее можно сгенерировать заново с помощью m fastboot_info
. Вы можете ввести пользовательскую логику прошивки, изменив файл fastboot-info.txt
.
Файл fastboot-info.txt
поддерживает следующие команды:
-
flash %s
: Прошить указанный раздел. Необязательные аргументы включают--slot-other,
filename_path, and
--apply-vbmeta`. -
update-super
: Обновляет суперраздел. -
if-wipe
: Условно запускает какой-либо другой компонент, если указана очистка. -
erase %s
: стирает указанный раздел (можно использовать только вместе сif-wipe
-> например,if-wipe erase cache
).
Определить состояние блокировки вспышки
Если вы создаете пользовательский демон flashboot (flashbootd) для устройства, вам необходимо иметь возможность получить загрузчик и состояние блокировки загрузчика. getFlashLockState()
@SystemApi
передает состояние загрузчика, а системный API PersistentDataBlockManager.getFlashLockState()
возвращает состояние блокировки загрузчика на совместимых устройствах.
Возвращаемое значение | Условия |
---|---|
FLASH_LOCK_UNKNOWN | Возвращается только устройствами, обновляющимися до Android 7.x или выше, которые ранее не поддерживали изменения загрузчика, необходимые для получения статуса блокировки прошивки, если они поддерживали возможность блокировки/разблокировки прошивки.
|
FLASH_LOCK_LOCKED | Возвращается любым устройством, которое не поддерживает блокировку/разблокировку с помощью вспышки (то есть устройство всегда заблокировано), или любым устройством, которое поддерживает блокировку/разблокировку с помощью вспышки и находится в заблокированном состоянии. |
FLASH_LOCK_UNLOCKED | Возвращается любым устройством, поддерживающим блокировку/разблокировку с помощью вспышки и находящимся в разблокированном состоянии. |
Производители должны тестировать значения, возвращаемые устройствами с заблокированными и разблокированными загрузчиками. Например, AOSP содержит эталонную реализацию, которая возвращает значение на основе свойства загрузки ro.boot.flash.locked
. Пример кода находится в следующих каталогах:
-
frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java
-
frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java