AskaEth
e0bd503261
fix(ncm): 会话密钥改用设备私有 .mkey,网卡/MAC 变化不再丢登录态(M9 启动无网根因)
根因(代码级):会话 cookie 加密密钥 = sha256(首选网卡 MAC + 盐),MAC 取自
/sys/class/net 首个非 lo 网卡。设备断网时 Wi-Fi 网卡可能从 /sys/class/net 消失,
或 readdir 顺序变化选到另一块网卡 → 派生密钥改变 → session.enc 解不开 →
ncm_ctx_load_cookie 失败 → cookie 为空 → g_st.logged_in=0 → 启动直接进扫码页。
这与「把网络不可达当登录过期」是同一症状的另一条路径,且发生在登录门之前。
改动:
- 新密钥优先 <data_dir>/.mkey(32B 随机,首次生成后稳定,与网络状态无关);
.mkey 不可写(只读 FS/无权限)才回退旧 MAC 派生,保持极端环境可启动。
- 旧版 MAC 派生密文仍可解(cookie_decrypt_sel 二次尝试);load_session 命中旧密钥时
自动重写为 .mkey 密钥(透明迁移,不改调用方)。
- ncm_store.h 同步说明:machine_key 仅作旧密文兼容,新写入不再使用。
2026-11-05 11:45:20 +08:00
..
2026-11-05 11:45:20 +08:00
2026-11-04 21:11:00 +08:00
2026-11-05 11:45:20 +08:00
2026-08-31 06:03:36 +08:00
2026-11-05 11:34:45 +08:00
2026-09-01 14:14:38 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-08-31 06:03:36 +08:00
2026-08-31 06:03:36 +08:00
2026-11-05 11:45:20 +08:00
2026-08-31 06:03:36 +08:00
2026-08-31 06:03:36 +08:00
2026-08-31 06:03:36 +08:00
2026-11-05 11:34:45 +08:00
2026-08-31 06:03:36 +08:00
2026-11-04 21:11:00 +08:00
2026-11-05 11:34:45 +08:00
2026-09-02 03:43:42 +08:00
2026-11-04 20:49:25 +08:00
2026-11-04 20:02:28 +08:00
2026-11-04 20:49:25 +08:00
2026-11-05 11:45:20 +08:00
2026-08-31 06:03:36 +08:00
2026-08-31 08:06:41 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-11-05 11:34:45 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 23:42:46 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-11-05 11:34:45 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-09-01 14:14:38 +08:00
2026-09-03 12:16:01 +08:00