Небольшая инструкция как устанавливать OTA апдейты, если у вас установлено кастомное рекавери TWRP, Root, Xposed
OTA - Over the Air. Возможность обновления через беспроводные соединения. Посредством OTA на телефон приходят инкрементальные обновления. В скрипте указано с какой версии до какой этот файл будет обновлять. Не стоит применять обновление, если у вас исходная версия прошивки отличается от того что указано в файле (ниже выделены зеленым версии прошивки в файле updater-script).
При вышеозначенных условиях применение немодифицированного OTA апдейта будет черевато бутлупом (невозможность загрузить систему).
Все операции по редактированию файлов OTA можно проводить на телефоне - для этого необходимы:
- Файловый менеджер, способный работать из-под рута, умеющий распаковывать и запаковывать в zip
Итак, вы получили уведомление о том, что доступно обновление для вашего телефона.
1. Скачиваем его, но не устанавливаем. Обновление скачивается в каталог /cache с расширением файла .dlpkg. Копируем этот файл в память телефона (internal storage), переименовываем в update.zip
Перед обновлением вы должны убрать все правки которые вы делали в системном разделе (root, Xposed, снесенные приложения и т.д.)
2. Полный unroot:
Открываем SuperSU, выбираем настройки, скроллим вниз до секции Cleanup и выбираем Full unroot. Ждем когда отработает команда
3. Удаляем Xposed:
Скачиваем официальный деинсталлятор Xposed для x86 (всё что на чипсетах Intel идет как x86). И прошиваем его через TWRP. Более подробно можно ознакомится в теме на XDA, там же можно скачать обновленный деинсталлятор. Обратите внимание, скачивать необходимо файл вида xposed-uninstaller-xxx-x86.zip.
4. Изменяем OTA файл:
Распаковываем файл из пункта 1. Переходим в каталог META-INF/com/google/android/ открываем в тесктовом редакторе файл updater-script. Удалите строки со второй по пятую включительно:
getprop("ro.build.fingerprint") == "asus/WW_Z00A/Z00A:5.0/LRX21V/2.20.40.156_20151218_8265_user:user/release-keys" ||
getprop("ro.build.fingerprint") == "asus/WW_Z00A/Z00A:5.0/LRX21V/2.20.40.160_20151225_1227_user:user/release-keys" ||
abort("Package expects build fingerprint of asus/WW_Z00A/Z00A:5.0/LRX21V/2.20.40.156_20151218_8265_user:user/release-keys or asus/WW_Z00A/Z00A:5.0/LRX21V/2.20.40.160_20151225_1227_user:user/release-keys; this device has " + getprop("ro.build.fingerprint") + ".");
getprop("ro.product.device") == "Z00A" || abort("This package is for \"Z00A\" devices; this is a \"" + getprop("ro.product.device") + "\".");
Сохраняем изменения, закрываем файл. Открываем файл заново - необходимо убедиться, что после внесенных изменений файл начинается со следующих строк:
mount("ext4", "EMMC", "/dev/block/by-name/system", "/system", "max_batch_time=0,commit=1,data=ordered,barrier=1,errors=panic,nodelalloc");
ui_print("Verifying current system...");
Запаковываем измененные файлы обратно в update.zip
5. Загружаемся в TWRP и прошиваем получившийся update.zip как обычно.