Dispositivos piscantes

Esta página fornece detalhes para executar compilações em dispositivos específicos. Esses detalhes complementam as informações em Construindo o Android .

Construindo fastboot e adb

Se você ainda não possui fastboot e adb , poderá construí-los com o sistema de compilação normal. Use as instruções em Construindo Android e substitua o comando make principal por este:

make fastboot adb

Consulte Android Debug Bridge (ADB) para obter detalhes sobre o Android Debug Bridge (ADB).

Inicializando no modo fastboot

Você pode atualizar um dispositivo quando ele estiver no modo fastboot bootloader. Para entrar no modo fastboot quando um dispositivo está passando por uma inicialização a frio, use as combinações de teclas listadas em Combinações de teclas Fastboot.

Você também pode usar o comando adb reboot bootloader para reinicializar diretamente no bootloader. Consulte as instruções de flash para obter instruções completas.

Desbloqueando o bootloader

Você pode atualizar um sistema personalizado somente se o bootloader permitir. Observe, porém, que o bootloader está bloqueado por padrão. Você pode desbloquear o bootloader, mas isso excluirá os dados do usuário por motivos de privacidade. Após o desbloqueio, todos os dados do dispositivo são apagados, ou seja, tanto os dados privados do aplicativo quanto os dados compartilhados acessíveis por USB (incluindo fotos e filmes). Antes de tentar desbloquear o bootloader, faça backup de todos os arquivos importantes do dispositivo.

Você precisa desbloquear o bootloader apenas uma vez e pode bloqueá-lo novamente, se necessário.

Desbloqueando dispositivos recentes

Todos os dispositivos Nexus e Pixel lançados desde 2014 (começando com Nexus 6 e Nexus 9) têm proteção contra redefinição de fábrica e exigem um processo de várias etapas para desbloquear o bootloader.

  1. Para ativar o desbloqueio OEM no dispositivo:
    1. Em Configurações, toque em Sobre o telefone e toque em Número da versão sete vezes.
    2. Ao ver a mensagem Agora você é um desenvolvedor! , toque no botão Voltar .
    3. Em Configurações, toque em Sistema , em seguida, toque em Opções do desenvolvedor e ative o desbloqueio OEM e a depuração USB . (Se o desbloqueio OEM estiver desativado, conecte-se à Internet para que o dispositivo possa fazer check-in pelo menos uma vez. Se permanecer desativado, seu dispositivo pode estar bloqueado pelo SIM pela sua operadora e o bootloader não pode ser desbloqueado.)
  2. Reinicie no bootloader e use fastboot para desbloqueá-lo.
    • Para dispositivos mais recentes (2015 e superiores):
      fastboot flashing unlock
    • Para dispositivos mais antigos (2014 e anteriores):
      fastboot oem unlock
    Dica: se você estiver vendo a saída `adb devices` antes da reinicialização, mas o fastboot ou o script flash estão se comportando mal, pode haver problemas com o seu cabo USB. Experimente uma porta e/ou conectores de comutação diferentes. Se você estiver usando uma porta USB C em seu computador, experimente uma porta USB A.
  3. Confirme o desbloqueio na tela.

Bloqueando novamente o bootloader

Para bloquear novamente o bootloader:

  • Para dispositivos mais recentes (2015 e superiores):
    fastboot flashing lock
  • Para dispositivos mais antigos (2014 e anteriores):
    fastboot oem lock

Usando estados de bloqueio de flash

A API do sistema getFlashLockState() transmite o estado do carregador de inicialização e a API do sistema PersistentDataBlockManager.getFlashLockState() retorna o status de bloqueio do carregador de inicialização em dispositivos compatíveis.

Valor de retorno Condições
FLASH_LOCK_UNKNOWN Retornado apenas por dispositivos atualizados para o Android 7.x ou superior que não eram compatíveis anteriormente com as alterações do carregador de inicialização necessárias para obter o status de bloqueio de flash se eles suportassem o recurso de bloqueio/desbloqueio de flash.
  • Novos dispositivos com Android 7.x ou superior devem estar no estado FLASH_LOCK_LOCKED ou FLASH_LOCK_UNLOCKED .
  • Dispositivos atualizados para Android 7.x ou superior que não suportam o recurso de desbloqueio/bloqueio intermitente devem retornar um estado FLASH_LOCK_LOCKED .
FLASH_LOCK_LOCKED Retornado por qualquer dispositivo que não suporte bloqueio/desbloqueio intermitente (ou seja, o dispositivo está sempre bloqueado) ou qualquer dispositivo que suporte bloqueio/desbloqueio intermitente e esteja no estado bloqueado.
FLASH_LOCK_UNLOCKED Retornado por qualquer dispositivo que suporte bloqueio/desbloqueio intermitente e esteja no estado desbloqueado.

Os fabricantes devem testar os valores retornados pelos dispositivos com bootloaders bloqueados e desbloqueados. Por exemplo, o Android Open Source Project (AOSP) contém uma implementação de referência que retorna um valor baseado na propriedade de inicialização ro.boot.flash.locked . O código de exemplo está localizado nos seguintes diretórios:

  • frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java
  • frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java

Selecionando uma construção de dispositivo

As compilações de dispositivos recomendadas estão disponíveis no menu lunch , acessado ao executar o comando lunch sem argumentos. Para obter informações adicionais sobre o comando lunch , consulte Escolha um destino . Para obter uma lista de destinos de build, consulte Destinos de build .

