Cómo escribir en la memoria flash de dispositivos

En esta página, se proporcionan detalles sobre cómo ejecutar compilaciones en dispositivos específicos. Estos detalles complementan la información de Cómo compilar para Android.

Cómo compilar fastboot y adb

Si aún no cuentas con fastboot y adb, puedes compilarlos con el sistema de compilación habitual. Usa las instrucciones que se indican en Cómo compilar Android y reemplaza el comando make principal por este:

make fastboot adb

Consulta Android Debug Bridge (ADB) para obtener detalles sobre esta herramienta.

Cómo iniciar en modo fastboot

Puedes escribir en la memoria flash de un dispositivo cuando se encuentra en el modo de bootloader fastboot. Para ingresar al modo fastboot cuando un dispositivo se encuentra en un inicio en frío, usa las combinaciones de teclas que se proporcionan en la siguiente tabla.

También puedes usar el comando adb reboot bootloader para reiniciar directamente en el bootloader. Consulta Cómo escribir en la memoria flash de un dispositivo para obtener las instrucciones.

Dispositivo Nombre interno Combinaciones de teclas
Pixel 6 Pro raven Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Pixel 6 oriole Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Pixel 5a (5G) barbet Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Pixel 5 redfin Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Pixel 4a (5G) bramble Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Pixel 4a sunfish Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Pixel 4 XL coral Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Pixel 4 flame Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Pixel 3a XL bonito Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Pixel 3a sargo Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Pixel 3 XL crosshatch Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Pixel 3 blueline Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Pixel 2 XL taimen Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Pixel 2 walleye Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Pixel XL marlin Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Pixel sailfish Mantén presionada la tecla bajar volumen y, luego, la de encendido.
hikey hikey Vincula los pines 1 y 2, y 5 y 6 de J15.
Nexus 6P angler Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Nexus 5X bullhead Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Nexus 6 shamu Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Nexus Player fugu Mantén presionada la tecla de encendido.
Nexus 9 volantis Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Nexus 5 hammerhead Mantén presionadas las teclas subir volumen y bajar volumen y, luego, la de encendido.
Nexus 7 flo Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Nexus 7 3G deb Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Nexus 10 manta Mantén presionadas las teclas subir volumen y bajar volumen y, luego, la de encendido.
Nexus 4 mako Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Nexus 7 (2012) grouper Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Nexus 7 3G (2012) tilapia Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Nexus Q phantasm Enciende el dispositivo y, luego, cúbrelo con una mano después de que se enciendan las luces LED y hasta que se vuelvan rojas.
Galaxy Nexus GSM maguro Mantén presionadas las teclas subir volumen y bajar volumen y, luego, la de encendido.
Galaxy Nexus (Verizon) toro Mantén presionadas las teclas subir volumen y bajar volumen y, luego, la de encendido.
Galaxy Nexus (Sprint) toroplus Mantén presionadas las teclas subir volumen y bajar volumen y, luego, la de encendido.
Motorola Xoom wingray Mantén presionada la tecla bajar volumen y, luego, la de encendido.
Nexus S crespo Mantén presionada la tecla subir volumen y, luego, la de encendido.
Nexus SG crespo4g Mantén presionada la tecla subir volumen y, luego, la de encendido.

Cómo desbloquear el bootloader

Puedes escribir en la memoria flash un sistema personalizado solo si el bootloader lo permite. Sin embargo, ten en cuenta que el bootloader se bloquea de forma predeterminada. Puedes desbloquear el bootloader, pero como consecuencia se borrarán los datos del usuario por razones de privacidad. Una vez que lo desbloquees, se borrarán todos los datos del dispositivo, es decir, los datos privados y compartidos de las apps a los que se puede acceder a través de USB (incluso fotos y películas). Antes de intentar desbloquear el bootloader, crea una copia de seguridad de los archivos importantes del dispositivo.

Debes desbloquear el bootloader una sola vez y, si fuera necesario, puedes volver a bloquearlo.

Cómo desbloquear dispositivos recientes

Todos los dispositivos Nexus y Pixel lanzados a partir de 2014 (comenzando con Nexus 6 y Nexus 9) cuentan con protección de restablecimiento de la configuración de fábrica y requieren un proceso de varios pasos para desbloquear el bootloader.

  1. Para habilitar el desbloqueo de OEM en el dispositivo, sigue estos pasos:
    1. En Configuración, presiona Acerca del dispositivo y, luego, Número de compilación siete veces.
    2. Cuando veas el mensaje Eres desarrollador, presiona el botón Atrás.
    3. En Configuración, presiona Sistema, luego Opciones para desarrolladores y habilita Desbloqueo de OEM y Depuración por USB. (Si la opción Desbloqueo de OEM está inhabilitada, conéctate a Internet para que el dispositivo pueda acceder al menos una vez. Si permanece inhabilitada, es posible que el proveedor haya bloqueado la tarjeta SIM de tu dispositivo y que no se pueda desbloquear el bootloader).
  2. Reinicia el bootloader y usa fastboot para desbloquearlo.
    • Para dispositivos más nuevos (2015 y posteriores):
      fastboot flashing unlock
    • Para dispositivos más antiguos (2014 y anteriores):
      fastboot oem unlock
    Sugerencia: Si ves el resultado "adb devices" antes del reinicio, pero fastboot o la secuencia de comandos de escritura en la memoria funcionan mal, es posible que haya problemas con tu cable USB. Prueba con otro puerto o cambia de conector. Si usas un puerto USB-C en la computadora, prueba con un puerto USB-A.
  3. Confirma el desbloqueo en pantalla.

