0

Обновление по воздуху

  • Что такое OTA
  • Как обновлять

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

Что такое ОТА

В переводе с английского Over The Air или ОТА обозначает «по воздуху». Иначе говоря, установка ПО на Xiaomi происходит через Интернет (3G, EDGE, Wi-Fi). Она не предполагает использование дополнительного устройства и синхронизацию с ним. Но кроме доступа в сеть обязательно должен быть mi-аккаунт. Через него будет происходить не только совершенствование системы, но и оповещение о вновь выходящих продуктах, относящихся к ОС. Способ позволяет сохранить все данные владельца и занимает гораздо меньше времени. Более того, он очень простой в своем использовании, с которым справится любой дилетант.

Сейчас самой современной прошивкой у производителя Xiaomi является MIUI 9, поэтому описание «обновления по воздуху» будет проходить на ее примере. Стоит оговориться, что не все гаджеты «потянут» современную ОС по причине слабого процессора.

Как обновлять

Как говорилось выше, обновление Xiaomi через ОТА простое и укладывается в два шага.

1. Максимально зарядить батарею. Для проведения работ можно обойтись 30% уровнем (для ряда моделей 60%), но лучше не рисковать. Если смартфон разрядится в процессе работы, то прошивка установится некорректно.

2. Пройти путь «Меню» – «Настройка» – «О телефоне» – «Обновления системы» – «Проверить сейчас». Система увидит программный файл. Следует согласиться с предложением об установке, выполнить ее и произвести перезагрузку.

Для каждой модели телефонов Ксиаоми имеются пределы в совершенствовании, связанные как с мощностью процессора, так и с доступностью. Сейчас бесполезно искать на сайтах в Интернете официальные новинки ПО для девайсов Ксиаоми моделей Redmi 3 Pro, Redmi Note 2, Redmi 3S. Пользователь сможет найти лишь китайские. Желающему усовершенствовать девайс, нужно просто ждать и регулярно проверять профильные сайты. Эти действия будут явно лучше, чем интерфейс на китайском языке.

Установить новое ПО возможно вручную. Предполагается ввод устройства в режим Recovery и Fastboot. Способ сложнее и требует определенных навыков и базовых знаний в начинке мобильных аппаратов. Для этого варианта также потребуются файлы с новыми ОС. Поэтому, если таковых нет, то проблему невозможности усовершенствовать Ксиаоми ввиду отсутствия ПО, ручной аналог не решит.

Статьи и Лайфхаки Периодические обновления давно стали неотъемлемым атрибутом любой операционной системы. Добавление новых функций, латание дыр в безопасности, поддержка свежих аппаратных компонентов – без этого не обходится ни один современный компьютер.
Но у мобильных устройств на базе ОС Android есть своя специфика.
Еще несколько лет назад систему обновляли, главным образом, подключив к ПК. Понятно, что такое решение не соответствует современным реалиям, поэтому были введены обновления под названием OTA.

Что это такое


Аббревиатура OTA происходит от английского «Firmware Over The Air», означающего дословно «фирменное программное обеспечение по воздуху».
То есть фактически это система распространения обновлений от разработчика на устройства пользователей через любой канал доступа в интернет, поддерживаемый данным гаджетом.
Это может быть Wi-Fi, 3G, LTE, теоретически даже GPRS, если кому-то придет в голову такая фантазия.
Она исполняет ряд функций:

  • Своевременное информирование пользователя о наличии доступных обновлений.
  • Обеспечение загрузки необходимых данных на устройство.
  • Проверка возможности установки патча на данную версию ОС и модель смартфона либо планшета.
  • Выполнение процесса установки, а при необходимости – сохранение возможности отката.

Для их выполнения архив, в котором передаются данные, имеет соответствующий формат, содержащий, кроме самих системных файлов, еще некоторое количество сервисной информации, которая и будет использоваться при инсталляции.

Что всё это значит для пользователя


Разработчики позаботились о том, чтобы число необходимых действий было сведено к минимуму. Поэтому процедура не слишком отличается от той, которая привычна, например, при установке обновлений программ для Windows.
Читайте также: Зачем обновлять андроид и нужно ли вообще это делать.
В меню настроек любого гаджета обязательно имеется пункт » О телефоне» или «О планшете». Помимо разнообразной полезной (или не очень) информации там имеется раздел «Обновление системы», в котором можно найти кнопку проверки наличия патчей.
В случае, если они доступны, будет достаточно нажать «Обновить» — всё прочее система сделает сама.

