Джейлбрейк iPhone 3GS — откуда все сложности?
В данной статье мы попробуем максимально доступно (насколько это возможно при таком обилии технических терминов) объяснить пользователю все трудности, которые ждут его и его iPhone 3GS из-за мероприятий Apple по борьбе с джейлбрейком. Обратите внимание, что всё написанное далее касается ТОЛЬКО iPhone 3GS — предыдущие поколения айфона не обременены такими дурацкими проблемами.
Для iPhone 3GS Apple (в рамках кампании по искоренению джейлбрейка) ввела новый механизм обновления прошивки. Перед началом обновления iTunes лезет на сервер Apple и сверяет версию прошивки. А сервер Apple может одобрять ТОЛЬКО одну версию прошивки — самую свежую на данный момент (например, до 9 сентября одобрялась только 3.0.1, а с 9 сентября и до момента выхода следующей прошивки сервер даёт зелёный свет только для 3.1). Самое обидное, что на сервер отправляется не просто пара цифр, а зашифрованные особым ключом сведения. Если данные не совпадают, то iTunes выдаст ошибку «Device isn’t eligible», а если подключения к Интернету нет, то процесс вообще не пойдёт.
Что это всё означает для конечного пользователя? А то, что Apple насильно перемещает пользователей на новые прошивки по мере их выпуска. Если у вас старая версия прошивки, то она останется у вас до первой серьёзной проблемы, пока не понадобится восстановление прошивки. А это восстановление получится сделать только на самую новую версию.
Доблестные хакеры тоже не теряли время и придумали способ обдурить iTunes — для этого нужно сделать переадресацию DNS: когда iTunes обращается к серверу Apple, он попадает на хакерский сервер в Cydia. Вроде бы всё отлично, но тут есть одно большое НО — шифрование передаваемых данных. Чтобы вас понял хакерский сервер, нужно, чтобы на нём был сделан бэкап служебной информации (идентификатора ECID и ещё некоторых сведений). Чтобы получить возможность откатиться на старую прошивку, нужно иметь бэкап именно для этой версии прошивки.
В общем, откатиться на версию 3.0.1 с версии 3.1 могут только те, кто:
— до 9 сентября 2009 года успел сделать джейлбрейк
— до 9 сентября 2009 года успел зайти в Cydia и сделать бэкап ECID
Вот для этой категории граждан есть техническая возможность сегодня сделать джейлбрейк на прошивке 3.1, даже если у них на телефоне стоит официальная версия этой прошивки. Процесс придётся делать по схеме:
— откат на 3.0.1
— джейлбрейк прошивки 3.0.1 с помощью программы redsn0w
— восстановление на взломанную в Pwnage Tool 3.1.3 прошивку 3.1
Всё это касается джейлбрейка. С анлоком история ещё страшнее: те, кто заказал себе в сентябре 3GS из США и других стран, где телефон заблокирован под оператора, могут рвать на себе волосы — если телефон придёт с установленной прошивкой 3.1, то это будет красивое устройство с возможностью слушать музыку, но без намёка на джейлбрейк и возможность звонить. Аналогично «весело» придётся тем, у кого поломался телефон, а бэкапа ECID на прошивке 3.0.1 нет — если у них получится обновиться на джейлбрейкнутую прошивку 3.1, то им чертовски повезёт, если нет — придётся довольствоваться полностью нерабочим аппаратом.
И последний вопрос, который возник у многих владельцев официально разлоченных iPhone 3GS с установленной 3.1, но без бэкапа ECID — а что будет, если всё-таки попытаться восстановиться на взломанную прошивку 3.1? Проведя эксперимент, можем ответственно заявить — в начале восстановления вас будет ждать ошибка 1600. Она появляется в том случае, если загрузчик iPhone не может передать управление незнакомой прошивке (а джейлбрейкнутая прошивка — как раз тот случай). Владельцы уже джейлбрейкнутых телефонов имеют пропатченный загрузчик, которому всё равно, что грузить. Остальным придётся терпеливо сидеть и ждать новостей.
Какие могут быть новости?
Оптимистичный сценарий:
-либо Dev Team сумеет эксплуатировать в прошивке 3.1 ту же уязвимость, что и в 3.0, и в итоге выпустят новую версию redsn0w, которую можно будет запустить на телефоне с прошивкой 3.1
-либо их конкуренты Chronic Dev наконец-то доделают свой хвалёный инструмент greenpois0n, основанный на пока только им известной уязвимости. Они обещают уникальные возможности — джейл займёт меньше минуты и не потребует файла прошивки
-либо в игру опять вступит пионер хакерства на айфоне Георг Хотц и выпустит очередную версию своей программки purplera1n (но это маловероятно, поскольку у пионера сейчас проблемы с учёбой в колледже).
Пессимистичный сценарий:
-Apple благополучно опережает всех хакеров и штампует прошивку 3.1.1 или даже 3.2. В результате игра в кошки-мышки начнётся снова — все наши телефоны будут работать на 3.1 до первого серьёзного глюка, а потом волей-неволей придётся обновить их до самой новой версии прошивки. А в этой новой версии Apple наверняка прикроет последние дыры для джейлбрейка (и, соответственно, для анлока).
Но против пессимистичного сценария у нас есть одно оружие — как можно быстрее сделать бэкап ECID на версии прошивки 3.1, чтобы сохранить хоть какой-то шанс на джейлбрейк и анлок. Как это сделать, расскажем чуть позже.