Dispositivos intermitentes

Esta página proporciona detalles para ejecutar compilaciones en dispositivos específicos. Estos detalles complementan la información en Creación de Android .

Construyendo fastboot y adb

Si aún no tienes fastboot y adb , puedes compilarlos con el sistema de compilación normal. Utilice las instrucciones en Construyendo Android y reemplace el comando make principal con este:

make fastboot adb

Consulte Android Debug Bridge (ADB) para obtener detalles sobre Android Debug Bridge (ADB).

Arrancando en modo fastboot

Puede actualizar un dispositivo cuando está en el modo de cargador de arranque fastboot . Para ingresar al modo fastboot cuando un dispositivo está realizando un arranque en frío, use las combinaciones de teclas que se enumeran en Combinaciones de teclas Fastboot.

También puedes usar el comando adb reboot bootloader para reiniciar directamente en el gestor de arranque. Consulte las instrucciones de flasheo para obtener instrucciones completas.

Desbloquear el gestor de arranque

Puede actualizar un sistema personalizado solo si el gestor de arranque lo permite. Sin embargo, tenga en cuenta que el gestor de arranque está bloqueado de forma predeterminada. Puede desbloquear el gestor de arranque, pero al hacerlo se eliminan los datos del usuario por razones de privacidad. Después del desbloqueo, se borran todos los datos del dispositivo, es decir, tanto los datos de aplicaciones privadas como los datos compartidos accesibles a través de USB (incluidas fotos y películas). Antes de intentar desbloquear el gestor de arranque, haga una copia de seguridad de los archivos importantes del dispositivo.

Debe desbloquear el gestor de arranque solo una vez y puede volver a bloquearlo si es necesario.

Desbloqueo de dispositivos recientes

Todos los dispositivos Nexus y Pixel lanzados desde 2014 (comenzando con Nexus 6 y Nexus 9) tienen protección de restablecimiento de fábrica y requieren un proceso de varios pasos para desbloquear el gestor de arranque.

  1. Para habilitar el desbloqueo OEM en el dispositivo:
    1. En Configuración, toque Acerca del teléfono y luego toque Número de compilación siete veces.
    2. Cuando veas el mensaje ¡Ahora eres desarrollador! , toque el botón Atrás .
    3. En Configuración, toque Sistema , luego toque Opciones de desarrollador y habilite el desbloqueo OEM y la depuración de USB . (Si el desbloqueo OEM está deshabilitado, conéctese a Internet para que el dispositivo pueda registrarse al menos una vez. Si permanece deshabilitado, es posible que su operador haya bloqueado la SIM de su dispositivo y que el gestor de arranque no se pueda desbloquear).
  2. Reinicie en el gestor de arranque y use fastboot para desbloquearlo.
    • Para dispositivos más nuevos (2015 y superiores):
      fastboot flashing unlock
    • Para dispositivos más antiguos (2014 y anteriores):
      fastboot oem unlock
    Consejo: si ve la salida `adb devices` antes de reiniciar pero el fastboot o el script flash no funcionan correctamente, puede haber problemas con su cable USB. Pruebe con un puerto diferente y/o conectores de conmutación. Si está utilizando un puerto USB C en su computadora, pruebe con un puerto USB A.
  3. Confirma el desbloqueo en pantalla.

Volver a bloquear el gestor de arranque

Para volver a bloquear el gestor de arranque:

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

Usar estados de bloqueo de flash

