Ubuntu Touch

Материал из J2MEdia

Ubuntu Touch — операционная система на основе ядра Linux, разработанная компанией Canonical для смартфонов и планшетов. Является мобильной версией популярного Linux-дистрибутива Ubuntu, и изначально разрабатывалась в качестве связующего звена между настольными и мобильными устройствами, предоставляя адаптивный интерфейс пользователя, рассчитанный как на взаимодействие при помощи клавиатуры и мыши, так и при помощи сенсорных экранов. Специально для этого, разработчиками из Canonical была создана графическая оболочка Unity 8, одной из отличительных особенностей которой была возможность адаптации интерфейса налету: например, при подключении к смартфону с Ubuntu Touch внешнего монитора, клавиатуры и мыши (посредством док-станции или переходников), оболочка автоматически переключалась в десктопный режим. Однако разработка Ubuntu Touch и Unity 8 шла весьма медленно, а Canonical не желала стимулировать для участия в разработке сообщество. В итоге проект превратился в долгострой с сомнительным будущим, и впоследствии, Canonical объявила о сворачивании своих планов по разработке экосистемы Ubuntu, в том числе оболочки Unity 8 и мобильной Ubuntu Touch, сосредоточившись на серверных и облачных решениях, а десктопную редакцию почти полностью передав в руки сообщества. Разработку мобильной версии подхватило сообщество UBports, участники которого реализовали некоторые задумки Canonical, обеспечили поддержку большего количества устройств, а также ощутимо доработали и оптимизировали систему.

История[править | править код]

Прототип смартфона Ubuntu Edge

Проект Ubuntu Touch был анонсирован Марком Шаттлвортом 31 октября 2011 года. Первоначальной целью, поставленной Шаттлвортом для Ubuntu, было достижение полной конвергенции (одна и та же платформа и библиотеки на всех устройствах). Платформа Ubuntu для телефонов была представлена 2 января 2013 года. Ubuntu Touch Developer Preview был выпущен 21 февраля 2013 года. 22 июля 2013 года Ubuntu объявила о краудфандинговой кампании для смартфона Ubuntu Edge, который будет работать под управлением Ubuntu Touch, но она не достигла своей цели финансирования.

Canonical выпустила Ubuntu Touch 1.0, первую версию для разработчиков/партнеров 17 октября 2013 года [1], вместе с Ubuntu 13.10. Первая сборка поддерживает смартфоны Galaxy Nexus и Nexus 4, хотя есть образы для других телефонов и планшетов, позднее стала доступна относительно «стабильная» сборка для более широкого тестирования и обратной связи, увидевшая свет 17 апреля 2014 года вместе с Ubuntu 14.04. С 21 февраля 2013 года стала доступна предварительная версия программного обеспечения для установки на некоторые дополнительные смартфоны, работающие под управлением Android, например, Samsung Galaxy S4 Google Edition. Разработчики получили доступ ко всему исходному коду по лицензии, разрешающей модификацию и распространение программного обеспечения.

Ubuntu Touch стала доступна производителями 16 сентября 2014 года. BQ Aquaris E4.5 Ubuntu Edition, первый в мире смартфон на базе Ubuntu, поступил в продажу в Европе 9 февраля 2015 года.

В апреле 2016 года был выпущен первый в мире планшет на базе Ubuntu — BQ Aquaris M10 Ubuntu Edition.

Прекращение разработки[править | править код]

В апреле 2017 года Марк Шаттлворт объявил[2] о сворачивании разработки Ubuntu Touch, а также оболочки Unity 8 и дисплейного сервера Mir, и переводе настольного варианта Ubuntu на рабочий стол GNOME и оконную систему Wayland. По словам Шаттлворта, он рассчитывал на то, что, будучи перспективными и свободными, идеи по развитию комбинированного рабочего стола на базе Unity будут оценены как сообществом, так и представителями индустрии, недовольными имеющимися закрытыми альтернативами. Но он ошибся в обоих направлениях. Сообщество расценило проект как фрагментацию, а не инновацию. А представители индустрии не воспользовались возможностью и посчитали, что «известная беда лучше ожидаемой неизвестности», или инвестировали в создание своих наколеночных аналогов технологии Convergence, предоставляющей универсальный адаптивный пользовательский интерфейс. Unity 8 получился отличным продуктом, но судьба разработки находится в руках рынка и сообщества, которые определяют, остаться ему на плаву или исчезнуть.

