Android system update что это такое

Что такое системные обновления Google Play и где их взять

Говорят, что у Android всё просто ужасно с обновлениями. Но это не совсем так. Дело в том, что операционная система не виновата в том, что независимые производители отказываются адаптировать новые версии ОС для своих смартфонов. А, между тем, сама Google прикладывает все усилия для того, чтобы поддерживать устройства, работающие на базе Android, в актуальном состоянии. Помимо ежегодных обновлений операционной системы, поисковый гигант выпускает ежемесячные патчи безопасности и системные обновления Google Play, о которых вообще никто не слышал.

Системные обновления Google Play появились только в Android 10

Системные обновления Google Play были представлены только в прошлом году, с запуском Android 10. Это своего рода аналог ежемесячных патчей безопасности, отличие между которыми состоит в том, что системные обновления Google Play компания Google выпускает и распространяет сама. Тем не менее, они существуют параллельно друг другу и преследуют разные цели. Если ежемесячные апдейты безопасности направлены на то, чтобы устранять уязвимости, то патчи Google Play – вносят изменения на системный уровень.

Что такое системные обновления Google Play

Обратите внимание, что ежемесячные патчи безопасности и системные обновления Google Play — это не одно и то же

Системные обновления Google Play являются неотъемлемой частью модульной архитектуры Project Mainline. Она делит операционную систему на 12 отдельных компонентов, которые благодаря системным апдейтам могут обновляться независимо друг от друга. Это позволяет серьёзно увеличить скорость доставки новых сборок с исправлениями, если таковые требуются. Ведь, по сути, теперь Google может просто исправить баг в одном из модулей и выпустить обновление специально для него, тогда как Apple вынуждена обновлять всю ОС целиком, даже если ошибка обнаружилась в работе клавиатуры.

Системные обновления Google Play, в отличие от ежемесячных патчей, доступны только на смартфонах с Android 10 и новее и выходят только по мере необходимости. Поэтому не следует ждать, что они начнут валиться вам на регулярной основе, даже если обновления безопасности стабильно прилетают в начале каждого месяца. Проверить, когда выходило последнее системное обновление Google Play, а также запросить новое, если вы считаете, что для этого пришло время, можно довольно просто:

Как скачать системное обновление Google Play

  • Перейдите в «Настройки» — «Безопасность»;
  • Откройте раздел «Обновление системы через Google Play»;

Проверить наличие системных обновлений Google Play можно вручную

  • В нижней части нажмите кнопку «Проверить обновления»;
  • Дождитесь окончания проверки и установите апдейт, если он нашёлся.

Поддержка Androi

Android может оставаться актуальным даже без ежегодных обновлений ОС

Несмотря на свою незаметность, системные обновления Google Play – это очень важный элемент операционной системы. Благодаря им Google удаётся поддерживать Android в актуальном состоянии даже на тех устройствах, чьи производители не спешат с адаптацией апдейтов. А раз так, значит, в теории Google могла бы начать распространять таким образом и ежемесячные обновления безопасности, если бы только захотела. Возможно, уже с выходом Android 11 мы увидим нечто подобное.

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

Источник

Как обновить телефон и зачем это на самом деле нужно

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

Обновлять Android надо. Только так можно пользоваться свежим смартфоном.

Как обновить Android

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

Как узнать версию Android

Для того, чтобы узнать версию Android, надо открыть «Настройки», пролистать до пункта ”Система” и внутри найти ”Дополнительные настройки”. Открываем их, дальше нажимаем ”Обновление системы”. Тут можно проверить версию Android и ознакомиться с системой безопасности. Тут уже можно будет сделать вывод, надо ли что-то обновлять.

Google сделает Chrome для Android ещё быстрее в следующем обновлении

Как установить обновление Андроид

Обновить версию Android вы можете в пункте, путь до которого написан выше. Если вы хотите обновить систему безопасности, надо открыть настройки и найти пункт ”Безопасность”. Далее проверить наличие обновлений. Надо нажать соответственно ”Обновление системы безопасности” или ”Системное обновление Google Play”.

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

Когда на смартфоне установлена новая версия Android, он будет работать так, как надо.

Надо ли обновлять телефон

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

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

Читайте также:  Как обновить назад андроид

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

