Часто задаваемые вопросы
Общие вопросы
Как купить устройство на Аврора ОС?
Большинство устройств на базе Аврора ОС доступны для покупки корпоративным (B2B) и государственным (B2G) заказчикам.
Физическим лицам на данный момент доступны несколько устройств - смартфон Fplus Pro R570E и планшет Fplus LifeTab Plus Pro 10.1". Устройства можно свободно приобрести в сети магазинов их производителя.
Альтернативный способ получить устройство бесплатно - участвовать в программе бета-тестирования.
Где найти приложения под Аврора ОС?
Значительная часть приложений сейчас доступна лишь корпоративным пользователям через предустановленные приложения Аврора Центр и Маркет.
Обычные пользователи могут скачать и установить публично доступные приложения следующими способами:
- Напрямую сайтов разработчиков ПО. Например так распространяется популярный Telegram-клиент Tavro. (По аналогии с Андроид, при нажатии в браузере на ссылку, ведущую на rpm-файл, он скачивается, и в загрузках/диспетчере файлов вы можете нажать на установочный пакет, и устройство предложить его установить)
- Из любительских витрин в приложении Маркет, либо из неофициальных сторов (см. Aura Store) и репозиториев (напр. здесь).
- Из любых других источников, например из AuroraWiki.
- Из RuStore для Аврора ОС, который должен появиться в ближайшие месяцы.
Есть ли игры для Аврора ОС?
Имеются как нативные игры, так и порты. Множество игр доступно через эмулятор. См. раздел Игры.
Где найти открытые витрины?
Где найти больше информации по ОС Аврора?
- Официальный сайт
- Официальная группа в VK
- Официальный канал разработчика ОС на Youtube
- Неофициальное сообщество разработчиков под Аврора ОС в Telegram
- Видео
- Статьи
Можно ли поставить Аврора ОС на Android смартфон?
Публично доступных дистрибутивов Аврора ОС нет, поэтому установить систему не удастся даже на поддерживающий её Fplus Pro R570E с предустановленным Android.
Единственный способ на данный момент - приобрести устройство с предустановленной версией ОС.
Как сделать скриншот?
Чтобы сделать скриншот, нужно одновременно нажать и удерживать обе кнопки управления громкостью.
Как настроить VPN?
Если по каким-то причинам встроенный клиент не подходит, можно настроить OpenVPN и WireGuard. Инструкция тут.
Как настроить репозитории?
В командной строке ОС ввести:
ssu ar 'имя репозитория'
- добавить репозиторийssu rr 'имя репозитория'
- удалить репозиторийssu lr
- вывести список подключенных репозиториев
Как раздать интернет по кабелю?
В консоли ОС набрать:
devel-su pkcon refresh pkcon install usb-moded-connection-sharing-android-connman-config systemctl restart usb-moded
После чего при подключении кабеля, появится вариант поделиться интернетом (см. скриншот).
Геопозиционирование работает медленно, как это исправить?
Для того, чтобы нормально заработало определение геопозиции (а не через несколько минут ожидания) надо:
- Выбрать в настройках местоположения "Позиционирование высокой точности"
- Получить ключ для Maps API (до 1000 определений геопозиции в сутки - бесплатно).
- Сохранить его на устройстве в файле yandex.key в каталоге /etc. Соответствующий плагин от Яндекса уже присутствует.
После регистрации API, на компьютере cоздаем файл yandex.key и в него вставляем цифры, которые выдал Яндекс при создании ключа. Копируем на телефон, запускаем терминал, переходим в папку где лежит этот файл, и набираем:
devel-su
- Вводим свой пароль, который указывается в настройках в разделе администрирование
cp yandex.key /etc
reboot
Отзывы по работоспособности данного решения противоречивые.
Разработка под Аврора ОС
Как начать разрабатывать под Аврора ОС?
Разработка возможна на C++/Qt, либо (с ограничениями) на Flutter и Kotlin Multiplanform. Основной ресурс - это официальная документация.
Полезные ссылки для начинающих разработчиков:
- Неофициальное сообщество разработчиков в Telegram
- Учебные материалы от разработчиков ОС
- Разработка приложений для ОС Аврора (бесплатный курс)
- Разработка прикладного ПО на Qt и ОС «Аврора» (платный курс)
- Разработка программного обеспечения для ОС АВРОРА (платный курс)
- Внедрение, администрирование и работа с платформой централизованного управления мобильными устройствами Аврора Центр (платный курс)
- Видео
- Роман Аляутдин, Денис Глазков — Разработка для ОС «Аврора»
- Алексей Гладков — ОС «Аврора» глазами Android- и iOS-разработчика
- Aurora OS. Первый взгляд / Мобильный разработчик
- Установка и настройка QEMU + Alpine Linux + Аврора Platform SDK
- Механизмы безопасности и изоляции приложений в мобильной ОС Аврора
- Современные подходы к доверенной загрузке ОС на примере Аврора СДЗ для процессоров Baikal-M
- Aurora, Server + macOS M1
- Видеоматериалы по ОС Аврора и Sailfish OS: использование, разработка, мероприятия
- Статьи
На каких платформах возможна разработка?
Формально доступны дистрибутивы SDK для Windows, Linux и macOS (только x86). Фактически для комфортной разработки лучше использовать Ubuntu Linux или Windows.
Версию SDK для macOS невозможно установить на последние x86-релизы (Sonoma), хотя есть подтвержденные случаи работы на более старых версиях (Catalina). Работа на устройствах на базе ARM64 официально не поддерживается, хотя существуют обходные пути с развертыванием Build Engine вне macOS.
При скачивании Аврора SDK требуется выбрать версию, которая соответствует версии целевого устройства (таргета). Как собрать проект на разные версии ОС?
Plarform SDK позволяет установить несколько таргетов и собирать проект для разных версий ОС Аврора.
Какой версии Qt в Аврора ОС?
Qt 5.6.3 c определенными ограничениями. В комплект входят нативные UI компоненты Silica
Почему не рекомендуется использовать библиотеку Qt Widgets?
В процессе развития фреймворка Qt появился подход разработки интерфейса приложения с применением QML (Qt Modeling Language), что было продиктовано необходимостью создания гибких пользовательских интерфейсов, требованием упростить описание элементов на сенсорном экране. В качестве альтернативы модулю Qt Widgets предлагается Qt QML, Qt Quick и Qt Quick Controls. Такой подход не ограничен только мобильными/сенсорными устройствами, но применим и для настольных ОС. Подробнее разработке на основе Qt Quick можно прочитать здесь https://metanit.com/cpp/qt/3.1.php . (По отзывам исследователей, приложение для ОС Аврора 4, использующее Qt Widgets, может запуститься, но не пройдет проверку валидатора).
Какие существуют примеры/статьи по написанию тестов для проекта на Qt?
Модульное тестирование Qt/C++ под Sailfish OS https://habr.com/ru/articles/323518/
Тестирование QML-компонентов https://habr.com/ru/articles/320808/
Методы и инструменты автоматизированного тестирования приложения для SailfishOS https://www.researchgate.net/publication/320649391_Method_and_tools_for_automated_end-to-end_testing_of_applications_for_sailfish_OS
Разработка и запуск сценариев для Qmltestrunner https://www.theseus.fi/bitstream/handle/10024/98894/Johansson_Lauri.pdf?sequence=1
Возможно ли портировать Аврора ОС на стороннее устройство?
На данном этапе развития ОС такой возможности нет, т.к. нет открытого Hardware Adaptation Kit, открытого исходного кода системы и прочих инструментов для этого.
Даже если это было бы возможно, то в таком случае не будет работать экосистема Авроры в виде Маркета, Аврора Центр и прочего ПО. В качестве альтернативы и упражнения можно попробовать портировать Sailfish OS, UBPorts, NemoMobile и другие мобильные Linux ОС.
Как подписывать приложения из консоли?
Есть готовое решение.
Как подписывать приложения на устройстве?
Для подписи приложений не обязательно ставить SDK:
- Включаем режим разработчика и терминал
- Скачиваем стандартные ключ и сертификат
- Скачиваем RPM-пакет, который нужно подписать, заходим в терминал под рутом (
devel-su
), переходим туда, куда скачали (напр./home/defaultuser/Downloads
) - Выполняем
rpmsign-external sign --key regular_key.pem --cert regular_cert.pem имя_подписываемого_пакета.rpm
- Если у пакета уже есть неподходящая подпись, добавляем
--force
Можно ли использовать sudo вместо devel-su при работе с Аврора ОС через терминал?
Возможно. Для этого нужно сделать следующие действия:
- Заходим под рутом через
devel-su
pkcon install sudo
- Раскомментируем строчку
%wheel .........NOPASSWD
в/etc/sudoers
usermod -aG wheel defaultuser
- Перезаходим под defaultuser
Как добавить зависимость в проект?
Как добавить репозиторий в эмулятор и таргет для последующей сборки описано здесь.
Пример: проекту нужен curl, который есть в Аврора SDK.
libcurl есть в чистом виде в ОС Аврора, можно ее собрать самому рядом со своим проектом, нужной версии (не сложно), можно заменить Qt API для работы с REST API, через QNetworkAcessManager и QNetworkRequest. В простом случае прописать зависимости в spec файл, линковать библиотеку с проектом через pkgconfig (можно и на прямую, можно и через cmake файлы). Если вы берете curl сами с сайте, вам нужны исходники. Из них собираете библиотеку, пакуете и линкуете со своим проектом.
https://developer.auroraos.ru/doc/software_development/guidelines/spec_requirements - как в .spec прописать библиотеку,
https://developer.auroraos.ru/doc/software_development/reference/public_api - про зависимости
рецепт в общих чертах для curl из SDK
1. в spec файле прописываем зависимость от curl
BuildRequires: pkgconfig(libcurl)
2. в pro файле
PKGCONFIG += libcurl
последняя директива не обязательно будет использовать системную библиотеку, но в общем случае - да (т.е. pkconfig ищет файлы конфигов в системных папках).
Если собираете с проектом (стороннюю) библиотеку, линкуйте напрямую
LIBS += -L$$PWD/libs/curl -lcurl
Как вывести устройство из состояния "Заблокировано навсегда"?
Вывод устройства из состояния "Аутентификация неуспешна; Устройство заблокировано навсегда":
- В выключенном состоянии зажать кнопку питания и громкость+, далее выбрать Fastboot Mode (громкость+ переключает выбор, громкость- вход в выбранный режим)
- В режиме fastboot Wipe userdata выполнить следующие команды:
fastboot devices
,fastboot -w
. В случае, когда невозможно сделать сброс в recovery, если "Заблокировано при помощи Aurora Device Manager; Это устройство заблокировано навсегда", этот шаг можно пропустить. - Дождаться выполнения команды и выполнить
fastboot reboot bootloader
- В режиме recovery сброс
Как обновиться до неофициальной версии Аврора 5.*.*?
Сейчас это невозможно. Раньше был открыт публичный доступ к тестовым версиям, старую инструкцию все еще можно найти здесь.
Как получить сервисную информацию об устройстве?
Нужно зайти в настройки, об устройстве и много раз быстро нажать на версию сборки. Выглядит она так.
Есть ли поддержка low latency ядра в Авроре?
На данный момент свойства high resolution low latency звука на Авроре не определены, скорее всего они не лучше Linux дистрибутивов без накруток.
Что нужно сделать (rtpatch , pipewire итд ) разработчики системы пока не знают, но о запросе услышали и рекомендуют оформить запрос на улучшение в трекер бета-программы.
Проигрывание видео на эмуляторе
Чтобы использовать QtMultimedia.Video на эмуляторе, нужно:
- Добавить в строку "Requires" spec-файла
qt5-qtmultimedia-plugin-mediaservice-gstmediaplayer
Заставить именно эмулятор проигрывать видео h265 пока не удалось даже путём установки плагинов gstreamer. Ошибка выглядит так:
No decoder available for type 'video/x-h265, stream-format=(string)hvc1, ...
Как избежать изменения .gnu.build-id при сборке/разворачивании проекта
если это важно при настройке breakpad/crashpad
.gnu.build-id меняется в post install, это так и задумано rpm'ом, можно предотвратить через
%global _no_recompute_build_ids 1
в spec-файле
При запуске приложения из командной строки, оно стартует без песочницы. Как запустить из консоли приложение со включенной песочницей?
$ invoker --type=qt5 <app_name>
Разработка на Flutter
Как можно сделать, чтобы ide тянул декларации с flutter-embeeded? Пишу плагин, неудобно, что не вижу сразу параметры и прочее.
Создать в корне проекта файл .vscode/c_cpp_properties.json
{
"configurations": [ { "name": "Linux", "includePath": [ "${workspaceFolder}/**", "<target-path>/usr/include", "<target-path>/usr/include/flutter-embedder" ], "defines": [ "__ARM_PCS_VFP" ], "compilerPath": "/usr/bin/g++", "cStandard": "c17", "cppStandard": "c++17", "intelliSenseMode": "clang-x64" } ], "version": 4
}
Как подключиться к докер-образу устройства с GUI/настроить VNC на устройстве?
По проводу так:
ssh defaultuser@192.168.2.15
devel-su
pkcon install lipstick2vnc
systemctl --user start lipstick
systemctl --user start vnc.socket
systemctl --user status lipstick
Подробнее про трансляцию экрана по сети тут https://openrepos.net/content/coderus/screencast
За что отвечает файл .desktop во flutter-приложении?
В ролике объясняется взаимодействие flutter-приложения с файлом .desktop https://www.youtube.com/watch?v=WEPRiJNQNmE&ab_channel=Friflex
Как запустить flutter-приложение в режиме отладки?
Запускать приложение, созданное в режиме отладки нужно без песочницы. Если запускать через aurora-cli run то запуск будет в песочнице через invoker, если через debug dart то команда сформирует скрипты, конфиги и запустит приложение. Приложение должно быть уже собрано в debug режиме и установлено на девайс/эмулятор
aurora-cli flutter debug dart -v
Команда выше должна выдать ссылку, и можно подключаться через vscode
Разработка на Kotlin Multiplatform
Можно ли писать приложения под ОС Аврора на Kotlin Multiplatform?
Пока официально такой поддержки нет. На этот счет ведутся исследования. Доступно не официально приложение, реализованное через связку QML + Kotlin/JS.
Разработка на Rust
Можно ли писать под Аврора ОС на Rust?
Да, пример описан здесь.
Какие GUI библиотеки/фреймворки доступны на Rust?
Имеется адаптированная версия библиотеки winit.
Вопросы по Fplus R570E Pro
Где найти больше информации об этом смартфоне?
Как установить альтернативный клиент Telegram?
Лучший вариант - скачать демо-версию клиента Tavro с официального сайта. Также можно получить полную версию в любом из магазинов производителя Vsesmart. К сожалению, последующие апдейты полной версии не предусмотрены лицензионным соглашением.
Как увеличить громкость микрофона?
Из консоли от пользователя выполнить pactl set-source-volume source.droid +50%
.
Это увеличит громкость на 50%, до 150%. Если вместо + поставить -, то уменьшит. Или можно число без плюсов/минусов, например 100% выставит на 100%.
Чтобы проверить уровень громкости, нужно ввести pactl list sources
. Значение для Источника №2 и будет уровнем микрофона.
Для чего нужна оранжевая кнопка на корпусе слева?
По умолчанию на ней нет никаких действий. При желании что-нибудь на неё повесить, можно воспользоваться инструкцией:
Кнопка висит на /dev/input/event1
(код 0x3c
). См. hexdump /dev/input/event1
. На примере фонарика:
#!/bin/bash set -e COUNTER=0 cat /dev/input/event1 | \ while IFS= read -s -d '' -r -n1 foo ; do
Прочие вопросы
Как синхронизировать контакты Nextcloud?
В терминале на телефоне (по ssh не получится, там установка пакетов запрещена) выполняем команду:
pkcon install sailfish-account-nextcloud-features-all
В настройках появился новый пункт.