Kobo电子阅读器现可运行应用程序

Hacker News Top 工具

摘要

Cobalt是一个面向Kobo电子阅读器的开源应用平台,支持运行带有启动器、经签名的应用商店及Rust SDK开发包的应用程序。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/08/21 19:28

# Cobalt:Kobo 电子阅读器的应用程序与SDK 来源:https://bandarlabs.github.io/Cobalt/ ## 您的Kobo现在可以运行应用程序了 Cobalt 是一个开源的应用平台,专为Kobo电子阅读器打造:包含启动器、签名应用商店、Rust SDK,以及将每个应用隔离在独立非特权进程中的运行时。通过USB安装一次,此后所有应用的安装、更新和卸载都可在阅读器上通过Wi-Fi完成。重启设备即可恢复至原生Kobo系统。 Kobo Clara BW上的Cobalt启动器界面,展示设置、应用商店、终端、AI聊天、有声书、组件、每日简报、订阅源与Gutenbird应用 *Kobo Clara BW上的启动器界面*。与乐天Kobo无关联 Kobo Clara BW运行有声书工作室、Gutenbird、终端、Hacker News、Sidekick和应用商店,随后通过Wi-Fi安装、播放、卸载并重新安装数独应用(https://bandarlabs.github.io/Cobalt/cobalt-tour.mp4) *设备端录制,3倍速播放*。[观看视频](https://bandarlabs.github.io/Cobalt/cobalt-tour.mp4) ## 在Kobo上运行 每个应用都是静态ARM二进制文件,在原生硬件上作为独立非特权进程运行。应用商店通过Wi-Fi实现安装、更新和卸载,所有签名在应用启动前完成验证。 ## arXiv论文与编程助手,尽在掌控 以下为设备实拍图,非模拟器截图。arXiv应用读取自2023年12月起所有论文的HTML渲染版本:摘要、章节、数学公式与结果表格,并适配电子墨水屏分页显示。 --- ## 应用生态 以下所有截屏均来自Kobo Clara BW设备。商店应用独立于平台版本更新;其余应用随平台安装包分发。 电子墨水屏上的Cobalt启动器应用网格 (https://github.com/BandarLabs/Cobalt/blob/main/examples/launcher/README.md) ### 启动器 (https://github.com/BandarLabs/Cobalt/blob/main/examples/launcher/README.md) 打开已安装应用,始终保留返回Kobo阅读器的路径。 Cobalt应用商店展示已安装与可用应用 (https://github.com/BandarLabs/Cobalt/blob/main/docs/APP_STORE.md) ### 应用商店 (https://github.com/BandarLabs/Cobalt/blob/main/docs/APP_STORE.md) 通过Wi-Fi安装、更新、卸载及重装签名应用。 Kobo设备上arXiv应用展示最新机器学习预印本 (https://github.com/BandarLabs/Cobalt/tree/main/apps/arxiv) ### arXiv (https://github.com/BandarLabs/Cobalt/tree/main/apps/arxiv) 浏览学科最新预印本,在电子墨水屏上阅读全文。 Kobo Clara BW上的完整81格数独游戏 (https://github.com/BandarLabs/Cobalt/tree/main/apps/sudoku) ### 数独 (https://github.com/BandarLabs/Cobalt/tree/main/apps/sudoku) 仅限商店安装:通过此应用可验证USB安装包未包含的应用分发能力。 字母S在Kobo电子墨水屏上显示,前光以摩尔斯电码闪烁 (https://github.com/BandarLabs/Cobalt/tree/main/apps/morse) ### 摩尔斯电码 (https://github.com/BandarLabs/Cobalt/tree/main/apps/morse) 通过前光发送摩尔斯电码信息,单字母占据整个屏幕。 Kobo上的OPDS电子书库封面陈列 (https://github.com/BandarLabs/Cobalt/blob/main/examples/gutenbird/README.md) ### Gutenbird (https://github.com/BandarLabs/Cobalt/blob/main/examples/gutenbird/README.md) 支持任意OPDS图书馆:古登堡计划、Standard Ebooks、Open Library或自建书库。 Kobo电子阅读器上的Hacker News排行榜 (https://github.com/BandarLabs/Cobalt/blob/main/examples/hn/README.md) ### Hacker News (https://github.com/BandarLabs/Cobalt/blob/main/examples/hn/README.md) 热门、最新、问答及展示故事,含完整评论线程。 Feeds应用中的订阅源与文章列表 (https://github.com/BandarLabs/Cobalt/blob/main/examples/rss/README.md) ### 订阅源 (https://github.com/BandarLabs/Cobalt/blob/main/examples/rss/README.md) 自动识别网站订阅源,无干扰呈现文章内容。 电子墨水屏上的编号每日简报 (https://github.com/BandarLabs/Cobalt/blob/main/examples/brief/README.md) ### 每日简报 (https://github.com/BandarLabs/Cobalt/blob/main/examples/brief/README.md) 使用其他应用时,后台自动收集当日要闻。 Sidekick中的编程助手请求与可点击响应 (https://github.com/BandarLabs/Cobalt/blob/main/examples/sidekick/README.md) ### Sidekick (https://github.com/BandarLabs/Cobalt/blob/main/examples/sidekick/README.md) 远离键盘时批准或拒绝编程助手请求。 Kobo屏幕上的终端与虚拟键盘 (https://github.com/BandarLabs/Cobalt/blob/main/examples/terminal/README.md) ### 终端 (https://github.com/BandarLabs/Cobalt/blob/main/examples/terminal/README.md) 原生电子墨水屏终端,按键即时响应。 电子墨水屏上的Cobalt字体与UI组件 (https://github.com/BandarLabs/Cobalt/blob/main/examples/gallery/README.md) ### 组件库 (https://github.com/BandarLabs/Cobalt/blob/main/examples/gallery/README.md) 展示UI工具包的控件、布局、字体与状态效果。 设置中的电池状态与硬件信息 (https://github.com/BandarLabs/Cobalt/blob/main/examples/settings/README.md) ### 设置 (https://github.com/BandarLabs/Cobalt/blob/main/examples/settings/README.md) 连接、硬件与平台更新,与应用商店独立管理。 带已完成项目的待办清单 (https://github.com/BandarLabs/Cobalt/blob/main/examples/todo/README.md) ### 待办事项 (https://github.com/BandarLabs/Cobalt/blob/main/examples/todo/README.md) 支持触控输入与完成状态标记的持久化清单。 电子墨水屏上的井字棋终局 (https://github.com/BandarLabs/Cobalt/blob/main/examples/tictactoe/README.md) ### 井字棋 (https://github.com/BandarLabs/Cobalt/blob/main/examples/tictactoe/README.md) 双人对战,单格局部刷新。 Kobo霍尔传感器响应磁铁变化 (https://github.com/BandarLabs/Cobalt/blob/main/examples/magnet/README.md) ### 磁铁感应 (https://github.com/BandarLabs/Cobalt/blob/main/examples/magnet/README.md) 定位边框后的霍尔传感器并报告状态变化。 --- ## SDK **一个Rust文件即是一个应用** 实现`KoboApp`接口,声明式描述屏幕,运行时将处理布局、电子墨水刷新规划、返回导航和生命周期管理。应用无法直接访问设备资源,必须显式请求。网络、存储、音频、前光和Wi-Fi均采用能力控制机制,拒绝请求将以应用可处理的值返回。 - 电子墨水UI文本、磁贴、对话框、键盘、分页、局部刷新规划 - 浏览器与运行时模拟器(含布局诊断) - 异步任务:HTTPS、分段下载、可取消任务、定时唤醒 - 状态管理:按应用隔离的原子级键值存储 - 分发方式:签名静态ARMv7二进制文件,应用PR合并后自动发布 ```bash kobo new my-app cd my-app kobo dev ``` [阅读SDK文档](https://bandarlabs.github.io/Cobalt/sdk.html) ```rust use kobo_sdk::{ActionId, Context, KoboApp, ScreenBuilder}; #[derive(Default)] struct Hello { taps: u32, } impl KoboApp for Hello { fn on_start(&mut self, ctx: &mut Context) { self.show(ctx); } fn on_action( &mut self, ctx: &mut Context, a: ActionId, ) { if a == kobo_sdk::action_id("tap") { self.taps += 1; } self.show(ctx); } } impl Hello { fn show(&self, ctx: &mut Context) { let screen = ScreenBuilder::new("hello") .top_bar("Hello") .heading(format!("{} taps", self.taps)) .button("tap", "Tap me") .build(); ctx.set_screen(screen); } } fn main() { let app = Hello::default(); let _ = kobo_sdk::run("hello", app); } ``` --- ## 应用商店 **签名包验证后方可运行** 商店从固定GitHub发布版读取签名目录。每个包含一个ARM可执行文件与签名规范清单。运行时将在应用启动前验证目录、安装包、已安装清单及二进制文件。 应用发布独立于平台版本:合并应用PR后将自动构建ARM版本、签名并更新目录,无需版本升级或重新安装。应用将直接出现在商店中。 Cobalt平台本身也通过Wi-Fi在设置中更新,与应用商店使用不同频道。**USB线仅需使用一次**。 安装与目录事务具备中断恢复能力,更新中断时阅读器将保留原版本。 [发布您自己的应用→](https://github.com/BandarLabs/Cobalt/blob/main/docs/CONTRIBUTING_APPS.md) Cobalt应用商店在Kobo Clara BW上通过Wi-Fi安装应用 *数独应用通过Wi-Fi安装中* --- ## 安装指南 ### 从源码安装 1. **准备Kobo Clara BW(N365)**并通过USB连接。其他型号暂不支持。 2. **执行安装命令:** ```bash git clone https://github.com/BandarLabs/Cobalt.git cd Cobalt rustup target add armv7-unknown-linux-musleabihf cargo run -p kobo-cli -- setup ``` 3. **重启阅读器**,在Kobo菜单中打开**Cobalt**。 4. **打开应用商店**,后续所有更新均通过Wi-Fi完成。 完整安装流程(含恢复步骤)详见: [docs/INSTALL.md](https://github.com/BandarLabs/Cobalt/blob/main/docs/INSTALL.md) --- ## 贡献应用 应用贡献采用标准PR流程。只要能在设备运行且PR包含运行截图即可合并发布。 1. **构建应用**:在`apps/`目录下添加工作区包,并在`apps/catalog.json`注册。 2. **测试**:添加单元与布局测试,在浏览器和运行时模拟器中验证。 3. **设备实测**:在真实Clara BW设备(非模拟器)上运行。 4. **提交PR**:附上运行时GIF或照片,审核合并后发布工作流将自动签名并上架商店,无需平台版本更新。 拥有其他Kobo型号?欢迎参与[移植](https://github.com/BandarLabs/Cobalt/blob/main/docs/PORTING.md),请先创建issue确认设备配置文件。 详见: [docs/CONTRIBUTING_APPS.md](https://github.com/BandarLabs/Cobalt/blob/main/docs/CONTRIBUTING_APPS.md) --- ## 安全说明 ### 设备支持与安全性 Cobalt不修改Kobo启动链。设备写入需精确匹配硬件与固件,重启即可恢复原生系统。 首次安装会修改用户存储分区文件,提供无保修保证。**目前仅Clara BW配置文件经过硬件测试**。在获得[已审核的硬件测试配置文件](https://github.com/BandarLabs/Cobalt/blob/main/docs/PORTING.md)前,请勿在其他型号设备安装。 Cobalt为独立项目,与乐天Kobo无任何关联。

相似文章

Cobalt

Product Hunt

Cobalt 让 Kobo 电子阅读器能够运行应用程序,正如在 Product Hunt 上所宣布的。

KOReader

Hacker News Top

KOReader 是一个专为 E Ink 设备设计的开源文档阅读器,支持包括 EPUB、PDF 和 MOBI 在内的多种文件格式,并可在 Kindle、Kobo、PocketBook、Android 及桌面 Linux 上运行。