Когда обновление «по воздуху» невозможно

Выполняя некоторые действия со своим устройством, пользователь должен понимать, что это может стать причиной недоступности OTA обновлений.
В противном случае он окажется неприятно удивлен. Дело в том, что при установке патчей производится проверка целостности системных файлов, аутентичности версии ОС, а также наличия/отсутствия некоторых «дыр» в безопасности девайса.
Читайте также: Шесть причин не покупать Android-смартфон.
OTA обновления не будут устанавливаться, если:

  • Установлена кастомная либо девелоперская версия прошивки.
  • Аппарат подвергнут рутированию – получены права суперпользователя.
  • Произведена разблокировка загрузчика.
  • Какие-либо системные файлы, установленной ОС, изменены.

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

А стоит ли их устанавливать?


Мифы-страшилки, кочующие по сети, в один голос уверяют: это может быть опасно, гаджет может вообще не загрузиться после установки обновления! Лучше не рисковать!
На практике всё совершенно не так мрачно. Да, от проблем при обновлениях никто не застрахован, даже расчудесная операционная система iOS.
Но мало-мальски серьезные последствия носят характер исключения, и не устанавливать патчи так же «разумно» и «предусмотрительно», как отказываться от полетов только потому, что самолеты, видите ли, иногда падают. Больше проблем можно получить из-за незакрытых «дыр».
Следует помнить и о том, что единомоментная тотальная установка обновлений производителями практикуется достаточно редко. Вначале, после завершения тестирования, патч ставят небольшому числу пользователей, выбираемых случайным образом – порядка 1%.
Если никаких жалоб не поступает, сообщение о наличии обновления рассылают еще 25%, затем – 50%, и под конец – всем владельцам устройств соответствующих моделей.
Да, есть вероятность попасть в тот самый 1% «счастливчиков», получивших сбойный архив, но в любом случае производитель исправит выявленную проблему в кратчайшие сроки.

В заключение

Обновлять систему не только можно, но и нужно, а потому при наличии соответствующего сообщения следует уделить этому вопросу немного времени.
Обязательно стоит позаботиться о наличии стабильного соединения с интернетом, ведь архивы могут быть весьма увесистыми.
Читайте также: Что такое Face Unlock в смартфоне.
А тем, кто по каким-то причинам лишился возможности установки OTA обновления, остается только пожелать, чтобы они знали, что делают и к каким последствиям это может привести.

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

Первыми новые версии Android традиционно получают последние из устройств Nexus. Когда новая версия прошивки готова для широкой публики, полный образ размещается по адресу developers.google.com/android/nexus/images. Вскоре после этого начинается распространение прошивки по воздуху. Как рассказывает один из разработчиков Google Дэн Моррилл (Dan Morrill), сначала ОТА рассылается на 1% устройств. Это происходит рандомно, независимо от региона или места покупки телефона/планшета. В это время отлавливаются баги, что позволяет приостановить обновление при наличии критических ошибок у большого числа пользователей.

Далее в течение пары недель обновление распространяется для 25, 50, 100% пользователей. То есть на первом этапе шанс на получение обновления имеет одно устройство из ста. Если обновление не получено, то устройство выпадает из списка и повторное неоднократное нажатие на кнопку «Проверить наличие обновлений» автоматически переносит устройство в конец списка. Когда запускается новый этап рассылки, нажатие на кнопку дает следующий шанс получить обновление уже 25%. Так как устройство само проверяет наличие обновления раз в сутки (или при перезагрузке), то нажатие на кнопку может «выстрелить» раньше, чем это случилось бы само по себе. Но опять-таки проверка будет только один раз. Дальнейшие нажатия не помогут. Это не та ситуация, когда «кто первый нажал, тот первый получил». В любом случае обновление по воздуху придет всем в течение пары недель. Самые нетерпеливые могут прошить обновление руками (об этом ниже).

Уведомление о наличии обновления Другие статьи в выпуске:

Хакер #196. Все о Docker

  • Подписка на «Хакер»

Форсируем обновление