Несколько разработчиков из Canonical продолжили разработку дисплейного сервера Mir, включая его автора Алана Гриффитса. Mir был полностью переработан из дисплейного сервера в набор библиотек для построения компоновщика окон Wayland, и Canonical начала использовать его для интернета вещей, например умных зеркал. Сообщество также не осталось в стороне и продолжило развитие Mir уже в рамках экосистемы Wayland. Разработку Ubuntu Touch и оболочки Unity 8 взяло на себя сообщество UBports. Чтобы избежать юридических проблем при использовании торговых знаков Canonical, Unity 8 была переименована в Lomiri. Операционная система получила ряд существенных улучшений, была переведена на актуальные выпуски биюлиотеки Qt5 и компонентов Ubuntu, а также портирована на несколько актуальных смартфонов. В настоящее время Ubports по-прежнему развивается, новые версии поставляются в виде «обновлений по воздуху» (OTA).

Технические характеристики[править | править код]

Архитектура Ubuntu Touch

В основе Ubuntu Touch лежит специальный слой абстракции от аппаратного обеспечения (HAL, Hardware Abstraction Layer), под названием Halium. Halium представляет из себя LXC контейнер, в котором находятся драйверы Android для работы с аппаратным обеспечением устройства (камеры, дисплеи, GPS модули и так далее), а также слой аппаратных абстракций из самого Android (Android HAL). Данный контейнер напрямую взаимодействует с ядром Ubuntu Touch, а для взаимодействия с программным обеспечением в пространстве пользователя (графический интерфейс, доступ к камере и другим аппаратным ресурсам из пользовательских приложений) применяется библиотека libhybris. Графическая составляющая Ubuntu Touch основана на дисплейном сервере Mir, который берет на себя работу по выводу изображения, обработке пользовательского ввода/вывода (ввод с сенсорного экрана, обработка событий виртуальной клавиатуры и физических кнопок) и так далее, а также выступающий в роли композитного менеджера для графической оболочки Unity 8 (позднее переименованной в Lomiri), формируя пользовательский интерфейс. Для разработки штатных приложений применяется графический тулкит Qt, и специальная прослойка QtMir, для обеспечения поддержки аппаратного ускорения отрисовки через OpenGL ES с помощью Mir. Для компоновки изображения применяется протокол Wayland, заменивший [3] собой ранний API отрисовки Mir, основанный на Surface Flinger из Android. Для отрисовки классических и устаревших приложений, не поддерживающих Wayland, задействована прослойка Xwayland. Для работы непосредственно мобильной связи задействован открытый стек oFono, для вывода звука - звуковой сервер PulseAudio, Bluetooth-стек BlueZ, а в качестве системы инициализации применяется systemd (ранее Upstart).

Программы распространяются в виде самодостаточных пакетов в формате Click, не требующих для установки прав администратора (root), а также внешних зависимостей (необходимые для работы библиотеки уже включены в пакет, а базовая часть является общесистемной). В последних версиях была добавлена начальная поддержка технологии Snappy, более совершенной замены Click, обеспечивающей помимо прочего, надежную изоляцию приложений через подсистему AppArmor. Кроме этого поддерживается установка классических deb-пакетов из штатного репозитория Ubuntu, а также запуск любого немодифицированного софта в специальном контейнере Libertine.

Версии[править | править код]

