Aquarius ns220 установить андроид

Потихоньку учимся у китайцев: новый планшет на российской ОС

Российские планшетные компьютеры появились уже давно. Я помню, как в начале 2010-х годов некоторые операторы мобильной связи продавали свои планшеты, но по факту это были слегка измененные китайские модели.

К середине десятых годов появились действительно российские планшеты, стоит только вспомнить компанию BQ, которая работает по сей день. К слову, у BQ вполне неплохие мобильные устройства в бюджетной ценовой категории. Есть даже защищенные вариации.

Всё это относится непосредственно к сборке, так как аппаратные части были из других стран (чаще всего из Китая). У всех планшетников, произведенных в России или российскими компаниями, была одна схожая характеристика — они работали под управлением операционной системы Android.

А как известно, Андроид — это разработка Google. Но сейчас есть российские планшетные компьютеры под управлением российской операционной системы.

Aquarius Cmp NS208

Речь идет о планшетах Aquarius. Помимо стандартного Андроида, можно приобрести “Аквариус” с отечественной прошивкой под названием “Аврора”. Это российская защищенная мобильная операционная система. Разработка данной ОС была обусловлена необходимостью в своей прошивке, которая не будет зависеть от сторонних компаний.

Внешне и в плане возможностей “Аврора” напоминает ранние версии Андроида до 4.0. Но это неудивительно, ведь первый Aquarius с данной ОС вышел лишь в конце 2019 года. Думаю, если последующая работа над отечественной операционной системой будет оправдана, она будет улучшаться раз за разом.

Первым планшетом с “Авророй” был Aquarius Cmp NS208. Это модель с защищенной конструкцией, ёмким аккумулятором, широким выбором опций и дополнительными функциональными кнопками на корпусе.

Аппарат выполнен в корпусе, который защищен от пыли и влаги (IP67). Экран небольшой, всего на 8 дюймов по диагонали. Разрешение соответствующее — 1280 на 800 пикселей.

Aquarius Cmp NS208 может работать в разных температурах от -20 до +60 градусов по Цельсию. Батарея съемная ан 8400 мА/ч.

  • восьмиядерный процессор с частотой 1.5 ГГц;
  • 2 или 3 ГБ ОЗУ;
  • 16 или 64 ГБ внутреннего хранилища;
  • тип матрицы IPS;
  • есть поддержка 3G, 4G, Bluetooth, Wi-Fi, NFC;
  • весит 700 г.

Aquarius Cmp NS220

После выхода защищенной модели, в 2020 году появился новый Aquarius Cmp NS220. Это многофункциональный планшетный компьютер с чипсетом ARM на 4 ядра и 1.45 ГГц. Экран большой — 10.1 дюймов по диагонали. Батарея очень емкая — на 10 тысяч мА/ч.

NS220 лучше подходит для повседневного использования, нежели NS208. Здесь 3 ГБ оперативной памяти, 64 ГБ на внутреннем накопителе и разрешение дисплея 1920 на 1080 пикселей.

Можно заказать модель в корпусе, защищенном от влаги по стандарту IP54 (исключительно защита от брызг). Аппарат поддерживает Wi-Fi, Bluetooth, NFC, LTE, 3G, GSM, GPS и ГЛОНАСС. Более того, есть вход USB и двухгодичная гарантия от производителя. Весит девайс так же, как и предыдущий — 700 г.

Оригинал статьи можете прочесть на нашем сайте по ссылке

Читайте также:  Как скрывать папки android

Источник

Запускаем Rust-приложение на мобильной ОС Аврора

Всем привет! Меня зовут Шамиль, я ведущий инженер-разработчик в КРОК. Помимо всего прочего мы в компании занимаемся ещё и разработкой мобильных приложений для операционной системы Аврора, есть даже центр компетенций по ней.

Для промышленной разработки мы, конечно же, пока используем связку C++ и QML, но однажды подсев на «ржавую» иглу Rust, я не мог не попробовать применить свой любимый язык программирования для написания мобильных приложений. В этой статье я опишу эксперимент по написанию простейшего приложения на Rust, предназначенного для запуска на мобильном устройстве под управлением вышеупомянутой ОС. Сразу оговорюсь, что легких путей я не искал — эксперименты проводил на сертифицированной версии Авроры, которая добавила огонька в этот процесс. Но, как говорится, только защищённая ОС, только хардкор.

Пара выходных у меня ушла только на то, чтобы запустить минимальное консольное приложение (речь о нём пойдёт в первой части), ещё пара дней — на эксперименты с графическим интерфейсом, выбор оптимального подхода и запуск приложения с GUI (этому посвящена вторая часть повествования). В итоге получился минимальный “скелет” мобильного приложения, готового к сборке и запуску, на который при желании уже можно наращивать “мясо”.

Готовим окружение

Итак, работа будет вестись из-под Ubuntu Linux с уже установленным Rust. В качестве подопытного планшета выступает Aquarius NS220 с сертифицированной ОС Аврора последней (на момент написания статьи) версии 3.2.2 с включённым режимом разработчика, который обеспечивает связь по SSH, а также привилегированный доступ с правами суперпользователя.

