Um grupo de desenvolvedores criou um utilitário Python para contornar a rotina de autenticação da MediaTek SP Flash Tool. Verifique isso agora!
Dispositivos com chipsets MediaTek possuem um BROM (memória somente leitura de inicialização), que normalmente carrega o pré-carregador executável e posteriormente inicializa o sistema Android, mas também abriga um modo de inicialização alternativo conhecido como Modo de download. Destina-se estritamente à manutenção de OEM e pode ser usado para desbloquear um dispositivo, assim como Modo de download de emergência (EDL) da Qualcomm. Um programa proprietário da MediaTek chamado "SP Flash Tool" pode utilizar esta interface para forçar o flash do software do sistema em um dispositivo. Como o modo de download de baixo nível tem efetivamente controle total sobre o armazenamento do dispositivo, muitos OEMs, incluindo Xiaomi e Realme, adotaram começou a ofuscar o processo de flash. Devido a esta prática, a atualização do firmware via modo de download só pode ser realizada por um programa “Download Agent” assinado e autorizado pelo OEM correspondente, o que significa essencialmente que
você não pode atualizar ou desbloquear seu próprio smartphone, a menos que tenha permissão do fabricante do dispositivo para fazer isso.Bem, a fantástica comunidade de desenvolvedores do XDA veio mais uma vez ao resgate. Baseado em uma exploração de ROM de inicialização originalmente descoberto por membro sênior do XDA xyz`, desenvolvedores Dinolek e k4y0z criaram um método genérico de bypass, que é compatível com uma ampla variedade de dispositivos com tecnologia MediaTek que, de outra forma, exigiriam autenticação durante o flash. O método, que faz uso de cargas úteis de exploração específicas do SoC, intercepta as consultas pré-flash feitas pela SP Flash Tool e define à força os valores de dois parâmetros cruciais ("Autenticação de link serial" e "Autenticação de agente de download") como falso para continuar o processo de flashing sem qualquer tipo de autorização.
É importante observar que as cargas de exploração requerem um driver USB especialmente ajustado para uma interceptação bem-sucedida. Se você estiver executando o Windows, será necessário instalar um driver de filtro baseado em libusb para substituir o conjunto de drivers padrão. Os usuários do Linux, por outro lado, precisam aplique um patch específico para o núcleo. Caso não queira alterar seu sistema operacional principal, você pode usar Fogo ISO – uma ISO inicializável do GNU/Linux projetada especificamente para esse propósito.
Quando se trata de acessar o modo de download do MediaTek, você só precisa desligar o dispositivo de destino, manter pressionado o botão Aumentar volume (Diminuir volume para telefones Xiaomi) e conectar o telefone ao PC. Você deverá ver um novo dispositivo serial listado no Gerenciador de dispositivos (Windows) ou na saída do dmesg | grep usb
(Linux).
Neste ponto, siga este processo simples de 5 etapas para desativar a proteção do bootrom:
- Baixar e instalar Pitão. Os usuários do Windows devem selecionar "Adicionar Python X.X ao PATH" quando solicitado.
- Instale as dependências necessárias usando
pip
:pip install pyusb pyserial json5
- Baixe o utilitário de desvio.
- Extraia o arquivo, execute o utilitário e conecte seu telefone no modo MediaTek Download. Você deve obter "Proteção desativada" no final do log.
- Janelas:
pythonmain.py
- Linux:
./main.py
- Janelas:
- Depois disso, sem desconectar o telefone, execute o SP Flash Tool no modo UART Connection.
E é isso! A rotina de autenticação foi ignorada e agora você está pronto para atualizar/desbloquear seu telefone. Se alguém mais experiente desejar dar um passo adiante, poderá atualizar um backup de partição modificado para reparar um IMEI com defeito, mas isso está além do escopo deste artigo.
A lista de SoCs atualmente suportados pode ser encontrada abaixo. Teoriza-se que o método de bypass funcione da mesma maneira em outros chipsets MediaTek, mas alguém precisa primeiro codificar uma carga útil adequada para desativar a rotina de proteção de bootrom.
Lista de SoCs suportados
- mt6261
- mt6572
- mt6580
- mt6582
- mt6735
- mt6737
- mt6739
- mt6755
- mt6757
- mt6761
- mt6763
- mt6765
- mt6768
- mt6771
- mt6785
- mt6799
- mt6873
- mt8127
- mt8163
- mt8173
- mt8695
consulte Mais informação
Conclusão
Se você se lembra, os chipsets MediaTek foram considerados suscetíveis a um rootkit perigoso há quase um ano, e foi ativamente explorado por hackers para obter acesso root. Considerando isso, não se sabe por que a empresa taiwanesa de design de chips ainda não corrigiu a falha em seus chipsets que permite derrotar a cadeia de confiança durante o flash. Embora tenhamos visto apenas o lado bom da situação, é ainda pior do ponto de vista da segurança quando se considera as centenas de modelos de dispositivos menos conhecidos que usam esses chips MediaTek.
Há outro aspecto da situação do ponto de vista da comunidade de desenvolvimento personalizado, cujos interesses representamos. A maioria dos dispositivos MediaTek se encontra em uma combinação insustentável de fácil de bloquear e difícil de reviver. Além disso, o requisito de autorização forçada realmente limita o potencial de desenvolvimento do mercado pós-venda para eles. O método de bypass nada mais é do que um vislumbre de esperança para os proprietários de dispositivos MediaTek, que querem apenas resolver o problema de sair do cenário de modding.
Os interessados em explorar a base de código do método bypass devem dar uma olhada no link do GitHub abaixo. Você também pode interagir com os desenvolvedores visitando o Lista de Discussão.
Autenticação da ferramenta Flash MediaTek SP ignora repositório GitHub