Динамические обновления системы, что это за программа для Android

Обновлено: 21.11.2024

Google только что выпустил бета-версию 4 Android Q, и уже многое известно о последнем обновлении. Последняя бета-версия также добавляет еще одну функцию в таблицу динамических обновлений системы (DSU).

Мишаал Рахман из

XDA заметил это дополнение, и оно должно упростить предварительный просмотр новых обновлений. В частности, динамические обновления системы позволят вам временно установить общий образ системы (GSI), предоставленный производителем устройства. GSI — это, по сути, чистая версия Android, которая используется для проверки совместимости Android на смартфонах.

Google добавляет, что вы также можете установить другой образ системы Android с помощью этого метода, хотя неясно, означает ли это пользовательские ПЗУ или официальные предварительные версии. Так как же все-таки работает этот новый процесс?

Согласно странице Google по этой теме, GSI должен быть подписан Google или производителем вашего устройства. Кроме того, производители также должны будут включить динамические обновления системы со своей стороны. Но Google подтвердил, что он доступен для Pixel 3 и Pixel 3 XL.

Выполнить эти требования? Затем вы можете включить флаг функции DSU с помощью команды ADB или через «Настройки»> «Система»> «Параметры разработчика»> «Флаги функций»> «settings_dynamic_android» в «userdebug» версии Android. Затем вам нужно будет загрузить GSI для вашего устройства и выполнить несколько команд ADB. Если все это успешно, вы увидите предложение перезагрузить телефон с новым обновлением.

Не нравится обновление? К счастью, вы можете просто перезагрузить телефон, чтобы отключить его и вернуться к текущему обновлению. Надеемся, что Google сотрудничает с разработчиками пользовательских ПЗУ, чтобы пользователи могли опробовать новые ПЗУ, но эта функция должна экономить время разработчиков, позволяя им быстро тестировать свои приложения.

Хорошая экосистема приложений – одна из важнейших составляющих успеха операционной системы. И Google, и Apple признают ценность наличия хороших приложений на своих платформах, поэтому обе компании пытаются сбалансировать потребности своих пользователей и разработчиков приложений. Пользователи продолжают настаивать на изменениях в операционных системах, и, хотя большинство людей обычно ценят новые функции, эти изменения не всегда доставляют удовольствие разработчикам приложений, поскольку они могут изменить многие основные функции и поведение. Для разработчиков, которые постоянно работают над тем, чтобы их приложения оставались актуальными, работа с этими изменениями дополняет их растущий рабочий список. Даже если эти изменения не повлияют напрямую на их приложения, разработчикам все равно нужно убедиться, что их приложения будут работать на новом обновлении ОС. За прошедшие годы Google внесла множество изменений, чтобы упростить этот процесс для разработчиков приложений для Android, и теперь новая функция в Android 11, называемая DSU Loader, еще больше упростит разработчикам приложений тестирование своих приложений на новых версиях Android.< /p>

Все начинается с Project Treble

Проект Treble, представленный в Android 8.0, представляет собой серьезную перестройку архитектуры ОС Android. Цель проекта Treble состояла в том, чтобы разделить ОС Android на две большие части: инфраструктуру и реализацию поставщика («поставщик» здесь относится к производителю любого проприетарного аппаратного компонента, находящегося в устройстве, обычно имея в виду кремний). Платформа ОС Android — это сама операционная система, включая все системные приложения, пользовательский интерфейс и его компоненты, а также API-интерфейсы, общие для устройств Android. Реализация поставщика содержит HAL (уровни аппаратной абстракции) поставщика, а также ядро ​​Linux и модули ядра Linux.

Поскольку OEM-производители поставляют смартфоны с множеством различных аппаратных компонентов от разных поставщиков, им приходится проделывать много работы только для того, чтобы настроить аппаратное обеспечение и запустить его в одной версии ОС Android. Затем с каждым новым обновлением ОС Android им приходится проделывать еще больше работы, чтобы убедиться, что их оборудование работает с новой версией. Но с проектом Treble, который стандартизирует ABI (бинарный интерфейс приложений) между платформой ОС Android и HAL для конкретной версии Android, OEM-производители Android могут начать тестирование обновлений для своих устройств, не дожидаясь, пока производители микросхем и другие производители компонентов обновят свою часть. код. Это изменение заметно ускорило обработку обновлений Android.

