Como realizar atualização flash em dispositivos

Esta página fornece detalhes para executar criações em dispositivos específicos e complementa as informações apresentadas em Preparo para a criação.

Como criar fastboot e adb

Se você ainda não tem o fastboot e o adb, você pode criá-los com o sistema de criação normal. Use as instruções apresentadas em Preparo para a criação e substitua o comando make principal por:

make fastboot adb

Como inicializar no modo fastboot

Fastboot é um modo do carregador de inicialização em que é possível realizar a atualização flash de um dispositivo. Durante uma inicialização a frio de um dispositivo, use as seguintes combinações de teclas para inicializar no modo fastboot.

Você pode usar o comando adb reboot bootloader para reinicializar diretamente no carregador de inicialização ou usar uma das seguintes combinações de teclas durante uma inicialização a frio.

Dispositivo Codinome Teclas
Pixel 3a XL bonito Toque no botão diminuir volume, mantenha-o pressionado e depois faça o mesmo com o botão liga/desliga.
Pixel 3a sargo Toque no botão diminuir volume, mantenha-o pressionado e depois faça o mesmo com o botão liga/desliga.
Pixel 3 XL crosshatch Toque no botão diminuir volume, mantenha-o pressionado e depois faça o mesmo com o botão liga/desliga.
Pixel 3 blueline Toque no botão diminuir volume, mantenha-o pressionado e depois faça o mesmo com o botão liga/desliga.
Pixel 2 XL taimen Toque no botão diminuir volume, mantenha-o pressionado e depois faça o mesmo com o botão liga/desliga.
Pixel 2 walleye Toque no botão diminuir volume, mantenha-o pressionado e depois faça o mesmo com o botão liga/desliga.
Pixel XL marlin Toque no botão diminuir volume, mantenha-o pressionado e depois faça o mesmo com o botão liga/desliga.
Pixel sailfish Toque no botão diminuir volume, mantenha-o pressionado e depois faça o mesmo com o botão liga/desliga.
hikey hikey Ligue os pinos 1-2 e 5-6 do J15.
Nexus 6P angler Toque no botão diminuir volume, mantenha-o pressionado e depois faça o mesmo com o botão liga/desliga.
Nexus 5X bullhead Toque no botão diminuir volume, mantenha-o pressionado e depois faça o mesmo com o botão liga/desliga.
Nexus 6 shamu Toque no botão diminuir volume, mantenha-o pressionado e depois faça o mesmo com o botão liga/desliga.
Nexus Player fugu Toque no botão liga/desliga e mantenha-o pressionado.
Nexus 9 volantis Toque no botão diminuir volume, mantenha-o pressionado e depois faça o mesmo com o botão liga/desliga.
Nexus 5 hammerhead Toque nos botões aumentar volume e diminuir volume, mantenha-os pressionados e depois faça o mesmo com o botão liga/desliga.
Nexus 7 flo Toque no botão diminuir volume, mantenha-o pressionado e depois faça o mesmo com o botão liga/desliga.
Nexus 7 3G deb Toque no botão diminuir volume, mantenha-o pressionado e depois faça o mesmo com o botão liga/desliga.
Nexus 10 manta Toque nos botões aumentar volume e diminuir volume, mantenha-os pressionados e depois faça o mesmo com o botão liga/desliga.
Nexus 4 mako Toque no botão diminuir volume, mantenha-o pressionado e depois faça o mesmo com o botão liga/desliga.
Nexus 7 (2012) grouper Toque no botão diminuir volume, mantenha-o pressionado e depois faça o mesmo com o botão liga/desliga.
Nexus 7 3G (2012) tilapia Toque no botão diminuir volume, mantenha-o pressionado e depois faça o mesmo com o botão liga/desliga.
Nexus Q phantasm Ligue o dispositivo e cubra-o com uma mão depois que os LEDs acenderem e até que eles fiquem vermelhos.
Galaxy Nexus GSM maguro Toque nos botões aumentar volume e diminuir volume, mantenha-os pressionados e depois faça o mesmo com o botão liga/desliga.
Galaxy Nexus (Verizon) toro Toque nos botões aumentar volume e diminuir volume, mantenha-os pressionados e depois faça o mesmo com o botão liga/desliga.
Galaxy Nexus (Sprint) toroplus Toque nos botões aumentar volume e diminuir volume, mantenha-os pressionados e depois faça o mesmo com o botão liga/desliga.
Motorola Xoom wingray Toque no botão diminuir volume, mantenha-o pressionado e depois faça o mesmo com o botão liga/desliga.
Nexus S crespo Toque no botão aumentar volume, mantenha-o pressionado e depois faça o mesmo com o botão liga/desliga.
Nexus SG crespo4g Toque no botão aumentar volume, mantenha-o pressionado e depois faça o mesmo com o botão liga/desliga.

Como desbloquear o carregador de inicialização

