项目介绍
PicoOnebot 是一个基于官方手表 QQ(QQ Lite / Watch QQ)Android 客户端实现的轻量级 OneBot v11 协议端。
通过底层字节码注入与 Native Hook 技术,PicoOnebot 在官方轻量客户端进程内部构建了标准的 OneBot 通信服务,并提供了独立的 WebUI 控制台用于扫码登录与网络配置管理。
架构选型特点
在现有的 QQ 机器人生态中,常见的实现途径主要包括:
- 桌面 NT 客户端 Hook 方案(如基于 PC 桌面 QQ 的 NTQQ 方案):功能相对全面,但依赖桌面环境和庞大的 Electron 运行时,在 Linux 无头服务器上需要虚拟桌面与 Wine / Xvfb 环境,内存消耗通常在 500MB~1.5GB 以上;
- 纯协议逆向方案:开发和维护成本高,由于风控机制升级极易受到滑块、设备锁等限制;
- PicoOnebot(手表端 Hook):
- 轻量开销:手表 QQ 专为穿戴设备设计,剔除了桌面与手机端庞杂的富媒体、空间与小程序功能,核心进程内存占用通常在 100MB~250MB;
- 登录门槛低:支持直接扫码授权登录,风控相对温和;
- 容器化友好:配合 Android 容器技术(Redroid),可在 Linux 服务器或云主机上以纯命令行形态部署运行。
核心特性
- 标准协议兼容:支持 OneBot v11 规范中的 HTTP API、HTTP Event 上报、正向 WebSocket 与反向 WebSocket。
- Web 控制台:
- 启动后自动开放 Web 控制台(默认 6099 端口);
- 网页端实时展示扫码登录二维码与登录状态;
- 在线增删与修改反向 WebSocket、HTTP 上报地址,即时生效;
- 包含登录密码认证机制,保障公网访问安全。
- 一体化 Docker 镜像交付:
- 官方镜像打包了 Android 13 容器运行时(Redroid)、ARM 转译库(Google libndk)及 PicoOnebot 自身;
- 免去繁琐的 Android 环境配置,拉取镜像即可启动。
- 自动看护与保活机制:
- 容器内置启动与守护脚本,实时监听应用存活状态与端口监听状态;
- 应用因内存不足或异常崩溃时自动重启拉起。
协议支持说明
手表 QQ 客户端功能相比手机与桌面版本经过高度裁剪,协议支持情况说明如下:
| 功能模块 | 支持状态 | 详细说明 |
|---|---|---|
| 私聊消息 | 支持 | 发送与接收文本、基础表情、图片、语音 |
| 群聊消息 | 支持 | 发送与接收文本、@提及、图片、群事件通知 |
| 合并转发消息 | 接收支持 / 发送降级 | 支持读取与解析合并转发内容。由于手表端底层未开放完整富媒体转发卡片接口,发送合并转发消息时将自动降级发送(降级为单条文本或连续消息) |
| 群管理功能 | 暂未支持 / 待开发验证 | 禁言、移出群聊、设置管理、群公告、修改群名片等复杂群管 API 暂未支持,尚处于后续开发与验证阶段 |
| 登录方式 | 手机 QQ 扫码 | 在 WebUI 控制台查看二维码,使用手机 QQ 客户端扫码授权 |
| 通信上报模式 | 支持 | 正向 WebSocket、反向 WebSocket、HTTP POST 上报,支持多实例并发配置 |
开源协议
本项目遵循 GPL-3.0 开源许可证。本项目仅供技术学习与研究使用,不包含也不分发任何腾讯专有二进制文件。