Это суть того, что Project Treble сделал для обновлений Android, но что более важно для разработчиков приложений, так это то, что Treble позволяет использовать общие образы системы (GSI) для тестирования совместимости.

Появление GSI

Чтобы OEM-производители могли проверить, правильно ли они внедрили Project Treble, Google требует, чтобы OEM-производители могли загрузить чистую сборку Android из AOSP на устройстве. Эта чистая сборка Android называется Generic System Image или GSI. Если GSI загружается и большинство основных аппаратных средств работает правильно, OEM-производитель знает, что его устройство соответствует требованиям Project Treble. Таким образом, первоначальной целью GSI было тестирование совместимости с Treble, но, как мы видели в сообществе разработчиков здесь, в XDA-Developers, их можно использовать для других целей. Мы увидели, как GSI могут позволить устройствам с тяжелым пользовательским интерфейсом Android пользоваться последней версией Android с рабочими функциями в течение нескольких дней после нового выпуска. Но Google видит в GSI еще одну цель: предоставить разработчикам приложений возможность тестировать свои приложения в новой версии Android на физическом устройстве, которым они уже владеют.

В Android 10 компания Google выпустила собственные сборки GSI для разработчиков. Google укрепил идею о том, что разработчики приложений должны использовать GSI для загрузки чистой сборки Android на своем собственном оборудовании, что упрощает тестирование поведения их приложений на стандартном Android. Таким образом, этот метод добавляется к существующим вариантам тестирования совместимости приложений на стандартном Android без изменения поведения OEM, другие — с использованием смартфона Pixel, с использованием официального эмулятора Android в Android Studio или развертыванием сборок приложений на экземпляре устройства в облаке.

Несмотря на все удобства, которые принесли GSI, их установка по-прежнему была громоздким процессом. Разработчикам приложений может быть неудобно вручную прошивать образ системы на устройстве Android, поскольку это обычно знакомо только любителям или разработчикам ОС Android. Для установки GSI требуется прошивка образа системы через fastboot, что требует отключения Android Verified Boot и разблокировки загрузчика. Разблокировка загрузчика, в свою очередь, требует полной очистки пользовательских данных. И, как мы все знаем, не существует единого процесса или руководства для разблокировки загрузчика каждого Android-устройства, поэтому здесь нет согласованности. Например, устройства Samsung не имеют быстрой загрузки, в то время как устройства Xiaomi заставляют вас прыгать через несколько обручей, чтобы разблокировать загрузчик. Это удобный беспорядок, который может быть распутан во что-то более простое.

Именно здесь на помощь приходят динамические обновления системы.

Динамические обновления системы, просто устанавливающие GSI

Компания Google поняла, что текущий метод установки GSI не является идеальным решением, поэтому они начали работать над лучшим решением. В Android 10 Google начал тестировать динамические обновления системы или DSU. DSU — это новый способ временной установки GSI без использования команд fastboot для прошивки образа системы, перезаписывающего исходную установку. С DSU вы можете загрузиться в GSI, протестировать свое приложение, а затем удобно перезагрузиться обратно в исходную установку, которая осталась нетронутой.

Причина, по которой DSU может установить GSI, не затрагивая исходную установку, заключается в том, что он создает новую систему и образы разделов данных, которые временно хранятся в /data/gsi. Эти образы затем монтируются во время загрузки, а не исходные разделы системы и данных. Поскольку телефону требуется дополнительное место для хранения этих новых временных изображений, ваш телефон должен иметь «логические разделы» на борту, которые являются разделами с динамически изменяемым размером. Логические разделы – это новая система разделения пользовательского пространства для Android, которая является обязательной для устройств, запускаемых с Android 10. Если ваше устройство запущено с Android 10, оно должно поддерживать установку GSI через DSU.

В Android 10 для установки GSI через DSU достаточно изменить системное свойство, а затем запустить DynamicSystemUpdatesInstallationService, отправив намерение с путем к GSI в качестве дополнительного намерения. .

