# glass-theme **Repository Path**: dlover1314/glass-theme ## Basic Information - **Project Name**: glass-theme - **Description**: Rokid 眼镜(RG-glasses / Android 12)上完全独立运行的主题(动态表盘)宿主 APK。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-28 - **Last Updated**: 2026-10-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GlassTheme · 眼镜端独立主题宿主 > Rokid 眼镜(RG-glasses / Android 12)上完全独立运行的主题(动态表盘)宿主 APK。 > 不依赖 RokidLab / RokidLink / 手机连接——装一次,开机自启、被杀自愈、断链常驻。 > > 作者:**DLOVER** | 版本:v0.1(测试版) ## 特性 - **完全独立**:引擎 + 保活 + 主题加载器自持,主题是 `/sdcard/RKDownload` 上的 `.hudtheme` 数据包 - **开机自启**:NotificationListenerService 被 ROM 每次开机主动 bind(授权一次永久生效) - **被杀自愈**:进程被 force-stop 后系统自动重绑复活(实测 5s 内) - **不碍事**:`NOT_TOUCHABLE` 悬浮窗浮在官方表盘上,触摸/按键不受影响;打开任何官方页面主题自动隐藏、回桌面自动恢复 - **本地数据源**:眼镜电量、头姿 IMU(head_yaw/head_pitch)本地注入,断手机也有活数据 - **HUD DSL 引擎**:与 RokidLab HUD 同源的 DSL 解释器(宏参数 / expr 表达式 / 动画 / 数据绑定) ## 眼镜端安装(adb,一次性) ```bash adb install -r glass-theme.apk adb shell appops set com.dlover.glasstheme SYSTEM_ALERT_WINDOW allow # 悬浮窗 adb shell appops set com.dlover.glasstheme MANAGE_EXTERNAL_STORAGE allow # 主题目录访问 adb shell cmd notification allow_listener com.dlover.glasstheme/com.dlover.glasstheme.ThemeListenerService # 自启通道 adb shell mkdir -p /sdcard/RKDownload ``` 三项授权各一次即可,之后重启/被杀均自动恢复。 ## 使用 1. 把 `.hudtheme` 主题文件放进眼镜 `/sdcard/RKDownload/`(`adb push x.hudtheme /sdcard/RKDownload/`) 2. 打开眼镜上的 **GlassTheme**:镜腿前/后滑移动焦点(绿框),短按确认加载/停止 3. 回桌面即见主题;主题包内记住最后加载项,重启自动恢复 或免 UI 一条命令(开发者): ```bash python tools/deploy.py my-theme/ # 校验+打包+推送+热加载 ``` ## 给开发者 / Coding Agent - 开发规范(单文件):**[docs/THEME-DEV.md](docs/THEME-DEV.md)** —— 直接喂给 Codex/Cursor,配 `tools/` 三脚本即可自主迭代 - `tools/validate.py`:本地校验 scene.json(不接设备,秒级报错) - `tools/pack.py`:主题目录 → `.hudtheme` 正式包 - `tools/deploy.py`:一键部署(校验+打包+push+热加载)+ `--shot` 截图核对 + `--stop` - 示例主题:`samples/dlover-demo/`(源)与 `samples/dlover-demo.hudtheme`(包) ## 架构 ``` ThemeListenerService (NLS: ROM 开机 bind + 被杀重绑 —— 自启/自愈唯一通道) → ThemeService (FGS connectedDevice 常驻) → HudEngine (DSL 解释器 → TYPE_APPLICATION_OVERLAY + NOT_TOUCHABLE 悬浮窗) → ThemeActivity (焦点导航式管理页:眼镜无触摸屏,镜腿滑动 = 十字键) → resume-change receiver (官方页面自动隐藏 / 回桌面恢复) ``` 保活通道的实验与选型过程见开发记录(BOOT 被本 ROM 硬拦、persistent 对旁路安装无效、 预装支付应用的两条路不可复制——NLS 是第三方 APK 唯一可行的系统级自启通道)。 ## 数据键可用性 本地可用:`battery_glass`、`head_yaw`、`head_pitch`(IMU)。 其余键解析合法但显示空态 `--`(详见 THEME-DEV.md 数据绑定一节)。 ## License 仅供个人研究与设备自有用途。DSL 语法源自 RokidLab HUD DSL(v1/v2),本仓库内解释器为独立移植副本。