As DSUs do Android 10 podem permitir que você experimente atualizações OTA sem se comprometer

Sempre quis tentar uma atualização sem realmente atualizar? O DSU no Android 10 foi projetado para isso, mas atualmente é limitado. Isso pode mudar em breve.

O sistema operacional Android e a fragmentação do nível de segurança são um grande problema que o Google está investindo muito esforço de engenharia para combater. Nos últimos dois anos, o Google anunciou duas iniciativas importantes destinadas a acelerar o lançamento de atualizações: Projeto Agudos e Linha principal do projeto. Este último só foi anunciado em maio deste ano, durante Google I/O 2019, e só é compatível com dispositivos lançados com Android 10. O primeiro, no entanto, existe desde Google I/O 2017, então vimos o impacto que isso teve nas atualizações do Android com Android 9 Torta e Android 10.

Além de reduzir a fragmentação, o Google também deseja que o Project Treble seja útil para desenvolvedores de aplicativos. É por isso que eles revelaram Atualizações dinâmicas do sistema (DSU) no Android 10 para permitir que os desenvolvedores experimentem uma versão básica de uma nova atualização do sistema operacional sem desbloquear o bootloader ou limpar dados. Vendo o potencial do DSU, o Google não para por aí – eles estão expandindo sua utilidade, possibilitando que atualizações OTA de OEMs sejam instaladas da mesma forma que os GSIs são instalados.

Isso é muito jargão, mas imagine isso acontecendo no futuro: um OEM lança um telefone com Android 10 e inicia um programa beta para Android 11. Você está interessado em experimentar esta versão beta para ver os novos recursos, mas não quer arriscar a estabilidade do seu driver diário atual. Em vez de atualizar a atualização beta e esperar que esteja perfeitamente estável, por que não instalá-la temporariamente por meio do fluxo DSU? Se você não gostar, basta reiniciar e sua configuração voltará ao normal. Se gostar, você pode “se comprometer” com a atualização.

Não sei sobre você, mas esta seria uma mudança bem-vinda no Android que tornaria os testes beta mais agradáveis. Você não precisaria mais se comprometer com uma atualização beta apenas para ver como é para você. Tenho certeza de que muitos de vocês estão ansiosos para ver um Android 10 beta para o seu dispositivo, mas talvez não se sintam confortáveis ​​em instalá-lo imediatamente. Com as alterações feitas no DSU, isso não seria mais uma preocupação.

Atualizações dinâmicas do sistema no Android 10+ – O que está mudando

Luca Stefani, amigo do Portal XDA e Desenvolvedor reconhecido, nos informou sobre um novo commit mesclado no AOSP intitulado "montar várias partições DSU quando presentes". O commit faz alterações na tabela do sistema de arquivos (fstab) e no processo init para fazer com que partições DSU diferentes do sistema, por enquanto incluindo produto e fornecedor, possam ser montadas durante a inicialização processo.

Novo código no fstab para adicionar suporte ao carregamento de imagens product_gsi e vendor_gsi no lugar das partições existentes de produto e fornecedor, respectivamente. Um comentário observa que os DSUs podem ser assinados pelo OEM, mas, por outro lado, oferecem suporte aos GSIs oficiais do Google.

Atualmente, o DSU foi projetado para permitir apenas inicializar uma imagem genérica do sistema (GSI), uma imagem básica do sistema compilada do AOSP, para que você possa testar as novas APIs e outras alterações na atualização mais recente do Android. Porém, com essa mudança, a DSU também aceitará imagens de produtos e fornecedores. O primeiro contém aplicativos, bibliotecas e outros arquivos específicos do dispositivo, enquanto o último contém binários específicos do dispositivo. O Projeto Treble fez com que você pudesse inicializar um dispositivo usando uma imagem do sistema sem arquivos específicos do dispositivo, portanto, agora permitir o carregamento do produto e do fornecedor não parece fazer muito sentido.

No entanto, um engenheiro do Google diz explicitamente que essa mudança é para "permitir que OEMs instalem pacotes OTA em /data e usem [o] fluxo 'DSU' para montar product.img, system.img, [e] vendor.img de /data." Isso significa que, em vez de substituir a instalação atual pelo novo pacote OTA, o OTA pode ser carregado temporariamente através do DSU. Depois de testar a atualização OTA, “o usuário pode decidir se deseja ‘confirmar’ essas imagens para /super ou não”. Esta última parte sobre "confirmar" as mudanças ainda está em andamento, como um engenheiro do Google observa que "atualmente não temos um plano para fazer partições DSU permanente no contexto do DSU." Ele então afirma como isso poderia ser implementado, mas que esta implementação está "além do escopo" deste patch atual.

Existem alguns termos e conceitos que precisamos explicar aqui porque o Google gosta de alterar o esquema de partição em cada versão do Android. Para começar, recomendo a leitura do meu artigo anterior sobre Atualizações dinâmicas do sistema para uma visão ampla de como funciona, mas em resumo, aproveita o conceito de "partição dinâmica", uma partição real de armazenamento (chamada a partição "super") que é dividida em partições lógicas redimensionáveis ​​(incluindo sistema, fornecedor, produto e system_ext), para instalar temporariamente um GSI. Ao instalar um GSI, o DSU cria espaço para o novo sistema e imagens de dados do usuário redimensionando a partição de dados do usuário existente. Os blocos de construção para suporte DSU (partições dinâmicas, um ramdisk e pontos de verificação para backups de dados) são requisitos de lançamento para Android 10, portanto, qualquer dispositivo lançado com a nova versão do sistema operacional Android deverá oferecer suporte a DSU. DSU não é a solução de inicialização dupla para ROMs personalizados que alguns de vocês estão procurando, porque apenas imagens que correspondem às chaves de inicialização verificada do Android (AVB) podem ser instaladas. No entanto, com esta nova mudança, poderá ser muito mais útil no futuro.

Além das partições dinâmicas, o Google também introduziu o conceito de “A/B virtual” no Android 10. Esta é basicamente uma implementação do partições duplas A/B de antes, mas com partições lógicas. As partições A/B envolvem cópias de partições importantes para permitir atualizações seguras e contínuas. Usar "A/B virtual" é como um engenheiro do Google prevê "confirmar" as partições DSU nas partições da instalação atual; como acontece com o atual processo de atualização A/B OTA, talvez as alterações das novas imagens sejam feitas na partição inativa.

Essas mudanças ainda estão em desenvolvimento e podem levar algum tempo até serem usadas pelo Google ou pelos OEMs. Nós provavelmente não veremos nenhuma implementação disso até que, no mínimo, o Android 11 R seja lançado a seguir ano. Mesmo assim, não há garantia de que os OEMs adotem esse recurso para suas atualizações OTA. Dado o quão útil isso parece ser para testes beta, imagino que o Google já esteja trabalhando com OEMs interessados ​​​​para habilitar esse recurso para atualizações futuras. Pessoalmente, estou entusiasmado com a perspectiva de experimentar novas atualizações do Android antes de comprar, mas e você?