OTA-обновления, аббревиатура расшифровывается как «Over The Air», то есть «по воздуху».
Обновление не «прилетает» в виде целого файла прошивки – вы получаете лишь необходимые патчи и фиксы,
Сам архив, «прилетающий» при обновлении на ваше устройство, состоит из трех главных составляющих: System (основная часть новой версии прошивки), Patch (файлы, исправляющие «косяки» предыдущей сборки) и META-INF (информация о том, что будет обновлено).
Сначала ОТА рассылается на 1% устройств. Это происходит рандомно, независимо от региона или места покупки девайса. В это время отлавливаются баги, что позволяет приостановить обновление при наличии критических ошибок у большого числа пользователей.
Далее в течение пары недель обновление распространяется для 25, 50, 100% пользователей. То есть на первом этапе шанс на получение обновления имеет одно устройство из ста.
Когда запускается новый этап рассылки, следующий шанс получить обновление уже 25%. Устройство само проверяет наличие обновления раз в сутки.
Для минимизации количества трафика и уменьшения нагрузки на серверы, а также для снижения затрат конечного пользователя структура обновления построена так, что файлы с большим количеством изменений или написанные с нуля находятся в каталоге system и меняются целиком. А файлы с небольшими по меркам Гугла изменениями не заменяются, а патчатся, то есть изменяются куски кода внутри файла. Эти файлы находятся внутри каталога patch и имеют расширение .р. Это хорошо видно, если сравнить файлы в /system/bin и /patch/system/bin.
Само же волшебство происходит по воле updater-script, который находится в /META-INF/com/google/android.
Последним меняется build.prop, в который записывается в том числе новая версия прошивки.
Обновления OTA предназначены для обновления базовой операционной системы, приложений, доступных только для чтения, установленных в системном разделе, и правил часовых поясов.
* Этот тип обновления не влияет на приложения, установленные пользователем из Google Play, пользовательские настройки, личные данные, параметры панели (матрицы), разрешения и тд.....