Хотя этот процесс может показаться незнакомым, он намного проще и менее навязчив по сравнению с использованием команд fastboot и устранением хлопот со всем, включая очистку исходной установки. Вам требуются некоторые знания ADB и намерения использовать DSU, но это не должно быть проблемой для большинства разработчиков приложений. Тем не менее, нет никаких причин, по которым этот процесс нельзя было бы сделать еще проще. Кроме того, для установки GSI через DSU по-прежнему требуется разблокировать загрузчик, в процессе стирая все пользовательские данные. С этой целью Google внесла изменения, чтобы улучшить оба аспекта установки GSI. В Android 11 они вообще устранили необходимость использования командной строки для установки GSI. Отдельно они также сделали возможной установку GSI без разблокировки загрузчика.

Загрузчик DSU в Android 11

DSU Loader – это новый инструмент, представленный в параметрах разработчика Android 11, который позволяет загружать и устанавливать последнюю версию GSI из Google без необходимости вводить какие-либо команды fastboot или ADB.Просто коснитесь параметра «Загрузчик DSU» в настройках, и появится диалоговое окно со списком поддерживаемых GSI прямо из Google. Эти поддерживаемые GSI будут основаны на вашей текущей ОС и архитектуре, поэтому вы можете устанавливать только те GSI, которые новее версии вашей ОС и соответствуют вашей архитектуре SoC. Просто выберите GSI, который вы хотите установить, и он будет автоматически загружен с серверов Google и установлен в фоновом режиме.

Загрузчик DSU на Android 11

Благодаря загрузчику DSU разработчикам не нужно прикасаться к командной строке для установки GSI. По крайней мере, это мечта, потому что осталось решить еще одну проблему.

Путь вперед

В настоящее время для установки GSI через загрузчик DSU требуется разблокированный загрузчик. Хотя это может противоречить цели всего испытания, так не должно быть, и нам говорят, что это будет исправлено. Google планирует, чтобы пользователи могли загружать подписанные Google GSI через DSU без необходимости разблокировать загрузчик. Фактически, Google требует, чтобы все устройства запуска Android 10 включали открытые ключи Android Verified Boot для подписанных Google GSI Android 10, Android 11 и Android 12. Включение открытых ключей AVB в виртуальный диск устройства гарантирует, что AVB не отклонит GSI, который вы пытаетесь загрузить. Вот почему текущий метод включает в себя разблокировку загрузчика — прошивая пустой образ vbmeta в раздел vbmeta, вы отключаете AVB, чтобы он не отклонял GSI, который вы собираетесь прошить. Однако отключение AVB представляет собой серьезную угрозу безопасности, поскольку это означает, что любой измененный раздел системы/загрузки/продукта/поставщика может быть загружен на устройство, поэтому Google хочет покончить с этим требованием.

Требования к запуску Android 10 GSI

Итак, когда можно ожидать загрузки GSI через DSU без необходимости разблокировать загрузчик или использовать какие-либо инструменты командной строки? Надеюсь, скоро, как Google упомянул нам, что у них есть несколько проблем, которые нужно сгладить с первоначальными предварительными версиями Android 11 для разработчиков, прежде чем они смогут заставить все это работать должным образом. В дальнейшем можно ожидать установки будущих GSI Developer Preview через DSU без необходимости разблокировать загрузчик. Возможно, когда станут доступны предварительные версии Android 12 для разработчиков, вы даже сможете полностью загрузить их, используя загрузчик DSU в параметрах разработчика Android 11. Для разработчиков приложений это означает, что у вас появится еще один способ протестировать свои приложения на физическом оборудовании под управлением новой версии Android.

На выставке Android Playground на Google I/O 2019 было чем похвастаться: игровые приставки Android TV, улучшения Android Studio, новейшие часы Wear OS и многое другое. В одном углу Google демонстрировал экспериментальную функцию, у которой даже нет окончательного названия, и она может сделать жизнь разработчика (и мою жизнь) намного проще.

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