Só será possível atualizar com flash um sistema personalizado se o carregador de inicialização permitir, e ele fica bloqueado por padrão. Você pode desbloqueá-lo, mas essa ação exclui os dados do usuário por motivos de privacidade. Após o desbloqueio, todos os dados no dispositivo são apagados, ou seja, tanto dados privados de apps quanto dados compartilhados acessíveis via USB (incluindo fotos e filmes). Antes de tentar desbloquear o carregador de inicialização, faça backup de todos os arquivos importantes no dispositivo.

Será necessário desbloquear o carregador de inicialização apenas uma vez, e você poderá bloqueá-lo novamente, se necessário.

Como desbloquear dispositivos recentes

Todos os dispositivos Nexus e Pixel lançados desde 2014 (a partir do Nexus 6 e o Nexus 9) trazem proteção contra a redefinição para configuração original e exigem um processo de várias etapas para desbloquear o carregador de inicialização.

  1. Para ativar o desbloqueio de OEM no dispositivo:
    1. Em Configurações, toque em Sobre o dispositivo e depois toque em Número da versão sete vezes.
    2. Quando a mensagem Você é um desenvolvedor for exibida, toque no botão Voltar.
    3. Toque em Opções do desenvolvedor e ative o Desbloqueio de OEM e a Depuração USB. Se o desbloqueio de OEM estiver desativado, conecte-se à Internet para que o dispositivo possa fazer check-in pelo menos uma vez. Se ele continuar desativado, o dispositivo pode conter bloqueio de chip da operadora, e o carregador de inicialização não poderá ser desbloqueado nesse caso.
  2. Reinicialize o carregador de inicialização e use fastboot para desbloqueá-lo.
    • Para dispositivos mais recentes (2015 e posteriores):
      fastboot flashing unlock
    • Para dispositivos mais antigos (2014 e anteriores):
      fastboot oem unlock
  3. Confirme o desbloqueio na tela.

Como bloquear o carregador de inicialização novamente

Para bloquear o carregador de inicialização novamente:

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

Como usar os estados de bloqueio da atualização 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 que passaram por upgrade para o Android 7.x ou versões posteriores e que anteriormente não eram compatíveis com as alterações do carregador de inicialização necessárias para receber o status de bloqueio da atualização flash, caso fossem compatíveis com a funcionalidade de bloqueio/desbloqueio de atualização flash.
  • Os novos dispositivos com o Android 7.x ou versões posteriores precisam ter um estado FLASH_LOCK_LOCKED ou FLASH_LOCK_UNLOCKED.
  • Os dispositivos que passaram por upgrade para o Android 7.x ou versões posteriores e que não são compatíveis com a funcionalidade de desbloqueio/bloqueio de atualização flash precisam retornar o estado FLASH_LOCK_LOCKED.
FLASH_LOCK_LOCKED Retornado por qualquer dispositivo não compatível com bloqueio/desbloqueio de atualização flash (ou seja, um dispositivo que esteja sempre bloqueado) ou qualquer dispositivo compatível com bloqueio/desbloqueio de atualização flash e que esteja no estado bloqueado.
FLASH_LOCK_UNLOCKED Retornado por qualquer dispositivo compatível com o bloqueio/desbloqueio de atualização flash e que esteja no estado desbloqueado.

Os fabricantes precisam testar os valores retornados pelos dispositivos com carregadores de inicialização 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 encontra-se nos seguintes diretórios:

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

Como selecionar uma versão do dispositivo

As versões recomendadas para os dispositivos estão disponíveis no menu lunch, acessadas ao executar o comando lunch sem argumentos. Consulte Escolher um destino para ver os tipos de versão disponíveis e mais informações sobre o comando lunch.

Faça o download de binários e imagens de fábrica para dispositivos Nexus em developers.google.com. Consulte Binários de dispositivos para ver os downloads. Para ver mais detalhes e outros recursos, consulte Como adquirir binários reservados.

Dispositivo Codinome Configuração da versão
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 (Celular) 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 (Celular) 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 dos EUA) wingray full_wingray-userdebug
Nexus S soju (crespo) full_crespo-userdebug
Nexus S 4G sojus (crespo4g) full_crespo4g-userdebug

Como realizar uma atualização flash em um dispositivo

É possível realizar uma atualização flash em todo o sistema Android com um único comando. Fazer isso verifica se o sistema que está sendo atualizado com flash é compatível com o carregador de inicialização e o rádio instalados, grava as partições de inicialização, recuperação e sistema juntas e reinicializa o sistema. Atualizar com flash também apaga todos os dados do usuário, da mesma forma que fastboot oem unlock.

Para realizar uma atualização flash em um dispositivo:

  1. Coloque o dispositivo no modo fastboot pressionando a combinação de teclas apropriada durante a inicialização ou usando o seguinte comando:
    adb reboot bootloader
  2. Depois que o dispositivo estiver no modo fastboot, execute:
    fastboot flashall -w
    A opção -w exclui permanentemente a partição /data no dispositivo. Isso é útil na primeira vez em que você realiza uma atualização flash em um dispositivo, mas é desnecessário nas demais ocasiões.

Como restaurar dispositivos para o estado de fábrica

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