September 12, 2018

Xiaomi Anti-Rollback


Еще в июле Xiaomi выпустила MIUI 10 Global Beta 8.7.5 для восьми устройств Xiaomi. Когда пользователи установили обновление, они неосознанно прошили сборку с включенной защитой от отката. Пользователи, которым не понравилась MIUI 10 Global Beta, обнаружили неприятный сюрприз - когда они попытались поставить последний MIUI 9 Global Stable ROM: их телефоны стали кирпичами. Это был не тот кирпич, который вы могли бы исправить, восстановив резервную копию в TWRP, прошив новый ROM или используя MiFlash для восстановления заводского образа. Это жесткий, неустранимый кирпич, который требует использования режима EDL для исправления. Но режим EDL недоступен, если у вас нет авторизированной учетной записи, поэтому многие пользователи остались без возможности восстановить свой телефон, кроме как отправить его в авторизованный сервисный центр или оплатить использование чьей-либо учетной записи с доступом к EDL. В этой статье мы расскажем вам все, что вам нужно знать о новой анти-откатной защите Xiaomi.


Почему Xiaomi требует длительного времени ожидания разблокировки загрузчика, разрешения EDL и защиты от отката?

Китайский гигант электроники Xiaomi является самым популярным брендом смартфонов в Индии благодаря широкому выбору бюджетных и среднебюджетных устройств. Как и Huawei, Xiaomi также продает тонну смартфонов на внутреннем рынке Китая. Многие из этих устройств никогда не продаются за пределами Китая, но это не мешает им импортировать их. Неофициальные ритейлеры для продуктов Xiaomi появились на Aliexpress, Gearbest и на других веб-сайтах, что позволило любому из Китая купить новейшие продукты Xiaomi. Это создало проблему для компании, поскольку программное обеспечение, которое они отправляют на своих китайских устройствах под названием «MIUI China», не содержит Google Play Services, Google Play Store или языков. Таким образом, любой, кто импортирует устройство Xiaomi из Китая, не должен получать приложения и услуги Google за пределами страны.

Однако сторонние розничные продавцы выяснили, как это сделать, чтобы они могли убедить клиентов, что они продают устройства Xiaomi с «официальным» MIUI Global ROM. Розничные торговцы купили бы устройства Xiaomi навалом, разблокировали загрузчик, сами изменили программное обеспечение или запустили кастомный ROM, такой как Xiaomi.eu или другие, а затем продали устройство. Большинство потребителей не имеют никакого представления о том, что они используют неофициальное/модифицированное программное обеспечение, и вместо этого будут обвинять Xiaomi в отсутствии обновлений или ошибок, с которыми они сталкиваются. Хуже того, некоторые розничные торговцы намеренно связывают вредоносное ПО или рекламное ПО, чтобы они могли заработать немного денег. Репутация Xiaomi активно пострадала от этой практики, так как технические рецензенты и потребители попались на схемы этих розничных торговцев, компании нужно было придумать способ прекратить это.

Одним из решений является полное блокирование разблокировки загрузчика, что является решительным шагом, который недавно предпринял Huawei. Увидев успех своих брендов среди энтузиастов, Xiaomi ещё не перешла на блокировку разблокировки загрузчика. Вместо этого они внедрили несколько “КПП”, чтобы защитить пользователей от действий вредоносных розничных продавцов.


Время ожидания разблокировки загрузчика

Во-первых, они внедрили период ожидания для разблокировки загрузчика. Устройства Xiaomi, за исключением Xiaomi Mi A1, Xiaomi Mi A2 и Xiaomi Mi A2 Lite, которые используют Android One, требуют использования проприетарного инструмента Mi Unlock от Xiaomi для разблокировки загрузчика. После отправки запроса на разблокировку загрузчика Mi Unlock заставит вас ждать, прежде чем он проверит ваш запрос и разблокирует загрузчик. Время ожидания составляло от 3х до 15 дней в начале 2018 года, а в последнее время время ожидания увеличилось до 30 или до 60 дней в некоторых случаях. Добавление времени ожидания для процесса разблокировки загрузчика было эффективным в замедлении операций розничных торговцев, но это раздражает энтузиастов, которые хотят разблокировать загрузчик.

Разрешение EDL

Затем компания начала блокировать режим EDL на своих устройствах. EDL означает режим аварийной загрузки, и это альтернативный режим загрузки на всех устройствах Qualcomm. Чтобы использовать режим EDL, вам нужно найти так называемый «программер», который был одобрен OEM (в данном случае Xiaomi) для использования на вашем устройстве. Режим EDL очень мощный и очень низкоуровневый, и он регулярно используется сервисными центрами для ремонта устройств. Xiaomi не хочет, чтобы потребители покупали китайские версии своего оборудования с установленными Global ROMs, поэтому они сделали две вещи: сделали невозможным загрузку Global ROM, если устройство не является глобальной версией и сделали так, чтобы режим EDL не мог использоваться, если у вас нет авторизированной учетной записи Mi.

Anti-Rollback Protection

