GazeKeep

GazeKeep 注视保亮

GitHub stars GitHub release Website License: MIT English README

🌐 官方网站  |  📥 下载最新 APK  |  📖 English README

你有没有遇到过这样的痛点:看长文、查资料或者照着菜谱做饭时,手上有水不方便碰手机,屏幕却动不动就变暗甚至直接熄灭? 为了不被打断,你可能去系统设置里把自动熄屏时间调到了 10 分钟甚至更长。但这又带来了新问题——如果你晚上躺在床上看手机不小心睡着了,屏幕就会这样亮一整宿,不仅费电,还可能伤屏幕。

「短超时太烦人,长超时怕睡着」,GazeKeep 就是为了解决这个矛盾而诞生的。

它的设计初衷很简单:为了给没有提供系统级注视保亮功能的 Android 设备,补齐安全、无感且可媲美系统原生体验的注视保亮功能,让旧设备也能更省心、更好地被使用。

有了 GazeKeep,你可以放心地将系统自动熄屏时间缩短至 15 秒或 30 秒。在你专注阅读屏幕时,它仅在快要熄屏前短暂调用前置摄像头看一眼,只要你仍在注视,就默默为你延长亮屏;一旦你移开视线、或者不小心睡着了没看着屏幕,它绝不瞎干预,让系统像往常一样准时熄灭。

核心特性与体验

  • 按需短时采样,无感低打扰:平时绝不常驻占用摄像头,仅在临近系统降亮或熄屏前短暂采样 1~3 帧,看一眼就立刻关闭。检测与推理全程在端上离线完成;成功帮忙保亮时安静无感、没有任何弹窗,只在服务异常或后端掉线时才会发通知提醒你。
  • 绝不盲目常亮:遇到暗光、侧脸、看不清(「这次没看清」)、画面中出现多人,或摄像头正被系统相机、扫码应用占用时,它会果断放行,让系统正常熄屏。不仅如此,它还内置了单次最长保亮保护(默认 30 分钟,支持自定义或设为无限制),达到上限时释放保亮能力,目标是强制熄屏一次。
  • 三种后端适配不同旧设备条件:考虑到大家的设备条件和折腾程度不同,提供 LSPosed(系统框架级联动)、Shizuku(ADB / 无线调试授权,免 Root)和 无障碍服务(零门槛开箱即用)三种工作后端,支持自动按优先级优选或手动锁定。
  • 应用白名单与可视化自检:默认开启应用白名单,你可以只勾选需要的阅读或浏览类 App,不在全局盲目触发。内置两步式相机自检向导,搭配克制、清晰的设置界面,支持自由调节检测提前量、灵敏度,以及按需开启本地枚举诊断日志。

界面预览

主页状态 参数设置
主页运行状态与环境概览 检测与保护参数设置
工作后端 应用白名单
三种工作后端与自动选择 应用白名单管理

隐私与安全

  1. 只在快要熄屏时打开前置摄像头,看完立刻关闭。
  2. 画面只在内存里判断是否注视了屏幕,不保存、不上传。
  3. 看不清、没看清、旁边有别人,都会让屏幕正常熄灭。

本应用不申请网络(INTERNET)、存储/相册、读取应用列表(QUERY_ALL_PACKAGES)或悬浮窗权限,不接入任何统计、广告或崩溃上报 SDK,无障碍服务不读取任何窗口文本内容。相机预览仅出现在用户主动进入的自检向导页,离开页面即刻释放。完整边界见隐私与安全。

下载与安装

前往 GitHub Releases 下载最新发布的正式签名安装包:

安装包架构 适用设备说明 包体特点
arm64-v8a(推荐) 绝大多数现代主流 Android 手机/平板 针对 64 位架构深度优化,单包体积仅约 10~11 MB
armeabi-v7a 早期老旧 32 位 Android 设备 兼顾老旧机型兼容性,体积约 10 MB
x86_64 PC Android 模拟器 适用于模拟器体验与开发调试
universal 全架构通用安装包 内置所有原生架构库,约 17 MB,不确定架构时首选

工作模式与启用

1. 四步启用流程

  1. 下载安装并授权:前往 GitHub Releases 下载并安装对应架构的 APK,授予前置相机权限(Android 13+ 建议允许通知权限以接收异常提醒)。
  2. 两步相机自检:在应用内进入「相机自检」,正视屏幕通过第一步(识别为“注视了屏幕”),侧头或移开视线通过第二步(识别为“未注视屏幕”)。
  3. 配置应用白名单:保持应用白名单开启,勾选需要注视保亮的阅读、浏览或烹饪类 App。
  4. 确认后端并开启:确认任一后端就绪,在首页开启保亮总开关即可生效。

小米/HyperOS 需在设置页「后台运行」将省电策略设为「无限制」,否则使用系统相机后保亮可能失效;修改策略后需重新打开一次应用。

2. 三种后端对比与准备

后端 适用设备条件 后端特点
LSPosed 已 Root 且安装框架 系统框架级事件拦截与亮屏控制,体验最贴近原生
Shizuku 免 Root(ADB / 无线调试) 免 Root 环境下基于 ADB / 无线调试授权执行系统调度
无障碍 免 Root 零门槛 零门槛开箱即用,通过模拟无感交互维持亮屏。

后端默认采用 Auto(自动) 模式,按 LSPosed → Shizuku → 无障碍 顺序自动优选已就绪后端;手动锁定某一后端时,若该后端失效不会静默切换到其他后端。应用白名单的前台识别按后端分别使用无障碍事件、Shizuku shell 查询或 LSPosed 系统查询,详细使用与排查见使用说明。