Ускорить получение обновления можно двумя способами. Первый — очистка данных Google Services Framework с последующей перезагрузкой устройства. Крайне не рекомендуемый способ, который осуждают даже инженеры Гугла. Этот способ вызывает множество негативных эффектов, главный из которых — смена идентификатора для GCM (Google Cloud Messenger). Этот идентификатор нужен во всех программах Гугла и множестве других приложений, использующих функции push-уведомлений. И если в некоторых программах побороть эффекты относительно легко, то для многих других последствия могут быть более печальны. Все приложения просто перестанут принимать push-уведомления, основанные на GCM, пока не получат новый идентификатор. Некоторые приложения делают проверку часто, некоторые редко. Для части поможет очистка данных приложения. А те приложения, которые используют GCM ID в качестве идентификатора на своих серверах, могут иметь более глубокие проблемы.

Стоковый recovery

Второй — установка обновления руками через консоль восстановления. Вскоре после запуска ОТА в профильных темах устройств на ресурсах 4PDA и XDA появляются файлы вида хеш.signed-hammerhead-LRX21O-from-KTU84P.c1a33561.zip, в названии которых содержится хеш файла, марка устройства, а также версии прошивок для обновления (на какую, с какой). На компе необходимо иметь папку с утилитами ADB и fastboot. Я использую последние версии из Android SDK. В ту же папку нужно положить скачанный архив с ОТА-обновлением. Также необходимо иметь правильно установленные драйверы для устройства, которые могут конфликтовать с ранее установленными драйверами для других устройств.

Само устройство следует перевести в режим восстановления (recovery). Для этого на выключенном устройстве зажимаем одновременно кнопки и попадаем в загрузчик, кнопкой громкости выбираем Recovery mode, входим в него кнопкой Power. Появится лежачий Android с восклицательным знаком. Это не ошибка, пугаться не стоит. Необходимо на этом экране коротко нажать , после чего и загрузится стоковый рекавери. В нем необходимо выбрать кнопками громкости пункт apply update from ADB и подтвердить кнопкой включения. Далее необходимо подключить телефон/планшет к компу. Запускаем консоль, переходим в папку с ADB и архивом обновления и вводим следующую команду (для файла, приведенного выше):

$ adb sideload хеш.signed-hammerhead-LRX21O-from-KTU84P.c1a33561.zip

После этого на телефон установится ОТА и он перезагрузится.

Как скачать обновление через сотовую сеть

Уведомление о доступности ОТА может прийти, когда устройство не подключено к Wi-Fi. При этом появится пометка, что файл доступен для скачивания по Wi-Fi до определенной даты (около недели), а сама кнопка «Скачать» будет неактивна. Это сделано для экономии денег юзера. Если подключение к Wi-Fi в ближайшее время не предвидится, то можно обмануть телефон и скачать обновление через 3G/4G, просто переведя дату в телефоне вперед, позже даты, указанной в уведомлении, и перегрузив устройство.

Модифицированная прошивка

Если у тебя разблокирован загрузчик, стоит кастомный recovery, получен root, который активно используют различные программы, и применены различные модификации, то с вероятностью 99% обновление не установится. Даже при возврате стокового recovery при прошивке через ADB будет выдавать ошибку Status 7. Кастомный recovery также будет писать ошибку, ругаясь на измененные файлы. Побороть эту проблему можно, вернув смартфон к заводской прошивке, но это не наш метод. Мы разберемся с ней, расковыряв файл обновления, выясним, на каком месте спотыкается установка, и устраним проблему. И все это на примере самого крупного обновления Nexus 5 — с версии 4.4.4 (KTU84P) на 5.0 (LRX21O).

INFO

Под стоковой (stock — из магазина) прошивкой понимается наличие заводского ядра, recovery, отсутствие модификаций, полученных в том числе с помощью root.

Механика работы ОТА

Итак, обновление с 4.4.4 на 5.0 стало самым крупным за последнее время с весом архива в 491 Мб. В связи со сменой Dalvik на ART практически весь код был модифицирован. Так что же содержит архив? Как видно на скриншоте «Файлы из архива с обновлением до 5.0», внутри архива находятся образы бутлоадера (различные разделы), каталоги META-INF, patch и system.

Файлы из архива с обновлением до 5.0