Наконец, в новейших версиях MIUI для новейших устройств Xiaomi реализована защита от отката. Вы, возможно, слышали о защите от отката раньше. Google добавила поддержку этой функции в Android 8.0 Oreo и сделала ее обязательной для устройств, запускаемых с Android Pie. Защита от отката Google - это функция Android Verified Boot 2.0, и это предотвращает загрузку устройства, если оно обнаруживает, что устройство было понижено до более старой, несанкционированной сборки программного обеспечения. Защита от отката необходима, чтобы злоумышленники не загружали более старое программное обеспечение на устройство, подверженное эксплойту. Самая большая разница между внедрением Google и Xiaomi заключается в том, что защита от отката Google отключена, если вы разблокируете загрузчик, а у Xiaomi не может. После установки сборки с защитой от отката, включенной на устройстве Xiaomi, возврата не будет. Например, защита от отката включена для Xiaomi Mi 8 и Xiaomi Redmi Note 5 Pro, начиная с MIUI 10 China 8.9.6 и MIUI 10 Global Beta 8.7.5 соответственно.

Все поддерживаемые в настоящее время устройства Xiaomi в конечном итоге получат защиту от отката, поэтому невероятно важно понять, как проверить его перед понижением версии прошивки и что вы можете сделать, если включена защита от отката.

Как проверить защиту от отката

Защите от отката, предотвращает загрузку устройства из более старого, небезопасного программного обеспечения, и мы сказали, что Verified Boot «обнаруживает» наличие более старого программного обеспечения. Как работает это обнаружение - Verified Boot имеет индекс отката, который сравнивается с индексом отката образов, которые будут установлены. В зависимости от того, как сравниваются показатели отката, произойдет следующее:

  • Если текущий индекс отката меньше, чем индекс отката в образе, которые вы будете шить, тогда образ будет успешно прошит, и текущий индекс отката будет увеличен, чтобы соответствовать новому индексу отката.
  • Если текущий индекс отката равен индексу отката в образах, которые будут установлены, тогда образ установится, а индекс отката не изменится.
  • Если текущий индекс отката больше, чем индекс отката �� образах, которые будут установлены, тогда прошивка будет отменена, если вы установите её через fastboot или Mi Flash. TWRP не проверяет показатели отката перед установкой, поэтому почти все кирпичи были результатом понижения версии прошивки через TWRP.

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

Как найти текущий индекс отката

  1. Перезагрузитесь в режим fastboot
  2. Введите следующую команду: fastboot getvar anti
  3. Если строка пуста, то антиблокировочная функция еще не включена. Если вы получаете число в выводе, то это ваш текущий индекс отката.

Как найти индекс отката в образах прошивок

  1. Загрузите «fastboot» ROM, который вы пытаетесь установить. ROM восстановления всегда имеет кодовое имя устройства в имени файла и заканчивается на .zip. ROM фастбута всегда имеет кодовое имя устройства в имени файла и заканчивается на .tar.gz.
  2. Извлеките flash-all.bat из архива .tar.gz. - 7Zip может легко справиться с этим.
  3. Откройте flash-all.bat в текстовом редакторе, например Notepad ++, и найдите следующую строку: set CURRENT_ANTI_VER = #
  4. Число (#) - это индекс отката версии MIUI, которую вы хотите выполнить. Если это число равно или больше вашего текущего индекса отката, тогда можно безопасно шить ROM в TWRP, Mi Flash и т. д. Если это число меньше вашего текущего индекса отката, тогда прошивать ROM НЕЛЬЗЯ.

Избегание полного, неустранимого кирпича должно быть простым, пока вы проверяете индексы отката перед понижением по TWRP. Чтобы быть в безопасности, вы должны придерживаться Mi Flash или fastboot, чтобы шить MIUI ROM, поскольку загрузчик вашего телефона имеет встроенные средства защиты, чтобы предотвратить переход к версии с более низким индексом отката.

Как Anti-Rollback Protection влияет на кастомные прошивки?

Если вы не планируете возвращаться на MIUI, то для вас мало что изменится. Если вы хотите выпустить AOSP ROM, например LineageOS, Pixel Experience, Resurrection Remix, Carbon ROM и т. д., Вам все равно нужно разблокировать загрузчик через Mi Unlock, загрузить TWRP, а затем прошить кастомный ROM. Поскольку защита от отката блокирует вас от прошивки образов в TWRP, вам сначала нужно замаскировать «фиктивный» образ. Фиктивный образ представляет собой пустой файл, который не служит никакой другой целью, кроме отправки команды загрузчику, чтобы он знал, что после этого он может принимать другие установки ROM.

Однако есть одно предостережение. Невозможно заранее сказать, увеличился ли индекс отката из-за обновленного загрузчика, модема, поставщика или других разделов. Имейте в виду, что кастомные ROM обычно изменяют только системные и загрузочные разделы, но чтобы ваше устройство действительно было безопасно с последними обновлениями и исправлениями для системы безопасности, вам иногда нужно будет переходить на стоковые образы MIUI.

Что мне делать, если телефон превратился в кирпич?

Если вы заблокировали свой телефон, таким образом включив защиту от отката, у вас очень мало вариантов:

  1. Отправьте свое устройство в авторизованный сервисный центр для ремонта. Сервисные центры имеют доступ к восстановлению вашего устройства в режиме EDL.
  2. Надеюсь, что будет способ обойти авторизацию EDL, чтобы вы могли вручную восстановить свое устройство.

Как вы можете видеть, окирпичивание телефона путем запуска защиты от отката - это не шутка. Вам действительно нужно быть осторожным.


Это был перевод статьи, сделанный каналом @android_core

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