Falando com o desenvolvedor líder do TWRP, Dees_Troy, sobre o assunto, acreditamos que pode ser possível explorar atualizações contínuas para fornecer inicialização dupla.
Durante o Google I/O deste ano, o Google apresentou oficialmente o Android Nougat que trouxe várias melhorias de usabilidade muito necessárias para aqueles de nós que têm a sorte de possuir um dispositivo Nexus moderno. Houve alguns recursos descritos pelo Google durante o Google I/O que não foram incluídos nas compilações finais de produção do Nougat para dispositivos Nexus atuais, mais notavelmente atualizações perfeitas.
Muitos usuários ficaram desapontados com a revelação de que atualizações contínuas só estariam presentes em dispositivos que enviar com Android Nougat, mas para aqueles de nós que planejam atualizar para o próximo Nexo Dispositivos pixelados temos um novo recurso incrível pelo qual ansiar. No entanto, desde o Google I/O, não vimos nenhum detalhe adicional sobre esse novo recurso.
Isso não impediu que alguns dos mais curiosos entre nós descobrissem como exatamente o Google planeja fazer com que as atualizações contínuas funcionem. Ethan Yonker, que atende pelo apelido
Dees_Troy e é mais conhecido por seu trabalho como desenvolvedor líder no Projeto de recuperação de equipe Win, pomba direto no código-fonte do Nougat divulgado pelo Google para entender com o que ele está lidando quando os dispositivos Pixel são inevitavelmente lançados. O Google fez algumas mudanças interessantes no layout das partições dos próximos dispositivos Pixel – e com algum trabalho astuto dos desenvolvedores em nossos fóruns, Dees_Troy supõe que inicialização dupla pode ser possível.Pixel Phones do Google e suas partições
Caso você não saiba, o armazenamento do seu telefone é dividido em vários memória interna padrão partições. As partições com as quais você provavelmente está mais familiarizado são /boot, /system, /data, /recovery e /cache, mas se estiver interessado, você pode procurar tabela de partição real no seu dispositivo. A quantidade de espaço de armazenamento disponível para você, usuário, é determinada pelo tamanho alocado para a partição /data. Por outro lado, /system é onde reside a maioria dos arquivos do sistema operacional Android. Redimensionar essas duas partições para espaço apropriado para mais aplicativos de usuário ou talvez uma nova versão do Android é definitivamente possível, mas o processo pode ser arriscado e, em geral, não é algo que você deveria esperar do seu dispositivo.
Geralmente, quando você atualiza, apenas os arquivos dentro de /system são modificados e as atualizações são aplicadas no nível do bloco, para que o dm-verity permaneça ininterrupto. Sempre que você está atualizando seu dispositivo, geralmente você não consegue usá-lo ativamente. Em vez disso, você deve aguardar a recuperação para modificar todos os arquivos necessários em cada partição. Isso evita possíveis problemas do sistema operacional Android ao tentar acessar um arquivo que está sendo atualmente atualizado, mas por outro lado, significa que os usuários terão que esperar vários minutos observando o logotipo de recuperação do Android aplicar um atualizar.
Antes do Android Nougat, cada dispositivo só vinha com uma cópia de cada partição. Isso faz sentido para a maioria dos smartphones Android - o espaço de armazenamento é escasso (ou assim somos levados a acreditar), então por que se preocupar com a redundância de múltiplas partições de backup? A resposta para isso são atualizações contínuas. A outra incursão do Google em sistemas operacionais - o Chrome OS - provou ser um grande sucesso. Na verdade, o Android pega emprestado o conceito de atualizações contínuas do Chrome OS. O Chrome OS obtém atualizações contínuas atualizando um conjunto de partições redundantes e inativas em segundo plano e, em seguida, trocando imediatamente essas partições pelas atualmente ativas antes da inicialização.
Inicialmente, acreditávamos que os telefones fornecidos com o Nougat pré-instalado viriam apenas com uma partição secundária /sistema. De acordo com Dees_Troy, os telefones Pixel serão fornecidos com duas cópias da maioria, senão de todas as partições do dispositivo.
Os novos telefones Pixel terão 2 partições de sistema, 2 partições de inicialização, 2 partições de fornecedor, 2 partições de modem, etc. Um conjunto de partições estará ativo – o conjunto de partições usado atualmente para inicializar o dispositivo. Quando uma atualização for publicada, ela será aplicada ao segundo conjunto em segundo plano. Assim que a atualização for aplicada, um prompt aparecerá solicitando a reinicialização. A reinicialização não incluirá a inicialização para recuperação. Em vez disso, o dispositivo mudará o conjunto de partições usado para o segundo conjunto e você inicializará rapidamente, talvez quase instantaneamente, um dispositivo atualizado. -Dees_Troy
Telefones Pixel com inicialização dupla e atualizações de ROM personalizadas perfeitas?
Com duas cópias de cada partição, Dees_Troy prevê que poderemos sequestrar o segundo conjunto de partições para inicialização dupla. Se você estiver em um dos poucos dispositivos que suportam o Projeto MultiROM, você deve estar familiarizado com a perspectiva de ROMs de inicialização dupla. Se você já mexeu com o MultiROM antes, então você está definitivamente ciente de que os métodos que eles usam são basicamente um conjunto gigante de hacks para fazê-lo funcionar Android. Em cada thread XDA que fornece MultiROM em um dispositivo, há um grande aviso próximo ao topo alertando os usuários de que "nenhum desses sistemas é feito com inicialização múltipla em mente", que "é possível que algo dê errado e você tenha que atualizar as imagens de fábrica novamente". Mas com o Google gentilmente nos fornecendo um segundo conjunto de partições para trabalhar, Dees_Troy espera que possamos executar a inicialização dupla nos telefones Pixel com alguma cooperação entre vários membros da ROM comunidade.
Se pudermos sequestrar a segunda partição configurada para inicialização dupla, então também poderemos usar essas partições secundárias para implementar atualizações contínuas para ROMs personalizados também. Portanto, se você é um dos muitos usuários noturnos dedicados do Cyanogenmod, poderá atualizar para a versão mais recente todas as noites sem precisar reiniciar o telefone para recuperação todas as noites. Embora o Open Recovery Scripting do TWRP e as várias ferramentas de atualização delta tenham reduzido bastante o tempo e o esforço necessário para realizar uma atualização noturna, atualizar perfeitamente sua ROM em segundo plano definitivamente supera todos os outros opções.
Observe que não podemos ter certeza de que esses recursos funcionarão até que tenhamos dispositivos funcionando em mãos, mas dado Devido ao extenso trabalho de Dees_Troy no TWRP e sua pesquisa no código-fonte do Nougat, acreditamos que esta especulação é altamente credível.
Embora todos esses recursos futuros e prováveis pareçam positivos, também descobrimos muitas mudanças que complicam o desenvolvimento nos próximos dispositivos Pixel. Iremos detalhar isso em outro artigo agendado para amanhã, mas enquanto isso, mantenha seu entusiasmo sob controle!