Аврора 5.1.0: ключевые нововведения
ОС Аврора 5.0 предназначена для повышения конкурентоспособности в сегменте офисного сотрудника.
Основные изменения в ОС Аврора 5 направлены на расширение возможностей использования мобильного устройства (МУ) с установленной ОС Аврора как мобильного рабочего места офисного сотрудника — улучшение способов взаимодействия с устройством, в том числе за счет эффективного набора встроенных приложений, позволяющего решать базовые сценарии офисного сотрудника "из коробки".
Доверенная среда исполнения (TEE)
- В релизную линейку добавлены мобильные устройства (МУ) с поддержкой ТЕЕ:
- TEE может быть установлена на поддерживаемое МУ только при обновлении по проводу.
- После прошивки такого устройства обновление версии TEE и его компонентов по воздуху проходит автоматически при обновлении ОС Аврора.
- Реализован биодатчик энтропии случайных чисел.
- TEE интегрирован с Device secret и в ОС добавлены механизмы создания и хранения уникального аппаратного ключа МУ.
- На МУ с ТЕЕ доступен доверенный сервис криптохранения ТЕЕ Keystore, работающий изолированно от основной ОС.
Системные компоненты
Обновление системных компонентов
-
Обновлен GCC-компилятор с 8.3.0 до актуальной версии 12.3.1 с поддержкой стандартов С++17 и С++20.
-
Обновлена библиотека glibc до актуальной версии 2.38.
Системный UX/UI
Целями обновления интерфейса было было:
- Сделать планшет эффективным инструментом в руках офисного сотрудника.
- Усовершенствовать механизм для переключения между активными приложениями.
- Сделать управление устройством более привычным для пользователей iOS/Android.
Новое управление устройством
- Были обновлены четыре основных системных экрана:
- Управление жестами изменено согласно стандартам индустрии — они стали более специфичными для каждого типа устройств и их экранов. Особое внимание было уделено планшетным жестам.
Публичное API для элементов интерфейса
-
Была создана собственная библиотека Aurora Controls с публичным API для взаимодействия с компонентами интерфейса.
-
Появились новые компоненты интерфейса:
-
AppBar — панель приложения для управления содержимым страницы.
-
PopupMenu — всплывающее контекстное окно.
-
SplitView — навигация нескольких элементов, расположенных горизонтально слева направо (см. "Планшетный UX").
Планшетный UX
- Компонент SplitView позволяет отображать несколько страниц на одном экране. Благодаря этому стало возможно адаптировать системные экраны под разрешение экранов планшетов:
Шаблоны взаимодействия
Шаблон взаимодействия — модель взаимодействия интерфейса с пользователем в определенных похожих ситуациях.
Данные шаблоны присутствуют и в ОС Аврора для улучшения пользовательского опыта — они схожи с реализациями в других ОС, что делает взаимодействие интуитивно понятным при переходе на ОС Аврора.
Список шаблонов:
- Шаблон контекстных действий.
- Шаблон множественного выбора.
- Шаблон сортировки.
Другие изменения в интерфейсе
- Появилась новая интерактивная модель главного экрана с обновленными обложками.
- Обновлена панель быстрого доступа.
- Переработаны обложки приложений. Они стали более узнаваемыми и информативными.
- Улучшен алгоритм сортировки свернутых приложений.
- Добавлен системный жест "смахивания" уведомлений в экране событий.
- Добавлена пользовательская сетка приложений под разные типы устройств для меню приложений.
- Изменено отображение папок, теперь они отображаются более компактно. Если в них более десяти приложений, то появляется постраничный вывод.
- Добавлены новые анимации для редактирования приложений и папок.
- Все ярлыки и слайдеры объединены в общую сетку в верхнем меню.
- Добавлен системный жест "домой" для свертывания приложений.
- Добавлен системный жест "Pulley 2.0" для мгновенной активации главных функций приложения.
Безопасность
- На экране ввода пароля добавлено отображение текущего имени пользователя.
- Добавлена возможность использования детерминированных данных для биометрических плагинов.
- В сборках с TEE содержится защита от перепрошивки (Trusted Boot), которая теперь доступна в корпоративной версии.
- В момент прошивки МУ осуществляется проверка по следующим критериям:
- Anti-rollback — версия устанавливаемой прошивки выше или равна той, что была установлена ранее.
- Невозможно установить на МУ образ ОС от другой модели.
- Тип образа соответствует установленному (корпоративный или сертифицированный).
- Соответствие имени раздела.
- Проверка, что образ подписан корректным ключом.
- В журнал безопасности добавлены:
- событие об использовании существующего аппаратного ключа;
- событие о включении/выключении факторов аутентификации.
- Добавлена многофакторная аутентификация для доступа в ОС.
- Во всех пакетах исключены зависимости с устаревшим Device lock.
- Переработан UI по работе со смарт-картой (привязка и аутентификация).
- Добавлена опция сохранения и получения раздельных списков факторов аутентификации с привязкой к разблокировке домашней директории пользователей и разблокировке экрана.
- Для повышения стойкости пароля шифрованного раздела к подбору его формат изменён на LUKS2.
Мультимедиа
- Добавлен новый Videochat API для стриминга видео с камеры и аппаратного кодирования/декодирования видео с использованием аппаратных возможностей МУ.
- Добавлен WebRTC API . Библиотека Google WebRTC адаптирована для использования в нативных ВКС приложениях. Добавлена поддержка аппаратных кодеков.
- Разработан Call API для вызова системного экрана входящего/исходящего звонка, который позволяет:
- интегрировать сторонние приложения провайдеров звонков, например VoIP;
- показывать Экран уведомления о звонке независимо от того, заблокировано или разблокировано устройство;
- отклонять и принимать входящий звонок, завершать текущий звонок.
- Добавлены описания параметров/функций/методов в документации к StreamCamera .
- В библиотеке StreamCamera добавлена поддержка программных кодеков Android для упрощения работы WebRTC.
Управление соединением
- При переключении сетевого сервиса VPN переподключается без задержки.
- Из состава образа удалены неиспользуемые VPN плагины.
Сервис уведомлений
- Добавлена возможность доставлять push-уведомления в системный UI напрямую, минуя доставку данных в приложение.
- Добавлена поддержка протокола OCSP для валидации сертификата push-сервера.
Управление приложениями
- Разработана публичная библиотека для работы с Мarket API .
- Реализован минимально достаточный Market API для установки сторонних приложений в рамках пакетного менеджера.
- В пакетном менеджере реализованы:
- установка, обновление и удаление сторонних приложений;
- механизм восстановления незавершенного обновления приложения в случае выключения МУ;
- больший объем для установки сторонних приложений.
- Реализована возможность выдавать разрешения для выбранного приложения при активации автозапуска.
- Добавлено отображение контрольных сумм разделов на прошивках МУ с поддержкой Trusted boot.
- Добавлено расширение D-Bus API в RuntimeManager для получения информации о параметрах, с которыми было запущено приложение.
- Добавлена поддержка работы в фоне для приложений, возможность добавления периодических фоновых задач и активируемых по запросу или какому-то событию.
- Унифицирована работа с папками для приложений.
- Реализована очистка кэшей удаленных файлов через функционал очистки пользовательских данных.
- Добавлена возможность выдачи разрешений приложениям при активации автозапуска.
- Расширен список ошибок и детализированы ошибки при установке, удалении и обновлении RPM-пакетов.
Интерфейсы взаимодействия
MDM API
- В рамках реализации удаленного управления квотами пользователей:
- Добавлена возможность включить и выключить квотирование.
- По умолчанию выставляется оптимальный размер квоты для равномерного использования свободного пространства.
- При выставлении максимального значения квоты появляется предупреждение, что квот не останется для будущих пользователей.
- При включённых квотах и исчерпанных квотах запрещено добавление пользователей.
- В рамках доработки MDM API сервиса обновлений реализованы:
- Предоставление информации обо всех доступных обновлениях.
- Планирование загрузки обновления по аналогии с методом планирования установки.
- Отмена запланированной загрузки обновления.
- Предоставление информации о запланированной загрузке обновления.
Print API
- Добавлена возможность печати и предварительного просмотра PDF-файлов и изображений (JPEG, PNG, BMP, GIF, TIFF, JPG) на добавленных пользователем принтерах.
- Добавлена возможность предварительного просмотра документа, отправляемого на печать.
- Появилась возможность управлять принтерами, доступными по Wi-Fi или по USB.
- Отображается уведомление о неудачной попытке добавить принтер.
- Добавлена возможность смены ориентации печати.
Crypto API
- Для вендоров добавлена возможность устанавливать с ОС собственные библиотеки, реализующие QCA API.
PDF View API
- Добавлена возможность загрузки факсимиле.
- Добавлена возможность удаления заметки со страницы.
QR API
- Уменьшено влияние QR фильтра (распознавание QR кодов) на QML компонент VideoOutput .
Мобильные приложения
Браузер
- Добавлена возможность выделения текста в полях ввода.
- Разработан экспериментальный браузер на базе движка Chromium 116-й версии.
Журнал
- Исключено использование Меню действий в пользу нового компонента AppBar с использованием PopupMenu.
Почта
- Исключено нижнее Меню действий при создании нового письма на смартфоне.
- Добавлен системный компонент AppBar для навигации.
Календарь
- Меню действий заменено на панель AppBar при просмотре события в письме.
Сообщения
- Исключено использование Меню действий в пользу нового компонента AppBar с использованием PopupMenu.
- Добавлен SplitView режим для планшетов и фаблетов.
Настройки
- Расширена информация о центральном процессоре на странице "Об устройстве".
Файлы
- Исключено использование Меню действий в пользу нового компонента AppBar с использованием PopupMenu.
- Добавлен SplitView режим для планшетов и фаблетов.
Помощь
- Добавлена поддержка альбомной ориентации для планшетов и фаблетов.
Камера
- Добавлен пример плагина для WebView , который получает данные с камеры напрямую и определяет её.
- Добавлен новый метод позиционирования видоискателя камеры.
- Добавлен новый API для стриминга видео с камеры и настройкой аппаратного кодирования.
Документы
- Исключено использование Меню действий в пользу нового компонента AppBar с использованием PopupMenu.
- Добавлен SplitView режим для планшетов и фаблетов с возможностью скрытия списка документов в данном режиме.
Телефон
- Исключено использование Меню действий в пользу нового компонента AppBar с использованием PopupMenu.
Калькулятор
- Добавлен курсор в поле ввода калькулятора.
Музыка
- Добавлены жесты:
- Переключение треков (вперед/назад) с помощью свайпа вправо/влево.
- Закрытие полноэкранного плеера с помощью свайпа вниз.
- Открытие полноэкранного плеера с помощью нажатия на мини-плеер.
Просмотр PDF
- Исключено использование Pulley меню в пользу нового компонента AppBar с использованием PopupMenu.
- Добавлен SplitView режим для планшетов и фаблетов.
Контакты
- Исключено использование Меню действий пользу нового компонента AppBar с использованием PopupMenu.
Часы
- Переработан UI приложения с адаптацией под планшетную версию.
Замена
- Исключено использование Меню действий пользу нового компонента AppBar с использованием PopupMenu.
Диктофон
- Исключено использование Меню действий пользу нового компонента AppBar с использованием PopupMenu.
Flutter SDK для OC Аврора
Flutter SDK для ОС Аврора не состоит в upstream
, и платформа ОС Аврора не доступна в официальной сборке Flutter. Поэтому установка происходит отличным от основного метода установки.
Поддержка Flutter добавлена в ОС Аврора версии 4.0.2.269. Для разработки приложений опубликован Flutter SDK, включающий версию Flutter 3.3.10 и Dart 2.18.6.
Документацию по Flutter SDK для ОС Аврора можно найти здесь.
Более подробно о разработке на Flutter SDK для ОС Аврора можно прочитать в данной статье.
Новые примеры приложений для ОС Аврора
-
MDM API — проект показывает использование MDM API, включая блокировку устройства и блокировку нескольких отдельных функций устройства, а также получение местоположения устройства.
-
Web RTC — приложение на C++ демонстрирует аудио/видеовызовы WebRTC.
-
OpenVPN — приложение демонстрирует разработку плагина OpenVPN без скриптов для connman.
Использование Conan
Conan — менеджер пакетов C\C++, используемый для сборки и хранения зависимостей под разные архитектуры. При помощи него станет легче работать с примерами приложений, не придётся каждый раз пересобирать зависимости библиотек.
Conan также предоставляет удобный интерфейс при наличии вариативности в:
- компиляторе,
- версии компилятора,
- операционной системе,
- типе сборки (Release/Debug),
- версии стандартной библиотеки.
Использование утилиты среды сборки приложений Аврора
Aurora SDK build tools (ASBT) — набор инструментов для сборки, разработки, отладки и тестирования приложений.
В релизе Аврора SDK 5.0 процесс сборки в Aurora IDE адаптирован для использования инструментов ASBT:
- Добавлены настройки, необходимые для сборки в Docker-контейнере
- Доработан интерфейс пользователя Qt Creator для использования новых инструментов сборки.
Новые поля в desktop-файле
Для более тесной интеграции интерфейса Домашнего экрана с приложением, в desktop-файл были добавлены новые секции и поля.
Секция [X-Aurora-SplashScreen]
Для всех запускаемых приложений в Авроре 5.0 был добавлен упрощенный экран заставки, который раскрывается при нажатии на иконку приложения.
Например,
[Desktop Entry] ... [X-Aurora-SplashScreen] GradientStartColor=#AAA000 GradientEndColor=#FEDCBA
GradientStartColor
- начало градиента, слева-сверху. GradientEndColor
- конец градиента, справа-снизу.
Секция [X-Aurora-Application]
Когда приложение работает в какой-либо исключительной ориентации (только в альбомной или только в портретной), можно заранее подготовить Домашний экран пользователя, "повернув" его в правильную ориентацию до запуска непосредственно самого приложения.
Такое поведение определяется группой полей в секции X-Aurora-Application
:
- SmallScreenOrientation
- для устройств с категорией Silica.Screen.sizeCategory == Silica.Screen.Small
- MediumScreenOrientation
- для устройств с категорией Silica.Screen.sizeCategory == Silica.Screen.Medium
- LargeScreenOrientation
- для устройств с категорией Silica.Screen.sizeCategory == Silica.Screen.Large
- ExtraLargeScreenOrientation
- для устройств с категорией Silica.Screen.sizeCategory == Silica.Screen.ExtraLarge
- Orientation
- для устройств любой категории, но может быть переопределено другим полем из списка выше.
Иконка приложения
Все иконки приложений в Авроре 5.0 принимают стандартную системную форму, на текущий момент это - сквиркл.
По умолчанию иконки отрисовываются на белом фоне с размером 80% от оригинального. Это позволяет аккуратно разместить иконку по центру "подложки" системной формы и исключает ощущение беспорядка в Меню приложений:
Переопределить такое поведение можно следующим образом:
[Desktop Entry] ... [X-Aurora-Application] IconMode=Crop