Esta página explica várias tarefas que podem ser necessárias se você estiver configurando um build para seu próprio dispositivo.
Criar uma configuração de atualização personalizada
As instruções do fastboot são definidas em um artefato chamado fastboot-info.txt
. Se
você criar vários destinos, terá vários arquivos fastboot-info.txt
no
$OUT_DIR. E $ANDROID_PRODUCT_OUT
apontará para o
destino mais atual que você criar. Esta página contém uma lista de tarefas para o fastboot executar
e pode ser gerada novamente usando m fastboot_info
. Uma lógica de atualização personalizada pode ser introduzida
ao modificar o arquivo fastboot-info.txt
.
O arquivo fastboot-info.txt
oferece suporte a estes comandos:
flash %s
: atualiza uma partição específica. Argumentos opcionais incluem--slot-other,
filename_path, and
--apply-vbmeta`.update-super
: atualiza a super partição.if-wipe
: executa condicionalmente algum outro componente se uma exclusão permanente for especificada.erase %s
: apaga uma partição específica e só pode ser usado em conjunto comif-wipe
. Por exemplo,if-wipe erase cache
.
Determinar o estado de bloqueio de atualização
Se você estiver criando um daemon de flashboot personalizado (flashbootd) para um dispositivo, é preciso
ter acesso ao carregador de inicialização e ao estado de bloqueio dele. O
getFlashLockState()
@SystemApi
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 mais recentes e que
não suportavam anteriormente as mudanças do carregador de inicialização necessárias para receber o status de bloqueio de atualização,
caso oferecessem suporte à capability de bloqueio/desbloqueio dessa atualização.
|
FLASH_LOCK_LOCKED |
Retornado por qualquer dispositivo que não oferece suporte ao bloqueio/desbloqueio de atualização (ou seja, um dispositivo que esteja sempre bloqueado) ou qualquer dispositivo com suporte ao bloqueio/desbloqueio de atualização e que esteja no estado bloqueado. |
FLASH_LOCK_UNLOCKED |
Retornado por qualquer dispositivo com suporte ao 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 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 pode ser encontrado nos
diretórios abaixo:
frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java
frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java