Cómo volver a bloquear el bootloader

Para volver a bloquear el bootloader, haz lo siguiente:

  • Para dispositivos más nuevos (2015 y posteriores):
    fastboot flashing lock
  • Para dispositivos más antiguos (2014 y anteriores):
    fastboot oem lock

Cómo usar estados de bloqueo de escritura en la memoria flash

La API del sistema getFlashLockState() transmite el estado del bootloader y la PersistentDataBlockManager.getFlashLockState() muestra el estado de bloqueo del bootloader en dispositivos compatibles.

Valor que se muestra Condiciones
FLASH_LOCK_UNKNOWN Solo lo muestran 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.
  • Los dispositivos nuevos con Android 7.x o versiones posteriores deben estar en estado FLASH_LOCK_LOCKED o FLASH_LOCK_UNLOCKED.
  • Los dispositivos que se actualicen a Android 7.x o una versión posterior que no admitan la función de bloqueo/desbloqueo de escritura en la memoria flash deben mostrar el estado FLASH_LOCK_LOCKED.
FLASH_LOCK_LOCKED Lo muestra 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 muestra 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 Proyecto de código abierto de Android (AOSP) contiene una implementación de referencia que muestra 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

Cómo seleccionar la compilación de un dispositivo

Las compilaciones recomendadas del dispositivo se encuentran en el menú lunch, al que se accede cuando se ejecuta el comando lunch sin argumentos. Consulta Cómo elegir un destino para conocer los tipos de compilación disponibles y obtener más información sobre el comando lunch.

Puedes descargar imágenes de fábrica y objetos binarios para dispositivos Nexus y Pixel desde developers.google.com. Para ello, ve a Objetos binarios del dispositivo. Para obtener detalles y recursos adicionales, consulta Cómo obtener objetos binarios exclusivos.

Dispositivo Nombre interno Configuración de compilación
Pixel 6 Pro raven aosp_raven-userdebug
Pixel 6 oriole aosp_oriole-userdebug
Pixel 5 redfin aosp_redfin-userdebug
Pixel 4a 5G bramble aosp_bramble-userdebug
Pixel 4a sunfish aosp_sunfish-userdebug
Pixel 4 XL coral aosp_coral-userdebug
Pixel 4 flame aosp_flame-userdebug
Pixel 3a XL bonito aosp_bonito-userdebug
Pixel 3a sargo aosp_sargo-userdebug
Pixel 3 XL crosshatch aosp_crosshatch-userdebug
Pixel 3 blueline aosp_blueline-userdebug
Pixel 2 XL taimen aosp_taimen-userdebug
Pixel 2 walleye aosp_walleye-userdebug
Pixel XL marlin aosp_marlin-userdebug
Pixel sailfish aosp_sailfish-userdebug
HiKey hikey hikey-userdebug
Nexus 6P angler aosp_angler-userdebug
Nexus 5X bullhead aosp_bullhead-userdebug
Nexus 6 shamu aosp_shamu-userdebug
Nexus Player fugu aosp_fugu-userdebug
Nexus 9 volantis (flounder) aosp_flounder-userdebug
Nexus 5 (GSM/LTE) hammerhead aosp_hammerhead-userdebug
Nexus 7 (Wi-Fi) razor (flo) aosp_flo-userdebug
Nexus 7 (dispositivo móvil) razorg (deb) aosp_deb-userdebug
Nexus 10 mantaray (manta) full_manta-userdebug
Nexus 4 occam (mako) full_mako-userdebug
Nexus 7 (Wi-Fi) nakasi (grouper) full_grouper-userdebug
Nexus 7 (dispositivo móvil) nakasig (tilapia) full_tilapia-userdebug
Galaxy Nexus (GSM/HSPA+) yakju (maguro) full_maguro-userdebug
Galaxy Nexus (Verizon) mysid (toro) √aosp_toro-userdebug
Galaxy Nexus (Experimental) mysidspr (toroplus) aosp_toroplus-userdebug
Motorola Xoom (Wi-Fi de EE.UU.) wingray full_wingray-userdebug
Nexus S soju (crespo) full_crespo-userdebug
Nexus S 4G sojus (crespo4g) full_crespo4g-userdebug

Cómo escribir en la memoria flash de un dispositivo

Puedes escribir en la memoria flash un sistema Android completo con un solo comando; cuando lo haces, se verifica que el sistema que se está escribiendo en la memoria flash sea compatible con el bootloader y la radio que hay instalados, se escriben juntas las particiones de inicio, de recuperación y del sistema y, luego, se reinicia el sistema. La función de escritura en la memoria flash también borra todos los datos del usuario, al igual que fastboot oem unlock.

Para escribir en la memoria flash un dispositivo, sigue estos pasos:

  1. Para colocar el dispositivo en modo fastboot, mantén presionada la combinación de teclas adecuada en el inicio o usa el siguiente comando:
    adb reboot bootloader
  2. Una vez que el dispositivo esté en modo fastboot, ejecuta lo siguiente:
    fastboot flashall -w
    La opción -w borra la partición /data del dispositivo. Es útil la primera vez que escribes en la memoria flash un dispositivo específico, pero en los demás casos no es necesaria.

Cómo restablecer dispositivos al estado de fábrica

Las imágenes de fábrica de los dispositivos de Google están disponibles en Imágenes de fábrica para dispositivos Nexus y Pixel. Las imágenes de fábrica del dispositivo Motorola Xoom las distribuye directamente Motorola.