bcefghj/rokid-glasses-analysis

GitHub: bcefghj/rokid-glasses-analysis

一份详尽的 Rokid AI 眼镜技术分析文档,从硬件规格、系统架构到通信协议和开发指南全方位拆解消费级 AR 眼镜的内部运作机制。

Stars: 1 | Forks: 0

# Rokid AI 眼镜系统深度解析

设备型号: RG-glasses (Rokid AI 眼镜)  |  系统版本: Android 12 (API 32)  |  固件版本: 1.15.004

## ⚠️ 免责声明 **本项目仅供学习和研究目的。** - 本项目中涉及的所有技术信息均来源于对 Rokid AI 眼镜的合法使用与分析 - **所有版权归 Rokid(杭州灵伴科技有限公司)所有** - 本项目不包含任何 Rokid 的商业机密或受保护的源代码 - 如有侵权,请联系我,**我会立即删除相关内容** - 请勿将本项目内容用于任何商业用途 ## 这是什么项目? 你有没有好奇过,当你戴上 Rokid AI 眼镜时: - 说一声 **"若琪"**,它是怎么听到并响应的? - 用手指在镜腿上**滑动**,它是怎么知道你滑了什么方向? - 眼镜和手机之间是怎么**传输数据**的? - 拍照、录像、翻译、导航、支付……这些功能背后是**怎么运作**的? 这个项目就是要把这些问题一一解答,用**通俗易懂的方式**,带你看清 Rokid AI 眼镜内部的运作机制。 ## 目录 | 章节 | 内容 | 适合人群 | |------|------|---------| | [一、硬件是什么样的?](#一硬件是什么样的) | 芯片、传感器、摄像头等硬件规格 | 所有人 | | [二、系统是怎么跑起来的?](#二系统是怎么跑起来的) | Android 系统、分区、启动流程 | 所有人 | | [三、怎么操控眼镜?](#三怎么操控眼镜) | 触控板、按键、语音、手势 | 所有人 | | [四、语音系统怎么工作?](#四语音系统怎么工作) | 唤醒词、语音命令、TTS | 所有人 | | [五、核心功能怎么实现?](#五核心功能怎么实现) | 拍照、翻译、导航、支付等 | 进阶 | | [六、眼镜和手机怎么通信?](#六眼镜和手机怎么通信) | 蓝牙、WiFi、通信协议 | 进阶 | | [七、系统里有哪些 App?](#七系统里有哪些-app) | 全部系统应用清单和职责 | 进阶 | | [八、开发者指南](#八开发者指南) | 如何为眼镜开发 App | 开发者 | 更详细的文档请查看 [docs/](docs/) 目录。 ## 一、硬件是什么样的? ### 1.1 核心硬件一览 | 部件 | 规格 | 通俗解释 | |------|------|---------| | **处理器 (SoC)** | 高通 QCS6490 | 和中高端手机同级别的处理器,能跑 AI | | **CPU** | 8 核 (1大核+3中核+4小核) | 大核处理重任务,小核省电 | | **GPU** | Adreno 显卡 | 负责画面渲染,支持 3D | | **内存** | 1.78 GB | 比入门手机少,但对眼镜够用 | | **存储** | ~20 GB | 系统占约 2.3GB,用户可用约 17GB | | **屏幕** | 480×640 像素 (竖屏) | 很小的屏幕,投射到你眼前 | | **摄像头** | Sony IMX681 | 索尼的图像传感器,支持 4K | | **麦克风** | 8 通道阵列 | 8 个麦克风一起收音,能定位声音方向 | | **扬声器** | 高通 WSA 功放 | 贴近耳朵的扬声器 | | **电池** | 锂离子 4.5V | 续航有限,需要省着用 | | **传感器** | 16 个 | 加速度计、陀螺仪、接近传感器等 | | **蓝牙** | BT 5.2+ | 连手机、耳机 | | **WiFi** | 高通 QCA | 上网、传文件 | | **USB-C** | 充电 + 传数据 | 支持 ADB 调试 | ### 1.2 传感器详解 眼镜里有 **16 个硬件传感器**,每个都有它的用处: | 传感器 | 芯片型号 | 干什么用的? | |--------|---------|-------------| | **加速度计** | TDK ICM-4x6xx | 检测眼镜移动方向和速度(走路、点头) | | **陀螺仪** | TDK ICM-4x6xx | 检测眼镜旋转角度(转头、摇头) | | **接近传感器** | Sensortek UCS146E0 | 检测你有没有戴眼镜 | | **重力传感器** | 高通融合算法 | 知道哪个方向是"下" | | **线性加速度** | 高通融合算法 | 去掉重力后的纯运动加速度 | | **游戏旋转向量** | 高通融合算法 | 精确追踪头部姿态(AR 用) | ### 1.3 头部姿态追踪 眼镜内置了 `librfm3dof.so` 库,实现 **3DOF(三自由度)头部追踪**: - 可以检测你的头 **转了多少度**(左右看) - 可以检测你 **抬头低头** 了多少 - 可以检测你 **歪头** 了多少 - 还支持 **点头确认** 和 **摇头取消** 的手势 ## 二、系统是怎么跑起来的? ### 2.1 系统基本信息 | 项目 | 详情 | |------|------| | Android 版本 | 12 (API 32) | | Linux 内核 | 5.10.209 | | 已安装应用 | 94 个 | | 系统服务 | 203 个 | | 安全补丁 | 2024-07-05 | ### 2.2 分区结构 就像电脑硬盘分了 C 盘、D 盘一样,眼镜的存储也分了好几个"分区": ┌─────────────────────────────────────────────────────────────┐ │ 眼镜存储 (~20GB) │ ├─────────────────────────────────────────────────────────────┤ │ │ │ /system (795MB) ← Android 系统核心文件 │ │ /product (639MB) ← Rokid 自己的应用(AI 助手等) │ │ /vendor (571MB) ← 高通芯片的驱动和固件 │ │ /system_ext (291MB) ← 系统扩展(设置等) │ │ /vendor_dlkm (61MB) ← 内核驱动模块(161 个) │ │ /odm (1MB) ← ODM 定制(几乎为空) │ │ /data (19GB) ← 用户数据(照片、设置等) │ │ │ └─────────────────────────────────────────────────────────────┘ ### 2.3 开机启动流程 当你长按电源键开机,系统会按照以下顺序启动: 第1步: Linux 内核启动 (5.10.209) │ ▼ 第2步: Android init 进程启动 │ 加载 66 个硬件服务(音频、显示、传感器、蓝牙、相机、WiFi...) │ ▼ 第3步: 核心系统服务启动(标记为 persistent = 常驻不退出) │ ├── CXRService ─────────── 蓝牙通信桥梁,负责和手机对话 ├── RokidSysConfig ─────── 系统配置,管理 LED 灯、传感器、关机策略 └── RokidSpriteAssistServer ── ★ AI 核心大脑 ★ │ ├── MasterAssistService ── 总指挥,协调所有功能 ├── InstructService ────── 语音命令识别引擎 ├── SpriteMediaService ─── 拍照、录像、录音 ├── PaymentService ─────── 支付功能调度 ├── TtsService ─────────── 文字转语音(独立进程运行) ├── RokidBluetoothService ─ 蓝牙管理(15 个子管理器) ├── WebServerService ────── 内置 Web 服务器(端口 8848) ├── SpriteWifiService ───── WiFi 管理 └── JsAiService ─────────── JavaScript AI 引擎 │ ▼ 第4步: 开机完成后启动 │ ├── RokidSpriteLauncher ── 主界面(你看到的首屏) ├── RokidOtaUpgrade ────── 检查系统更新 └── 支付应用 ────────────── 支付宝、蚂蚁、京东等 ## 三、怎么操控眼镜? ### 3.1 触控板操作 镜腿上有一个 **Cypress PSOC 触控板**,支持以下手势: | 你的操作 | 眼镜收到的信号 | 实际效果 | |---------|--------------|---------| | **单击** | ENTER 键 | 确认/选择 | | **双击** | 自定义双击事件 | 自定义功能 | | **向前滑** | 前滑事件 | 自定义功能 | | **向后滑** | 后滑事件 | 自定义功能 | | **向上滑** | 方向键 ↑ | 切到消息页 | | **向下滑** | 方向键 ↓ | 切到应用列表 | | **向左滑** | 方向键 ← | 返回 | | **向右滑** | 方向键 → | 前进 | | **长按** | 长按事件 | 上下文菜单 | ### 3.2 功能键操作 除了触控板,还有一个物理 **功能键**: | 操作 | 默认功能 | 可以改成 | |------|---------|---------| | **短按** | 拍照 📸 | 录像 / 录音 | | **长按** | 录像 🎬 | 拍照 / 录音 | | **超长按** | 强制停止录像 | — | 另外还有 **音量+/-**、**HOME 键**、**CAMERA 键**、**FOCUS 键** 等 GPIO 按键。 ### 3.3 佩戴检测 眼镜会自动检测你有没有戴着它: 戴上眼镜 → 接近传感器触发 → 唤醒屏幕 → 播放音效 → 关闭充电 LED │ └── 3 秒内按键会被忽略(防止刚戴上时误触) 摘下眼镜 → 接近传感器触发 → 按键停止响应 折叠镜腿 → 开始 20 分钟倒计时 → 时间到自动关机(省电) │ └── 如果正在充电,则不关机 ### 3.4 主界面结构 眼镜的主界面分 **三页**,上下滑动切换: ┌──────────────────┐ │ 消息列表页 │ ← 向上滑 │ (MsgListFragment) │ └──────────────────┘ ↕ 上下滑动 ┌──────────────────┐ │ ★ 中心主页 ★ │ ← 默认显示 │ (CenterFragment) │ └──────────────────┘ ↕ 上下滑动 ┌──────────────────┐ │ 应用列表页 │ ← 向下滑 │(AppListFragment) │ └──────────────────┘ 在中心主页按 **返回键**,屏幕会直接息屏(相当于手机按锁屏键)。 ### 3.5 底部状态栏 每个页面底部都有固定状态栏: [时间] [WiFi信号] [蓝牙图标] [电量%] [天气] [外设] [录音指示] WiFi 信号分 5 级强度显示,状态栏还可以嵌入场景指示器(正在播放音乐、通话中、录音中等)。 ## 四、语音系统怎么工作? ### 4.1 离线语音识别 Rokid 自研了一个本地语音识别引擎 `librt_instruct.so`,它利用 8 通道麦克风阵列实时分析声音,**完全不需要联网**。 支持的 **19 个语音命令**: | 类别 | 你说的话 | 眼镜会做什么 | |------|---------|-------------| | **唤醒** | "若琪" / "乐琪" / "嗨暴龙" | 唤醒 AI 助手 | | **电话** | "接电话" | 接听来电 | | **音乐** | "下一首" / "上一首" | 切换歌曲 | | **音乐** | "播放音乐" / "暂停播放" | 控制播放 | | **音量** | "声音大一点" / "声音小一点" | 调节音量 | | **亮度** | "亮一点" / "暗一点" | 调节屏幕亮度 | | **拍摄** | "拍照" | 拍一张照片 | | **录制** | "录音" / "结束录音" | 开始/停止录音 | | **录制** | "录像" / "结束录像" | 开始/停止录像 | | **查询** | "当前电量" | 语音播报剩余电量 | | **退出** | "退出" | 退出当前功能 | **识别流程:** 8通道麦克风阵列(波束成形、远场拾音) ↓ librt_instruct.so(本地 AI 引擎,JNI 调用) ↓ 匹配到关键词 → onInstructCall(instructId) ↓ OffLineManager.handleInstruct() → 查表执行 ↓ 执行对应操作(拍照/播放/调音量...) ### 4.2 文字转语音 (TTS) 当眼镜需要"说话"(比如播报电量、提示信息),用的是 Rokid 自研的 TTS 引擎 `librfm-tts-jni.so`: - 运行在**独立进程** `:tts` 中,避免影响主进程 - 将文字转成 PCM 音频数据,然后流式播放 - 支持**双通道**:可以在眼镜端本地播放,也可以通过蓝牙发到手机播放 ### 4.3 在线语音识别 对于翻译等需要更高精度的场景,眼镜会把声音通过蓝牙传到手机,手机调用 **微软 Azure 语音服务** 进行识别。 ## 五、核心功能怎么实现? ### 5.1 拍照 📸 触发方式: ├── 功能键短按(默认) ├── 语音说 "拍照" ├── 手机端远程触发 └── AI 辅助拍照 拍照流程: 检查存储空间 → 检查电量(>10%) → 打开相机 → 拍照 → 虹软 ArcSoft SDK 后处理 │ ├── HDR 高动态范围 │ ├── 低光增强 │ ├── 畸变校正 │ └── 遮挡检测 → 保存到 /sdcard/DCIM/Camera/ → 生成缩略图 → 通过蓝牙发到手机同步 摄像头用的是 **Sony IMX681**,支持 15/24/30/60fps,通过 Camera HAL v3.7 驱动。 ### 5.2 录像 🎬 - **视频参数:** 480×640, H.264 编码, 4Mbps, 30fps - **最长时间:** 10 分钟 - **最低电量:** 10% - **最少空间:** 400MB ### 5.3 翻译 🌍 翻译是眼镜和手机**协同工作**的典型例子: 你说话 → 眼镜 8 通道麦克风收音 ↓ 通过蓝牙传到手机 ↓ 手机调用微软 Azure Speech SDK 识别语音 ↓ 翻译引擎处理 ↓ 结果通过蓝牙返回 ↓ 眼镜屏幕显示翻译结果 支持三种语音场景:翻译模式、通话模式、会议模式。 ### 5.4 导航 🧭 - **国内:** 高德地图 SDK - **海外:** 单独的海外导航模块 - 路线计算在**手机端**完成 - 转向指令通过蓝牙发送到眼镜 - 眼镜显示转向箭头和距离 ### 5.5 AI 视觉助手 (慧眼) 👁️ 眼镜摄像头 → 拍照/视频帧 ↓ 通过蓝牙传到手机 ↓ 手机端 AI 推理(iOS 用 onnxruntime + swift-transformers) ↓ 识别结果返回眼镜显示 ### 5.6 支付 💳 眼镜集成了 **5 种支付方式**: | 支付方式 | 实现方式 | 大小 | |---------|---------|------| | 支付宝(传统版) | 眼镜端独立 APK,刷脸/扫码 | 96MB | | 蚂蚁支付(新版) | 眼镜端独立 APK | 48+19MB | | 微信支付 | 通过手机端代理 | — | | 京东支付 | 眼镜端独立 APK (JoyGo) | 28MB | | 城市导览 | 手机端运行 | — | ### 5.7 直播推流 📡 摄像头 → CameraRecorder → VideoEncoder (H.264) ↓ RtmpSenderImpl → FLV封装 → RTMP 服务器 ↑ 麦克风 → AudioRecorder → AudioEncoder (AAC) 支持抖音直播(通过字节跳动 Zeus 插件系统集成)。 ### 5.8 屏幕录制/投屏 三种模式: - **录屏:** 本地保存为 MP4 - **投屏:** 只编码不保存,实时投射 - **直播:** RTMP 推流 ### 5.9 提词器 手机编辑提词内容 → 蓝牙发送到眼镜 → 眼镜 480×640 屏幕显示文字。 ### 5.10 音乐控制 通过蓝牙 A2DP(音频)+ HFP(通话)协议,手机端的音乐 App 声音传到眼镜扬声器。 支持语音控制或蓝牙命令控制播放/暂停/切歌。 ## 六、眼镜和手机怎么通信? ### 6.1 CXRService —— 通信中枢 CXRService 是眼镜和手机之间**所有通信**的核心桥梁,支持三种连接方式: | 连接方式 | 适用手机 | 技术 | |---------|---------|------| | **BT RFCOMM Socket** | Android 手机 | 经典蓝牙 SPP | | **BLE GATT** | iPhone(无 MFi) | 低功耗蓝牙 | | **MFI iAP2 Socket** | iPhone(有 MFi 认证) | Apple 官方通道 | ### 6.2 连接流程 **Android 手机连接眼镜:** 1. 手机打开 Rokid App → 扫描 BLE 蓝牙广播 2. 发现眼镜 → 连接 GATT → 读取 RFCOMM 连接信息(UUID + MAC 地址) 3. 建立 RFCOMM Socket 连接(经典蓝牙,速度更快) 4. 发送认证握手(Caps 协议,版本 1.4) 5. 连接完成 ✓ **iPhone 连接眼镜:** 1. BLE 扫描 → 发现眼镜 2. 写入 MFI_PAIRING_CHAR → 触发经典蓝牙配对 3. 通过 Apple External Accessory 框架建立连接 4. 使用协议名: com.rokid.aiglasses 5. 连接完成 ✓ ### 6.3 Caps 序列化协议 眼镜和手机之间传数据用的是 Rokid 自研的 **Caps 二进制协议**,通过 JNI 调用 native 代码实现: - 支持数据类型:Int32, Int64, Float, Double, String, Binary, 嵌套 Object - 用于所有蓝牙 GATT 数据传输 ### 6.4 命令体系 眼镜和手机之间通过 **JSON 格式的命令** 通信,共有 **21 个命令分类**: { "cmd": "Sys", "key": "Tts_SendPlayTts", "param": "{\"content\":\"你好\"}" } | 命令前缀 | 功能 | 举例 | |---------|------|------| | `Sys` | 系统控制 | 音频场景切换、TTS 播放 | | `Trans` | 翻译 | 翻译场景切换、翻译结果 | | `Med` | 媒体 | 打开/关闭相机、缩略图同步 | | `Dev` | 设备 | 电量、亮度、音量、屏幕状态 | | `Ai` | AI | AI 按键、拍照、视频帧推送 | | `Nav` | 导航 | 导航指令、路线数据 | | `Music` | 音乐 | 播放控制、歌词推送 | | `Pay` | 支付 | 支付代理消息 | | `Ntf` | 通知 | 手机通知转发到眼镜 | | `Wifi` | WiFi | WiFi 状态同步 | | `Broadcast` | 直播 | 直播推流控制 | | `ARTC` | 实时通信 | 音视频帧传输 | | `Schedule` | 日程 | 日程同步/添加/删除 | | `Memo` | 备忘 | 备忘录同步 | | `Journey` | 行程 | 火车票/航班管理 | | `Ota` | OTA | 固件更新通知 | | `Order` | 点餐 | 餐饮点单 | | `Settings` | 设置 | 设置同步 | | `Custom_View` | 自定义视图 | 第三方自定义界面 | | `Proxy` | 代理 | 通用代理通信 | | `Jsai` | JS AI | JavaScript AI 引擎 | ### 6.5 WiFi P2P 高速传输 蓝牙传输速度有限,当需要同步大量照片/视频时,眼镜会通过 **WiFi Direct** 建立高速连接。 ### 6.6 内置 Web 服务器 眼镜还内置了一个 Web 服务器(AndServer 框架,端口 8848),可以在局域网内通过浏览器访问眼镜上的文件。 ## 七、系统里有哪些 App? ### 7.1 Rokid 核心应用(7 个) | 应用 | 包名 | 大小 | 一句话介绍 | |------|------|------|-----------| | **RokidSpriteAssistServer** | `com.rokid.os.sprite.assistserver` | 224MB | 大脑,管理所有 AI 和核心功能 | | **RokidSpriteLauncher** | `com.rokid.os.sprite.launcher` | 28MB | 主界面,你看到的所有页面 | | **RokidSpriteLive** | `com.rokid.os.sprite.live` | 12MB | RTMP 直播推流 | | **RokidSysConfig** | `com.rokid.sysconfig` | <1MB | LED 灯、传感器、关机策略管理 | | **CXRService** | `com.rokid.cxrservice` | <1MB | 蓝牙通信桥梁 | | **RokidOtaUpgrade** | `com.rokid.glass.ota` | 3.4MB | 系统更新 | | **RokidScreenRecord** | `com.rokid.os.master.screenstream` | 11MB | 屏幕录制 | ### 7.2 支付应用(4 个) | 应用 | 包名 | 大小 | |------|------|------| | 支付宝(眼镜版) | `com.eg.android.AlipayGGlasses` | 96MB | | 蚂蚁集团 | `com.antgroup.glasses` | 48MB | | 蚂蚁支付 | `com.iap.mobile.ar_pay` | 19MB | | 京东支付 | `com.jd.jr.joyaibuy` | 28MB | ### 7.3 系统服务架构图 ┌──────────────────────┐ │ RokidSpriteLauncher │ ← 主界面 └──────────┬───────────┘ │ 绑定服务 ┌──────────▼───────────┐ │ RokidSpriteAssist │ ← ★ AI 大脑 ★ │ Server │ ├──────────────────────┤ │ • InstructService │ ← 语音/手势命令 │ • MasterAssistService │ ← 总调度中心 │ • SpriteMediaService │ ← 拍照/录像 │ • PaymentService │ ← 支付 │ • TtsService (:tts) │ ← 语音合成 │ • WebServerService │ ← Web 文件服务 │ • SystemFuncService │ ← 系统功能 └───┬────┬────┬───┬────┘ │ │ │ │ ┌───────────────┘ │ │ └────────────────┐ ▼ ▼ ▼ ▼ ┌──────────────┐ ┌──────────┐ ┌───────────┐ ┌──────────────┐ │ SpriteLive │ │ 支付宝 │ │ 蚂蚁支付 │ │ CXRService │ │ (直播) │ │ Glass2Pay │ │ GPass │ │ (蓝牙通信) │ └──────────────┘ └──────────┘ └───────────┘ └──────────────┘ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ RokidSysConf │ │ RokidOTA │ │ ScreenRecord │ │ (系统配置) │ │ (OTA升级) │ │ (屏幕录制) │ └──────────────┘ └──────────────┘ └──────────────┘ ### 7.4 场景管理系统 AssistServer 通过场景管理系统统一管理 **18 个功能场景**: | 场景 | 场景Key | 说明 | |------|---------|------| | 翻译 | `translate` | 实时翻译 | | 导航 | `navigation` | 地图导航 | | AI 聊天 | `ai_chat` | AI 对话 | | 录像 | `video_record` | 视频录制 | | 录音 | `audio_record` | 音频录制 | | 直播 | `live_broadcast` | RTMP 直播 | | 电话 | `phone_call` | 来电/通话 | | 音乐 | `mobile_music` | 手机音乐 | | 提词器 | `word_tips` | 提词器显示 | | 支付 | `payment` | 支付功能 | | 点餐 | `food_order` | 餐饮点单 | | 城市导览 | `city_guide` | 景点导览 | | 自定义视图 | `custom_view` | 第三方自定义 | | … | … | … | ## 八、开发者指南 ### 8.1 开发环境 | 项目 | 要求 | |------|------| | 目标 SDK | Android 12 (API 32) | | 最低 SDK | Android 10 (API 29) | | 屏幕 | 480×640 竖屏 | | 输入方式 | D-Pad 焦点导航(无触摸屏!) | | Google Play | 不可用(无 GMS) | ### 8.2 关键开发注意事项 1. **没有触摸屏** — 所有 UI 必须支持 D-Pad 焦点导航 2. **所有可交互元素** 必须设置 `android:focusable="true"` 3. **焦点状态** 必须有清晰的视觉反馈(高亮边框等) 4. **屏幕很小** — 480×640,内容要简洁 5. **建议加入音效** — 焦点切换时播放声音,提升体验 6. **防抖处理** — 建议 200ms 按键防抖 ### 8.3 监听按键事件 @Override public boolean dispatchKeyEvent(KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_UP) { switch (event.getKeyCode()) { case KeyEvent.KEYCODE_DPAD_UP: // 触控板向上滑 case KeyEvent.KEYCODE_DPAD_DOWN: // 触控板向下滑 case KeyEvent.KEYCODE_DPAD_LEFT: // 触控板向左滑 case KeyEvent.KEYCODE_DPAD_RIGHT: // 触控板向右滑 case KeyEvent.KEYCODE_ENTER: // 触控板单击 case KeyEvent.KEYCODE_BACK: // 返回 break; } } return super.dispatchKeyEvent(event); } ### 8.4 监听功能键 IntentFilter filter = new IntentFilter(); filter.addAction("com.android.action.ACTION_SPRITE_BUTTON_UP"); // 短按 filter.addAction("com.android.action.ACTION_SPRITE_BUTTON_LONG_PRESS"); // 长按 registerReceiver(receiver, filter); ### 8.5 安装到眼镜 # 通过 USB 连接后 adb install your_app.apk # 启动你的应用 adb shell am start -n com.your.package/.MainActivity ## 九、手机端 App ### Android 版 - 包名:`com.rokid.sprite.aiapp` - 大小:391MB - 保护:网易易盾加壳(业务逻辑加密) - 集成服务:高德地图、微软语音、支付宝、京东、QQ 音乐、抖音直播等 ### iOS 版 - 包名:`com.rokid.rokidglasses` - 大小:624MB - 最低系统:iOS 18.0 - 通信方式:Apple MFI External Accessory + BLE - 集成框架:微软语音 SDK、阿里 RTC、ONNX Runtime (本地 AI)、高德导航等 ## 十、LED 灯光系统 通过自定义 HAL 服务 `LightsCtrl` 控制: | 灯光事件 | 触发条件 | |---------|---------| | 闪烁 | 蓝牙配对中 | | 常亮 | 蓝牙已连接 | | 充电指示 | 充电中 / 充满电 | | 特殊闪烁 | 来电 / 通话中 / 麦克风静音 | ## 十一、OTA 升级系统 - **机制:** Android A/B 分区更新 - **服务器:** `ota.rokid.com` - **认证:** MD5 签名验证 - **下载:** 支持断点续传,自动重试 3 次 - **电量要求:** 下载需 ≥30%,安装需 ≥70% - **远程触发:** 可通过手机蓝牙触发 OTA ## 项目结构 rokid-glasses-analysis/ ├── README.md ← 你正在看的这个文件 ├── LICENSE ← 许可证 ├── docs/ │ ├── 01-hardware.md ← 硬件详细规格 │ ├── 02-system-architecture.md ← 系统架构深度解析 │ ├── 03-interaction-system.md ← 交互系统完整解析 │ ├── 04-voice-system.md ← 语音系统解析 │ ├── 05-communication-protocol.md ← 通信协议详解 │ ├── 06-features.md ← 功能实现细节 │ ├── 07-app-list.md ← 完整应用清单 │ └── 08-developer-guide.md ← 开发者指南 ├── device-info/ ← 设备信息转储 │ └── README.md ← 设备信息说明 └── architecture/ ← 架构图 └── README.md ← 架构说明 ## 贡献 & 联系 如果你发现了错误或有补充信息,欢迎提 Issue 或 PR。 如有任何版权问题,请联系我,我会立即处理。

本项目仅供学习研究,所有版权归 Rokid 所有。如有侵权请联系删除。

标签:AI 眼镜, Android 12, AR 眼镜, Homebrew安装, RG-glasses, Rokid, TTS, 云资产清单, 人机交互, 传感器, 启动流程, 固件解析, 学习笔记, 安全渗透, 底层机制, 技术科普, 智能眼镜, 硬件架构, 穿戴设备, 系统分析, 网络分析, 蓝牙通信, 语音助手, 逆向工程, 通信协议, 隐私安全