Можно было бы сказать, что обновление прошивки не сделает смартфон лучше и не даст ему более крутую камеру или возможность передачи данных, но это не так — даст! Часто производители, выпуская смартфон, анонсируют какую-то функцию, вроде режима боке или возможности снимать видео в 4K. Потом они дорабатывают ПО и присылают обновление, которое и заставит ”железо” работать более продуктивно.

А еще обновление ПО может увеличить производительность, увеличить время автономной работы, улучшить работу в сотовой сети или сети Wi-Fi и многое другое. В общем, обновление на телефон не просто можно, но и нужно устанавливать.

Установка обновлений — единственный способ для производителя улушить смартфон после того, как он был продан.

Почему перестал обновляться телефон

Чем старше телефон, тем неохотнее производитель выпускает для него обновления. Для Android срок составляет примерно 1-3 года. Для iPhone срок обновления достигает 5 лет. Эти сроки отсчитываются от презентации телефона, а не от момента покупки. Именно в этом минус покупки устройства, выпущенного год-два назад.

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

Если обновление пришло — устанавливайте.

Обновление старого телефона

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

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

Ответы на любые вопросы, касающиеся Android, и свежие новости только в нашем Telegram-чате.

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

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

Новости, статьи и анонсы публикаций

Свободное общение и обсуждение материалов

Со времен своей диджейской юности я привык самостоятельно настраивать эквалайзер в телефоне и других устройствах. Кто-то скажет, что это этого делать не нужно, мол, наушники не те или смысла в этом нет — играет музыка и достаточно. Не соглашусь с вами. Правильные настройки эквалайзера помогут прочувствовать драйв от музыки, а прослушивание треков будет приносить максимум удовольствия. Безусловно, для достижения результата понадобятся качественные наушники, но можно попробовать настроить звучание и с тем, что имеется.

Любой пользователь Android знает, что обновления – это круто. Зачем они нужны – вопрос другого рода. Тем более, что Google предлагает сразу три типа апдейтов, каждый из которых имеет своё предназначение. Несмотря на это, в представлении большинства ценностью обладают только системные обновления – те самые, которые Google выпускает раз в год, а все остальные как будто бы и не нужны. Но это глубочайшее заблуждение, и сейчас я докажу вам, почему именно.

Несколько недель назад Apple оказалась в центре очередного скандала. Компания объявила о намерении проверять фотографии пользователей на предмет детского порно. Нет, она не просто предложила ввести такую возможность, а поставила всех перед фактом, подчеркнув, что новая инициатива будет введена в конце этого года. Само собой, многие – в том числе ваш покорный слуга – отреагировали крайне негативно, и даже объявили о том, что уйдут к Google. Это немного отрезвило Apple, и она отложила введение проверки снимков на неопределённый срок. А вот у Google вы такого понимания не встретите.

Источник

Опасный Android-вирус скрывается под видом обновления ОС

Среди Android-устройств начало распространяться новое вредоносное приложение под названием System Update. По словам специалистов по кибербезопасности компании Zimperium, шпионское ПО скрывается под видом системных обновлений и позволяет злоумышленникам получать полный контроль над гаджетом жертвы.

System Update нет в магазине приложений Google Play, оно загружается из сторонних источников в составе других программ. После установки вредоносное ПО скрывается и через сервер Firebase позволяет злоумышленникам удалённо управлять устройством. При этом вирус выдаёт себя за системное обновление от Google. System Update обеспечивает мошенникам доступ к микрофону и камере смартфона, а также собирает такие данные, как сообщения, контакты, информация о гаджете, закладки в браузере и история веб-сёрфинга.

Кроме того, с помощью приложения злоумышленники могут отслеживать местоположение устройства, выполнять поиск документов в памяти гаджета и записывать информацию, которая вводится пользователем с клавиатуры или копируется в буфер обмена. Чтобы не засветиться как программа, которая «ест» много трафика, System Update передаёт изображения в виде эскизов.

В Zimperium считают, что эта вредоносная утилита была частью целевой атаки и на её создание было потрачено много времени и усилий. При этом исследователи не располагают информацией о том, кто создал System Update и на кого приложение нацелено.

Источник

Эволюция системы обновления Android

В этой статье мы рассмотрим все возможные варианты обновления прошивки на устройствах под управлением Fuchsia Android. Особое внимание уделим самому популярному способу — обновлению по воздуху или OTA (over-the-air) — и расскажем об этапах его развития.

Итак, как можно обновить Android на мобильных устройствах? Занимаясь разработкой ТВ-приставок под управлением этой ОС, мы определили для себя 4 способа, отбросив совсем уж экзотические варианты:

перепрошивка flash-памяти через аппаратный интерфейс JTAG (если есть);

перепрошивка flash-памяти с использованием загрузчика (bootloader);

обновление через Recovery Mode;

Рассмотрим подробнее каждый из вариантов.

1. Обновление Android через JTAG-интерфейс

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

Читайте также:  Андроид руткит что это

Однако обычно JTAG-интерфейс присутствует только на отладочных платах, что сильно сужает область применения этого варианта обновиться.

2. Обновление Android через Recovery Mode

Обычно загрузчик является проприетарным, его разрабатывает производитель чипа. Именно bootloader инициализирует доверенную среду выполнения (TEE, trusted execution environment) и проверяет целостность разделов boot и recovery перед переносом выполнения в ядро Linux. Сам загрузчик часто является составным, часть его уровней может быть открытой (например, на базе U-boot), а часть — проприетарной.

Bootloader Android позволяет перепрошивать flash-память устройства подготовленными образами разделов. Для этого используется протокол fastboot либо его аналог (в случае Amlogic это будет протокол WorldCup Device). Fastboot, как и его аналог WorldCup Device, — это протокол взаимодействия с bootloader через USB-интерфейс или локальную сеть Ethernet.

Для перепрошивки необходимо подключить устройство через USB к хосту (есть вариант использовать LAN Ethernet), перевести загрузчик (bootloader) в специальный update-режим и в этом режиме перепрошить flash-память устройства.

Плюсы и минусы данного метода всё те же, что и для JTAG: так как обновление проходит без участия самой системы Android, при перепрошивке нет ограничений, связанных с версией системы/сборки или ключами безопасности.

Но, как всегда, есть одно НО. 🙂 Bootloader должен быть разблокирован, а это значит, что мы можем перепрошить сам загрузчик или разделы устройства. Блокировка/разблокировка производится командой fastboot flashing lock/unlock, но для выполнения этой команды может понадобится пароль, установленный тем, кто добрался до этого устройства раньше вас (обычно это производитель).

3. Обновление Android через Recovery Mode и OTA

Если первые два варианта обновления оставались неизменными на протяжении всего времени развития Android, то следующие два варианта — обновление через Recovery Mode и OTA — реализуются средствами самой Android и эволюционировали вместе со всей ОС.

Стоит упомянуть, что Recovery Mode и OTA — это два различных варианта вызова движка обновления Android.

Recovery или non-A/B System Updates

Recovery и движок обновления updater (bootable/recovery/updater) — это как раз то, с чего началась система обновления Android (располагается в bootable/recovery в дереве исходников AOSP).

Схема обновления Recovery (или non-A/B System Updates) задействует специальный раздел восстановления (Recovery), где содержится специальная ОС на основе ядра Linux. Эта ОС на базе Linux содержит программное обеспечение для распаковки загруженного образа обновления и его применения к другим разделам. Так и проходит обновление Android.

Пример разметки flash-памяти на устройстве с Android 6.0:

Карта разделов Android 6.0.1

[mmcblk0p01] bootloader offset 0x000000000000, size 0x000000400000

[mmcblk0p02] reserved offset 0x000002400000, size 0x000004000000

[mmcblk0p03] cache offset 0x000006c00000, size 0x000020000000

[mmcblk0p04] env offset 0x000027400000, size 0x000000800000

[mmcblk0p05] logo offset 0x000028400000, size 0x000002000000

[mmcblk0p06] recovery offset 0x00002ac00000, size 0x000002000000

[mmcblk0p07] rsv offset 0x00002d400000, size 0x000000800000

[mmcblk0p08] tee offset 0x00002e400000, size 0x000000800000

[mmcblk0p09] crypt offset 0x00002f400000, size 0x000002000000

[mmcblk0p10] misc offset 0x000031c00000, size 0x000002000000

[mmcblk0p11] instaboot offset 0x000034400000, size 0x000020000000

[mmcblk0p12] boot offset 0x000054c00000, size 0x000002000000

[mmcblk0p13] system offset 0x000057400000, size 0x000060000000

[mmcblk0p14] data offset 0x0000b7c00000, size 0x0002ec200000

