En esta página, se explican las diferentes tareas que podrías tener que realizar si estás configurando una compilación para tu propio dispositivo.
Crea una configuración flash personalizada
Las instrucciones de fastboot se definen en un artefacto llamado fastboot-info.txt
. Si compilas varios destinos, tendrás varios archivos fastboot-info.txt
en $OUT_DIR. Y, $ANDROID_PRODUCT_OUT
apunta al destino más reciente que compilaste. En esta página, se enumeran las tareas para que fastboot ejecute y se puedan regenerar con m fastboot_info
. Puedes modificar el archivo fastboot-info.txt
para introducir lógica de escritura personalizada en la memoria flash.
El archivo fastboot-info.txt
admite estos comandos:
flash %s
: Escribe en la memoria flash de una partición determinada. Los argumentos opcionales incluyen--slot-other,
filename_path, and
--apply-vbmeta`.update-super
: Actualiza la partición super.if-wipe
: Ejecuta condicionalmente algún otro componente si se especifica una limpieza.erase %s
: Borra una partición determinada (solo se puede usar junto conif-wipe
-> p. ej.,if-wipe erase cache
).
Determina el estado de bloqueo de escritura en la memoria flash
Si vas a compilar un daemon de flashboot personalizado (flashbootd) para un dispositivo, necesitas poder obtener el bootloader y el estado de bloqueo del bootloader. getFlashLockState()
@SystemApi
transmite el estado del bootloader y la API del sistema PersistentDataBlockManager.getFlashLockState()
devuelve el estado de bloqueo del bootloader en dispositivos compatibles.
Valor que se devuelve | Condiciones |
---|---|
FLASH_LOCK_UNKNOWN |
Solo lo devuelven los dispositivos que se actualizaron a Android 7.x o versiones posteriores que no admitían
cambios de bootloader necesarios para obtener el estado de bloqueo de la escritura en la memoria
flash si admitían la función de bloqueo/desbloqueo de la escritura en la memoria flash.
|
FLASH_LOCK_LOCKED |
Lo devuelve cualquier dispositivo que no admite bloqueo/desbloqueo de escritura en la memoria flash (es decir, el dispositivo siempre está bloqueado), o cualquier dispositivo que admite bloqueo/desbloqueo de escritura en la memoria flash y está en estado bloqueado. |
FLASH_LOCK_UNLOCKED |
Lo devuelve cualquier dispositivo que admite bloqueo/desbloqueo de escritura en la memoria flash y está en estado desbloqueado. |
Los fabricantes deben someter a prueba los valores que muestran los dispositivos con bootloaders bloqueados y desbloqueados. Por ejemplo, el AOSP contiene una implementación de referencia que devuelve un valor basado en la propiedad de inicio 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