DSU Loader в Android 11 помогает разработчикам тестировать приложения на стандартном Android

Android 11 будет поставляться с загрузчиком DSU в параметрах разработчика, который позволит вам автоматически загружать и устанавливать совместимые GSI! Читайте дальше!

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

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

Project 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 — это новый способ временной установки GSI без использования команд fastboot для прошивки образа системы, перезаписывающего исходную установку. С DSU вы можете загрузиться в GSI, протестировать свое приложение, а затем удобно перезагрузиться обратно в исходную установку, которая осталась нетронутой.

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

В Android 10 все, что вам нужно сделать, чтобы установить GSI через DSU заключается в изменении системного свойства и последующем запуске ДинамикСистемупдатесИнсталлатионСервис отправив намерение с путем к 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 Loader разработчикам никогда не придется прикасаться к командной строке для установки GSI. По крайней мере, это мечта, потому что осталось решить еще одну проблему.

Путь вперед

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

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

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