Сам процесс обновления происходит в два этапа:

После загрузки с раздела Recovery происходит обновление всех остальных разделов Android.

И уже после перезагрузки и запуска новой версии Android происходит обновление раздела Recovery.

При обновлении с использованием движка updater на первом этапе проверяется версия и цифровая подпись образа, поэтому откатить на старую версию ОС уже не получится.

Обновиться по схеме Recovery можно как локально, выбрав в bootloader режим Recovery Mode и запустив движок обновления updater через меню Recovery Mode, либо удаленно, через OTA, когда приложение, работающее в Android, вызывает тот же updater из Java. И как раз при таком удаленном запуске можно организовать массовое обновление целой серии устройств. Этот вариант используют операторы цифрового ТВ при обновлении своих абонентских ТВ-приставок.

Сам раздел Recovery при non-A/B-схеме обновления является физическим разделом во flash-памяти. С появлением A/B-схемы раздел Recovery переместился на RAM-диск в оперативной памяти устройства, но возможность сделать его отдельным физическим разделом также осталась.

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

Одним из важных недостатков схемы Recovery или non-A/B System Updates является то, что при любом сбое во время обновления или битой прошивке мы получаем пусть и не «кирпич» (с раздела Recovery всё еще можно запустить устройство в Recovery Mode), но всё же не полнофункциональное и требующее восстановления устройство.

С этим, видимо, решено было что-то делать, потому что следующим этапом эволюции системы обновления стало бесшовное обновление (seamless updates) или A/B-схема обновления.

Бесшовное обновление или A/B-схема

Эта возможность появилась в Android 7.0, она реализована в новом движке update_engine, который располагается в system/update_engine в дереве исходников AOSP.

Главной особенностью A/B-схемы стало то, что в случае сбоев при обновлении можно загрузиться с предыдущей рабочей версии системы Android. Flash-память устройства содержит дублирующиеся системные разделы или слоты (slot A и B), отсюда и название — A/B system updates (вечная проблема с выбором названий). За выбор слота для загрузки (A или B) отвечает bootloader, анализируя состояние слотов.

Принцип бесшовного обновления Android по A/B-схеме (активный раздел отмечен птичкой)

Итак, как же происходит обновление:

1) Загружая систему, например, со слотов A, мы скачиваем и прошиваем обновления на слоты B.

2) После перезагрузки со слотов B мы проверяем работоспособность системы, и, если все ОК, сообщаем bootloader, что обновление прошло успешно.

В случае проблем с обновлением bootloader вернется на старую версию прошивки после нескольких неудачных попыток загрузиться с новой системы.

На официальном сайте для разработчиков — Android Source — этот процесс расписан более детально в 9 шагах, также там объясняется, как все работает после перезагрузки.

Особенность бесшовной A/B-схемы обновление — это «съедение» большего объема flash-памяти. Насколько большего? Это можно оценить по приведенным ниже схемам разделов для Android 9.0. Как уже упоминалось ранее, разработчик может выбирать, какую из схем — A/B или non-A/B — применять в конфигурации системы.

Карта разделов Android P (recovery)

[mmcblk0p01] bootloader offset 0x000000000000, size 0x000000400000

[mmcblk0p02] reserved offset 0x000002400000, size 0x000004000000

[mmcblk0p03] cache offset 0x000006c00000, size 0x000046000000

[mmcblk0p04] env offset 0x00004d400000, size 0x000000800000

[mmcblk0p05] logo offset 0x00004e400000, size 0x000000800000

[mmcblk0p06] recovery offset 0x00004f400000, size 0x000001800000

[mmcblk0p07] misc offset 0x000051400000, size 0x000000800000

[mmcblk0p08] dtbo offset 0x000052400000, size 0x000000800000

[mmcblk0p09] cri_data offset 0x000053400000, size 0x000000800000

[mmcblk0p10] param offset 0x000054400000, size 0x000001000000

[mmcblk0p11] boot offset 0x000055c00000, size 0x000001000000

[mmcblk0p12] rsv offset 0x000057400000, size 0x000001000000

Читайте также:  Ретурн ту фредди для андроид

[mmcblk0p13] metadata offset 0x000058c00000, size 0x000001000000

[mmcblk0p14] vbmeta offset 0x00005a400000, size 0x000000200000

