Skip to content

项目介绍 ​

PicoOnebot 是一个基于官方手表 QQ(QQ Lite / Watch QQ)Android 客户端实现的轻量级 OneBot v11 协议端。

通过底层字节码注入与 Native Hook 技术,PicoOnebot 在官方轻量客户端进程内部构建了标准的 OneBot 通信服务,并提供了独立的 WebUI 控制台用于扫码登录与网络配置管理。


架构选型特点 ​

在现有的 QQ 机器人生态中,常见的实现途径主要包括:

  1. 桌面 NT 客户端 Hook 方案(如基于 PC 桌面 QQ 的 NTQQ 方案):功能相对全面,但依赖桌面环境和庞大的 Electron 运行时,在 Linux 无头服务器上需要虚拟桌面与 Wine / Xvfb 环境,内存消耗通常在 500MB~1.5GB 以上;
  2. 纯协议逆向方案:开发和维护成本高,由于风控机制升级极易受到滑块、设备锁等限制;
  3. 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 开源许可证。本项目仅供技术学习与研究使用,不包含也不分发任何腾讯专有二进制文件。

Released under the GPL-3.0 License.