Você pode baixar imagens de fábrica e binários para dispositivos Pixel e Nexus em developers.google.com . Consulte Binários de dispositivos para downloads. Para obter detalhes e recursos adicionais, consulte Obtendo binários proprietários .

Dispositivo Nome de código Configuração de compilação
Pixel 7 Pro guepardo aosp_cheetah-userdebug
Pixel 7 pantera aosp_panther-userdebug
Pixel 6 Pro Raven aosp_raven-userdebug
Pixel 6 papa-figo aosp_oriole-userdebug
Pixel 5 redfin aosp_redfin-userdebug
Pixel 4a 5G espinheiro aosp_bramble-userdebug
Pixel 4a peixe-lua aosp_sunfish-userdebug
Pixel 4XL coral aosp_coral-userdebug
Pixel 4 chama aosp_flame-userdebug
Pixel 3aXL bonito aosp_bonito-userdebug
Pixel 3a sargo aosp_sargo-userdebug
Pixel3XL hachurado aosp_crosshatch-userdebug
Pixel 3 linha Azul aosp_blueline-userdebug
Pixel 2XL taimen aosp_taimen-userdebug
Pixel 2 walleye aosp_walleye-userdebug
PixelXL marlim aosp_marlin-userdebug
Pixel veleiro aosp_sailfish-userdebug
Olá Chave caminhada hikey-userdebug
Nexus 6P pescador aosp_angler-userdebug
Nexus 5X cabeça-dura aosp_bullhead-userdebug
Nexus 6 shamu aosp_shamu-userdebug
Jogador Nexus fugu aosp_fugu-userdebug
Nexus 9 volantis (linguado) aosp_flounder-userdebug
Nexus 5 (GSM/LTE) tubarão-martelo aosp_hammerhead-userdebug
Nexus 7 (Wi-Fi) navalha (flo) aosp_flo-userdebug
Nexus 7 (móvel) Razorg (deb) aosp_deb-userdebug
Nexus 10 mantaray (manta) full_manta-userdebug
Nexus 4 occam (mako) full_mako-userdebug
Nexus 7 (Wi-Fi) nakasi (garoupa) full_grouper-userdebug
Nexus 7 (móvel) nakasig (tilápia) full_tilapia-userdebug
Galaxy Nexus (GSM/HSPA+) yakju (maguro) full_maguro-userdebug
Galáxia Nexus (Verizon) mysid (toro) √aosp_toro-userdebug
Galáxia Nexus (Experimental) mysidspr (toroplus) aosp_toroplus-userdebug
Motorola Xoom (Wi-Fi dos EUA) arraia full_wingray-userdebug
Nexus S soju (crespo) full_crespo-userdebug
Nexus S 4G sojus (crespo4g) full_crespo4g-userdebug

Piscando um dispositivo

Você pode atualizar um sistema Android inteiro com um único comando; fazer isso verifica se o sistema que está sendo atualizado é compatível com o bootloader e o rádio instalados, grava as partições de inicialização, recuperação e sistema juntas e, em seguida, reinicia o sistema. Piscar também apaga todos os dados do usuário, de forma semelhante ao fastboot oem unlock .

Para atualizar um dispositivo:

  1. Descompacte o arquivo de imagem em seu próprio diretório.
  2. Defina a variável de ambiente ANDROID_PRODUCT_OUT para apontar para o mesmo diretório usado na etapa 1.
  3. Coloque o dispositivo no modo fastboot mantendo pressionada a combinação de teclas apropriada na inicialização ou usando o seguinte comando:
    adb reboot bootloader
  4. Depois que o dispositivo estiver no modo fastboot, execute:
    fastboot flashall -w
    A opção -w limpa a partição /data do dispositivo; isso é útil na primeira vez que atualiza um dispositivo específico, mas é desnecessário.

Configurações intermitentes

As instruções do Fastboot são explicadas em um artefato chamado fastboot-info.txt que reside em $ANDROID_PRODUCT_OUT/* Este documento .txt lista de tarefas para o fastboot executar e pode ser regenerado via m fastboot_info . Lógica de flash personalizada pode ser introduzida modificando este arquivo

comandos suportados:

  1. flash %s : Flash em uma determinada partição. Argumentos opcionais incluem --slot-other, {filename_path}, --apply-vbmeta
  2. update-super : Atualiza a super partição
  3. if-wipe : Executa condicionalmente alguma outra funcionalidade se a limpeza for especificada
  4. erase %s : Apaga uma determinada partição (só pode ser usada em conjunto) com if-wipe -> por exemplo. if-wipe erase cache

Restaurando dispositivos ao estado de fábrica

As imagens de fábrica para dispositivos Google estão disponíveis em Imagens de fábrica para dispositivos Nexus e Pixel . As imagens de fábrica do Motorola Xoom são distribuídas diretamente pela Motorola.

Resolver erros de permissão negada

Por padrão, na maioria dos sistemas Linux, usuários sem privilégios não podem acessar portas USB. Se você vir um erro de permissão negada, consulte as instruções do Android Studio para Configurar um dispositivo para desenvolvimento .

Se o ADB já estava em execução e não consegue se conectar ao dispositivo, você pode parar o ADB com adb kill-server . Este comando faz com que o ADB seja reiniciado com a nova configuração.