O Android dinâmico permitirá que os desenvolvedores testem o AOSP em qualquer dispositivo Android Q

Um novo projeto chamado Dynamic Android permitirá que os desenvolvedores testem GSIs AOSP Android Q em qualquer dispositivo executando Android Q ou posterior.

Graças a Projeto Agudos, os fabricantes de smartphones entregaram atualizações de software Android Pie mais rápido do que conseguiram para a atualização do Android Oreo, pelo menos para os principais smartphones. No entanto, o Google não quer que apenas os OEMs colham os benefícios do Projeto Treble. A empresa já manifestou interesse ao lançar uma imagem genérica do sistema (GSI) do Android Q para desenvolvedores, para que eles não precisem depender de emuladores, use um serviço na nuvemou aguarde uma atualização em seu próprio dispositivo para testar um aplicativo em relação ao nível de API mais recente. Em teoria, o lançamento de um GSI deveria permitir que qualquer desenvolvedor com um dispositivo compatível com o Project Treble (originalmente Android 8.0 Oreo e superior, mas agora considerados apenas dispositivos lançados com Android 9 Pie) para testar o Android mais recente versão. Tudo o que o desenvolvedor precisa fazer é atualizar uma imagem do sistema sobre a instalação do software existente – sem necessidade de recuperação personalizada, inicialização ou imagem do fornecedor.

No entanto, existem vários problemas com o atual processo de instalação do GSI. Primeiro, você precisa de um bootloader desbloqueado, que não é possível em dispositivos Huawei ou Honor (sem pagar uma taxa), dispositivos Nokia da HMD Global (excluindo o Nokia 8) ou dispositivos de marca de operadora dos EUA. A seguir, o processo será difícil para quem não está familiarizado com o flash de imagens via fastboot. Por último, atualizar um GSI agora exigirá que você limpe completamente o armazenamento interno, o que significa que você provavelmente desejará um dispositivo sobressalente para testar. No momento, atualizar um GSI é apenas algo que os OEMs usam para testar a compatibilidade do Project Treble em seus dispositivos e, além disso, é atraente apenas para os obstinados. entusiastas de ROM personalizada. O novo projeto “Dynamic Android” do Google pode mudar isso.

Android dinâmico: teste facilmente GSIs AOSP em qualquer dispositivo Android Q

Nos últimos meses, o Google trabalhou em uma maneira de inicializar um GSI com segurança, sem precisar desbloquear o bootloader. Resumindo, o Google está desenvolvendo um aplicativo que possui permissões especiais que permitem baixar um GSI, reservar espaço de armazenamento para ele e marcar o GSI como inicializável. Existem vários componentes neste projeto, então vamos discuti-los um por um.

Android dinâmico e Android On Tap

Dois novos serviços estão sendo adicionados ao Android Q: os serviços Dynamic Android e Android On Tap. Enquanto o Dynamic Android cuida da instalação de um GSI, o Android On Tap informa os aplicativos do sistema com retornos de chamada e intenções de transmissão. Por exemplo, o Android On Tap alerta o KeyguardManager para solicitar ao usuário que confirme uma solicitação de instalação se o dispositivo estiver protegido por PIN, senha ou padrão. AOT também alerta o usuário quando ele é inicializado em um GSI.

De acordo com a descrição de “DynamicAndroidManager”, o serviço “oferece um mecanismo para usar um novo Android imagem temporariamente." Após a instalação, o dispositivo pode reinicializar na imagem recém-instalada com um arquivo recém-criado /data. A reinicialização no GSI retorna o usuário à imagem original do sistema, mas a imagem recém-instalada e seus dados são simplesmente desabilitados e não excluídos. Se o usuário optar por fazê-lo, o GSI e seus dados poderão ser totalmente removidos.

Fontes: [1], [2], [3], [4]

GSID

O daemon GSI aloca espaço na partição /data para armazenar a imagem GSI e seus dados e para tornar a imagem inicializável. Os metadados do GSI são armazenados em /metadata, enquanto o próprio GSI e seus dados são armazenados em /data/gsi. Por padrão, o GSID aloca 8 GB de dados do usuário para o GSI recém-instalado. Em geral, o GSID procura pelo menos 40% de espaço livre antes de iniciar uma instalação. Por último, o daemon impede que o usuário instale uma GSI dentro de uma GSI, por razões óbvias.

Fontes: [1], [2], [3], [4]

Segurança

Android Verified Boot (AVB) está habilitado para a imagem do sistema EXT4 recém-instalada (system_gsi montada em /system). O Google também implementou políticas SELinux para os novos serviços. Por último, a instalação de um GSI requer que um aplicativo tenha a nova permissão MANAGE_DYNAMIC_ANDROID. Esta é uma permissão em nível de assinatura, o que significa que o aplicativo deve ser assinado pelo OEM.

Fontes: [1], [2]

Comandos ADB e Fastboot

Os GSIs também poderão ser instalados por meio de novos comandos ADB. O novo comando shell ADB gsi_tool permitirá aos usuários desabilitar, reativar, instalar e preservar userdata, instalar e criar userdata, instalar e limpar userdata ou verificar o status do instalação.

gsi_tool - command-line tool for installing GSI images.

Usage:
gsi_tool <disable|install|wipe|status> [options]

disable Disable the currently installed GSI.
enable Enable a previously disabled GSI.
installInstall a new GSI. Specify the image sizewith
--gsi-size and the desired userdata size with
--userdata-size (the latter defaults to 8GiB)
--wipe (remove old gsi userdata first)
wipe Completely remove a GSI and its associated data
status Showstatus

Dois novos comandos fastboot serão adicionados para gerenciar o GSI, embora a instalação do fastboot não seja suportada, pois o fastboot não pode montar dados do usuário.

fastboot gsi wipe
fastboot gsi disable

Fontes: [1], [2]

Quem isso beneficiará?

Quero dizer que os desenvolvedores de aplicativos poderão aproveitar as vantagens do Dynamic Android e do Android On Tap, mas não tenho certeza. Embora o Google tenha manifestado interesse exatamente nisso, não há garantia de que esse recurso estará disponível em todas as versões do Android Q de OEMs que não são do Google. Para aproveitar isso no dispositivo, o software precisa de um aplicativo seletor de GSI assinado pelo mesmo certificado do ROM. Também não tenho certeza de que a instalação de GSIs do ADB será possível sem a raiz do ADB devido às políticas do SELinux.Atualizar: Um novo comprometer-se confirma que a raiz ADB será necessária para usar GSI_tool. Se o objetivo não for que os desenvolvedores de aplicativos testem seus aplicativos em uma versão limpa do Android, provavelmente será apenas beneficiar engenheiros de OEMs que desejam testar o Compatibility Test Suite (CTS) e o Vendor Test Suite (VTS) em seus dispositivos.

Agradecimentos especiais ao desenvolvedor reconhecido pelo XDA luca020400 por sua ajuda neste artigo.