La API del sistema getFlashLockState() 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.
  • Los dispositivos nuevos que ejecutan Android 7.x o superior deben estar en estado FLASH_LOCK_LOCKED o FLASH_LOCK_UNLOCKED .
  • Los dispositivos que se actualizan a Android 7.x o superior y que no admiten la capacidad de desbloqueo/bloqueo intermitente deben devolver un estado FLASH_LOCK_LOCKED .
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, el Proyecto de código abierto de Android (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

Seleccionar una compilación de dispositivo

Las compilaciones de dispositivos recomendadas están disponibles en el menú lunch , al que se accede cuando se ejecuta el comando del lunch sin argumentos. Para obtener información adicional sobre el comando lunch , consulte Elegir un objetivo . Para obtener una lista de objetivos de compilación, consulte Objetivos de compilación .

Puedes descargar imágenes de fábrica y archivos binarios para dispositivos Pixel y Nexus desdedevelopers.google.com . Consulte Archivos binarios del dispositivo para descargas. Para obtener detalles y recursos adicionales, consulte Obtención de archivos binarios propietarios .

Dispositivo Nombre clave Configuración de compilación
Píxel 7 Pro guepardo aosp_cheetah-userdebug
Píxel 7 pantera aosp_panther-userdebug
Píxel 6 Pro cuervo aosp_raven-userdebug
Píxel 6 oriol aosp_oriole-userdebug
Píxel 5 aleta roja aosp_redfin-userdebug
Píxel 4a 5G zarza aosp_bramble-userdebug
Píxel 4a pez luna aosp_sunfish-userdebug
Píxel 4XL coral aosp_coral-userdebug
Píxel 4 fuego aosp_flame-userdebug
Píxel 3a XL bonito aosp_bonito-userdebug
Píxel 3a sargo aosp_sargo-userdebug
Píxel 3XL rayado aosp_crosshatch-userdebug
Píxel 3 línea azul aosp_blueline-userdebug
Píxel 2XL taimen aosp_taimen-userdebug
Píxel 2 lucioperca aosp_walleye-userdebug
Píxel XL aguja aosp_marlin-userdebug
Píxel pez vela aosp_sailfish-userdebug
Hola clave caminante hikey-userdebug
Nexo 6P pescador de caña aosp_angler-userdebug
Nexo 5X siluro aosp_bullhead-userdebug
Nexo 6 shamu aosp_shamu-userdebug
Jugador Nexus fuga aosp_fugu-userdebug
Nexo 9 volantis (platija) aosp_flounder-userdebug
Nexo 5 (GSM/LTE) tiburón martillo aosp_hammerhead-userdebug
Nexus 7 (Wi-Fi) navaja de afeitar (flo) aosp_flo-userdebug
Nexus 7 (móvil) navaja (deb) aosp_deb-userdebug
Nexo 10 mantarraya (manta) full_manta-userdebug
Nexo 4 occam (mako) full_mako-userdebug
Nexus 7 (Wi-Fi) nakasi (mero) full_grouper-userdebug
Nexus 7 (móvil) nakasig (tilapia) full_tilapia-userdebug
Galaxy Nexus (GSM/HSPA+) yakju (maguro) full_maguro-userdebug
Galaxy Nexus (Verizon) mísid (toro) √aosp_toro-userdebug
Galaxy Nexus (experimental) mysidspr (toroplus) aosp_toroplus-userdebug
Motorola Xoom (Wi-Fi de EE. UU.) raya alada full_wingray-userdebug
Nexo S soju (crespo) full_crespo-userdebug
Nexus S 4G sojus (crespo4g) full_crespo4g-userdebug

Flashear un dispositivo

Puede actualizar un sistema Android completo con un solo comando; Al hacerlo, se verifica que el sistema que se está actualizando sea compatible con el cargador de arranque y la radio instalados, escribe las particiones de arranque, recuperación y sistema juntas y luego reinicia el sistema. El flasheo también borra todos los datos del usuario, de manera similar al fastboot oem unlock .

Para flashear un dispositivo:

  1. Descomprima el archivo de imagen en su propio directorio.
  2. Configure la variable de entorno ANDROID_PRODUCT_OUT para que apunte al mismo directorio utilizado en el paso 1.
  3. Coloque el dispositivo en modo fastboot manteniendo presionada la combinación de teclas adecuada en el arranque o usando el siguiente comando:
    adb reboot bootloader
  4. Después de que el dispositivo esté en modo fastboot, ejecute:
    fastboot flashall -w
    La opción -w borra la partición /data del dispositivo; Esto es útil para la primera vez que actualiza un dispositivo en particular, pero por lo demás es innecesario.

Configuraciones intermitentes

Las instrucciones de Fastboot se detallan en un artefacto llamado fastboot-info.txt que se encuentra en $ANDROID_PRODUCT_OUT/* Este documento .txt enumera las tareas que debe ejecutar fastboot y se puede regenerar a través de m fastboot_info . Se puede introducir una lógica de flasheo personalizada modificando este archivo

comandos admitidos:

  1. flash %s : flashea una partición determinada. Los argumentos opcionales incluyen --slot-other, {filename_path}, --apply-vbmeta
  2. update-super : actualiza la superpartición
  3. if-wipe : ejecuta condicionalmente alguna otra funcionalidad si se especifica borrar
  4. borrar %s : borra una partición determinada (solo se puede usar en conjunto) con if-wipe -> por ejemplo. if-wipe erase cache

Restaurar dispositivos al estado de fábrica

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

Resolver errores de permiso denegado

De forma predeterminada, en la mayoría de los sistemas Linux, los usuarios sin privilegios no pueden acceder a los puertos USB. Si ve un error de permiso denegado, consulte las instrucciones de Android Studio para configurar un dispositivo para desarrollo .

Si ADB ya se estaba ejecutando y no puede conectarse al dispositivo, puede detener ADB con adb kill-server . Este comando hace que ADB se reinicie con la nueva configuración.