20 outubro, 2009

iPhone: Erro 1601, 1602, 1603, 1604, etc ao atualizar pelo iTunes

Para tentar passar pelos erros 1604:
1. Conecte o iPhone o PC, feche o iTunes se estiver aberto.
2. Abra o iH8sn0w (nao clique em nada)
3. Coloque o iPhone em mode DFU
4. Na tela do iH8sn0w, clique no modelo de iPhone correspondente
5. Preste atencao na tela do iPhone, ela deve ficar branca ou piscar com a tela td branca ou ainda, ficar branca e depois vermelha. (demora uns 2seg +/-)
6. Depois da tela estar no estado descrito no passo 5, entre no iTunes e envie a firmware que vc deseja.
7. Se tudo correr bem, ele deve instalar a firmware normalmente. Caso ocorra o erro 1015 no final da atualizacao, faça o jailbreak normalmente e/ou configure a variável "auto-boot" para "true" usando o iRecovery.

iPhone: Erro #28 na restauração pelo iTunes

Um colega chegou com um iPhone que naum fazia a restauracao de jeito nenhum. Dava erro #28 pelo iTunes. Vou descrever aqui o que fiz, caso alguém venha a enfrentar algo parecido:

Como ele ficava só na tela pedindo o iTunes, pensei que seria só configurar a variável auto-boot pelo iRecovery para true e pronto. Mas isso não adiantou.
Depois de olhar pelo iRecovery, percebi que era algum problema com a particao "/", pois mostrava várias mensagens do tipo:
"[FTL:ERR] _FTLRestore found block xxx with wLbn xxx".
Ou ainda, quando tentava dar boot usando "fsboot":
fsboot
root filesystem mount failed

Bom, pensei: "Cade o fsck nessas horas". Precisava fazer uma verificação no sistema de arquivos e/ou formatá-lo. Descobri que para fazer o iBoot executar alguma coisa, tem que colocar o comando em uma variavel e executar o conteudo da variavel. Por exemplo:
setenv comando "arm7_stop"
run comando
Mas eu não sabia qual era o comando similar ao fsck ou para formatar. Foi ai que encontrei um log na internet que tinha a variavel "boot-args" com uma opção bem interessante "nand-enable-reformat=1".
Criei a variável e reiniciei:
setenv boot-args "rd=md0 nand-enable-reformat=1 -progress"
saveenv
reboot

Ele demorou um monte, mais de 10min, piscou a tela e voltou a pedir a conexão com o iTunes. Olhando novamente o iRecovery, ele mostrava uma mensagem diferente, não mais com erro, e sim informando que a particao "/" não era reconhecida e/ou naum estava formatada:

******************************************************************************
*****************************************************************************
AND: NAND initialisation failed due to format mismatch or uninitialised NAND.
AND: Please reboot with reformatting enabled.
******************************************************************************
******************************************************************************
Era isso que eu queria, mas e agora, como colocar os arquivo do "/" novamente. Verifiquei o comando "/sendfile" do iRecovery, mas não saberia quais arquivos enviar (descompactar a firmware ipsw como sendo zip e enviar um-a-um?).
Como esse aparelho estava com a firmware 3.0, pensei no Redsn0w pois ele reconstroi o "/" e deveria formatar aquela partição. Fiz isso e o aparelho voltou a funcionar. :-D

Qualquer dúvida, por favor usem os comentários.