Kobo can run apps now
Kobo can run apps now
Kobo 现在可以运行应用程序了
Your Kobo can run apps now. Cobalt is an open-source application platform for Kobo e-readers: a launcher, a signed App Store, a Rust SDK, and a runtime that keeps every app in its own unprivileged process. Install it once over USB. Every app after that installs, updates and removes on the reader itself, over Wi-Fi. A reboot returns to the stock Kobo reader. 你的 Kobo 现在可以运行应用程序了。Cobalt 是一个用于 Kobo 电子阅读器的开源应用平台:它包含一个启动器、一个已签名的应用商店、一个 Rust SDK,以及一个将每个应用程序保持在独立非特权进程中运行的运行时。只需通过 USB 安装一次,之后所有的应用程序都可以直接在阅读器上通过 Wi-Fi 进行安装、更新和卸载。重启设备即可恢复到原厂 Kobo 系统。
Running on a Kobo. Every app is a static ARM binary running as its own unprivileged process on stock hardware. The App Store installs, updates and removes them over Wi-Fi, with signatures verified before anything launches. 在 Kobo 上运行。每个应用程序都是一个静态的 ARM 二进制文件,在原厂硬件上作为独立的非特权进程运行。应用商店通过 Wi-Fi 安装、更新和卸载这些应用,并在启动前验证签名。
arXiv papers and coding agents, on the panel. These are photographs of the device, not simulator captures. The arXiv app reads the HTML rendering arXiv publishes for every paper since December 2023: abstracts, sections, math and result tables, paginated for the panel. 屏幕上显示着 arXiv 论文和编程代理。这些是设备的实拍照片,而非模拟器截图。arXiv 应用程序会读取 arXiv 自 2023 年 12 月以来为每篇论文发布的 HTML 渲染内容:包括摘要、章节、数学公式和结果表格,并针对屏幕进行了分页处理。
Apps 应用程序 Every screenshot below is a capture from a Kobo Clara BW. Store apps version independently of the platform; the rest ship with the platform install. 以下每张截图均来自 Kobo Clara BW。商店应用程序的版本独立于平台版本;其余应用则随平台安装包一同发布。
- Launcher: Opens installed apps and always keeps a route back to the Kobo reader. 启动器: 打开已安装的应用程序,并始终保留返回 Kobo 原厂阅读器界面的路径。
- App Store: Installs, updates, removes and reinstalls signed apps over Wi-Fi. 应用商店: 通过 Wi-Fi 安装、更新、卸载和重新安装已签名的应用程序。
- arXiv: Browses a subject’s newest preprints and reads the full text on the panel. arXiv: 浏览学科的最新预印本,并在屏幕上阅读全文。
- Sudoku: Store-only by design: installing it proves delivery of an app the USB package never contained. 数独: 设计上仅通过商店提供:安装它证明了可以通过网络交付 USB 安装包中未包含的应用程序。
- Morse: Sends a typed message in Morse on the front light, one letter across the whole panel. 摩尔斯电码: 通过前光发送摩尔斯电码消息,屏幕上一次显示一个字母。
- Audiobook Studio: Researches, writes, narrates and plays an original audiobook. 有声书工作室: 研究、编写、朗读并播放原创有声读物。
- Gutenbird: Reads any OPDS library: Project Gutenberg, Standard Ebooks, Open Library, or yours. Gutenbird: 读取任何 OPDS 库:如古腾堡计划、Standard Ebooks、Open Library 或您自己的库。
- Hacker News: Top, New, Ask and Show stories with complete comment threads. Hacker News: 查看热门、最新、提问和展示类文章,并包含完整的评论线程。
- Feeds: Discovers a site’s feed and presents its articles without the site’s layout. 订阅源: 发现网站的订阅源,并以去除网站排版的方式呈现文章。
- Daily Brief: Collects the day’s stories in the background while you use another app. 每日简报: 在您使用其他应用程序时,在后台收集当天的文章。
- AI Command Center: Asks a question and turns the answer into touch-friendly reading. AI 指挥中心: 提出问题并将答案转换为适合触摸阅读的格式。
- Sidekick: Approve or deny requests from coding agents, away from the keyboard. Sidekick: 离开键盘时,批准或拒绝来自编程代理的请求。
- Terminal: A panel-native shell with keys that send input immediately. 终端: 一个原生于屏幕的 Shell,按键可立即发送输入。
The SDK
SDK
An app is one Rust file. Implement KoboApp, describe screens declaratively, and the runtime handles layout, e-ink refresh planning, Back navigation and lifecycle. Apps don’t open device resources; they ask. Network, storage, audio, frontlight and Wi-Fi are capability-gated, and a refusal comes back as a value the app can handle.
一个应用程序就是一个 Rust 文件。实现 KoboApp,以声明式方式描述屏幕,运行时会处理布局、电子墨水屏刷新规划、返回导航和生命周期。应用程序不会直接打开设备资源,而是通过请求获取。网络、存储、音频、前光和 Wi-Fi 均受权限控制,如果被拒绝,会返回一个应用程序可以处理的值。
The Store 应用商店 Signed packages, verified before launch. Store reads a signed catalog from a fixed GitHub release. Each package holds one ARM executable and a signed canonical manifest. The runtime verifies the catalog, the package, the installed manifest and the binary before an app runs. 已签名的软件包,在启动前进行验证。商店从固定的 GitHub 发布版本中读取已签名的目录。每个软件包包含一个 ARM 可执行文件和一个已签名的规范清单。运行时会在应用程序运行前验证目录、软件包、已安装的清单和二进制文件。
Installing 安装 Charge a Kobo Clara BW (N365) and connect it over USB. Other models are refused, not guessed at. Run the setup: 为 Kobo Clara BW (N365) 充电并通过 USB 连接。其他型号会被拒绝,不会进行猜测。运行以下设置:
git clone https://github.com/BandarLabs/Cobalt.git
cd Cobalt
rustup target add armv7-unknown-linux-musleabihf
cargo run -p kobo-cli -- setup
Restart the reader and open Cobalt from Kobo’s menu. Open Store. Everything from here on arrives over Wi-Fi. The complete walkthrough, including recovery steps, is in docs/INSTALL.md.
重启阅读器并从 Kobo 菜单中打开 Cobalt。打开应用商店。从现在起,所有内容都将通过 Wi-Fi 获取。包括恢复步骤在内的完整指南请参阅 docs/INSTALL.md。
Contributing 贡献 Contribute an app. App contributions are regular pull requests. If it runs on your device and the PR shows it running, it gets merged and published. 贡献一个应用程序。应用程序的贡献方式是提交常规的 Pull Request。如果它能在您的设备上运行,并且 PR 展示了运行效果,它就会被合并并发布。