Для минимизации количества трафика и уменьшения нагрузки на серверы, а также для снижения затрат конечного пользователя структура обновления построена так, что файлы с большим количеством изменений или написанные с нуля находятся в каталоге system и меняются целиком. А файлы с небольшими по меркам Гугла изменениями не заменяются, а патчатся, то есть изменяются куски кода внутри файла. Эти файлы находятся внутри каталога patch и имеют расширение .р. Это хорошо видно, если сравнить файлы в /system/bin и /patch/system/bin. При этом для создания патча используется хорошо знакомый юниксоидам bsdiff, позволяющий из двух бинарников получить дельту (файл с разницей между файлами).

Само же волшебство происходит по воле updater-script, который находится в /META-INF/com/google/android. Именно его мы и рассмотрим подробнее. Сам файл весит 463 Кб и содержит строки кода, отвечающие за процесс применения ОТА-обновления (на самом деле это скриптовый язык Edify, интерпретатор которого находится в том же каталоге и носит имя update-binary. — Прим. ред.). Вот что он содержит в нашем случае. Сначала монтируется раздел /system (достаточно стандартная для Linux строка монтирования, схожая с теми, что находятся в /etc/fstab):

mount(«ext4», «EMMC», «/dev/block/platform/msm_sdcc.1/by-name/system», «/system», «max_batch_time=0,commit=1,data=ordered,barrier=1,errors=panic,nodelalloc»);

Далее скрипт проверяет модель устройства и версию прошивки с помощью чтения системной переменной ro.build.fingerprint (обрати внимание, что он не берет ее из файла /system/build.prop, а запрашивает у самого recovery, поэтому обновления нельзя поставить с помощью кастомной консоли восстановления, хотя до 5.0 это было возможно). Здесь и далее троеточие это сокращенные строки:

getprop(«ro.build.fingerprint») == «google/hammerhead/hammerhead:4.4.4/KTU84P/1227136:user/release-keys» || getprop(«ro.build.fingerprint») == «google/hammerhead/hammerhead:5.0/LRX21O/1570415:user/release-keys» || abort(«Package expects build fingerprint of google/hammerhead/hammerhead:4.4.4 …»); getprop(«ro.product.device») == «hammerhead» || abort(«This package is for \»hammerhead\» devices …»);

Как видно выше, на «неродное» устройство обновление не встанет, зато его можно повторно накатить на версию 5.0. Также скрипт проверяет, подписана ли прошивка официальными ключами Google (release-keys). Из-за этого у многих пользователей возникают проблемы. Далее начинается проверка наличия и целостности отдельных файлов с помощью сверки хешей SHA-1. Для этого используются две функции: sha1_check(), принимающая в качестве аргументов имя файла и хеш, и apply_patch_check(), принимающая три аргумента: имя файла, и два хеша. Первая используется просто для проверки целостности файла, вторая проверяет, не был ли файл уже пропатчен. Для простоты длинные хеши в коде ниже заменены на многоточие:

sha1_check(read_file («system/app/Drive/Drive.apk»), …) || apply_patch_check(«/system/app/Drive.apk», …) || abort(«\»/system/app/Drive.apk\» has unexpected contents.»); sha1_check(read_file(«system/app/Drive/lib/arm/libdocsimageutils.so»), …) || apply_patch_check(«/system/lib/libdocsimageutils.so», …) || abort («\»/system/lib/libdocsimageutils.so\» has unexpected contents.»);

Для примера показаны только две проверки. По факту проверяются все файлы, которые подлежат замене или изменению патчем. В коде видно, что обновление выдаст ошибку, если, например, был изменен или удален файл /system/app/Drive.apk. В конце блока проверки скрипт проверяет ядро, доступное место в /system и радио:

apply_patch_check(«EMMC:/dev/block/platform/msm_sdcc.1/by-name/boot:8908800:…») || abort(«…»); apply_patch_space(23999236) || abort(«Not enough free space on /system to apply patches.»); apply_patch_check(«EMMC:/dev/block/platform/msm_sdcc.1/by-name/modem:46499328:…») || abort(«…»);

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

delete(«/system/app/BasicDreams/», «/system/app/BasicDreams/arm/», …);

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

sha1_check(read_file(«system/app/Drive/Drive.apk»), …) || apply_patch(«/system/app/Drive.apk», «-«, …, package_extract_file(«patch/system/app/Drive.apk.p»));