当前状态与开发入口

  • 兼容范围与进度:端上检测、三种后端、UI 界面、参数配置与两步自检均已实现。Android 8.0(API 26)为安装下限,实际表现取决于系统版本、ROM 电源管理与所选后端能力,需按目标设备实测。传感器门控已接入,正式签名 APK 以 GitHub 预发布提供,当前版本的完整实机回归仍待完成,详见产品定义与任务清单。
  • 源码构建:当前可从源码构建 Debug APK(产物位于 apps/app/android/build/outputs/apk/debug/):
pnpm --filter @gazekeep/app exec ./gradlew :android:assembleDebug

开源协议

本项目采用 MIT 许可 开源(内置第三方运行依赖声明见应用“关于”页或 THIRD_PARTY_NOTICES.txt)。

Releases

1.1.3

Stable

10/27/2026, 3:30:09 PM

更新日志

新增

  • 设置页应用内语言切换:设置页新增语言选择,支持在「跟随系统」、简体中文与 English 之间切换,默认跟随系统;Android 13 及以上版本与系统「应用语言」设置保持同步。
  • 小米 / HyperOS「后台运行」设置引导:针对系统默认「智能」省电策略在使用相机后会冻结后台服务、导致注视保亮静默失效的问题,在设置页新增快捷入口,引导跳转系统设置将省电策略调整为「无限制」。
  • 开机自动恢复屏幕超时:新增开机广播权限(RECEIVE_BOOT_COMPLETED);仅在 Shizuku 临时延长超时期间重启、存在待恢复记录时,于开机后运行一次以写回原超时,不启动检测服务或相机。
  • 关于页官方网站入口:关于页新增官方网站快捷入口,点击可直接访问官网。

优化

  • 相机权限重新授权后自动恢复:先前被撤销的相机权限重新授予且应用满足开启条件时,回到前台会自动恢复注视保亮服务,无需手动重新开关总开关。
  • 详细日志查看与性能:日志列表与导出文件调整为最新记录在前,导出文件添加 .txt 后缀以便在手机上直接打开;日志写入改为增量追加,记录较多时不再丢失,写入时不再反复读取全部日志;设置页说明中补充提示日志包含前台应用包名。

修复

  • 使用 LSPosed 后端时,同时检测框架就绪状态可能导致应用崩溃;现已优化流程,避免同时检测时崩溃。
  • 保亮后端掉线或相机权限被撤销后,首页仍错误显示为「工作中」且状态原因提示不准确;现在会如实反映实际工作状态并准确提示原因。
  • Shizuku 后台服务退出或单次绑定失败后不再自动重连,导致后端保持不可用;现已支持按间隔自动尝试重新连接。
  • Shizuku 临时超时退路的多项保亮与恢复问题:解决持续注视约 60 秒后仍会熄屏、以及亮屏写回原值或倒计时更新滞后导致注视中突然熄屏的问题;用户在延长期间手动修改的系统超时不再被旧记录覆盖,到达保亮上限或切换后端时也会及时恢复原值。
  • 手机在锁屏状态下点亮屏幕时,因截止时间微调导致检测引擎在无需检测时反复空转消耗电量;现在会过滤微小时间偏差,避免无谓空转。
  • 详细日志的时间记录取自写盘时刻导致排队积压时时间不准确,现改为记录事件实际发生的时间。
  • 人脸采集中途因屏幕触摸而取消时,未在详细日志中记录中止原因;现在会正常记录中止状态,方便回溯原因。
  • 正式发布包(R8 压缩构建)中详细日志与调试输出里的引擎状态名称被混淆(如显示为 zn0 等),导致日志无法阅读;现已调整混淆规则,保持状态名称清晰可读。
  • 服务运行中切换应用语言后,常驻通知与通知渠道名称未实时切换为新语言;现在常驻通知与两条通知渠道名称会立即切换为新语言,已经弹出的提醒保持原文。

启用步骤

  • Root 环境:在 LSPosed 中启用模块,作用域选择系统框架,重启系统后回到 App 确认桥接就绪。
  • 非 Root 环境:在系统无障碍设置中启用 GazeKeep 服务,或启动 Shizuku 并授权 GazeKeep,回到 App 确认后端就绪。
  • 两种环境都需授予相机权限,完成自检(正视得到「注视了屏幕」,转头得到「未注视屏幕」),选择白名单应用后打开总开关。
  • 小米/HyperOS:在设置页「后台运行」把省电策略设为「无限制」。修改策略时系统会强制停止 GazeKeep,改完需重新打开一次应用。

安装包

多数手机选择 arm64-v8a;较旧的 32 位手机选择 armeabi-v7a;不确定设备架构时选择体积较大的 universal。各包签名与版本相同,可互相覆盖安装。

APK ABI 大小 SHA-256
gazekeep-1.1.3-arm64-v8a.apk arm64-v8a 10.1MiB a0cf155a2014fda1dbf1f1386f7d89562a638865c532c317c84149bd5a12c2b8
gazekeep-1.1.3-armeabi-v7a.apk armeabi-v7a 9.6MiB 6150cc7b78a6befa98d5fbb643091977106a1b77923ec3953b19d5cfe093b7a5
gazekeep-1.1.3-x86_64.apk x86_64 10.5MiB a72026ed913e3e3f779207160c44f64456343e53e587402796246786c5d5a6eb
gazekeep-1.1.3-universal.apk universal 16.4MiB 915ab59a04ff02e4f5f3deda72cae0648f9e5cfa940951700ba4af9f4b7218ae

Assets

4