Как легко получать OTA-обновления на рутированном Xiaomi Mi A2 с помощью Magisk

Применение OTA-обновлений к укоренившемуся Xiaomi Mi A2 может быть большой головной болью, так как это может повлечь за собой отмену рутирования вашего устройства и прохождение всех этапов для его рутинга. К счастью, есть способ установить Magisk, который поддерживает обновления OTA.

Поэтому, если вы хотите получить root права на Xiaomi Mi A2, имея возможность применять OTA-обновления без рутирования вашего устройства, внимательно следуйте нашему простому руководству ниже.

Требования:

  • ADB и Fastboot (см. Руководство Appual «Как установить ADB в Windows»)
  • MiFlash Tool

Во-первых, вам нужно разблокировать загрузчик - но вы должны быть очень осторожны, а также знать, что в последнее время программа разблокировки загрузчика Xiaomi стала очень медленной. Получение кода разблокировки загрузчика может занять несколько недель . Вы также должны знать о ARB ( механизм защиты от отката) в устройствах Xiaomi.

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

Перейдите в «Настройки»> «Система»> «О телефоне»> нажмите «Номер сборки» 7 раз, пока режим разработчика не будет разблокирован.

Теперь перейдите в «Настройки»> «Параметры разработчика»> «Включить разблокировку OEM».

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

Подключите Xiaomi Mi A2 к ПК через USB и запустите терминал ADB ( удерживая Shift + правый клик в основной папке ADB и выберите «Открыть окно команд здесь»).

В терминале ADB введите следующую команду: fastboot oem unlock

Это перезагрузит ваш телефон и сотрет все ваши данные при разблокировке загрузчика.

Установка Magisk

Загрузите и установите последнюю версию Magisk Manager APK на свой телефон.

Теперь загрузите пропатченный boot.img из следующих загрузок - в качестве альтернативы мы покажем вам, как самостоятельно патчить оригинальный boot.img в списке загрузок boot.img.

При загрузке пропатченного boot.img вы должны быть полностью уверены, что он содержит тот же номер сборки, что и вы. Поэтому, прежде чем продолжить, проверьте свой номер сборки в меню «Настройки»> «О телефоне» и не прошивайте файл непосредственно в память телефона, так как Magisk не будет работать должным образом. Следуйте нашим инструкциям очень внимательно и точно так, как они написаны.

Вы должны загрузить пропатченный boot.img в папку ADB на вашем ПК.

  • patched_boot 9.6.4.0 (обновление от 2018 года) - исправлено с помощью Magisk 17.1
  • patched_boot 9.6.6.0 (обновление за август 2018 года) - исправлено с помощью Magisk 17.1
  • patched_boot 9.6.8.0 (обновление от 2018 года) - исправлено с помощью Magisk 17.1

Если вы случайно перепрограммировали неправильный boot.img, вы можете прошить оригинальный boot.img из списка ниже:

  • оригинальный boot.img 9.6.4.0 (обновление от 2018 года) - взято из fastboot ROM
  • оригинальный boot.img 9.6.6.0 (обновление за август 2018 года) - взят из обновления OTA
  • оригинальный boot.img 9.6.8.0 (обновление от 2018 года) - взят из обновления OTA

Помните, что если вы делаете патч boot.img вручную, вам понадобится ваш оригинальный boot.img - вы можете найти его в официальном zip-файле fastboot ROM для ромашки . Но убедитесь, что загруженная версия ПЗУ имеет тот же номер сборки, что и на вашем телефоне. Так что либо загрузите оригинальный boot.img с тем же номером сборки, что и ваш телефон, либо обновите / понизьте версию.

После того, как у вас есть оригинальный boot.img ( извлеченный из официального zip- файла fastboot ROM), вам необходимо скопировать его во внешнюю память вашего телефона (SD-карту).

Теперь откройте приложение Magisk Manager, и оно спросит, хотите ли вы установить Magisk - примите установку, затем «Patch Boot Image File» и выберите файл boot.img, который вы перенесли.

Процесс должен занять около 1 минуты, поэтому закройте его, когда закончите. В памяти вашего телефона в каталоге Download вы найдете файл «patched_boot.img», который вам нужно перенести на ваш компьютер. Поместите его в свою основную папку ADB.

Теперь перезагрузите ваше устройство в режиме Fastboot ( помните, Power + Volume Down) и запустите терминал ADB на вашем ПК.

В терминале ADB введите следующую команду: fastboot boot patched_boot.img

Теперь ваш телефон должен загрузиться нормально. Когда вы вернетесь в систему Android, откройте приложение Magisk Manager, и оно попросит еще раз установить Magisk. Далее выберите «Установка»> «Прямая установка» и перезагрузите компьютер после завершения.

Теперь в качестве меры предосторожности для будущих обновлений OTA перейдите в Настройки> Система> Параметры разработчика> отключить автоматические обновления системы. Вам следует только установить OTA-обновления вручную . Никогда не разрешайте автоматическое OTA на рутованном устройстве Android.

Как применять будущие OTA-обновления

Обратите внимание, что OTA-обновления будут работать только в том случае, если все разделы на устройстве не тронуты! Magisk может восстановить ваш оригинальный boot.img, но если вы каким-либо образом изменили раздел / system, например, вручную отредактировали build.prop, OTA откажется от установки.

Вы можете попытаться применить OTA-обновления без необходимости прошивки всего исходного ПЗУ fastboot, если вы перепрограммируете только измененные разделы, например, перепрограммируете только раздел / system из исходного ПЗУ fastboot, используя соответствующий файл .img из исходного ПЗУ .zip файл.

Поэтому, когда станет доступно новое OTA-обновление, которое вы хотите установить, вам нужно запустить Magisk Manager и нажать «Удалить> Восстановить образы», ​​но пока не перезагружать устройство.

Закройте Magisk и зайдите в «Настройки устройства»> «Система»> «Обновление системы» и установите обновление OTA. Когда обновление загрузится, начнется двухэтапное обновление. Мы рекомендуем положить чашку кофе и, возможно, насладиться быстрой игрой Madalin Stunt Cars 2 или попробовать себя в «Невозможной викторине» ( удачи!)

После завершения этапов обновления будет предложено перезагрузить. Не перезагружайте ваше устройство . Запустите Magisk Manager еще раз, затем нажмите «Установить»> «Установить»> «Установить в неактивный слот» (после OTA), и только после этого вы сможете выполнить процедуру перезагрузки.

После перезагрузки Xiaomi Mi A2 у вас должна появиться обновленная версия Android с неактивным Magisk.

Поиск проблемы

Примечание. Прежде чем приступить к выполнению любой из этих операций, вам необходимо отключить все средства защиты экрана, которые у вас есть на вашем устройстве (блокировка экрана, PIN-код, пароль, отпечаток пальца и т. Д.), Поскольку вы рискуете вызвать проблемы с шифрованием ваших данных. Настоятельно рекомендуется сначала создать резервную копию.

Если вы не следовали этому руководству тщательно, вы можете столкнуться с некоторыми проблемами.

Когда будет найдена новая версия, программа обновления проверит, не повреждены ли все разделы на устройстве. Если есть раздел, который был изменен, программа обновления OTA не продолжит установку;

Как правило, два раздела, обычно изменяемые пользовательским моддингом, это загрузочный раздел (там, где установлены Magisk и TWRP) и системный раздел (когда вы изменяете файл конфигурации, добавляете или удаляете системное приложение и т. Д.)

Системный раздел, измененный только с помощью модулей Magisk, фактически не затрагивается, поскольку Magisk регистрирует все изменения в / system в файле в разделе / ​​data, а затем обманывает Android, чтобы убедиться, что эти изменения действительно применяются к / system;

Вместо этого загрузочный раздел действительно изменен, но если вы установите Magisk, следуя этому руководству, Magisk сохранит копию нетронутого загрузочного раздела и восстановит ее, прежде чем применять OTA-обновление.

Теперь, если вы не следовали этому руководству для установки Magisk и устанавливали его другими способами, Magisk может предупредить вас, что он не может восстановить оригинальный boot.img (загрузочный раздел), когда вы пытаетесь применить OTA-обновление.

Чтобы это исправить, вы можете напрямую прошить ванильный (оригинальный, неизмененный, нетронутый) boot.img, взятый из пункта 6 этого руководства, используя следующие команды:

 fastboot getvar текущий слот fastboot flash boot_? boot.img 

Первая команда скажет вам, какой текущий слот используется ( a или b ), вторая команда высветит исходную загрузку в телефон, но вы должны изменить «?» В команде с помощью a или b (т.е. текущий слот, предоставленный первой командой).

Помните, что версия файла boot.img должна соответствовать версии сборки Android, которая в данный момент работает на вашем телефоне.

Если обновление OTA все равно откажется от применения, возможно, вы что-то изменили непосредственно в разделе / ​​system (например, вы изменили что-то в build.prop, не используя для этого модуль Magisk).

В этом случае вам нужно прошить оригинальный system.img в телефоне с помощью следующих команд:

 fastboot getvar текущий слот fastboot flash system_? system.img 

и, как и прежде, первая команда сообщит вам правильный слот для использования вместо «?» во второй команде.

Здесь вы можете найти system.img, извлеченный из архива OTA-обновлений (вместе с каждым другим файлом .img внутри него):

  • 9.6.8.0 (сентябрь 2018 г.). Дамп обновления OTA в виде файлов .img.
  • 9.6.6.0 (август 2018 г.). Дамп обновления OTA в виде файлов .img.

Если вы хотите получить system.img самостоятельно, вы можете найти его внутри образов fastboot, но обычно они не обновляются ежемесячно, как OTA-обновления. Но вы можете извлечь system.img непосредственно из почтовых индексов OTA, найденных в этой теме, используя скрипты Python, найденные здесь.

Чтобы скрипты Python работали в Debian / Ubuntu и его производных, вам нужно скачать и «extract_android_ota_payload.py», и «update_metadata_pb2.py», дать им свойство выполнения и затем установить пакет «python-protobuf». После этого вы можете дать команду распаковать файл payload.bin (который вы должны извлечь из почтового индекса OTA-обновления):

 ./extract_android_ota_payload.py /path/to/payload.bin 

Это извлечет в текущем каталоге все файлы .img внутри payload.bin, включая system.img

Я не знаю, как действовать в Windows, возможно, вам нужно только установить последнюю версию Python2, и скрипт будет работать.

В крайнем случае вы можете прошить MiFlash напрямую самым последним доступным образом быстрой загрузки (даже если он старше вашей текущей версии). Используйте скрипт « flash_all.bat », но перед тем, как сделать резервную копию ваших данных, потому что телефон будет полностью перезагружен.

Если вы не хотите рисковать, не создавая резервную копию, используйте сценарий « flash_all_except_storage.bat » при перепрошивке, чтобы сохранить все свои данные, но при этом имейте в виду, что иногда вы больше не сможете получить доступ к данным. из-за проблем с шифрованием.

Сразу после вспышки вы можете начать следовать указаниям из пункта 5 или 6.

Не должно быть проблемой понижения версии сборки через fastboot, если основная версия Android остается прежней (Oreo 8.1 на данный момент).

Запатентованные и оригинальные загрузочные файлы для Mi A2 jasmine (не для использования с Mi A2 Lite daisy, вы можете найти файлы для daisy в первом разделе этого руководства).

  • patched_boot 9.6.9.0 (июльское обновление) - исправлено с помощью Magisk 17.1
  • patched_boot 9.6.10.0 (августовское обновление) - исправлено с помощью Magisk 17.1
  • оригинальный boot.img 9.6.9.0 (июльское обновление) - взят из fastboot ROM
  • оригинальный boot.img 9.6.10.0 (августовское обновление) - взят из fastboot ROM

Интересные статьи