AskaEth
986e3814bc
fix(launcher,lock): §310 M6.7 锁屏页自睡——空闲超时自动灭屏(294 遗留补)
背景:锁屏页(run_lock_screen)此前常亮不灭屏——用户停在锁屏页不操作,屏幕一直亮着耗电。
M6.6 上机后用户反馈,补 294 遗留项「锁屏页未做空闲超时自动息屏」。
实现(/usr/bin 只读,待 M6.7 固件打包,fw_content.conf 未动):
- run_lock_screen 循环加空闲跟踪(last_act)+ 自睡状态(asleep):
① 阈值 = overlay_lock_idle_off_sec(screen_off_timeout) = min(系统 screen_off_timeout, 30s)。
系统未设/设 0(常亮)/超 30 → 锁屏页封顶 30s(锁屏页不应常亮耗电);系统设更短 → 尊重更短。
② 活跃态空闲超阈值 → meow_panel_off()(与息屏路径一致:panel 模式 FBIOBLANK 4 挂起 goodix /
black 模式仅背光 0)+ asleep=1 —— 锁态保持,仍留在锁屏循环(=「锁屏页自己也会睡」)。
③ asleep 后电源键按下边沿 或 触摸活动 → meow_panel_on() + lk_draw 重画锁屏页(本循环唤醒链
回锁),输入活动(任意按键 change / 触摸)都重置 last_act。
④ 音量键本页不动,仅计入输入活动重置计时;自睡期面板已关,不重绘(唤醒时统一重画)。
- EVIOCGRAB 与灭屏交互(核对结论):灭屏期 grab **保持**(tfd 不关)。panel 模式 FBIOBLANK 4
挂起 goodix → 灭屏期无触摸事件,唤醒只走电源键;black 模式触摸仍活动且被抓取者(launcher)独占
→ 唤醒第一下触摸进锁屏(不穿透 App、不被吞——被锁屏作为活动消费,可能命中 PIN 键)。唤醒后
FBIOBLANK 0 + grab 仍在,全程无穿透。
- App 前台叠加锁屏(run_app_lock_overlay)期间 App 的 /tmp/meow_notif_active 标记在整个自睡/
唤醒周期保持(仅锁屏退出才 unlink),故媒体保活 App 自睡期仍被 present 抑制,不覆盖锁屏。
overlay_gate.h 增 overlay_lock_idle_off_sec / overlay_lock_should_sleep / overlay_lock_wake_now
(纯决策,可单测)。test_overlay_gate.c 扩展 S4(12 断言:阈值 tradeoff / 超时灭屏 / 唤醒回锁屏 /
屏幕关不重睡)。launcher 全量宿主回归 + SDK 叠加/状态栏/输入回归全 PASS;mipsel 交叉 -Wall -Wextra
0 warning。md5 42b6633afde37035585fc36b074a73c6(待 M6.7 固件打包,不部署)。
2026-09-02 13:35:56 +08:00
..
2026-08-30 21:38:30 +08:00
2026-09-02 11:49:37 +08:00
2026-09-01 16:08:01 +08:00
2026-09-01 04:28:10 +08:00
2026-09-01 22:09:31 +08:00
2026-09-02 00:57:17 +08:00
2026-08-30 01:12:34 +08:00
2026-08-31 19:12:51 +08:00
2026-08-31 03:41:51 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-09-02 03:18:36 +08:00
2026-08-30 01:12:34 +08:00
2026-09-01 04:28:10 +08:00
2026-09-02 13:35:56 +08:00
2026-09-02 00:57:17 +08:00
2026-09-02 03:41:39 +08:00
2026-09-02 00:57:17 +08:00
2026-09-02 08:13:55 +08:00
2026-09-01 19:40:29 +08:00
2026-09-01 19:40:29 +08:00
2026-09-01 18:09:09 +08:00
2026-09-01 18:09:09 +08:00
2026-08-30 21:38:30 +08:00
2026-09-01 18:28:07 +08:00
2026-08-30 14:14:30 +08:00
2026-08-31 07:53:57 +08:00
2026-08-31 07:53:57 +08:00
2026-09-01 22:08:10 +08:00
2026-09-02 03:41:39 +08:00
2026-09-02 13:35:56 +08:00
2026-09-01 15:23:32 +08:00
2026-09-01 15:23:32 +08:00
2026-08-30 21:38:30 +08:00
2026-08-31 05:46:46 +08:00
2026-08-31 05:46:46 +08:00
2026-09-02 00:48:23 +08:00
2026-09-01 14:44:55 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-09-02 08:13:55 +08:00
2026-09-02 03:18:36 +08:00
2026-09-01 22:09:31 +08:00
2026-09-01 04:28:10 +08:00
2026-09-01 04:40:34 +08:00
2026-09-02 13:35:56 +08:00
2026-09-02 00:48:23 +08:00
2026-09-02 00:48:23 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-09-02 03:18:36 +08:00
2026-08-30 21:38:30 +08:00
2026-08-31 03:41:51 +08:00
2026-09-01 19:40:29 +08:00
2026-09-01 18:09:09 +08:00
2026-09-01 18:28:07 +08:00
2026-08-31 05:09:42 +08:00
2026-08-30 13:42:41 +08:00
2026-08-31 14:34:28 +08:00
2026-08-31 19:12:51 +08:00
2026-08-31 06:51:04 +08:00
2026-09-02 11:49:37 +08:00
2026-09-02 03:41:39 +08:00
2026-09-01 15:23:32 +08:00
2026-09-01 22:09:31 +08:00
2026-09-01 15:23:32 +08:00
2026-08-31 19:12:51 +08:00
2026-08-30 13:02:17 +08:00
2026-09-02 13:35:56 +08:00
2026-09-01 18:12:46 +08:00
2026-09-02 08:13:55 +08:00
2026-09-01 15:23:32 +08:00
2026-09-01 04:28:10 +08:00
2026-09-02 02:20:06 +08:00
2026-09-01 22:09:31 +08:00