Последним патчится ядро и RAM-диск:

apply_patch(«EMMC:/dev/block/platform/msm_sdcc.1/by-name/boot:…, package_extract_file(«patch/boot.img.p»));

Следующий блок переносит на устройство файлы, которые не попадают под патч и должны быть заменены целиком. Часть из них затем перемещается:

package_extract_dir(«system», «/system»); rename(«system/app/KoreanIME.apk», «system/app/KoreanIME/KoreanIME.apk»); rename(«system/framework/wm.odex», «system/framework/arm/wm.odex»); …

Удаляются ненужные файлы, расставляются симлинки, права доступа и флаги (здесь на многоточие заменены именно права доступа и флаги):

delete(«/system/etc/firmware/wcd9320/wcd9320_mbhc.bin», …); symlink(«/data/misc/audio/mbhc.bin», «/system/etc/firmware/wcd9320/wcd9320_mbhc.bin»); symlink(«/data/misc/audio/wcd9320_anc.bin», «/system/etc/firmware/wcd9320/wcd9320_anc.bin»); … set_metadata_recursive(«/system/bin», …); set_metadata(«/system/bin/app_process32», …);

Прошиваются бутлоадер и сопутствующие разделы:

package_extract_file(«bootloader-flag.txt», «/dev/block/platform/msm_sdcc.1/by-name/misc»); package_extract_file(«bootloader.aboot.img», «/dev/block/platform/msm_sdcc.1/by-name/aboot»); package_extract_file(«bootloader.rpm.img», «/dev/block/platform/msm_sdcc.1/by-name/rpm»); …

Патчится радио/модем:

apply_patch(«EMMC:/dev/block/platform/msm_sdcc.1/by-name/modem:…, package_extract_file(«radio.img.p»));

Последним меняется build.prop, в который записывается в том числе новая версия прошивки. Сделано это для того, чтобы при возникновении ошибки на самом последнем этапе, когда почти все файлы уже перенесены, прервать обновление и сохранить номер текущей версии прошивки в файле на устройстве. Тогда при нажатии кнопки «Проверить обновление» можно запустить его снова.

apply_patch(«/system/build.prop», «-«, …, package_extract_file(«patch/system/build.prop.p»)); set_metadata(«/system/build.prop», …);

В конце скрипта раздел /system перемонтируется, и начинается проверка правильности применения обновления, сверяется SHA-1 хеш новых файлов и /system размонтируется:

unmount(«/system»); mount(«ext4», «EMMC», «/dev/block/platform/msm_sdcc.1/by-name/system», «/system», «»); assert(sha1_check(read_file(«/system/app/CalendarGooglePrebuilt/CalendarGooglePrebuilt.apk»), …)); assert(sha1_check(read_file(«/system/app/CaptivePortalLogin/CaptivePortalLogin.apk»), …)); … unmount(«/system»);

После чего устройство перегружается в новую систему.

Updater-script как он есть

Кастомный recovery

До недавнего времени прошить архив ОТА-обновления в большинстве случаев (если не было проверки recovery для его замены) можно было из кастомного recovery, просто закинув файл на устройство и выбрав install zip. Но начиная со скрипта для обновления 5.0 скрипт поменялся. Предыдущие версии проверяли файл /system/build.prop:

file_getprop(«/system/build.prop», «ro.build.fingerprint»)

Текущие скрипты проверяют не файл, а значение системной переменной напрямую, запрашивая его у recovery:

getprop(«ro.build.fingerprint»)

А если разобрать кастомный recovery (для примера TWRP версии 2.8.0.0), то можно увидеть следующие строки:

ro.build.description=omni_hammerhead-eng 4.4.4 KTU84P eng.dees_troy.20140910.125240 test-keys ro.build.fingerprint=Android/omni_hammerhead/hammerhead:4.4.4/KTU84P/eng.dees_troy.20140910.125240:eng/test-keys

Версия TWRP 2.8.6.1 имеет в коде следующие строки (обрати внимание на слово omni во второй строке, разработчик TWRP с ником Dees Troy — еще и один из активных разработчиков OmniROM):

ro.build.id=LRX22G ro.build.display.id=omni_hammerhead-eng 5.0.2 LRX22G eng.dees_troy.20150403.145211 test-keys ro.build.version.incremental=eng.dees_troy.20150403.145211

