feat(launcher,lock): MeowOS 锁屏 4 位 PIN(system.pin 同源面板,错5锁5分钟持久化,唤醒/电源菜单手动锁)
- system.pin:4 位数字 PIN,sha256+salt 存 settings.conf(格式与面板 panel.pin 全等,绝无明文)。 panel.pin 已设且 system.pin 未设时锁屏接受 panel.pin,首次验证成功后并入 system.pin。 - 锁屏时机:息屏唤醒后(默认开,system.pin_lock_on_wake=1 可关)+ 电源菜单「锁定」手动锁; 开机不锁(boot 进主屏不拦)。 - 锁屏页:launcher 渲染系统级全屏页,App 不可见不可触;SDK 按钮画数字键盘(不调 IME), 输入 4 位自动校验;● 遮罩不回显数字;错 5 次锁 5 分钟(持久化锁定戳/计数,重启不清)。 - 安全细节:锁屏页电源键=息屏(允许再睡),音量键不动,不响应左缘返回/通知中心手势。 兜底:SSH root 删 system.pin 键即解锁(无其它后门)。HibyOS 不涉及。 - 宿主测试(test_lock_screen):设置/校验/错5锁定持久化(重载模拟重启)/唤醒触发/开机不锁 /panel.pin 迁移,全 PASS;既有 settings_brightness/notif_panel/notif_tf/vol_ramp_jack 回归 无碍;交叉 -Wall -Wextra 0 warning。meow_launcherd md5 670f978e71c1e81cfe86d47c21248c9d。
This commit is contained in:
1 parent
5a5e995ebd
commit
e948a0a44e
14 files changed
+1011
-14
No files matched your search
@@ -147,6 +147,22 @@ static const meow_setting_def g_defs[] = {
|
||||
/* 系统(M2.54:主机名,bootmenu S89meow_svcd 开机读 system.hostname sethostname;
|
||||
* 缺省 meowos;RFC1035 首标签,供 meow_mdns 公布 <host>.local) */
|
||||
{ "system.hostname", SET_STR, "meowos", 0, 0, NULL, NULL },
|
||||
/* 锁屏 4 位 PIN(系统级安全;格式与面板 panel.pin 全等:
|
||||
* `<salt_hex>:<sha256_hex(salt||pin)>`,salt 16B /dev/urandom → 32 hex,绝不存明文。
|
||||
* 空 = 未设锁屏 PIN(锁屏功能关闭)。与面板同源:panel.pin 已设而本键未设时,锁屏
|
||||
* 接受 panel.pin 并在首次成功后并入本键(lck_pin_success,见 lock_screen.c)。 */
|
||||
{ "system.pin", SET_STR, "", 0, 0, NULL, NULL },
|
||||
/* 息屏唤醒后锁屏(int 0/1,默认 1=开)。0=关(唤醒直进主屏;电源菜单「锁定」手动锁仍可用)。 */
|
||||
{ "system.pin_lock_on_wake", SET_INT, "1", 0, 1, NULL, NULL },
|
||||
/* 错 PIN 锁定截止戳(int,epoch 秒;0=未锁定)。**持久化到 settings**(防 launcher 重启
|
||||
* 清零——面板进程内存方案在重启后失效,此处落盘)。截止前锁屏页禁输入并倒计。 */
|
||||
{ "system.pin_lock_until", SET_INT, "0", 0, 0, NULL, NULL },
|
||||
/* 连续错 PIN 计数(int 0-4;达 5 触发锁定并清零)。持久化防「关机重启重试」。 */
|
||||
{ "system.pin_fails", SET_INT, "0", 0, 0, NULL, NULL },
|
||||
/* 面板访问级 PIN(meowpanel 写入,格式与本表 system.pin 全等)。launcher 注册它仅为:
|
||||
* ①锁屏迁移期读取(system.pin 未设时接受 panel.pin);②本表 save 重写全文件时**保留**
|
||||
* 该行(write_full_conf 只写已注册键,不注册会把面板已设的 panel.pin 抹掉)。launcher 不写它。 */
|
||||
{ "panel.pin", SET_STR, "", 0, 0, NULL, NULL },
|
||||
};
|
||||
|
||||
/* ---- 日志(自包含,不依赖 launcher 的 logmsg;前缀 "settings:")---- */
|
||||
|
||||
Reference in new issue
Block a user