среда, 26 октября 2011 г.

Выход из DFU loop

Сколько бы многие не говорили о том, что превратить i-устройство в кирпич невозможно - это все таки возможно. Когда вы столкнётесь с этим впервые - то и сами отложите кирпича. :)


Итак данный пост о том, что такое DFU loop (Device Firmware Update loop) и как из него выбраться.
Вступление.
Всё началось с того, что я приобрёл IPod touch 4g 64gb с заводской прошивкой 4.1, после чего у меня появилась идея прошить его до актуальной 4.3.3 + непривязанный JB.

Порядок действий, или как я попал в DFU loop.
Первыми моими действиями были попытки сохранить shsh от текущей заводской прошивки, а так же от будущих по нарастанию. Tinyumbrella не дала продуктивных результатов, хотя распознало устройство. Пришлось грузить IPod в DFU, из которого я наконец через tinyumbrella вытащил shsh для 4.1, следующим моим шагом была перестраховка и дополнительное снятие ключей через ifaith, что оказалось позже очень полезным решением.

После попытки апгрейда ос до 4.3.3 используя recovery я получал различные ошибки, и тогда я принял решение воспользоваться ireb, что сулило мне избавление от ошибок itunes.
Зайдя в ireb я перевёл ipod в режим DFU и нажал кнопку iPOD TOUCH 4, после чего проапгрейдил ос на 4.3.3 без ошибок в itunes.

И...это случилось. Устройство просто находилось в цикличной загрузке DFU mode.
Выход из него зажатием Home+Sleep на 10 секунд не помогал. Не помогал и откат на 4.1, ни откат на 4.2, ни повторный навес 4.3.3, единственное, что на мгновение возвращало девайс к жизни - это JB через redsn0w 4.3.3, но загрузить девайс это так же не помогло. IPod определялся системой и itunes как "устройство в режиме восстановления". При зажатии Home+Sleep на 10й секунде происходило отключение устройства (что сопровождалось характерным звуком) и повторное подключение в DFU mode, об этом говорило и приложение ireb и redsn0w, которое требовало для jailbreak'a DFU и начинало сразу же установку без предварительных действий.
В общем DFU подтверждало множество программ и утилит, названия которых я уже даже не помню. Попытка прошить IPod на 4.3.3 за 15 минут превратилась в четырех часовую баталию.
В рунете я практически не видел подобных случаев, а если они и были - то оставались без ответа. Например на том же 4pda. Тогда я начал тотальное перекапывания заморских ресурсов.
Как потом оказалось - это достаточно распространенная проблема за океаном, где i-устройства имеют куда более широкое распространение.

Несмотря на обилие форумов и топиков различных блогах с проблемой DFU-loopa я не нашел ни одного совета или решения кроме как банальное "Зажми домик и слип на 10 секунд, все будет гуд". Естественно далее следовали ответы вроде "Это не помогает, я не знаю что делать, он не включается, я только что его купил и он уже не работает, омг".

Тогда я решил экспериментировать, т.к. хуже уже быть не могло. Девайс, который еще 5 часов назад был куплен, проработав 30 минут...лежал безмолвным кирпичом.

Среди тонн инфы о разном софте я заметил замечания о том, что можно подписать исходную прошивку своим shsh и откатиться на неё. Но это было потом.
А до этого я решил плюнуть на все, и если уже нельзя будет вернуться на 4.1 то стоило попробовать подняться на актуальную 4.3.5 что я и попробовал сделать.
И...на удивление после некоторых манипуляций с tinyumbrella, включением рекавери и т.д. я обошел ошибки itunes и скачав 670mb я обновился на 4.3.5. За окном прохладное осеннее утро. Прошло около шести часов с того момента, когда iPod стал ibrick.

Я увидел логотип apple и остановку iPod в рекавери. Выход из рекавери привел меня к девственно чистой 4.3.5.

----
А теперь о том, что привязанный JB меня не устраивал, и т.к. DFU loop был повержен - я продолжил поиски решения по откату до заводской 4.1.
Спустя две неудачные попытки отката на 4.1 я заметил, что шью не той версией 4.1, что у меня.
Тогда прогуглив я нашел 4.1 именно под моё устройство, а именно под 8B118.

И именно тогда я вспомнил про ifaith, снятый ключ shsh и про создание кастомных прошивок, подписанных собственным ключом.

Далее порядок действий был следующим:
  1. Скачивание пошивки именно под touch 8B118;
  2. Пропатчивание прошивки в ifaith ключом, созданным в нём же;
  3. Вход в DFU и откатывание на пропатченную прошивку.
Вместо яблока меня встречала гордая птица, устройство перешло в чистую 4.1.
Эпиквин, без сервисцентров, молчаливых форумов и ужасного ожидания.

Так я победил DFU loop и вернулся к истокам, приобретя ценные знание, а так же опыт, который теперь подсказывает мне, что лучше не браться за дела, которые сулят серьёзные последствия, без хорошей теоретической базы.

Спустя несколько дней у меня появились идеи как все таки достичь перехода на 4.3.3, т.к. в состоянии кирпича JB всё таки проходил, возможно получилось бы снять ключи shsh от 4.3.3, и пропатчив ими прошивку вернуться на неё. Но это в теории, времени проверить этот вариант нет уже вторую неделю. Возможно это сработает.

upd. 4.3.3 не достижима.
Откатка с 4.3.5 на 4.3.3 без shsh возможна, но девайс висит в лупе, из dfu ничего путного с такого устройства не вынуть.

Став опытней в этом плане я выяснил, что инструкции всегда нужно читать внимательней и лучше пару-тройку раз. Тогда бы этот эксперимент по достижению 4.3.3 и не начинался. :)


Спасибо за внимание, удачных экспериментов!
.dE

Комментариев нет:

Отправить комментарий