А последние версии CWM Touch и Philz подписаны так:

ro.build.description=hammerhead-user 4.4 KRT16M 893803 release-keys ro.build.fingerprint=google/hammerhead/hammerhead:4.4/KRT16M/893803:user/release-keys

Именно эти значения и возвращает при проверке скрипт, прерывая обновление в самом начале и выдавая ошибку о несоответствии версии Android на устройстве.

Вот какой ответ ты получишь при попытке установить обновление 5.0.2 на Nexus 7 из кастомного recovery

Обновление 4.4.3–4.4.4

Для сравнения можно привести предыдущее обновление с версии KTU84M на KTU84P. Обновление мелкое и весит всего 2,5 Мб. В основном касается улучшений безопасности. Если открыть архив, то можно увидеть, что патчится только небольшое количество системных файлов и радио, соответственно, скрипт и проверяет только их. Это обновление нормально устанавливалось с рутом, кастомным ядром и работающим Xposed Framework, так как на наличие изменений все это не проверяется.

Обновление для Nexus 6 и Nexus 9

У последних устройств от Google структура скрипта в корне другая. Для этих и (судя по всему) последующих устройств Nexus Google добавила в сборочный скрипт, формирующий ОТА-обновление, функцию генерации поблочного обновления. Такое обновление сверяет и обновляет не отдельные файлы, а блоки в файловой системе /system. Далее в примере «66,…,524256» — это длинные списки адресов блоков:

if range_sha1(«/dev/block/platform/msm_sdcc.1/by-name/system», «66,…,524256») == «…» then block_image_update(«/dev/block/platform/msm_sdcc.1/by-name/system», package_extract_file(«system.transfer.list»), «system.new.dat», «system.patch.dat»);

Это позволило инженерам Google существенно упростить и ускорить применение ОТА-обновления для конечных устройств, а сам updater-script теперь занимает всего 5 Кб. Но это обернулось головной болью для продвинутых пользователей. Ведь теперь любые изменения в системном разделе вызовут сбой. Включая наличие лишних файлов. Даже факт монтирования системы как R/W приведет к изменению хеша суперблока ФС.

Подводя итоги статьи, можно сделать следующие выводы:

  1. Права суперпользователя сами по себе не влияют на успешное применение обновления. Влияют те изменения, которые пользователь и программы вносят в систему, имея эти права. Часто эти изменения невозможно отследить и вернуть.
  2. Повлияют ли root и внесенные в систему изменения на успешное обновление, зависит каждый раз от того, что именно меняется в системе при обновлении и какие файлы проверяет скрипт. Если система менялась, замораживались/отключались ненужные системные приложения через Titanium Backup, менялись ядра, ставился кастомный recovery, Xposed Framework, Lucky Patcher, freedom, franco.Kernel updater, моды на звонилку и всяческие улучшалки для звука, другая бутанимация, системные шрифты и так далее. Все это может повлиять на обновление.
  3. При модификации системы всегда оставляй оригинальные файлы для бэкапа, если хочешь обновляться через ОТА. Копируй в облако, переименовывай как угодно. Можно сделать Nandroid-бэкап раздела /system (о Nandroid читай в предыдущем номере).
  4. Если помнишь, что менял в системе, можно откатиться назад почти всегда. Recovery всегда пишет ошибку, на что ругается обновление. Погуглив название файла в ошибке, иногда можно найти, какая прога его меняет. Например, /system/bin/thermal-engine-hh и /system/lib/power.msm8974.so заменяет franco.Kernel updater и не возвращает его даже при прошивке стокового ядра и сносе самого приложения.
  5. Для успешного применения ОТА необходимо вернуть в систему оригинальные файлы. Самый верный способ — это прошить system.img, стоковое ядро и recovery перед тем, как устанавливать обновление (данные и приложения не потеряются).
  6. Ну и главный вывод. Если есть рут и много модификаций — не мучайся, а сразу шей полный образ новой прошивки, удалив ключ -w в flash-all.bat для сохранения данных. Начиная с обновления до версии 5.0, остается очень маленькая вероятность обмануть скрипт. Да и следующее обновление может иметь «блочную» структуру, которая подразумевает наличие только полного стока для применения.

Пара слов от редактора