Версия Дата выхода Особенности
Developer Preview 21 февраля 2013 Первая публичная версия, использующая в качестве основы компоненты CyanogenMod 10. Компоненты Ubuntu, в частности оболочка Unity, работают в chroot окружениии, с использованием штатных технологий Android для вывода графики (дисплейный менеджер Surface Flinger).
13.10 17 октября 2013 Первая стабильная версия. Вместо Surface Flinger, и компонентов графического стека Android, задействован дисплейный сервер Mir, для поддержки приложений, работающих только в X11, представлен слой совместимости XMir. Компоненты Android для поддержки оборудования размещены в отдельном изолированном контейнере. Релиз официально поддерживал только Galaxy Nexus и Nexus 4, но сообществом были созданы сборки для 50-ти разных устройств.
14.04 17 апреля 2014 Оболочка Unity адаптирована для планшетов, а также для устройств разных форм-факторов. Добавлена поддержка устройств с несколькими SIM-картами, возможность одновременной обработки нескольких вызовов, возможность синхронизации календаря и адресной книги, а также вывод уведомления при появлении обновления системного образа. Базовые компоненты Android обновлены до выпуска 4.4. Версия доступна для смартфонов Nexus 4 и планшетов Nexus 7 и Nexus 10.
14.10 23 октября 2014 Первая версия, помеченная как релиз для производства (RTM, release to manufacturing). Указанная сборка ознаменовала собой готовность платформы для начала формирования прошивок для смартфонов, укомплектованных Ubuntu Touch. Об официальном выпуске устройств с Ubuntu Touch заявили компании BQ и Meizu. Meizu представила версию своего смартфона Meizu MX3, ранее выпущенную с установленным Android. BQ поступила аналогично, и выпустила смартфон BQ Aquaris E4.5 Ubuntu Edition.
15.04 - 15.04 OTA-15 23 апреля 2015 - 5 апреля 2017 Последняя версия, созданная в Canonical. В дальнейшем получит ряд обновлений по воздуху с исправлением критических проблем. В этой версии впервые представлена десктопная версия оболочки Unity 8, с возможностью бесшовного перехода в мобильный режим и обратно. Представлена прослойка Libertine, позволяющая устанавливать классические X11-приложения с помощью обычных deb-пакетов из штатного репозитория Ubuntu. В дисплейном сервере Mir появилась поддержка Vulkan, для оболочки Unity 8 подготовлен новый вариант меню приложений, без использования "умных областей" (scopes), реализована поддержка VPN, добавлена поддержка автоповорота экрана, улучшен вывод уведомлений (в том числе звуковых), существенно оптимизировано энергопотребление, переписана виртуальная клавиатура и ряд штатных приложений, исправлено огромное число ошибок. Обновлен браузерный движок Oxide, благодаря чему появилась возможность использования любых веб-приложений. Официальная поддержка осуществлялась для устройств BQ Aquaris E4.5, BQ Aquaris E5, BQ Aquaris M10, BQ Aquaris M10 HD, Nexus 4, Meizu MX4, Meizu PRO 5 и Nexus 7.
UBports 15.04-vivid OTA-1 14 июня 2017 Первый выпуск, сформированный новой командой разработчиков UBports. В состав включены новые эмулятор терминала и файловый менеджер, развиваемые ещё в компании Canonical, но не успевшие добраться до релиза. Представлен новый магазин приложений Open Store, пришедший на замену Ubuntu Store. Добавлено новое приложение UBports Welcome, с подборкой начальных настроек. Обновление сформировано для Meizu MX4/PRO 5, Bq Aquaris E5/E4.5/M10, Nexus 4 и Nexus 5.
UBports 15.04-vivid OTA-2 24 сентября 2017 Незначительные улучшения интерфейса, улучшение работы GPS и камеры, решение проблем, специфичных для определенных устройств. Началась работа по переводу оболочки Unity 8 на Wayland, с помощью слоя абстракции MirAL и портирования на свежие выпуски дисплейного сервера Mir, который также перешел на Wayland вместо собственного кода отрисовки. Обновление сформировано для смартфонов OnePlus One, Fairphone 2, Nexus 5, Meizu MX4/PRO 5 и Bq Aquaris E5/M10. Начиная с данного выпуска в число официально поддерживаемых устройств также переведены Nexus 4 и Nexus 7 2013 (только Wi-Fi).
UBports 15.04-vivid OTA-3 22 декабря 2017 В ответ на пожелания пользователей, в состав включены различные небольшие пакеты, такие как htop и libnotify-bin. В качестве поисковой системы по умолчанию задействован сервис Duck Duck Go. Задействован собственный сервер для доставки push-уведомлений. Добавлена поддержка проброса X11-сеансов через ssh (X forwarding). Решены специфичные для определенных устройств проблемы. Обновление сформировано для смартфонов OnePlus One, Fairphone 2, Nexus 4, Nexus 5, Nexus 7 2013, Meizu MX4/PRO 5, Bq Aquaris E5/E4.5/M10.
UBports 16.04-xenial OTA-4 27 августа 2018 Первый выпуск, переведенный на пакетную базу Ubuntu 16.04 LTS. Данное обновление требовалось установить вручную, так как были внесены очень значительные изменения, затруднившие процесс обновления по воздуху. В конфигуратор добавлен экспериментальный Libertine Container Manager, позволяющий устанавливать классические графические приложения в специальных контейнерах. В частности, в контейнер можно установить любой deb-пакет с настольным X11-приложением и обеспечить его запуск из окружения на основе Unity 8 при помощи специальной умной области "Desktop Apps". Проведена работа по оптимизации энергопотребления, задействованы дополнительные энергосберегающие режимы и продлено время автономной работы. Обновление сформировано для смартфонов OnePlus One, Fairphone 2, Nexus 4, Nexus 5, Nexus 7 2013, Meizu MX4/PRO 5, Bq Aquaris E5/E4.5/M10.
UBports 16.04-xenial OTA-5 13 октября 2018 Завершён переход с web-движка Oxide на QtWebEngine. Вместо приложения "Browser" представлен новый web-браузер Morph Browser, развивавшийся в рамках проекта browser-ng и построенный на актуальной кодовой базе Chromium. Добавлена поддержка фреймворка Kirigami 2 (KDE widgets), позволяющего создавать приложения с адаптивным интерфейсом, работающим без изменения на настольных и мобильных системах, таких как Ubuntu Touch и KDE Plasma Mobile. Реализовано автоматическое масштабирование интерфейса приложений на базе Qt Quick Controls 2, в зависимости от характеристик экрана.
UBports 16.04-xenial OTA-6 8 декабря 2018 Обновлено приложение для настройки VPN соединений. Обновлена прослойка libhybris, благодаря чему появилась возможность задействования драйверов из Android 7.1. Фреймворк Qt обновлен до версии 5.9.7, также обновлена библиотека для работы с аппаратными датчиками.
UBports 16.04-xenial OTA-8 7 марта 2019 В новой версии представлена поддержка тёмной темы оформления браузера. В браузере также улучшено отображение страниц с ошибками, возвращено отображение favicon-пиктограмм в списке избранных страниц и добавлена возможность встраивания собственных обработчиков на JavaScript. Большинство других изменений было произведено в инфраструктуре UBports, что положительно сказалось на качестве тестирования.
UBports 16.04-xenial OTA-9 9 мая 2019 Проведено масштабное обновление пользовательского интерфейса, в частности иконок и стилей приложений. Решены проблемы с камерой на смартфоне Nexus 5.
UBports 16.04-xenial OTA-10 22 августа 2019 В менеджер приложений Libertine добавлена функция поиска пакетов в архиве repo.ubports.com (ранее поиск ограничивался PPA stable-phone-overlay) и перехода к установке выбранных пакетов из списка с результатами поиска. В приложение для отправки SMS и MMS добавлена поддержка подготовки черновиков сообщений - теперь в процессе написания текста можно покинуть чат, а после возвращения дописать и отправить сообщение. Реализованы модули PulseAudio, обеспечивающие базовую поддержку звука для устройств на базе Android 7.1. Добавлена урезанная реализация композитного менеджера SurfaceFlinger для использования камеры на некоторых устройствах с Android 7.1. Улучшена совместимость со смартфонами Nexus 5, Fairphone 2 и Oneplus One. Для Fairphone 2 реализовано корректное определение ориентации камеры и назначения звуковых каналов (проблемы с перевёрнутым селфи и перемены местами правого и левого звуковых каналов остались в прошлом). Обновление сформировано для смартфонов OnePlus One, Fairphone 2, Nexus 4, Nexus 5, Nexus 7 2013, Meizu MX4/PRO 5, Bq Aquaris E5/E4.5/M10.
UBports 16.04-xenial OTA-12 14 мая 2020 Масштабное обновление графического стека. Задействован выпуск дисплейного сервера Mir 1.2, в котором появилась полная поддержка Wayland (сама Unity 8 пока оставалась на старом интерфейсе mirclient, поскольку не была готова реализация для работы поверх драйверов Android). Оболочка Unity 8 переименована в Lomiri, дабы избежать претензий со стороны Canonical за использование её товарных знаков. Доведены до ума и задейстованы все новшества, планируемые к включению ещё во времена Canonical, в частности новое меню приложений App Launcher, который заменил собой "умные области" (scopes). Проведена оптимизация оформления диалогов почти всех предлагаемых по умолчанию приложений. Проведена оптимизация оформления диалогов почти всех предлагаемых по умолчанию приложений. На устройствах FairPhone 2 обеспечено автоматическое переключение SIM-карты в режим 4G без необходимости ручного перевода другого слота в режим 2G. На устройствах FairPhone 2 обеспечено автоматическое переключение SIM-карты в режим 4G без необходимости ручного перевода другого слота в режим 2G.
UBports 16.04-xenial OTA-13 22 сентября 2020 Браузерный движок QtWebEngine обновлён до ветки 5.14 (ранее поставлялся выпуск 5.11), что дало возможность задействовать свежие наработки проекта Chromium в браузере Morph и web-приложениях. Проведена работа по адаптации компонентов Ubuntu Touch, таких как оболочка Lomiri (Unity8) и индикаторы, для работы в дистрибутивах postmarketOS и Alpine, в которых вместо GNU libc поставляется системная библиотека musl. Расширены возможности адресной книги, в которой теперь можно сохранять сведения о днях рождения. Добавленные данные автоматически передаются в календарь и показываются в новой секции "Contact birthdays". Переработано оформление интерфейса для редактирования контактов и упрощён ввод данных в новых полях без смещения экранной клавиатуры. Предоставлена возможность удаления записи, инициирования вызова или написания сообщения при помощи жестов (при сдвиге влево появляются пиктограммы операций с записью). Налажена работа Ubuntu Touch в сетях, использующих только IPv6. Расширено число устройств, таких как Nexus 6P, с поддержкой кнопки включения фонарика в индикаторе управления питанием. Добавлена поддержка перевода устройств Nexus 7 2013, Xperia X и OnePlus One в спящий режим при закрытии магнитного чехла и активации при открытии чехла. Обновление сформировано для смартфонов OnePlus One, Fairphone 2, Nexus 4, Nexus 5, Nexus 7 2013, Meizu MX4/PRO 5, VollaPhone, Bq Aquaris E5/E4.5/M10. По сравнению с прошлым выпуском началось формирование стабильных сборок для устройств Sony Xperia X/XZ и OnePlus 3/3T.
UBports 16.04-xenial OTA-14 5 ноября 2020 Существенно улучшена поддержка смартфонов, поставляемых с Android 9. Проведена реструктуризация некоторых системных диалогов, улучшена поддержка темной темы оформления в штатных приложениях, решены проблемы с выводом звука по Bluetooth.
UBports 16.04-xenial OTA-15 16 декабря 2020 Многочисленные доработки в веб-браузере Morph. Исправлены ошибки в телефонном стеке oFono, приводившие к сбоям в USSD-запросах. Улучшена поддержка приема и отправки MMS. Исправлено множество недочетов в адресной книге.
UBports 16.04-xenial OTA-16 - OTA-24 2021-2022 Проведены общие оптимизации производительности и потребления памяти, нацеленные на комфортную работу на устройствах, оснащённых 1 ГБ ОЗУ. В том числе повышена эффективность отрисовки фоновых изображений - за счёт хранения в ОЗУ только одной копии изображения с разрешением, соответстующим разрешению экрана, потребление ОЗУ снижено как минимум на 30 МБ при установке собственного фонового изображения и вплоть до 60 МБ на устройствах с низким разрешением экрана. Обеспечен автоматический показ экранной клавиатуры при открытии новой вкладки в браузере. В приложение для отправки сообщений добавлена поддержка стикеров. Решены проблемы с отсутствием приостановки воспроизведения после извлечения кабеля наушников, переходом в спящий режим после воспроизведения очередной композиции и блокированием перехода в спящий режим после быстрого воспроизведения двух звуковых последовательностей (например, системного звука и музыки). Реализована поддержка прослойки Halium 10, обеспечившей поддержку устройств, работающих под управлением Android 10. Реализована начальная поддержка FM-радио. Для большинства устройств включена поддержка WebGL. По сравнению с прошлыми версиями добавлена поддержка смартфонов Asus Zenfone Max Pro M1, Xiaomi Poco M2 Pro, Google Pixel 2 и Google Pixel 3a XL.
UBports 20.04-focal OTA-1 27 марта 2023 Осуществлен переход на пакетную базу Ubuntu 20.04 Focal Fossa. В оболочке Lomiri предоставлена возможность переключения между режимами телефона и рабочего стола (может использоваться для создания полноценного рабочего окружения при подключения монитора, клавиатуры и мыши к смартфону). В режиме рабочего стола добавлена начальная поддержка виртуальных рабочих столов. Системный менеджер Upstart заменён на Systemd. Окружение для запуска Android-приложений в дистрибутивах Linux заменено с Anbox на Waydroid. В стеке телефонии добавлена экспериментальная поддержка технологии мобильной связи Cell broadcast для одновременной доставки SMS нескольким пользователям. В дисплейном сервере Mir и qtmir улучшена интеграция с Xwayland и улучшена поддержка запуска X11-приложений в окружении Lomiri. Добавлена поддержка USB-C USB-PD. В программу для работы с камерой встроен интерфейс для чтения штрих-кодов. Обновление сформировано для смартфонов Fairphone 4, Google Pixel 3a, Vollaphone 22, Vollaphone X и Vollaphone.

Поддерживаемые устройства[править | править код]

Актуальные:

Только обновления безопасности:

Поддержка прекращена (возможна установка только старых версий Ubuntu Touch)

Примечания[править | править код]