Первым делом добавим средства кросскомпилятора для архитектуры ARM, так как на целевом планшете стоит именно такой процессор.

В сертифицированной версии ОС Аврора не разрешается запускать неподписанные приложения. Подписывать надо проприетарной утилитой из состава Aurora Certified SDK под названием ompcert-cli , которая поддерживает на входе только пакет в формате RPM. Поэтому сразу установим замечательную утилиту cargo-rpm, которая возьмёт на себя всю рутинную работу по упаковке приложения в RPM-пакет:

Саму процедуру подписывания RPM-пакета я описывать не буду, она неплохо документирована в справочных материалах ОС Аврора.

Часть 1. Hello. World

TL;DR Исходники проекта можно найти в репозитории на Гитхабе.

Создаем минимальный проект

Создаём пустое приложение на Rust:

Пытаемся сгенерировать .spec файл для RPM-пакета:

Получаем ошибки, что не хватает некоторых полей в Cargo.toml , добавляем их:

Закидываем в папку .cargo конфигурационный файл с указанием правильного линкера для компоновки исполняемого файла под архитектуру ARM:

Всё собралось, забираем RPM из папки target/armv7-unknown-linux-gnueabihf/release/rpmbuild/RPMS/armv7hl , подписываем его, копируем на планшет и пытаемся установить:

Смотрим версию glibc на устройстве, и понимаем, что она явно ниже той, что нам требуется:

Что ж, тогда попробуем забрать нужные библиотеки с планшета, закинуть их в директорию lib и слинковать с ними. Для верности будем пользоваться линкером, входящим в состав Aurora SDK, который закинем в директорию bin . Для начала посмотрим, какие именно библиотеки нам нужны. Меняем содержимое .cargo/config.toml :

Копируем недостающие библиотеки с планшета:

Снова пытаемся собрать, получаем новую порцию ошибок:

Ещё надо подредактировать файл libc.so (который является фактически скриптом линкера), чтобы дать понять линкеру, где надо искать библиотеки:

Запускаем сборку RPM-пакета, копируем, пытаемся установить.

Здесь позволю себе небольшое лирическое отступление. Перед установкой RPM-пакета на сертифицированной версии ОС Аврора запускается RPM-валидатор — утилита, которая проверяет, насколько собранный пакет удовлетворяет требованиям системы. И до тех пор, пока пакет не пройдёт валидацию, установить приложение не получится. Безопасность превыше всего.

Читайте также:  Виртуальные кнопки андроид без рут

Итак, мы видим, что валидатор выдал несколько ошибок:

Что ж, будем бороться с каждой ошибкой по списку.

Добавляем недостающие файлы

Добавим иконки и ярлык (файл с расширением desktop) в директорию .rpm .

Для того, чтобы копировать нужные файлы на этапе сборки RPM-пакета, сделаем простенький Makefile :

Для сборки пакета теперь достаточно выполнить:

Убираем зависимость от libutil.so

Я не нашёл способа, как убедить cargo при вызове команды линкера не передавать ключ -lutil . Вместо этого я решил создать скрипт-заглушку для линкера с какой-нибудь незначащей командой.

Да, не самый хороший способ. Если кто-нибудь знает, как сделать лучше, делитесь в комментариях.

Добавляем символ __libc_start_main

Перепробовав несколько способов, остановился на том, чтобы добавить при линковке стандартный объектный файл crt1.o . Копируем его с планшета:

И добавляем в команды линкера:

Однако при попытке сборки получаем ошибки:

Добавим заглушки этих функций в main.rs :

Ещё один быстрый и грязный хак, зато теперь RPM-пакет проходит валидацию и устанавливается!

Момент истины близок, запускаем на планшете и… получаем очередную ошибку:

И видим динамическую линковку с библиотекой ld-linux-armhf.so.3 . Если решать в лоб, то нужно создать символическую ссылку /usr/lib/ld.so.1 → /lib/ld-linux-armhf.so.3 (и это даже будет неплохо работать). Но, к сожалению, такое решение не подходит. Дело в том, что строгий RPM-валидатор не пропустит ни пред(пост)-установочные скрипты в .spec-файле, ни деплой в директорию /usr/lib . Вообще список того, что можно, приведён здесь.

Долгое и разнообразное гугление подсказало, что у линкера GCC есть нужный нам ключ ( dynamic-linker ), который позволяет сослаться непосредственно на нужную зависимость. Правим config.toml :

Собираем RPM-пакет, подписываем, копируем на планшет, устанавливаем и с замиранием сердца запускаем:

Часть 2. Запускаем приложение с GUI

TL;DR Исходники проекта можно найти в репозитории.

В Авроре всё очень сильно завязано на Qt/QML, поэтому сначала я думал использовать крейт qmetaobject. Однако в “комплекте” с ОС идёт библиотека Qt версии 5.6.3, а qmetaobject , судя по описанию, требует минимум Qt 5.8. И действительно, попытка сборки крейта приводит к ошибкам.

Поэтому я пошёл по пути точечных заимствований из исходников qmetaobject — благо, лицензия позволяет.

Для начала копируем проект, созданный в предыдущей части, и переименовываем его в aurora-rust-gui .

Приступаем

Чтобы не утомлять читателя, сразу скажу, что для сборки понадобится скопировать с планшета ещё множество разных библиотек:

А еще копируем заголовочные файлы, которые идут в составе Aurora SDK:

Для сборки проекта напишем скрипт build.rs и укажем его в Cargo.toml .

Теперь возьмёмся за само приложение. За создание инстанса приложения у нас будет отвечать структура SailfishApp по аналогии с приложением для Авроры, написанном на C++.

SailfishApp — это по сути обвязка (биндинги) к соответствующему классу на C++. Берём за образец структуру QmlEngine из крейта qmetaobject .

Биндинги для используемых классов QByteArray , QString , QUrl копируем из того же qmetaobject и расфасовываем по отдельным файлам. Здесь приводить их не буду, если что, исходники можно посмотреть в репозитории на GitHub.

Немного скорректируем заголовочный файл sailfishapp.h , чтобы он искал заголовочные файлы Qt в правильных местах:

Осталось только добавить файлы QML и положить их в дистрибутив RPM.

Подписываем, копируем, устанавливаем, запускаем из командной строки и вуаля:

Вот так выглядит наше приложение с разных ракурсов:

Читайте также:  Проектор лобовое стекло для андроид

Рабочий стол с ярлыком Главное окно приложения Панель задач

Последние штрихи

Приложение отлично стартует из командной строки при подключении по SSH, однако никак не реагирует при попытке запуска с помощью ярлыка. Путём некоторых экспериментов удалось установить, что для этого надо экспортировать символ main (RPM-валидатор выдавал предупреждение на этот счёт, но некритичное).

Серия проб и ошибок показала, что надо добавить ещё один ключ линкера: -export-dynamic .

После этого всё работает так, как и ожидается.

Заключение

Понятно, что до того, как использовать Rust в проде, ещё надо решить немало вопросов. Как минимум, я предвижу сложности с дополнительными зависимостями при подключении новых крейтов, извечные танцы с бубном вокруг сегфолтов при FFI-вызовах, увязывание систем владения Qt и Rust. Некоторые интересные подробности можно почерпнуть из статьи от автора qmetaobject-rs. Наверняка, время от времени будут всплывать и другие проблемы.

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

Однако всё это стоит того, чтобы иметь возможность писать на Rust, с его мощной системой типов, средствами обеспечения безопасности при работе с памятью, приятной реализацией многопоточности, самым лучшим подходом к обработке ошибок и всеми теми вещами за которые мы его так любим.

Буду рад вопросам и замечаниям в комментариях. И ставьте лайк, подписывайтесь на канал 🙂

UPD. Со мной связались наши партнёры из компании “Открытая мобильная платформа”, занимающейся разработкой и внедрением ОС Аврора, и рекомендовали попробовать базовый релиз 3.4, там Rust вошёл в стандартную поставку при обновлении движка браузера на ESR 60, а GCC обновился до версии 8.3. Если тема вызовет интерес, то поделимся и новым опытом.

Источник

«Аквариус» выпустил планшет с российской мобильной ОС «Аврора»

Компании «Аквариус» и «Открытая мобильная платформа» объявили о старте продаж планшета с установленной на нем операционной системой «Аврора». Устройство доступно для заказа на сайте производителя.

Выпущен планшет под управлением российской мобильной ОС

Компании «Аквариус» и «Открытая мобильная платформа» (ОМП) объявили о завершении портирования российской мобильной операционной системы «Аврора» на планшеты модели Aquarius Cmp NS208. Это устройство уже доступно для заказа на сайте производителя.

Защищенный планшет предназначен исключительно для корпоративного использования. Среди прочего, его могут эксплуатировать полевые и выездные сотрудники предприятий, работающих в энергетическом, транспортном и производственном секторах. Ожидается, что решение будет востребовано и сотрудниками силовых ведомств и других государственных служб.

Устройства производят в Ивановской области

Aquarius NS208 можно эксплуатировать в сложных погодных условиях (IP67). Планшет имеет ударопрочный корпус, диагональ экрана — 8 дюймов. Устройство обладает двумя встроенными камерами на 5 МП и 16 МП. Размер оперативной и постоянной памяти — 2 ГБ и 16 ГБ соответственно.

Планшет отвечает всем современным требованиям и поддерживает такие мобильные технологии, как LTE, Wi-Fi, BlueTooth, GPS/ГЛОНАСС, NFC; есть и сканер отпечатка пальца. Для подключения внешних модулей (POGO) реализован коммуникационный порт с интерфейсами USB-UART TTL. Также есть дополнительный порт USB (DOCK).

Планшет Aquarius Cmp NS208 производится на заводе компании «Аквариус» в Ивановской области и соответствует требованиям Минпромторга России.

Как заявляют в компаниях, комплексное решение, предлагаемое «Аквариусом» и «Открытой мобильной платформой» на базе планшета Aquarius Cmp NS208 и ОС «Аврора» позволяет организовать в частных компаниях и государственных организациях эффективную безопасную инфраструктуру корпоративной мобильности, независимую от внешних сервисов.

Источник

Оцените статью