До недавнего времени OTA-обновления в каcтомных прошивках (CyanogenMod, Paranoid) всегда приходили в виде zip’а с полной версией прошивки и было абсолютно неважно, какие изменения вносились в систему до этого. Прошивка всегда устанавливалась заново (с сохранением данных юзера и gapps, естественно), однако в CyanogenMod 11 появилась функция инкрементальных обновлений, но гораздо более простая в сравнении с той, что используется Google. Обновление просто проверяет целостность прошивки и заменяет те файлы, которые изменились с прошлой версии (обычно ночной сборки), без всяких патчей. Причем, если ты пропустишь одно из обновлений, следующее по старинке придет в виде полного обновления. Просто и удобно.

Более интересный метод используется в OmniROM. Для обновления она использует бинарные патчи, но совсем не так, как это делает Google. Первое OTA-обновление всегда скачивается полностью, после чего сохраняется на карте памяти, прошивается, но не удаляется с карты. Следующее OTA-обновление уже приходит в виде единого бинарного патча, после чего патч накладывается на сохраненное в прошлый раз на карте памяти обновление и уже оно прошивается. Изюминка этого метода в том, что патч накладывается не на систему, а на файл с прошлым обновлением и смартфон каждый раз прошивается как бы с нуля (но с сохранением данных и настроек). Почти идеальный метод — трафик экономится, а беспокоиться о конфликтах с измененной системой не надо.

Вы хотите обновить прошивку на смартфоне Леново и не знаете как это сделать? На этой странице вы узнаете, как нужно обновлять операционную систему андроид на Lenovo. Таким способом можно обновлять не только смартфоны, но и планшеты. если на вашем устройстве вы обновлялись не так как описано в этой статье, то вы можете поделиться и написать ниже в отзывах как вы это сделали и указать модель андроида.

Зачем обновлять операционную систему? Да потому что в обновлениях могут быть исправлены ошибки, которые могут встречаться на многих андроид устройствах. Так же могут появиться улучшения и новые возможности. Если ваш смартфон или планшет работает нормально и вас все устраивает, то можете и не обновлять прошивку. Возможно, вам не понравится новое обновление и вам захочется вернуть старую прошивку, а это уже наверное будет невозможно. Так что рекомендую подумать, прежде чем обновлять свой Lenovo.

Что может нам понадобиться для обновления прошивки андроида? В основном это интернет. Лучше чтоб был скоростной интернет используя точку доступа Wi-Fi. Так как прошивка может весить очень много трафика и если использовать интернет с телефона, могут списать не малую сумму денег с вашего счета. Так же рекомендуем перед началом подзарядить ваш смартфон или планшет. В принципе нам больше ничего не понадобится ни компьютер, ни ноутбук и никакие провода, обновление прошивки будет по воздуху.

Внимание!!! Все что вы делаете со своим устройством, вы делаете добровольно на свой страх и риск, администрация сайта не несет никакой ответственности в случае возникновения неисправности вашего устройства. Информация найдена в интернете и взята из открытых источников и служит для помощи пользователям смартфонов и иных устройств. Удачи!

Теперь давайте посмотрим как обновить прошивку на Леново через систему OTA. (То есть по воздуху без использования проводов и компьютера).
Подключаемся к интернету через сети Wi-Fi (WLAN) и открываете «Параметры» (Параметры системы) далее «Система» (Все параметры) далее «Система» далее «О телефоне» (планшете) и «Обновление системы» (Системные обновления).
Если для вашего смартфона или планшета Lenovo будет доступна новая версия программного обеспечения, то на устройстве вы увидите запрос о ее загрузке и установке.
Внимание! При обновлении прошивки не выключайте и не отсоединяйте устройство от электросети.
После установки обновлений, приведет к перезагрузке или отключению клиентской машины в режиме планировщика, будет отображается значок уведомления.

Так же вы должны знать, что различные версии операционной системы на устройстве могут иметь разные названия для пунктов меню.
возможно, для разных моделей могут быть доступны разные версии обновления программного обеспечения и компонентов.
Добавьте пожалуйста отзыв о том помогла ли информация в статье или нет обновить ваш андроид, указывайте пожалуйста модель устройства, чтоб и другим пользователям осталась от вас полезная информация. Возможно, именно ваш отзыв окажется самым полезным!

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *