En esta página, se proporcionan detalles para 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 la sección sobre cómo compilar para 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 el modo fastboot [Fastboot mode]
Puedes escribir en la memoria flash de un dispositivo cuando se encuentra en el modo de bootloader fastboot
. Para entrar en el modo fastboot
cuando un dispositivo está realizando un inicio en frío, utiliza la combinación de teclas que aparece en Combinaciones de teclas de fastboot.
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 completas.
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 (lo que incluye 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 contra el restablecimiento de la configuración de fábrica y requieren un proceso de varios pasos para desbloquear el bootloader.
- Para habilitar el desbloqueo para OEM en el dispositivo, sigue estos pasos:
- En Configuración, presiona Acerca del dispositivo y, luego, Número de compilación siete veces.
- Cuando veas un mensaje que indica que ya eres desarrollador, presiona el botón Atrás.
- En Configuración, presiona Sistema, luego Opciones para desarrolladores y habilita Desbloqueo para OEM y Depuración por USB. (Si la opción Desbloqueo para OEM está inhabilitada, conéctate a Internet para que el dispositivo pueda acceder al menos una vez. Si permanece inhabilitada, es posible que el operador haya bloqueado la tarjeta SIM de tu dispositivo y que no se pueda desbloquear el bootloader).
- 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
- Para dispositivos más nuevos (2015 y posteriores):
- 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 API del sistema PersistentDataBlockManager.getFlashLockState()
muestra 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 devuelven 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 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
Cómo seleccionar una compilación de dispositivo
Las compilaciones recomendadas del dispositivo se encuentran en el menú lunch
, al que se accede cuando se ejecuta el comando lunch
sin argumentos.
Para obtener información adicional sobre el comando lunch
, consulta Cómo elegir un destino.
Para ver una lista de los destinos de compilación, consulta esta página sobre destinos de compilación.
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 7 Pro | cheetah | aosp_cheetah-userdebug |
Pixel 7 | panther | aosp_panther-userdebug |
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 de un dispositivo, sigue estos pasos:
- Descomprime el archivo de imagen en su propio directorio.
- Configura la variable de entorno
ANDROID_PRODUCT_OUT
para que apunte al mismo directorio que se usó en el paso 1. - Para colocar el dispositivo en modo
fastboot
, mantén presionada la combinación de teclas correspondiente en el inicio o usa el siguiente comando:adb reboot bootloader
. - 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 de un dispositivo específico, pero, en los demás casos, no es necesaria.
Configuraciones de la escritura en la memoria flash
Las instrucciones de fastboot se explican en un artefacto llamado fastboot-info.txt que se encuentra en $ANDROID_PRODUCT_OUT/*
. Este documento .txt contiene una lista de tareas para que ejecute fastboot y se puede regenerar a través de m fastboot_info
. Se puede modificar este archivo para introducir lógica de escritura personalizada en la memoria flash
Comandos compatibles:
- flash %s : Escribe una partición específica en la memoria flash. Los argumentos opcionales incluyen
--slot-other, {filename_path}, --apply-vbmeta
. - update-super : Actualiza la partición super.
- if-wipe : Ejecuta otra funcionalidad de manera condicional si se especificó el borrado.
- erase %s: Borra una partición específica (solo se puede usar en conjunto) con if-wipe ->, p. ej.,
if-wipe erase cache
.
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 de dispositivos Nexus y Pixel. Las imágenes de fábrica del dispositivo Motorola Xoom las distribuye directamente Motorola.
Cómo resolver errores de denegación de permisos
De forma predeterminada, en la mayoría de los sistemas Linux, los usuarios sin privilegios no pueden acceder a los puertos USB. Si ves un error de denegación de permisos, consulta las instrucciones de Android Studio de Cómo configurar un dispositivo para desarrollo.
Si ya se estaba ejecutando adb y no puedes conectarte al dispositivo, puedes detener adb con adb kill-server
. Este comando hace que se reinicie adb con la configuración nueva.