fix(watchdog): M6.23 亮屏亮度按用户设置恢复(修 panel ON 固定60跳变) — 推卡
This commit is contained in:
1 parent
e448b9bfda
commit
ec8e43e1fd
2 files changed
+41
-3
No files matched your search
@@ -214,6 +214,39 @@ static void write_brightness(int val)
|
||||
close(fd);
|
||||
}
|
||||
|
||||
/* M6.23:亮屏恢复亮度以**用户设置**为准(/usr/data/meow/settings.conf 的 display.brightness),
|
||||
* 而非 wd_saved_bri 快照——该快照可能被污染:panel OFF 前 read_brightness() 可能读到 launcher
|
||||
* 先写好的 0(launcher meow_panel_off 已 write_brightness(0)),`wd_saved_bri=(br>0)?br:60` 便落到
|
||||
* 默认 60;panel ON 恢复 60 与 launcher 按用户设置恢复 7 竞态 → 亮屏亮度跳变(真机「跳高到 60 /
|
||||
* 又降回 7」,2026-09-03)。
|
||||
* 与 launcher meow_settings_brightness_clamped() 同源(同文件、同 clamp:下限 display.brightness_min
|
||||
* 默认 1=极暗但可见、上限 100=防闪屏);本进程自身 wd_vol_load 早已读该文件,不引入 launcher 全量
|
||||
* 依赖,保持 watchdog 独立性。返回 clamped 值;settings 文件不可读(S70 早启动 /usr/data 未就绪)
|
||||
* → 返回 -1,调用方回退 wd_saved_bri(保持旧行为,防开机竞态)。 */
|
||||
static int wd_settings_brightness(void)
|
||||
{
|
||||
FILE *f = fopen(MEOW_SETTINGS_FILE, "r");
|
||||
if (!f) return -1;
|
||||
int b = 101; /* display.brightness 默认(与 launcher 设置表同值,键缺失时 clamp→100) */
|
||||
int mn = 1; /* display.brightness_min 默认(极暗但可见;键缺失时保底) */
|
||||
char buf[128];
|
||||
while (fgets(buf, sizeof buf, f)) {
|
||||
char *eq = strchr(buf, '=');
|
||||
if (!eq) continue;
|
||||
*eq = 0;
|
||||
char *k = buf; int kl = (int)strlen(k);
|
||||
while (kl > 0 && (k[kl-1] == ' ' || k[kl-1] == '\t')) k[--kl] = 0;
|
||||
char *v = eq + 1; while (*v == ' ' || *v == '\t') v++;
|
||||
int iv = atoi(v);
|
||||
if (!strcmp(k, "display.brightness_min")) { if (iv >= 1 && iv <= 100) mn = iv; }
|
||||
else if (!strcmp(k, "display.brightness")) { b = iv; }
|
||||
}
|
||||
fclose(f);
|
||||
if (b < mn) b = mn;
|
||||
if (b > 100) b = 100;
|
||||
return b;
|
||||
}
|
||||
|
||||
/* 强制 re-pan 到 buffer0:FBIOBLANK(4)->(0) 后 LCDC 扫描地址可能已复位到非 buffer0/失效
|
||||
* 位置(launcher M2.8 Bug-3-residual 根因),而应用始终画 buffer0,必须无条件把显示翻回
|
||||
* buffer0,否则唤醒后黑屏/旧帧。 */
|
||||
@@ -240,9 +273,14 @@ static void wd_panel_off(void)
|
||||
static void wd_panel_on(void)
|
||||
{
|
||||
if (wd_fbfd >= 0) ioctl(wd_fbfd, FBIOBLANK, 0);
|
||||
write_brightness(wd_saved_bri > 0 ? wd_saved_bri : 60);
|
||||
/* M6.23:恢复亮度以**用户设置**为准(wd_settings_brightness),settings 不可用时才回退
|
||||
* wd_saved_bri 快照(再退默认 60)——与 launcher meow_panel_on 同语义,杜绝「亮屏恢复 60
|
||||
* 与 launcher 恢复 7 竞态 → 跳变」。 */
|
||||
int b = wd_settings_brightness();
|
||||
int restore = (b > 0) ? b : (wd_saved_bri > 0 ? wd_saved_bri : 60);
|
||||
write_brightness(restore);
|
||||
wd_pan_buf0_force(); /* 唤醒后强制回 buffer0 */
|
||||
wd_log("power: panel ON (blank 0 + brightness %d)", wd_saved_bri);
|
||||
wd_log("power: panel ON (blank 0 + brightness %d, user=%d saved=%d)", restore, b, wd_saved_bri);
|
||||
}
|
||||
|
||||
/* launcher 正在画电源菜单(/tmp/meow_power_menu_active 存在)→ watchdog 完全让位。 */
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
# ---- 用户态/服务守护二进制(usr/bin,全部 chmod 755 静态 MIPS)----
|
||||
patch_v2/bootmenu/meow_bootmenu|/usr/bin/meow_bootmenu|4441822d87e76bfce2ce584604ac3830|引导选单 M2.85(sysui让位 agent-216)
|
||||
patch_v2/meow_launcherd/meow_launcherd|/usr/bin/meow_launcherd|dd9e619df3e0ab7544850133ac6db7df|M6.22 播放页返回根因修复(np_exit 退出外层主循环)
|
||||
patch_v2/meow_watchdog/meow_watchdog|/usr/bin/meow_watchdog|553840cdc79d8d7bed766a5e3981ac57|应用看门狗 M2.97(音量反转 + DS1039 平方锥度 + 插孔消抖)
|
||||
patch_v2/meow_watchdog/meow_watchdog|/usr/bin/meow_watchdog|34ddbf0275526eaf9be988134845c3af|应用看门狗 M6.23(亮屏亮度按用户设置 display.brightness 恢复,修 panel ON 固定60跳变)
|
||||
patch_v2/meow_svcd/meow_svcd|/usr/bin/meow_svcd|605646c4cc93f2baf29071ea6bc870ea|服务管理器 M2.77(+崩溃上报 meow_crash agent-187)
|
||||
mips-repo/bins/meow_mdns/bin/meow_mdns|/usr/bin/meow_mdns|d6b0151bda26768f19952dae1342610d|mDNS 应答器 M2.78(启动竞态+换IP重检 agent-194)
|
||||
patch_v2/meow_sysui/meow_sysui|/usr/bin/meow_sysui|173013cc8f0899b3001d0b894ac0d9e6|系统 UI(sysui)
|
||||
|
||||
Reference in new issue
Block a user