Этот процесс так же мучителен для разработчиков, как и для нас. Не у всех есть запасные телефоны стоимостью более 600 долларов, на которые они могут позволить себе установить экспериментальную операционную систему, и не все тесты можно выполнить с помощью эмулятора Android Studio. Решение Google состоит в том, чтобы позволить разработчикам временно загружаться в разные образы системы, не затрагивая установленную операционную систему.

Этот процесс покажется знакомым тем из вас, кто работал с Linux.

Этот процесс, несомненно, покажется знакомым тем из вас, кто работал с Linux. Большинство дистрибутивов Linux предлагают загрузочные образы, которые можно записать на USB-накопитель или записать на CD/DVD. Когда компьютер загружается с диска Linux, присутствует полная среда рабочего стола, позволяющая пользователю легко тестировать приложения и выполнять другие задачи. На внутренний диск компьютера ничего не устанавливается, и все данные удаляются при завершении работы Linux.

Android Q будет включать аналогичную функцию, которая в настоящее время называется «Динамические обновления системы» (хотя для ее обозначения также использовались термины «Живые изображения» и «Динамический Android»). Создается временный системный раздел, и на него можно установить альтернативный универсальный образ системы (GSI). Уведомление появляется, когда процесс завершен, и нажатие на него перезагружает телефон в GSI. Когда вы закончите, просто перезагрузите телефон, и вы вернетесь к обычной сборке Android вашего телефона.

Среди мелких изменений, внесенных в Android Q Beta 4, Google также предоставила разработчикам возможность опробовать довольно подробный технический предварительный просмотр. Функция под названием «Динамические обновления системы» позволяет вам временно запускать другую версию Android на вашем устройстве.

В Android Oreo компания Google представила проект Treble, который позволил ускорить обновления Android за счет отделения частей Android от кода, специфичного для OEM-производителя и устройства. Частью проекта Treble было создание универсальных образов системы (или GSI), которые представляют собой «чистый Android» и могут быть прошиты практически на любое устройство, совместимое с Treble.

Эти GSI обычно используются для тестирования новых версий Android. Google даже предоставил смелым пользователям несколько GSI, которые они могли опробовать во время второй бета-версии Android Q, хотя большинство пользователей сообщали о серьезных проблемах во время их тестирования.

В прошлом месяце на конференции Google I/O компания продемонстрировала новый экспериментальный способ использования GSI под названием Dynamic System Update. Это динамическое обновление системы позволяет устройствам Android Q временно установить GSI, чтобы попробовать более новую версию Android на вашем устройстве. С выпуском Android Q Beta 4, как заметил Мишаал Рахман из XDA, разработчики могут экспериментировать с этими динамическими обновлениями системы.

Я решил попробовать Dynamic System Updates на своем устройстве, чтобы вам не пришлось это делать. Процесс на удивление прост (занял менее 15 минут), если вам удобно пользоваться командной строкой. Когда все было сказано и сделано, я получил уведомление о том, что динамическое обновление системы готово и что я могу перезагрузить свое устройство.

Как видите, окончательный опыт после загрузки динамического обновления системы довольно грубый. Это связано с тем, что GSI Android Q, предоставляемые Google, являются «чистым Android» и, следовательно, не имеют обычных улучшений Android, от которых выигрывают почти все устройства. То, что вы видите здесь, — чистый AOSP.

На данный момент динамические обновления системы должны предоставляться OEM-производителем или компанией Google, а это означает, что они не являются золотым билетом для экспериментов с ПЗУ, на которые, возможно, надеялись опытные пользователи Android. Возможно, это можно обойти, если у вас уже есть root.

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

FTC: мы используем автоматические партнерские ссылки, приносящие доход. Подробнее.

Вы читаете 9to5Google — экспертов, которые день за днем ​​сообщают новости о Google и окружающей его экосистеме. Обязательно заходите на нашу домашнюю страницу, чтобы быть в курсе всех последних новостей, и подписывайтесь на 9to5Google в Twitter, Facebook и LinkedIn, чтобы оставаться в курсе событий. Не знаете, с чего начать? Ознакомьтесь с нашими эксклюзивными историями, обзорами, практическими рекомендациями и подпишитесь на наш канал YouTube

Читайте также: