Relatamos recentemente como alguns dos blobs .shsh2 salvos em versões anteriores do TSSChecker da tihmstar estavam com defeito. Um problema afetou todos os blobs do iPhone 7 e iPhone 7 Plus, tornando-os inúteis. Esse problema foi corrigido no futuro, embora os blobs anteriores sejam inválidos.
O outro problema era mais complexo e afetava apenas alguns modelos de determinados dispositivos. Também é corrigido para blobs salvos a partir de agora, mas, considerando essas ocorrências, é importante poder verificar se os blobs que você salvou no passado são de fato válidos e adequados para uso com o Prometheus.
Neste artigo, veremos como usar outra ferramenta do pacote Prometheus da tihmstar, img4tool, para verificar se seus arquivos .shsh2 estão em boas condições. Esse método esclarecerá se você é afetado pelo segundo problema mencionado acima, mas também funcionará em geral ao verificar a validade de seus blobs no futuro.
Exigências
Para isso, você precisará de:
- Seus blobs salvos com TSSChecker / TSSSaver, no formato .shsh2.
- img4tool do tihmstar, disponível para download na descrição deste vídeo do YouTube.
- O arquivo IPSW para cada combinação de dispositivo / versão do iOS para a qual você deseja verificar seus blobs. Faça o download do IPSW exato que corresponde ao blob que você deseja verificar. Isso significa que você precisa baixar um IPSW diferente para cada versão do iOS e cada dispositivo diferente que deseja verificar.
Demora um pouco, por isso recomendo apenas verificar os blobs do iOS 10.1.1 (14B150) e do iOS 10.2 para seus dispositivos, para economizar tempo. Estes são os blobs mais importantes. Se você não possui (14B150), faça (14B100).
O tutorial descreve o processo em um Mac e usa o aplicativo Terminal, mas também existem versões para Windows e Linux, para as quais o processo é o mesmo. Verificarei os blobs do iOS 10.1.1 (14B150) e do iOS 10.2 para dois iPhone 5s.
Antes de começarmos a trabalhar com o img4tool, há uma etapa que precisamos executar em nossos dispositivos iOS, aqueles cujos blobs queremos verificar.
Instruções para iOS
1) Abra a App Store no seu dispositivo e procure por "BMSSM". Instale o aplicativo exibido: “Monitor de status do sistema de memória da bateria”.
2) Abra o aplicativo baixado e navegue até a guia "Sistema" na parte superior.
3) Procure a entrada desta página intitulada "Dispositivo - Modelo". Será algo como "N53AP". Anote esse valor e de qual dispositivo você o obteve.
4) Repita esse processo para todos os seus outros dispositivos.
instruções img4tool
1) Faça o download do IPSW para os blobs que você deseja verificar. Por exemplo, se você deseja verificar se os blobs do iPhone 10s do iOS 10.1.1 (14B150) são bons, faça o download do IPSW do iPhone 10s do iOS 10.1.1 (14B150) do iPhone 5s (GSM). Certifique-se de baixar o IPSW correto para os blobs ou o img4tool será verificado incorretamente. Lembre-se de que existem duas versões do iOS 10.1.1 e que alguns dispositivos (por exemplo, iPhone 5s) têm modelos diferentes com IPSWs diferentes.
2) Copie os blobs que você deseja verificar e cole-os em uma pasta na área de trabalho. Chame a pasta TSS.
3) Pegue o arquivo img4tool_macos da pasta img4tool (baixado da descrição do vídeo do YouTube na seção "Requisitos") e coloque-o na pasta TSS.
4) Coloque os IPSWs baixados na pasta TSS também.
5) Para cada IPSW na pasta, clique para renomear e altere a extensão do arquivo de .ipsw para .zip. Selecione “Use .zip” na caixa de diálogo que aparece.
6) Clique duas vezes em todos os .zips renomeados para descompactá-los. Eles aparecerão como pastas uma vez concluídas.
7) Inicie o Terminal via Spotlight ou em / Aplicativos / Utilitários.
8) No prompt do Terminal, digite "cd", seguido de um espaço e arraste a pasta TSS para a janela Terminal..
9) Pressione a tecla “Enter” para inserir o comando. O terminal agora será direcionado para sua pasta TSS.
10) Digite o seguinte comando no Terminal e pressione “Enter”:
sudo chmod + x img4tool_macos
Digite sua senha de administrador, se solicitado.
11) Vamos agora inserir o seguinte comando no Terminal:
./ img4tool_macos -v BuildManifest.plist -s YOUR_SAVED_BLOB.shsh2
No entanto, precisamos substituir a frase “BuildManifest.plist” por uma das pastas IPSW descompactadas e “YOUR_SAVED_BLOB.shsh2” pelo nosso blob. A maneira mais fácil de fazer isso é arrastar os arquivos para a janela Terminal na parte apropriada do comando.
Aqui está um exemplo para o iOS 10.1.1 (14B150) em um iPhone 5s. Primeiro, no Terminal, digite "./img4tool_macos -v", seguido por um espaço. Em seguida, navegue até a pasta IPSW para iPhone 5s do iOS 10.1.1 (14B150). Você deve ter a pasta IPSW correta para esta etapa, não use uma das outras pastas IPSW por engano. Dentro da pasta está o “BuildManifest.plist” correto. Arraste esse arquivo para a janela Terminal depois de “./img4tool_macos -v” e ele preenche o caminho do arquivo para você.
Em seguida, digite “-s” seguido de um espaço e arraste o blob .shsh2 que deseja verificar para a janela Terminal. O Terminal preencherá o caminho do arquivo para você. Você deve ter o blob .shsh2 correspondente ao BuildManifest.plist que você acabou de selecionar. Não use um dos outros blobs por engano.
12) Agora que o comando está completo, pressione “Enter” para executá-lo. O terminal exibirá o resultado. A parte interessante está na parte inferior; você pode ver um exemplo abaixo:
Como você pode ver na imagem, esse blob é válido, o que significa que possui todos os hashes corretos e a versão IPSW (10.1.1) corresponde à versão do iOS para a qual o blob foi salvo..
No entanto, há mais uma coisa que precisamos verificar para garantir que o blob esteja REALMENTE correto. Lembre-se do modelo de dispositivo que observamos no BMSSM anteriormente?
Procure na saída do terminal a linha chamada “DeviceClass” (veja a imagem acima para um exemplo). Será algo como "N53AP". Agora, verifique o valor que você obteve do BMSSM no dispositivo iOS correspondente (Etapa 3 da seção Instruções do iOS). Se os valores forem não o mesmo, o blob é não válido, mesmo que img4tool diga "o arquivo é válido" na parte inferior. Isso ocorre porque o blob é tecnicamente válido (possui todos os componentes necessários), mas possui a BuildIdentity errada. Como o img4tool não sabe qual dispositivo você realmente possui, ele simplesmente verifica se o arquivo possui todas as peças necessárias e, se possui, diz que é válido. É possível, portanto, ter um blob "correto", salvo para o dispositivo "errado", que é, portanto, inútil. Portanto, verifique sempre se:
- img4tool diz que o blob é válido.
- O valor “DeviceClass” da saída do terminal do img4tool é o mesmo que o campo “Device Model” para o mesmo dispositivo iOS no BMSSM.
Se ambos são verdadeiros, então você está bem.
13) Repita o comando para seus outros dispositivos, com um novo conjunto correspondente de BuildManifest.plist e .shsh2 blob a cada vez. Certifique-se sempre de verificar o "modelo de dispositivo" BMSSM correto também.
Exemplos
Nesta imagem, o img4tool diz que meu blob para iOS 10.2, para um iPhone 5s que tenho, é válido. Mas também diz que o blob é válido apenas para o Modelo N53AP. Eu verifiquei o BMSSM no iPhone 5s e boas notícias! Também diz N53AP, então esse blob em particular é realmente válido.
Agora veja este exemplo:
Aqui, o img4tool relata que meu blob para iOS 10.1.1 (14B150) para um diferente iPhone 5s, também é válido. E, novamente, ele diz que é válido apenas para o Modelo N53AP. No entanto, quando eu verifico BMSSM em esta iPhone 5s, vejo que é de fato o Modelo N51AP, não o N53AP. Nesse caso, mesmo que o img4tool diga que o blob está bom internamente, não posso usá-lo, pois ele foi salvo com o BuildIdentity errado, e também inválido. Este é o erro que o TSSChecker anteriormente tinha e o que você deve ter o maior cuidado para verificar nos blobs antigos.
E finalmente:
É o que acontece quando você tenta verificar um blob do iOS 10.2 contra o BuildManifest.plist errado (eu acidentalmente selecionei um do iOS 10.1.1). Aqui, o img4tool relata imediatamente que o blob é inválido, pois você perguntou se um blob 10.2 é válido para 10.1.1, o que obviamente não é. Cuidado para selecionar pares de versões iOS idênticas dos arquivos BuildManifest.plist e .shsh2 para evitar esse erro.
Como você pode ver, o processo é bastante detalhado, mas deve ser uma maneira infalível de verificar seus blobs antigos sem obter erros falsos, o que pode fazer você pensar que eles são válidos quando não são. Como o download de IPSWs leva tempo, pode valer a pena fazê-lo em blobs importantes, como o iOS 10.1.1 e o iOS 10.2.
E lembre-se de que as versões mais recentes do TSSChecker / TSSSaver não têm mais esse problema. Portanto, no iOS 10.2, você pode simplesmente salvar novamente seus blobs, evitando esse processo de verificação. Este guia será mais útil para verificar blobs salvos em firmwares não assinados, que não podem ser salvos novamente.
Como observação, falei com o inestimável 1Conan, o criador do TSSSaver, enquanto pesquisava para este artigo. Ele confirmou o que eu suspeitava, que seu site do Blobs Checker não ainda verifique esse problema e, portanto, poderá relatar seus blobs como válidos quando não forem, exatamente como img4tool. Sem verificar seu modelo de dispositivo usando este guia, você não pode ter certeza.
No entanto, ele também disse que está ciente do problema e está trabalhando com sua velocidade habitual na atualização do site do Blobs Checker, para que ele possa identificar esse problema no futuro..
Olhe para isso em breve!
Atualização: o site do 1Conan Blobs Checker agora é atualizado para verificar a DeviceClass dos blobs no dispositivo selecionado. Essa ferramenta facilita a verificação de seus blobs e tem a vantagem de não exigir o download de IPSWs!
Seus blobs são bons ou velhos e estragados? Precisa de algum esclarecimento? Deixe-me saber, abaixo.