Откат модема в iPhone 4: все точки над i

На недавний вопрос читателя в рубрике FAQ о том, что делать с залоченным iPhone 4, случайно прошитым на прошивку 4.1, мы ответили, что ничего сделать нельзя, и понижение прошивки модема — необратимая операция. В принципе, ответ был верным: читатель всё равно не сможет ничего сделать со своим айфоном, пока не появится анлок для бейсбенда 02.10.04. Но нас можно упрекнуть в необъективности ответа, потому что откат модема на iPhone 4 — не такая уж и необратимая операция. Просто ограничений существует столько, что назвать её обратимой весьма сложно.

Если вам действительно интересна вся правда о данном вопросе и вы не боитесь обилия сугубо джейлбрейкерских терминов, то приглашаем к прочтению данной статьи. Если нет, то можете по-прежнему считать, что откат бейсбенда полностью необратим. Во-первых, вам же будет проще и безопаснее, во-вторых, вы на 90% будете правы.

Чем же iPhone 4 отличается от своих предшественников, кроме множества видимых глазу аппаратных новшеств? Он отличается бутромом — главным загрузчиком устройства. Более того, он отличается чипом бейсбенда, т.е. прошивки модема. И эта связка в iPhone 4 позволяет делать то, что стало невозможным почти сразу после выхода самого первого iPhone в 2007 году: она разрешает понижать версию прошивки модема!

Краткая история вопроса, которую мы уже затронули в этой статье, весьма печальна. С момента выхода прошивки 1.1.2 всем владельцам iPhone пришлось столкнуться с непреложной истиной — откат бейсбенда необратим. Даже если прошить iPhone на более младшую версию iOS, модем всё равно останется новой, повышенной версии. Не нужно объяснять, зачем было введено это ограничение — для защиты от анлока.

Пытались ли хакеры обойти это ограничение? Конечно! Им даже удалось найти дыру в бутроме iPhone 3G, которая позволяла разрешить понижение модема. Появилась утилита Fuzzyband, которая позволяла это сделать. Но Apple почти сразу начала выпуск iPhone 3G с неломающимся бутромом. В итоге те, кто успел купить старые iPhone 3G, остались в ажуре и могут откатывать модем и по сей день. Остальные остались не у дел. Увы, с тех пор удачного ломания бутрома в этом направлении так и не было.

Никто не ожидал, что летом 2010 года всё снова изменится благодаря Apple. В ходе пристального исследования механизмов загрузки и прошивки iPhone 4 выяснилось, что бутром iPhone 4 разрешает понижение версии модема вместе с прошивкой. Простой пример: у вас была прошивка 4.0.2 с модемом 01.59.00, а вы прошились на 4.1 с модемом 02.10.04. Если восстановиться обратно на 4.0.2, то модем снова станет версии 01.59.00.

Но тех, кто после прочтения предыдущего абзаца радостно заёрзал на стуле, ждёт большое разочарование. Всё было бы замечательно, если бы не злосчастный механизм цифрового подписывания прошивок хешами SHSH, который сначала портил жизнь покупателям iPhone 3GS, а сейчас касается всех гаджетов Apple, кроме iPhone GSM и iPod Touch 1G.

Как вы, наверное, уже знаете, восстановиться на младшую прошивку можно только в двух случаях:

  • серверы Apple ещё продолжают подписывание этой прошивки
  • у вас сохранен хеш SHSH для данной версии прошивки

Например, восстановиться с 4.1 на 4.0.2 без хешей SHSH можно было в течение всего нескольких часов: подписывание серверами прошивки 4.1 началось 8 сентября 2010 года, а подписывание прошивки 4.0.2 завершилось уже 9 сентября.

Вы спросите: а если у меня был сохранён хеш SHSH от прошивки 4.0.2 и я могу обмануть iTunes, переадресовав его на сервер Cydia вместо официальных серверов Apple? Понизится ли бейсбенд iPhone 4 в этом случае? Нет!

Ответ на вопрос «А почему нет?» будет ещё сложнее. В iPhone 4 действует намного более изощрённая система подписывания. Сама прошивка и бейсбенд имеют разные цифровые подписи и получают разные хеши SHSH. И если для получения хеша SHSH под прошивку нужен только идентификатор iPhone (ECID), то для получения хеша SHSH под бейсбенд теперь используется новый алгоритм подписывания. Проще говоря, для бейсбенда хеш SHSH действителен только один раз  и только в момент нынешней попытки восстановления. Из-за этого возникают все проблемы: сохранить этот хеш теоретически возможно, но он бесполезен, потому что при следующей попытке восстановления прошивки он будет уже не актуален, и потребуется новый. А чтобы получить новый хеш, нужно обращаться к серверам Apple, которые тоже подписывают бейсбенды по собственному календарю.

Таким образом, 9 сентября завершилось не только подписывание прошивки 4.0.2, но и бейсбенда 01.59.00, и теперь бутром всех iPhone 4 не даст понизить версию прошивки модема ниже, чем 02.10.04.

У особо любопытных читателей возникнет вопрос: а как тогда обстоит дело с прошивкой без повышения модема, которую позволяют сделать утилиты типа Pwnage Tool и Tiny Umbrella? Отвечаем: к счастью, в Apple не додумались (пока не додумались :) контролировать цифровые подписи бейсбенда, если не происходит попытки понижения модема. То есть, если вы пытаетесь прошить iPhone 4 на iOS с версией бейсбенда, которая старше или равна версии нынешнего бейсбенда, то хеш SHSH для модема вам не понадобится. А вот если вам захочется понизить модем, то Apple вам сделать это не позволит, хотя аппаратные возможности для этого теперь имеются.

Понимаете, какая засада ждёт всех приверженцев анлока в скором будущем? Достаточно Apple изменить условие обязательного подписывания прошивки модема с «если бейсбенд младше нынешнего» на «если бейсбенд младше или равен нынешнему», и случится страшное: тогда обойти повышение модема при перепрошивке станет невозможно. А если Apple внедрит для подписывания самой прошивки тот же алгоритм, что уже опробован на механизме обновления бейсбенда, то все пользователи окончательно потеряют надежду на откат версии iOS.

P.S. Календарь подписывания прошивок серверами Apple вскоре станет одним из незаменимых помощников любого сторонника джейлбрейка. Поэтому вскоре он появится и в нашей Энциклопедии джейлбрейка и анлока.