Добрий день. Сьогодні я хочу вам донести інформацію про нову структуру оновлення смартфону Мі А1, що виглядає таким самим чином, як і у Google Pixel.
     Почнемо. Ви вже напевно чули, що в Xiaomi Mi A1 "щось не так". Він відрізняється від інших пристроїв Xiaomi, та й в цілому, від більшості інших пристроїв.
На ньому якось дивно встановлюються поновлення, всередині OTA образів інша структура, установка TWRP, рут-прав і модів, розробка кастомних ядер і прошивок - викликають якісь незвичні складності. Всі говорять про якісь букви "А, В", слоти, дві системи та інших речах.
Що ж, давайте спробуємо у всьому цьому розібратися.

     Для початку познайомимося з таблицею розділів в Xiaomi Mi A1, щоб наочно побачити відмінності в порівнянні з іншими пристроями.
Якщо ви взагалі не знайомі зі структурою розділів в Linux-подібних системах, і Android зокрема, - раджу пошукати інформацію про це в Google, благо її повно.
     Таблиця розділів Xiaomi Mi A1:
Нас же цікавлять конкретні її складові (розділи) для наочності та демонстрації.


     Як видно з витримки вище, - є два, незалежних між собою, слоти (групи розділів), які містять в собі основні, оновлювані компоненти прошивки:
     Bootloader - x2
     Radio - x2
     Boot - x2
     System - x2

     Положення:
1. Між слотами, як система, так і сам користувач можуть перемикатися.
2. Спочатку, слоти повністю ідентичні між собою. Відмінності з'являються після застосування будь-якого OTA оновлення системи.
3. Слоти ізольовані (за замовчуванням) між собою. Стан і цілісність одного слота ніяк не впливає на інший. За винятком застосування OTA оновлень.

     Seamless система оновлень на Xiaomi Mi A1:
     Отже, з розділами і слотами розібралися. Але що ж там з оновленнями, напевно їх теж торкнулися зміни, зважаючи на описаного вище?
Так, OTA оновлення на пристроях з A / B структурою кардинально відрізняються від того, що ми можемо бачити на інших пристроях.

     Положення:
1. Всі OTA оновлення встановлюються в неактивний, протилежний слот. Тобто - оновлюється лише один слот.
2. Всі OTA оновлення встановлюються у фоновому режимі при робочій системі, без перезавантаження пристрою. У даного процесу немає пріоритету, а тому, установка може бути не швидкою.
3. Всі OTA оновлення встановлюються в два етапи: 1 - Завантаження оновлення. 2 - Фонове застосування оновлення в неактивний, протилежний слот.
4. При перезавантаженні пристрою, воно автоматично завантажиться в оновлений слот.
5. OTA оновлення бувають двох типів:
"Повні" - містять повний образ системи.
"Інкрементальні" - містять дельту внесених змін у вигляді частин коду.
6. dm-verity гарантує надійність застосування оновлення. При скомпрометованій системі або пошкодженому образі - оновлення не встановиться, або оновлюваний слот не запуститься. Можливе повернення до робочого слоту.

     Android 8.0 - трансляція оновлень:
     Починаючи з версії Android 8.0 можлива (але не обов'язкова) трансляція оновлень з одночасним їх застосуванням (прямий запис).
Це означає, що оновлення не потребують попереднього їх завантаження, а застосовуються "на льоту".
© за матеріалами з сайту 4pda

Про установку оновлень для різних ситуацій (звичайний та просунутий користувачі)

     Отже. Ви отримали (або просто вийшло) нове оновлення офіційної прошивки. І ви дуже хочете оновиться.
Однак вас терзають сумніви, плодяться питання і лякає невідомість. Встановиться оновлення?
     Поточний стан завантажувача (locked / unlocked) при установці оновлень не має ніякого значення.
Розблокувати завантажувач можна за інструкцією.

     Варіанта тут два:
     Варіант 1: Звичайний користувач.
У мене повністю заводський, чистий пристрій. Рут не ставив, в системі нічого не міняв. Нікуди не лазив.
Вердикт: Оновлення встановиться без будь-яких проблем. Встановлюйте його в штатному режимі.

     Варіант 2: Просунутий користувач.
TWRP ставив. Рут ставив. Xposed ставив. Видалив половину додатків. Та й взагалі, всіляко чіпав систему.
Вердикт: Оновлення встановиться, або після установки призведе до бутлупу.

Варіанти вирішення:
     Тепличні умови:
У вас змінено / модифіковано лише ядро. / System знаходиться в невинно-чистому стані.
Тобто, ви на 100% впевнені, що ні ви, ні будь-яка програма, що працює з рут-правами, не вносили зміни в системний розділ.
1. відновлюєте оригінальне ядро. Бекап якого робить і SuperSU, і Magisk.
2. Установлюєте оновлення, що вам надійшло.
3. Заново отримуєте рут-права.
Якщо цей спосіб не спрацював - значить ви помилилися і системний розділ таки був скомпрометований.

     Умови 99% інших просунутих користувачів:
Системний розділ (/system) скомпрометований.
Виходячи з того, що Xiaomi викладає "нові" образи прошивок з затримкою в місяць:
1. Прошиваємо останній доступний fastboot образ прошивки за інструкцією .
2. Оновлюємось по OTA до актуального (потрібного вам) поновлення.
3. Заново встановлюємо усі свої "просунуті штучки". Якщо ви не встановлюєте, тим самим перейшовши з розряду "просунутий" в розряд "звичайний користувач".
© за матеріалами з сайту 4pda

Rate

Number of participants 2 Experience +26 Pack Reason

View Rating Log