[mmcblk0p15] tee offset 0x00005ae00000, size 0x000002000000

[mmcblk0p16] vendor offset 0x00005d600000, size 0x000040000000

[mmcblk0p17] odm offset 0x00009de00000, size 0x000008000000

[mmcblk0p18] system offset 0x0000a6600000, size 0x000050000000

[mmcblk0p19] product offset 0x0000f6e00000, size 0x00000800000

[mmcblk0p01] bootloader offset 0x000000000000, size 0x000000400000

[mmcblk0p02] reserved offset 0x000002400000, size 0x000004000000

[mmcblk0p03] cache offset 0x000006c00000, size 0x000000000000

[mmcblk0p04] env offset 0x000007400000, size 0x000000800000

[mmcblk0p05] logo offset 0x000008400000, size 0x000000800000

[mmcblk0p06] boot_a offset 0x000009400000, size 0x000001000000

[mmcblk0p07] misc offset 0x00000ac00000, size 0x000000800000

[mmcblk0p08] dtbo_a offset 0x00000bc00000, size 0x000000800000

[mmcblk0p09] dtbo_b offset 0x00000cc00000, size 0x000000800000

[mmcblk0p10] cri_data offset 0x00000dc00000, size 0x000000800000

[mmcblk0p11] param offset 0x00000ec00000, size 0x000001000000

[mmcblk0p12] boot_b offset 0x000010400000, size 0x000001000000

[mmcblk0p13] rsv offset 0x000011c00000, size 0x000001000000

[mmcblk0p14] metadata_a offset 0x000013400000, size 0x000001000000

[mmcblk0p15] metadata_b offset 0x000014c00000, size 0x000001000000

[mmcblk0p16] vbmeta_a offset 0x000016400000, size 0x000000200000

[mmcblk0p17] vbmeta_b offset 0x000016e00000, size 0x000000200000

[mmcblk0p18] tee offset 0x000017800000, size 0x000002000000

[mmcblk0p19] vendor_a offset 0x00001a000000, size 0x000040000000

[mmcblk0p20] vendor_b offset 0x00005a800000, size 0x000040000000

[mmcblk0p21] odm_a offset 0x00009b000000, size 0x000008000000

[mmcblk0p22] odm_b offset 0x0000a3800000, size 0x000008000000

[mmcblk0p23] system_a offset 0x0000ac000000, size 0x000050000000

[mmcblk0p24] system_b offset 0x0000fc800000, size 0x000050000000

[mmcblk0p25] product_a offset 0x00014d000000, size 0x000008000000

[mmcblk0p26] product_b offset 0x000155800000, size 0x000008000000

[mmcblk0p27] data offset 0x00015e000000, size 0x000245e00000

Если сравнить эти две конфигурации, то можно заметить, что раздел data при A/B-схеме меньше на 1,6 ГБ, и это цена дублирующихся системных разделов. Много это или мало — каждый решает сам, ориентируясь на характеристики своего устройства/проекта.

Проект Treble

Следующие изменения в системе обновления произошли в Android 8.0. Начиная с Android O (8.0) и продолжая в Android P (9.0), Google реализует свой проект Treble. Идея проекта состоит в том, чтобы упростить технологический процесс создания обновления для Android-устройства. Google предложил разделить с помощью неизменных интерфейсов части прошивки, созданием которых занимаются разные компании. Процесс разработки прошивки для конкретного девайса можно упрощенно разделить на следующие шаги:

Команда Android создает новую версию своей OC.

Разработчик чипа или системы на кристалле (Silicon Manufacturer) создает аппаратно-зависимые патчи для запуска этой версии Android на своих платах.

И уже разработчики конечного устройства (Vendors) делают свою часть для реализации всех функций конкретного продукта для рынка электроники.

Проект Treble разделяет ОС Android с дополнениями от производителей чипов/СнК и код разработчика конечного устройства, так что теперь операционная система может получать обновления без реализации изменений от производителя устройства.

Разделение происходит как с помощью программного интерфейса (переход с Hardware Abstraction Layer 1.0 на HAL2.0), так и за счет выделения отдельных разделов на flash-памяти для Silicon Manufacturer и Vendor (выше в карте разделов Android 9.0 можно увидеть разделы odm, vendor, product).

Переход с HAL1.0 на HAL2.0 заключается в отказе от прямого связывания с системными библиотеками. Вместо этого, используя IPC Binder, можно подключаться к системным сервисам.

