Kobo теперь умеет запускать приложения: что такое Cobalt
Cobalt — открытая платформа для запуска приложений на Kobo e-reader: App Store, Rust SDK и изолированный рантайм прямо на экране e-ink.
Электронная книга больше не просто читалка
Представьте: вы держите в руках Kobo Clara BW — лёгкое, комфортное для глаз устройство с e-ink экраном. Вы открываете на нём не только книги, но и полноценные приложения: читаете препринты с arXiv прямо в адаптированном виде, играете в судоку, пользуетесь специализированными инструментами. И всё это — без рута, без сложных хаков, через цивилизованный App Store с подписанными пакетами.
Это не фантастика — это Cobalt, открытая платформа приложений для Kobo e-reader, которая буквально изменила правила игры для владельцев этих устройств.
Почему Kobo раньше не умел запускать приложения
Линейка Kobo использует экраны на электронных чернилах (e-ink), благодаря чему текст выглядит чётче и комфортнее в условиях естественного освещения по сравнению с компьютерными, смартфонными или планшетными экранами. Это делает устройство идеальным для чтения, но накладывает серьёзные ограничения: e-ink экран медленно обновляется, что неприемлемо для большинства обычных приложений.
Исторически Kobo был закрытой читалкой. Сообщество энтузиастов придумало обходные пути: наиболее популярной альтернативной прошивкой стал KOReader, доступный на нескольких аппаратных платформах, включая Kindle. Существовали и другие решения — NickelMenu, Plato, — но всё это были либо замены интерфейса, либо хаки поверх прошивки.
Настоящей платформы для сторонних приложений с нормальным SDK, магазином и изоляцией процессов — не было. До Cobalt.
Как работает Cobalt: архитектура изнутри
Cobalt — это открытая платформа приложений для Kobo: лаунчер, подписанный App Store, Rust SDK и рантайм, держащий каждое приложение в собственном непривилегированном процессе.
Архитектурно платформа строится на нескольких ключевых принципах:
Однократная USB-установка
После одной установки через USB пользователи могут устанавливать, обновлять и удалять подписанные приложения по Wi-Fi. Больше не нужно подключать устройство к компьютеру при каждом обновлении.
Изоляция процессов и безопасность
Каждое приложение — это статический ARM-бинарник, запускаемый как собственный непривилегированный процесс на стоковом железе. App Store устанавливает, обновляет и удаляет их по Wi-Fi, проверяя подписи перед запуском чего-либо.
Capability-based доступ к ресурсам
Приложения не открывают ресурсы устройства напрямую — они запрашивают доступ. Сеть, хранилище, аудио, подсветка и Wi-Fi защищены системой capabilities, а отказ возвращается как значение, которое приложение может обработать.
Безопасный откат
Cobalt не заменяет загрузочную цепочку Kobo. Запись на устройство защищена точным соответствием железа и прошивки, а перезагрузка возвращает к стоковому ридеру.
Посмотрим на архитектуру системы схематично:
graph TD
A[Kobo Clara BW] -->|USB, одноразово| B[Установка Cobalt]
B --> C[Лаунчер Cobalt]
C --> D[App Store по Wi-Fi]
C --> E[Settings]
C --> F[Terminal]
D -->|Подписанные пакеты| G[Приложения]
G --> H[arXiv Reader]
G --> I[Sudoku]
G --> J[Ваше приложение]
G -->|Capability isolation| K[Непривилегированный процесс]
Rust SDK: как написать своё приложение для Kobo
Это, пожалуй, самое интересное для разработчиков. Cobalt предоставляет лаунчер, App Store, Rust SDK, рантайм с изоляцией возможностей и симулятор Clara BW. Симулятор — особенно ценная деталь: вы можете разрабатывать и тестировать приложения прямо в браузере, не имея физического устройства.
Быстрый старт
Команда kobo dev запускает приложение в браузерном симуляторе Clara BW.
cargo install --path crates/kobo-cli
kobo new my-app
cd my-app
kobo dev
Что умеет SDK
Приложения — обычные Rust-бинарники с декларативными экранами, именованными действиями, lifecycle-коллбэками и управляемой рантаймом навигацией «Назад».
Среди возможностей SDK: измеренный текст, строки, тайлы, картинки, диалоги, клавиатуры, терминальные виды, пагинация, полное и частичное планирование обновления экрана, асинхронные HTTPS-запросы, ограниченные ответы и именованные секреты, чьи значения никогда не попадают в приложение.
SDK.md в репозитории и используйте симулятор Clara BW — он запускается прямо в браузере и полностью воспроизводит поведение e-ink экрана, включая планирование обновлений.Публикация приложения в Store
Процесс публикации максимально упрощён:
Приложения публикуются автоматически после слияния PR в основную ветку. Публикация не требует изменения версии Cobalt или создания релиза платформы.
Откройте PR с gif или фотографиями работающего приложения. После проверки и слияния рабочий процесс публикации подпишет его — и приложение появится в Store. Релиз платформы не требуется.
Что уже работает: готовые приложения
Cobalt — не просто инфраструктура. У него уже есть реальные приложения:
| Приложение | Функциональность | Способ установки |
|---|---|---|
| arXiv Reader | Чтение научных препринтов с разметкой, формулами, таблицами | App Store |
| Sudoku | Игра судоку, оптимизированная под e-ink | App Store (Wi-Fi) |
| Terminal | Защищённая системная утилита | Системный |
| Settings | Настройки платформы | Системный |
Приложение arXiv читает HTML-рендеринг, который arXiv публикует для каждой статьи начиная с декабря 2023 года: аннотации, разделы, математику и таблицы результатов — с пагинацией под экран устройства.
Sudoku намеренно доступен только через Store и отсутствует в USB-пакете платформы — установка его верифицирует доставку приложения, которого изначально не было на ридере.
Ограничения и важные предупреждения
Cobalt — проект молодой, и у него есть чёткие границы, о которых честно предупреждают разработчики.
Поддерживаемые устройства
Cobalt в настоящее время протестирован только на Kobo Clara BW N365 (код устройства 391). Это независимый проект, не аффилированный с Rakuten Kobo.
Не устанавливайте Cobalt на другие модели до тех пор, пока для этой модели не будет проверенного и протестированного на реальном железе профиля.
Сравнение с альтернативами
| Решение | Платформа | App Store | SDK | Изоляция процессов | Откат к стоку |
|---|---|---|---|---|---|
| Cobalt | Kobo Clara BW | ✅ Подписанный | ✅ Rust | ✅ Capability isolation | ✅ Перезагрузка |
| KOReader | Kobo, Kindle и др. | ❌ | ❌ | ❌ | ✅ |
| Plato | Только Kobo | ❌ | ❌ | ❌ | ✅ |
| NickelMenu | Все Kobo | ❌ | ❌ | ❌ | ✅ |
Будущее: Kobo и экосистема приложений
Запуск Cobalt совпадает с интересным периодом для самой компании Kobo. CEO Kobo Майкл Тамблин направил покупателям письмо, в котором сообщил, что компания работает над «разработками, которые фундаментально изменят то, как мы читаем и пишем на наших устройствах». По ожиданиям, это произойдёт осенью или зимой 2026 года.
Открытая экосистема приложений на e-ink устройстве — это не нишевая игрушка для хакеров. Это следующий логичный шаг эволюции читалок.
Cobalt задаёт новую планку. Если раньше «расширение функциональности Kobo» означало замену прошивки или рискованный хак, то теперь это цивилизованный процесс: SDK на Rust, симулятор в браузере, App Store с подписями, изоляция процессов и безопасный откат одной перезагрузкой.
Релизы приложений независимы от релизов платформы Cobalt — новое приложение может появиться в Store без переустановки или обновления самого Cobalt. Это означает живую экосистему, способную развиваться быстро и независимо.
Для сообщества открытого программного обеспечения Cobalt — это демонстрация того, как правильно строить платформу для специализированного железа: с уважением к безопасности, с инструментами для разработчиков и с заботой о пользователе.
Заключение
Cobalt — это тихая революция в мире e-reader’ов. Без лишнего шума небольшая команда BandarLabs создала то, чего не хватало годами: настоящую, безопасную, открытую платформу приложений для Kobo с нормальным SDK, App Store и изоляцией процессов.
Пока официально поддерживается только Kobo Clara BW N365, но архитектура спроектирована с прицелом на расширение. Если вы владелец этой модели и не боитесь читать документацию — Cobalt определённо заслуживает внимания.
А для разработчиков это уникальная возможность: написать приложение на Rust, протестировать его в браузерном симуляторе и опубликовать в Store через обычный GitHub PR. Аудитория небольшая, но зато очень целевая — люди, которые ценят качество и внимание к деталям.
Ссылки: