Операционная система Салют ТВ
Операционная система, которая управляет устройствами Сбера и партнеров: от колонок до телевизоров, от ТВ-приставок до умных дисплеев.
ОС обеспечивает:
- поддержку разных устройств через слои абстракции;
- стабильность, отказоустойчивость и быстродействие;
- гибкое управление аппаратными ресурсами;
- безопасность.
Разработка операционной системы Салют ТВ
Операционная система Салют ТВ состоит из разных open-source компонентов, среди которых:
- загрузчики ARM Trusted Firmware и OP-TEE TrustedOS с рядом TrustApplications, которые предоставляют для ОС сервисы безопасности внутри Secure World;
- загрузчик U-Boot, отвечающий за загрузку Normal World;
- Linux Kernel;
- Android Open Source Project (AOSP).
Мы регулярно обновляем все компоненты, модифицируем и дорабатываем их. И хотя такие патчи обусловлены внутренними задачами, некоторые из них вы найдете в upstream соответствующих open-source проектов.
Код, на котором мы пишем, зависит от проекта и решаемых задач. В основном это C, C++, Java, Kotlin. Качество кода обеспечено покрытием юнит-тестами, а также использованием статического и динамического анализа.
Secure World
Благодаря загрузчикам ARM Trusted Firmware и OP-TEE TrustedOS мы обеспечиваем безопасность ОС для умных устройств разными способами. Например, используем:
- Secureboot/Trust Boot Chain;
- Secure Storage (на базе RPMB области карты памяти EMMC, либо в разделе NAND);
- L1 Video Streaming.
Мы разрабатываем несколько Trusted Applications для управления Key Storage в нашей операционной системе.
Bootloaders
U-Boot — ключевая часть загрузки, безопасности и отказоустойчивости системы.
Поддержка загрузчика включает в себя разработку:
- драйверов периферии;
- алгоритмов отказоустойчивости и сохранения системы;
- средств безопасности;
- загрузки ядра в различных формах.
Мы поддерживаем несколько стабильных веток U-Boot (v2015 и v2019) и ведем работы по обновлению всех устройств на upstream ветки U-Boot последних версий. Наши наработки в upstream U-Boot можно найти на lore.kernel.org/u-boot по ключевым словам sberdevices и salutedevices.
Linux Kernel
Мы используем Linux Kernel разных версий в качестве ядра ОС. В разных устройствах мы поддерживаем ядра: LTS 4.9, 4.19, 5.4. Кроме этого, мы ведем работу по переходу на upstream-версии ядра Linux и поддерживаем последние 6.x LTS, а также всегда актуальный stable master.
Стеки, которые мы разрабатываем, дополняем и улучшаем в ядре Linux нашей ОС:
- Audio — драйверы звуковых карт, усилителей, ЦАП/АЦП и другие;
- Video — драйверы кодеков, GPU, HDMI, LCD дисплеи, ISP, v4l;
- Connectivity — Wi-Fi драйверы, Bluetooth-стек, Ethernet и TCP/IP стек;
- Memory management — тюнинг, модификация и оптимизация аллокаторов: buddy, SLAB, SLOB, SLUB, CMA, ION;
- Core — профилирование, управление питанием, оптимизация производительности, tracing и scheduling;
- SoC support — помощь партнерам в поддержке ядра, написание драйверов, среди которых Clock Controller, I2C, SPI, GPIO, USB, SARADC, IR, Pinmux, PWM, Power Controller, Thermal, Efuse, Cpufreq, Audio, Video и другие;
- Peripherals — поддержка периферии (IIO-сенсоры, LED-контроллеры), которая подключается по шинам GPIO/I2C/SPI.
Своими наработками мы делимся с upstream. Вы можете найти их на lore.kernel.org/all по ключевым словам sberdevices и salutedevices.
AOSP
Системная часть ОС Салют ТВ основывается на Embedded Linux, который мы собираем с помощью buildroot и AOSP.
На этом уровне мы:
- разрабатываем собственные слои аппаратных абстракций (HAL) и системные vendor-сервисы;
- поддерживаем различные схемы OTA-обновлений, как классические non-A/B, так и бесшовные A/B;
- используем современные механизмы обеспечения безопасности: AVB (Android Verified Boot), FBE (File-based Encryption), SELinux;
- реализуем системный UI: уведомления, поддержка жестов, системные экраны и др.;
- решаем проблемы и дорабатываем AOSP, buildroot и другие open-source проекты, а также делимся своими решениями с сообществом.
Мы регулярно обновляем buildroot и AOSP в своих устройствах и поддерживаем open-source компоненты максимально близко к upstream.
StarOS SberDevices
StarOS SberDevices — это набор сервисов, единый для всех устройств. С помощью этих сервисов реализуется платформа для взаимодействия с виртуальным ассистентом Салют.
В StarOS мы:
- обеспечиваем работу с виртуальным ассистентом Салют;
- применяем алгоритмы улучшения качества звука (VQE — Voice Quality Enhansion);
- распознаем слово активации (Spotter);
- обеспечиваем аутентификацию с помощью сервиса Сбер ID;
- работаем с аппаратной периферией: камерой, разъемами, кнопками, светодиодами и др.;
- реализуем возможности музыкального плеера, в том числе работу bluetooth, режимов «Мультирум» и «Стереопара».
Системные сервисы SberDevices
Наши системные сервисы существуют непосредственно внутри системных сервисов Android, либо взаимодействуют с ними по API.
С помощью системных сервисов мы:
- реализуем вызов системных методов Android;
- предоставляем API для приложений и внутренних сервисов;
- обеспечиваем взаимодействие сервисов StarOS;
- поддерживаем часть аппаратной периферии.
Разработка приложений
Мы создали для ОС библиотеку NativeApp SDK. Она позволяет добавить нативную поддержку ассистента Салют в Android-приложения. SDK включает набор интерфейсов для:
- обработки команд, полученных ассистентом;
- работы с микрофоном и камерой, в том числе с возможностью распознавания жестов;
- обработки платежей внутри приложения и других возможностей.
Вы можете портировать на ОС Android-приложение без поддержки голосовых помощников. Но это ограничит круг устройств, доступных для запуска приложения.
Все приложения распространяются через собственный каталог, а устанавливаются на устройства с помощью команды ассистенту.
Подробнее о разработке, распространении и монетизации — в документации.
Обратная связь
Если вы хотите узнать больше и получить дополнительную информацию, вы всегда можете обратиться к нам по электронной почте.