
Нам понадобятся:
• ITunes 9.1 или выше;
• Оригинальная прошивка 3.1.3;
• iRecovery v1.3 (Mac) или iRecovery v1.3 (Win);
• Библиотека LibUSB;
Новое «железо» появляется каждый год, и Apple решили нанести удар посильнее с новым iPhone 3GS. Чем добавлять новые местные защиты, в Apple решили, что каждое восстановление ПО устройства будет проверяться на аутентичность и безопасность – самой Apple.
Это делается следующим образом: в процессе восстановления ПО пользователь видит на экане сообщение «Идёт проверка восстановления в Apple…», в течение которого используется специальный протокол вызов/ответ между айфоном и Apple: некоторая ”частичная выжимка” из файлов используемой прошивки посылается на сервер, который затем решает подписывать результат... или нет.
Это позволяет Apple не только защититься от установки левых (модифицированных) прошивок на устройство, но также позволяет им отзывать уже существующую на устройстве прошивку, запрещая пользователям восстанавливать её на устройстве при выходе более новой версии. Для этого им достаточно отказаться снова подписывать, скажем, прошивку iOS 3.1.3. после выхода следующей версии (в нашем случае,iOS4.0).
Однако, чтобы сделать эту модель безопасной, необходимо проверять, что система не стала объектом простой «атаки ответа»: при которой кто-то может сохранить копию подписи сервера Apple, а затем, возврашать её на все обращения.
Саурик сделал сервер, который дублирует функциональность сервера электронной подписи Apple, заменяя живой процесс получения подписи пакетным «on file»-процессом.
Соответственно, всё, что нам требуется, это заставить iTunes его использовать. К счастью большая часть операционных систем позволяет локально перенаправить запросы к определённым серверам, используя файл с названием hosts. Используюя это, мы можем перенаправить запросы к эппловскому серверу электронных подписей к серверу Сидии.
Так, просто откройте файл C:\Windows\System32\drivers\etc\hosts (Windows) или /etc/hosts (Mac OS X) и добавьте следующий код последней строкой файла:
Любой из этих:
74.208.10.249 gs.apple.com; 74.208.10.171 gs.apple.com; 74.208.105.171 gs.apple.com
На Mac OS это выглядит так:

Теперь, когла iTunes думает, что она говорит с Apple, она на самом деле говорит с Cydia. Эта нехитрая операция даст вам доступ к электронным подписям , сохраненным в пакетах на сервере Сидии.
Этот сервер также кэширует любые проходящие через него SHSH-комки (кванты подписанных данных), которые не были сохранены ранее, выступая полноценной заменой сервера Apple. Таким образом он подписывает ваше устройство на пакетный механизм «on file», снимая ограничения на будущие даунгрейды прошивки, даже если вы не используете джейлбрейк.
Чтобы откатиться с прошивки 4.0 на прошивку 3.1.3/3.1.2 в первую очередь необходимо одно и очень важное условие. Когда у вас стояла прошивка 3.1.3 или 3.1.2, то вы должны были сохранить файлы SHSH на серверах Саурика в Cydia, нажав на Make My Life Easier. Если после этого в Cydia вы видели надпись This Device Has a 3.1.3/3.1.2 ECID SHSH On File, то откатится вы сможете. Если вы этого не сделали и не видите/видели этой надписи, то можете дальше не читать, откатится вы не сможете.
Инструкция для Mac:(её мы и расмотрим более подробно,так сказать на моём примере)
Распакуйте архив и положите iRecovery на рабочий стол, затем установите библиотеки "LibUSB".
1 И так в начале мы имеем iPhone 3GS с установленной на нём iOS4:

Далее подключаем iPhone к iTunes:

2 Откройте iTunes и, зажав кнопку ALT, кликните мышкой "Восстановить" и выбирите прошивку 3.1.3.




3 В процессе восстановления, вы увидите всплывающее окно с ошибкой 1015, но не беспокойтесь, это совершенно нормально.

4 Нажмите кнопку ОК, чтобы закрыть всплывающее окно и закройте iTunes.
5 Теперь откройте Terminal и введите следующие команды:

cd Desktop
./iRecovery -s
setenv auto-boot true
saveenv
fsboot
exit
Вот что должно получиться:

Можно перезагружать iPhone.
После перезагрузки iPhone включиться потребуя активации:

Так как телефон у меня официальный ,каких либо манипуляций с телефоном мне не понадобилось,достаточно подключить его к iTunes имеющим доступ в интернет!


В итоге имеем iPhone c работающей iOS 3.1.3:

Все готово!
Инструкция для Windows:(схожа с инструкцией для Mac OS)
1 Распакуйте архив и положите iRecovery на рабочий стол, затем установите библиотеки "LibUSB".
2 Откройте iTunes и, зажав кнопку SHIFT, кликните мышкой "Восстановить" и выбирите прошивку 3.1.3.
3 В процессе восстановления, вы увидите всплывающее окно с ошибкой 1015, но не беспокойтесь, это совершенно нормально.
4 Нажмите кнопку ОК, чтобы закрыть всплывающее окно и закройте iTunes.
5 Теперь откройте Terminal и введите следующие команды:
cd Desktop
iRecovery.exe -s
setenv auto-boot true
saveenv
fsboot
/exit
Все готово, можно перезагружать iPhone.
Более глубокую информацию можно получить в другой нашей теме перейдя по ссылке- Сюда.