Все про відкат. Частина 1. Невеликий лікнеп

Як відомо, Apple не дозволяє встановлювати старі версії прошивок. Все це зроблено з міркувань безпеки, і завдяки такому підходу більшість користувачів можуть не турбуватися за збереження своїх персональних даних. Як саме працює система підписування прошивок?

Процес оновлення відбувається наступним чином: iTunes або сам пристрій (при оновленні по «повітрю») звертається до спеціального сервера Apple і запитує перевірку цифрового підпису. У процесі надсилається ідентифікатор пристрою (ECID), і тому відповідь сервера унікальна для кожного запиту. Якщо все нормально, то відбувається цифровий підпис прошивки (SHSH) і починається процес встановлення.


Зрозуміло, таку перевірку проходять тільки актуальні версії iOS. Дізнатися, які прошивки зараз підписуються, можна тут: https://ipsw.me/.

Чи можна обійти цю систему?

Так, SHSH з сервером Apple може запросити не тільки iTunes, але і будь-яка інша програма. Розробником 1Conan був зроблений інструмент, який дозволяє зберегти SHSH2-сертифікати: https://tsssaver.1conan.com/. Для використання цього методу вам потрібно дізнатися ECID вашого iOS-пристрою.

Як дізнатися ECID вашого iPhone, iPad або iPod Touch?

  1. Підключіть iOS-пристрій до комп'ютера.
  2. Запустіть iTunes і виберіть вкладку «Перегляд» у лівій панелі.
  3. Натисніть у полі «Номер серії» на вкладці «Огляд», поки не з'явиться номер ECID.

Як зберегти SHSH2-підписи?

  1. Перейти на сайт - https://tsssaver.1conan.com/.
  2. Введіть свій ECID у поле iTunes (Hex).
  3. Тепер залишилося вибрати модель свого пристрою.
  4. Відразу після цього сертифікати можна буде завантажити.

Важливо розуміти, що цей інструмент дозволяє зберегти тільки SHSH2 поточних версій, однак після того, як прошивка перестане підписуватися, то сертифікати не втратять свою актуальність і можна буде зробити відкат.

Крім збереження сертифікатів, нам потрібно буде провести ще одну операцію - налаштувати nonce. Як це робиться? Для кожної прошивки свій інструмент для цього.

Власне, самі утиліти:

https://github.com/arx8x/v0rtexNonce (iOS 10.3-10.3.3)
https://github.com/Siguza/PhoenixNonce (iOS 9.3.4-9.3.5)
https://github.com/julioverne/NonceSet112/ (iOS 11.1.1- 11.1.2)
https://github.com/Siguza/cl0ver (iOS 9.0-9.3.4)


Так що ж таке nonce? Кожен раз, коли ваш пристрій завантажується в режимі Recovery, він генерує значення nonce (унікальне число кожен раз). У нашому збереженому SHSH2 є рядок Generator і ID. Наше завдання - зробити число nonce і число ID однаковими. Якщо ви використовуєте Jailbreak-пристрій, можна це зробити за допомогою програм, перелічених вище.

У наступній частині ми застосуємо спосіб на практиці і покажемо процес відкату на iPhone 5s з 11.1.2 до 10.3.3/10.2.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND