Як легко отримувати оновлення OTA на вкорінених Xiaomi Mi A2 за допомогою Magisk

Застосування оновлень OTA до вкоріненого Xiaomi Mi A2 може бути великим головним болем, оскільки може призвести до відкорінення вашого пристрою та проходження всіх кроків, щоб виконувати його знов. На щастя, існує спосіб встановити Magisk, який підтримує оновлення OTA.

Тож якщо ви хочете викорінити Xiaomi Mi A2, маючи змогу застосовувати оновлення OTA, не знімаючи з нього пристрій, дотримуйтесь уважної інструкції нижче.

Вимоги:

  • ADB та Fastboot (див. Посібник Appual Як встановити ADB в Windows)
  • Інструмент MiFlash

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

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

Перейдіть у Налаштування> Система> Про телефон> 7 разів торкніться "Номер збірки", поки не буде розблокований режим розробника.

Тепер перейдіть у Налаштування> Параметри розробника> увімкніть розблокування OEM.

Тепер вимкніть свій пристрій і утримуйте кнопку «Вниз» + кнопку живлення. Відпустіть кнопки, коли ви перейдете до меню Fastboot.

Підключіть свій 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 - ви можете знайти його в офіційному поштовому файлі ROM для швидкого завантаження для Дейзі . Але переконайтесь, що у завантаженої версії ROM той же номер збірки, що і у Вашого телефону. Тому завантажте оригінальний файл boot.img з тим самим номером збірки, що і ваш телефон, або оновіть / зменшуйте версію.

Після того, як у вас є оригінальний boot.img ( витягнутий з офіційного ZIP-файлу швидкої завантаження), вам потрібно скопіювати його у зовнішню пам'ять телефону (SD-карта).

Тепер відкрийте додаток Magisk Manager, і він запитає, чи хочете ви встановити Magisk - прийміть установку, потім “Patch Boot Image File” та оберіть файл boot.img, який ви перенесли.

Процес повинен зайняти близько 1 хвилини, тому завершіть його, коли це буде зроблено. У пам'яті телефону в каталозі завантажень слід знайти файл під назвою "patched_boot.img", який потрібно перенести на ваш ПК. Помістіть його всередині основної папки ADB.

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

У терміналі ADB введіть таку команду: fastboot boot patched_boot.img

Тепер ваш телефон повинен нормально завантажуватися. Після повернення в систему Android відкрийте додаток Magisk Manager, і він ще раз попросить встановити Magisk. Вперед та виберіть «Встановити»> «Пряма інсталяція» та перезавантажте, коли це завершено.

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

Як застосувати майбутні оновлення OTA

Будь ласка, майте на увазі, що оновлення OTA працюватимуть лише в тому випадку, якщо всі розділи на пристрої недоторкані! Magisk здатний відновити ваш початковий boot.img, але якщо ви будь-яким чином змінили / системний розділ, наприклад, вручну редагувати build.prop, OTA відмовиться встановлювати.

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

Отже, коли з'явиться нове оновлення OTA, яке ви хочете встановити, вам потрібно запустити Magisk Manager і натиснути «Видалити> Відновити зображення», але ще не перезавантажуйте пристрій.

Закрийте Magisk і перейдіть у Налаштування пристрою> Система> Оновлення системи та встановіть оновлення OTA. Коли оновлення завантажиться, воно розпочне двоступеневе оновлення. Ми рекомендуємо покласти на горщик кави і, можливо, насолодитися швидкою грою Madalin Stunt Cars 2, або спробувати все можливе у вікторині "Неможливо" ( удачі!)

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

Після того, як ваш Xiaomi Mi A2 перезавантажиться, у вас має бути оновлена ​​версія Android, поки Magisk ще не працює.

Вирішення проблем

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

Якщо ви не дотримувалися цього посібника ретельно, у вас можуть виникнути деякі проблеми.

Коли буде знайдена нова версія, оновник перевірить, чи всі розділи на пристрої недоторкані. Якщо є розділ, який був змінений, оновлення OTA не буде продовжувати встановлення;

Зазвичай два розділи, які зазвичай модифікуються користувальницьким модудом, - це завантажувальний розділ (саме там встановлені Magisk та TWRP) та системний розділ (коли ви змінюєте конфігураційний файл, додаєте чи видаляєте системну програму тощо).

Системний розділ, модифікований лише за допомогою модулів Magisk, є фактично недоторканим, оскільки Magisk реєструє всі зміни до / системи у файлі в розділі / 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 поточний слот flashboot flash system_? system.img 

і, як і раніше, перша команда підкаже правильний слот, який слід використовувати замість "?" у другій команді.

Тут ви можете знайти system.img, витягнутий з поштового індексу оновлення OTA (разом з усім іншим .img-файлом всередині цього):

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

Якщо ви хочете отримати system.img самостійно, ви можете знайти його всередині зображень швидкого завантаження, але зазвичай вони не оновлюються щомісяця, як оновлення OTA. Але ви можете витягти system.img безпосередньо з оновлюваних файлів OTA, знайдених у цій темі, використовуючи тут знайдені скрипти Python.

Для того, щоб сценарії Python працювали в Debian / Ubuntu та похідних, вам потрібно завантажити як "extra_android_ota_payload.py", так і "update_metadata_pb2.py", надати їм властивість виконання та встановити пакет "python-protobuf". Після цього ви можете надати цю команду для розпакування файлу payload.bin (який потрібно витягти з zip-оновлення для оновлення 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.

Пониження версії збірки через швидку завантаження не повинно бути проблемою, доки основна версія Android залишається такою ж (Oreo 8.1 на даний момент).

Виправлені та оригінальні завантажувальні файли для жасмину Mi A2 (не для використання з ромашкою Mi A2 Lite, ви можете знайти файли для ромашки в першому розділі цього посібника).

  • 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

Цікаві Статті