Nos últimos dias, aconteceu a Mini Debconf BR 2018 em Curitiba. Estive lá para hackear e ajudar na instalação de Debian em smartphones.

Depois de se preparar, o passo seguinte para tal instalação é desbloquear o bootloader do telefone, ou garantir formas de fazer com que o bootloader carregue o sistema Debian ou outro GNU.

Durante a Mini Debconf, encontramos a dificuldade em vencer esta etapa com o aparelho de um dos voluntários.

Se você é ou for capaz de utilizar uma versão do Android ou sistema de recuperação alternativos às versões do fabricante, é bem provável que seja capaz de iniciar o Debian ou outro GNU. Ou, digamos que a primeira barreira, que é a que descrevo aqui, foi vencida.

Alguns dos projetos alternativos que poderiam ser testados seriam: Replicant, LineageOS (ou mesmo uma versão antida de CyanogenMod), TWRP, ClockworkMod, entre muitos outros. Com exceção do Replicant, estes projetos distribuem partes que não são software livre. Por isso, evitei colocar seus links. Também não é possível descartar que distribuições de tais projetos, sejam elas oficiais ou não, contenham malware, que possam lhe causar algum prejuízo.

No entanto, tais projetos costumam oferecer documentação de como destravar o bootloader do seu aparelho, e como instalá-los. Ao invés de duplicar tal documentação, é mais fácil aproveitar o espírito de colaboração hacker e nos referirmos a elas.

No entanto, ainda gostaria de um software livre que consolidasse boa parte do conhecimento distribuído entre tantos lugares diferentes. Mas fica para o futuro.

Existem duas formas principais de instalação de um sistema operacional alternativo no aparelho.

Uma delas é o "root" do aparelho. Significa obter privilégios de super-usuário no aparelho, permitindo sobrescrever a partição que contém uma das imagens utilizadas pelo bootloader. Tal operação costuma explorar falhas de segurança no sistema operacional Android, algumas delas em seu kernel. Infelizmente, a forma mais comum de fazê-lo é utilizando uma aplicação Android proprietária que não teve nenhuma curadoria. Por outro lado, felizmente é possível utilizá-las habilitando o modo desenvolvedor do aparelho ou a permissão de instalar aplicações "inseguras". Daí, uma das vontades em desenvolver um software livre capaz de fazê-lo através de uma linha de comando no Debian ou seu GNU preferido.

A outra forma é utilizando um mecanismo oferecido pelo fabricante para "download" ou "flash" de um outro sistema operacional. Esta forma exige que o telefone esteja destravado. Alguns modelos já permitem tal operação de fábrica. Outros exigem a obtenção de um código do fabricante, depois de aceitar algum termo, como a perda da garantia. Ainda existe a necessidade de uma ferramenta a ser executa em um computador que esteja conectado ao telefone via USB. Para muitos modelos, existem ferramentas livres, como fastboot e heimdall. Para alguns modelos, o suporte no heimdall não é suficiente, exigindo ainda algum trabalho de engenharia reversa ou correções na ferramenta. De novo, seria interessante um software livre que detecte o modelo do aparelho e utilize a ferramenta apropriada tanto para destravá-lo quanto para a gravação da imagem. Existem alguns por aí, e seria interessante consolidá-los com o maior número de modelos suportado possível.

Fica como exercício, então, para mais uma etapa para o objetivo de instalar Debian ou outro GNU em um telefone: instalar uma imagem alternativa em seu telefone. Tal etapa também é importante para obter o primeiro kernel binário a ser utilizado para testar o Debian.

Você pode ver os demais posts aqui.