O Google lançou GSIs do segundo Android Q beta. Essas imagens do sistema podem ser instaladas em dispositivos compatíveis com o Project Treble para teste de aplicativos. Veja como.
À medida que nos aproximamos cada vez mais do lançamento final do Android Q, o tempo para os desenvolvedores atualizarem seus aplicativos diminui. Embora o Android 9 Pie (API de nível 28) ainda não tenha alcançado a grande maioria dos dispositivos, os requisitos de nível de API do Google Play, que você deve já esteja bem ciente, forçará você a atingir o nível 29 da API em 2020. Se você ainda não atualizou seu aplicativo para o Android 9 Pie, então você tem até agosto se planeja lançar um novo aplicativo ou até novembro se planeja atualizar um aplicativo existente. Para aqueles que desejam começar a desenvolver para a próxima versão do Android, já podem testar seu aplicativo no Emulador Android Studio ou em hardware físico se você possui qualquer smartphone Google Pixel. Este ano, porém, o Google está oferecendo aos desenvolvedores outra maneira de testar seus aplicativos na versão mais recente do Android: exibindo um
GSI beta do Android Q em um dispositivo compatível com Project Treble.Projeto Agudos é uma iniciativa importante para melhorar a velocidade com que os fabricantes de smartphones podem distribuir atualizações de software e segurança. Resumindo, Treble exige que os fabricantes de dispositivos separem o software que faz o hardware funcionar do software por trás do sistema operacional. Isso permite que os fabricantes de dispositivos inicializem novas versões do Android em seus dispositivos existentes para que possam iniciar a árdua tarefa de portar sua base de código existente para a nova versão do código-fonte do Android. Complementarmente ao CTS está o VTS, ou Vendor Test Suite, um conjunto de testes que os fabricantes de dispositivos usam para verificar se seus dispositivos atendem aos requisitos do Project Treble. Uma das verificações mais importantes a serem testadas pelos fabricantes de dispositivos é a capacidade de um smartphone compatível com Treble inicializar o que é chamado de GSI, ou imagem genérica do sistema. Um GSI é uma versão não modificada do AOSP destinada aos fabricantes de dispositivos para ver se implementaram o Treble corretamente. Além dos OEMs, porém, o Google acredita que os GSIs podem ser usados por desenvolvedores para testes de compatibilidade de aplicativos Android.
Por exemplo, se você não possui um Google Pixel, a única maneira de testar o comportamento do seu aplicativo nas condições que melhor correspondem às do Google a documentação é para você adquirir seu próprio dispositivo Pixel, inicializar o emulador do Android Studio ou analisar um teste na nuvem serviço. Cada um deles tem seus prós e contras, mas se você já possui um dispositivo compatível com Treble e não quer gastar nenhum dinheiro ou lidar com as limitações de um emulador, por que não colocar um GSI nele? Se seu aplicativo funcionar em um GSI, ele deverá funcionar em quase todos os dispositivos que executam essa versão do Android.
Esse é o processo de pensamento por trás da decisão do Google de lançar Android Q GSIs, ou pelo menos é o que pensamos. O código-fonte do Android Q não estará disponível até agosto, então os binários GSI oficiais do Google são a única maneira de testar o Android Q em hardware real, não Pixel. Veja como você pode começar.
Requisitos
Antes mesmo de considerar a instalação do Android Q beta, você deve verificar se o seu dispositivo é compatível com o Project Treble e pode aceitar imagens do sistema flash do bootloader.
Requisitos:
- Seu dispositivo DEVE tem um bootloader desbloqueável. Smartphones Snapdragon Samsung vendidos nos EUA, dispositivos da marca Huawei, dispositivos da marca Honor e dispositivos da marca Nokia da HMD Global (exceto o Nokia 8) não se qualifica aqui.
- Você tem os binários ADB e Fastboot mais recentes instalados em seu PC, que você pode encontrar aqui. Versões desatualizadas do Fastboot podem resultar em flashes inadequados.
- Seu dispositivo DEVE encontrar um dos seguintes critérios para ser considerado compatível com o Project Treble:
- O dispositivo LANÇADO com Android 9 Pie. Se for esse o caso, você pode pular a confirmação da compatibilidade do Treble após chegar ao final desta seção.
- O dispositivo foi lançado com Android 8.0 Oreo ou Android 8.1 Oreo, mas foi atualizado para Android 9 Pie com isolamento VNDK e sistema como root. Detalhamos como descobrir isso na seção abaixo.
Antes de prosseguirmos, vale a pena mencionar que atualizar um GSI exigirá que você execute uma limpeza completa da partição userdata. Isso significa que você perderá todas as fotos, vídeos, músicas, documentos ou qualquer outra coisa no armazenamento interno e externo (/dados/mídia) do dispositivo. Portanto, é altamente recomendável fazer um backup fora do dispositivo antes de prosseguir.
Em seguida, lembre-se de que esses GSIs não passaram no CTS; portanto, se seu aplicativo usar a API SafetyNet Attestation para verificar a integridade do dispositivo com uma correspondência de perfil CTS, isso não funcionará. Além disso, essas compilações não são destinadas ao uso diário, portanto, não se surpreenda se uma ou mais funções básicas de hardware não funcionarem além dos bugs já documentados no Android Q. O Google já listou alguns problemas conhecidos com o GSI, que você pode encontrar aqui. Quaisquer novos bugs que você encontrar devem ser arquivados aqui.
Confirmando compatibilidade com Treble
Execute o seguinte comando:
adbshellgetpropro.treble.enabled
Se a resposta for falso, então seu dispositivo não é compatível com o Project Treble e você não deve continuar. Se a resposta for verdadeiro, então você está livre para seguir em frente.
Em seguida, verifique o suporte entre versões executando estes comandos:
adb shell
cat /system/etc/ld.config.28.txt | grep -A 20"\[vendor\]"
Na saída, procure a seção [fornecedor]e, nessa seção, procure namespace.default.isolated. Se o valor desse atributo for verdadeiro, seu dispositivo deverá suportar a inicialização do Android Q GSI sobre uma imagem do fornecedor do Android 9 Pie. Se o valor for falso, seu dispositivo só poderá usar o GSI para a mesma versão do sistema operacional no dispositivo.
Por último, você precisa confirmar se o seu dispositivo é sistema como root, no qual o ramdisk é mesclado com a imagem do sistema. O sistema como root não é obrigatório para dispositivos atualizados para o Android 9 Pie, mas é necessário para oferecer suporte a um OTA somente do sistema, como no caso de atualização de uma nova versão do sistema operacional via GSI. Execute os seguintes comandos e verifique se a saída corresponde a "system-as-root":
adb shell
cat /proc/mounts | grep -q /dev/root && echo"system-as-root" || echo"non-system-as-root"
Agora que você sabe que seu dispositivo é compatível com Treble, você precisa descobrir qual versão do binário GSI baixar, já que existem imagens diferentes para arquiteturas diferentes. Para ver qual arquitetura seu dispositivo possui, execute o seguinte comando:
adbshellgetpropro.product.cpu.abi
Anote o resultado aqui, pois você precisará dele ao baixar o GSI.
Baixando o GSI
Links de download para versões oficiais do Android Q beta GSI estão disponíveis no Google aqui. Você deve baixar a versão apropriada com base na arquitetura do seu dispositivo, que você descobriu na etapa anterior. O download será bastante grande se você baixar a versão com GMS ou Google Mobile Services, algo que recomendamos fortemente para que você possa testar seu aplicativo em uma versão com Google Play Services.
Assim que o download do arquivo for concluído, você pode descompactá-lo. Contidos estão dois arquivos, sistema.img, e vbmeta.img.
Piscando o GSI
- Reinicie o bootloader do seu dispositivo usando uma combinação de botões ou emitindo o comando:
adb reboot bootloader
- Em seguida, precisamos desativar o Android Verified Boot (AVB). Você pode fazer isso digitando o seguinte comando:
fastbootflashvbmetavbmeta.img
- A seguir, vamos limpar a partição do sistema:
fastboot erase system
- Podemos finalmente atualizar o Android Q GSI com:
fastbootflashsystemsystem.img
- Feito isso, limpe a partição userdata com:
fastboot -w
- Reinicie o seu dispositivo usando o botão liga / desliga ou digitando:
fastboot reboot
Esperançosamente, ele deverá inicializar após alguns minutos. Essas etapas foram validadas em um Pixel 3 XL, mas devem funcionar universalmente. Podemos verificar que o Android Q beta 2 GSI não inicializa no OnePlus 6T, mas inicializa no Xiaomi Mi 9. Pode funcionar no Sony Xperia XZ3, mas fomos informados de que não inicializa no Moto G7. Sua milhagem pode variar, pois os requisitos do Google confirmam apenas a compatibilidade do GSI com a mesma versão do sistema operacional.