Esta página explica varias tareas que quizás debas realizar si estás configurando una compilación para tu propio dispositivo.
Crear una configuración flash personalizada
Las instrucciones Fastboot se definen en un artefacto llamado fastboot-info.txt
. Si crea varios objetivos, tendrá varios archivos fastboot-info.txt
en $OUT_DIR . Y $ANDROID_PRODUCT_OUT
apunta al objetivo más actual que creó. Esta página enumera las tareas que debe ejecutar fastboot y se puede regenerar usando m fastboot_info
. Puede introducir una lógica de actualización personalizada modificando el archivo fastboot-info.txt
.
El archivo fastboot-info.txt
admite estos comandos:
-
flash %s
: parpadea una partición determinada. Los argumentos opcionales incluyen--slot-other,
filename_path, and
--apply-vbmeta`. -
update-super
: Actualiza la superpartición. -
if-wipe
: ejecuta condicionalmente algún otro componente si se especifica un borrado. -
erase %s
: borra una partición determinada (solo se puede usar junto conif-wipe
-> por ejemplo,if-wipe erase cache
).
Determinar el estado de bloqueo del flash
Si está creando un demonio de arranque flash personalizado (flashbootd) para un dispositivo, debe poder obtener el cargador de arranque y el estado de bloqueo del mismo. getFlashLockState()
@SystemApi
transmite el estado del cargador de arranque y la API del sistema PersistentDataBlockManager.getFlashLockState()
devuelve el estado de bloqueo del cargador de arranque en dispositivos compatibles.
Valor de retorno | Condiciones |
---|---|
FLASH_LOCK_UNKNOWN | Devuelto solo por dispositivos que se actualizaron a Android 7.x o superior y que previamente no admitían los cambios del gestor de arranque necesarios para obtener el estado de bloqueo de flash si admitían la capacidad de bloqueo/desbloqueo de flash.
|
FLASH_LOCK_LOCKED | Devuelto por cualquier dispositivo que no admita bloqueo/desbloqueo intermitente (es decir, el dispositivo siempre está bloqueado), o cualquier dispositivo que admita bloqueo/desbloqueo intermitente y esté en estado bloqueado. |
FLASH_LOCK_UNLOCKED | Devuelto por cualquier dispositivo que admita bloqueo/desbloqueo intermitente y esté en estado desbloqueado. |
Los fabricantes deben probar los valores devueltos por los dispositivos con cargadores de arranque bloqueados y desbloqueados. Por ejemplo, AOSP contiene una implementación de referencia que devuelve un valor basado en la propiedad de arranque ro.boot.flash.locked
. El código de ejemplo se encuentra en los siguientes directorios:
-
frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java
-
frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java