И еще одно небольшое, но полезное изменение: начиная с Android 8.0, в update_engine добавлена поддержка потоковых обновлений по A/B-схеме, в ходе которых идет прямая запись в слот B без необходимости промежуточного хранения данных в /data. Для таких потоковых обновлений практически не требуется временное хранилище, достаточно всего лишь 100 килобайт для сохранения метаданных.

При этом необходимо, чтобы http-сервер, используемый для скачивания обновления, поддерживал HTTP range requests или другими словами докачку.

Проект Mainline

Следующим серьезным этапом в развитии системы обновления Android стал проект Mainline. Реализация этого проекта началась с Android 10.0 и продолжилась в текущем Android 11.0.

Проект Mainline позволяет обновлять отдельные системные компоненты без обновления ОС целиком. Нужные данные загружаются через Google Play отдельно от OTA-обновления прошивки от производителя. Предполагается, что прямая доставка обновлений, не привязанных к оборудованию частей Android, позволит существенно сократить время получения обновлений, увеличить оперативность исправления уязвимостей и снизить зависимость от производителей устройств в поддержке безопасности ОС.

Для реализации проекта Mainline выбранные компоненты системы Android преобразуются в модули. Часть этих модулей имеет старый формат APK, а часть конвертируется в новый APEX-формат, который отличается от APK возможностью применения на раннем этапе загрузки системы. На случай возможных сбоев предусмотрен режим отката изменений.

С APEX-пакетами работает системный сервис APEX manager (apexd). Это нативный сервис, который после проверки распаковывает APEX-пакет в пользовательское пространство на диске и добавляет запись о нем в свою базу данных. При следующей загрузке системы APEX manager проверяет все пакеты из базы данных, создает loop-устройство для ext4-образа каждого APEX-пакета и монтирует его по пути /apex/name@ver.

Модули с обновлениями изначально будут поставляться с открытым кодом, они будут сразу доступны в репозиториях AOSP (Android Open Source Project) и смогут включать улучшения и исправления, подготовленные сторонними участниками.

В рамках проекта Mainline в Android 10 было добавлено 13 обновляемых модулей, а в Android 11 в дополнение к уже существующим прибавилось еще 11 модулей.

Схема Virtual A/B

Также в Android 11 к схемам non-A/B и A/B была добавлена схема Virtual A/B. Этот новый механизм обновления сочетает преимущества обоих предшественников, он обеспечивает устойчивое к сбоям обновление устройства, задействуя при этом минимальный объем flash-памяти. Это стало возможным благодаря созданию снимков файловой системы (snapshot) с использованием технологии Device-mapper (подсистема ядра Linux, позволяющая создавать виртуальные блочные устройства) и Dynamic Partitions.

Dynamic Partitions — это система организации динамических разделов для Android. С ее помощью можно создавать, изменять размер или уничтожать разделы прямо в процессе обновления по воздуху (OTA). При использовании динамических разделов разработчикам больше не нужно беспокоиться о размере отдельных разделов, таких как system, vendor и product. Вместо них на устройстве выделяется суперраздел, внутри которого можно динамически изменять размер подразделов. Больше нет необходимости оставлять свободное пространство для будущих OTA-обновлений внутри отдельных образов разделов. Оставшееся свободное место в суперразделе теперь доступно для всех динамических подразделов.

И в заключении последние слухи конца 2020 года — вишенка на торте. Google конвертирует Android Runtime в модуль Mainline. Android Runtime или ART — это среда выполнения Android-приложений, включающая компиляцию байт-кода приложения в машинные инструкции. Так что есть вероятность, что уже в Android 12 можно будет обновить ART через GooglePlay, установив APEX-пакет.

Также, вероятно, система обновления Android мигрирует в Fuchsia, новую ОС Google, которая сейчас находится в процессе разработки. Они традиционно копируют удачные решения в своих программных продуктах. Так, например, update_engine для A/B-схемы, который применяется сейчас в Android, используется в еще одной ОC Google — Chrome OS. Или еще один пример: в Fuchsia предлагается библиотека Machina, которая позволяет запускать Linux-программы в специальной изолированной виртуальной машине по аналогии с тем, как организован запуск Linux-приложений в той же Chrome OS.

Источник

Оцените статью