fix(launcher): App暴毙后卡死根因——execpipe 裸阻塞 read 改 poll+2s超时(agent-214) + ams_drain_stdout 64KB有界 + reap_wait兜底5处裸waitpid + watchdog关继承fd + font_sha256_file popen改有界 + 既有警告清理; fix(ncm): cookie盐不随包名(旧登录态可解)
launcher 97c1b222→333d6f53; ncm→1124dbf2; 宿主harness stall/ok/orphan全过
This commit is contained in:
1 parent
efbd1d5a2f
commit
228e9e79e0
7 files changed
+86
-48
No files matched your search
@@ -212,12 +212,11 @@ int show_power_menu(void)
|
||||
struct keypoll kp_power, kp_keys;
|
||||
kp_open(&kp_power, DEV_POWER);
|
||||
kp_open(&kp_keys, DEV_KEYS);
|
||||
int prev_vold = 0, prev_volu = 0, prev_play = 0, prev_pwr = 0;
|
||||
int prev_vold = 0, prev_volu = 0, prev_pwr = 0;
|
||||
kp_poll(&kp_power, NULL, NULL); kp_poll(&kp_keys, NULL, NULL);
|
||||
prev_pwr = kp_is_down(&kp_power, KEY_POWER) ? 1 : 0;
|
||||
prev_vold = kp_is_down(&kp_keys, KEY_VOLUMEDOWN) ? 1 : 0;
|
||||
prev_volu = kp_is_down(&kp_keys, KEY_VOLUMEUP) ? 1 : 0;
|
||||
prev_play = kp_is_down(&kp_keys, KEY_PLAYPAUSE) ? 1 : 0;
|
||||
|
||||
int act = -1;
|
||||
unsigned long long pm_t0 = now_ms();
|
||||
@@ -261,7 +260,7 @@ int show_power_menu(void)
|
||||
* 已由电源键负责(下行),播放键删除,重复确认移除。 */
|
||||
(void)play;
|
||||
if (pwr && !prev_pwr) { act = sel; pm_interacted = 1; pm_last_interact = now_ms(); } /* 电源新按=确认(非取消) */
|
||||
prev_vold = vold; prev_volu = volu; prev_play = play; prev_pwr = pwr;
|
||||
prev_vold = vold; prev_volu = volu; prev_pwr = pwr;
|
||||
|
||||
/* 触摸:按下(meow_touch 原点锁定,goodix 时序免疫),抬起按按钮命中确认 */
|
||||
if (tfd >= 0) {
|
||||
@@ -409,12 +408,11 @@ int confirm_reboot_player(void)
|
||||
struct keypoll kp_power, kp_keys;
|
||||
kp_open(&kp_power, DEV_POWER);
|
||||
kp_open(&kp_keys, DEV_KEYS);
|
||||
int prev_vold = 0, prev_volu = 0, prev_play = 0, prev_pwr = 0;
|
||||
int prev_vold = 0, prev_volu = 0, prev_pwr = 0;
|
||||
kp_poll(&kp_power, NULL, NULL); kp_poll(&kp_keys, NULL, NULL);
|
||||
prev_pwr = kp_is_down(&kp_power, KEY_POWER) ? 1 : 0;
|
||||
prev_vold = kp_is_down(&kp_keys, KEY_VOLUMEDOWN) ? 1 : 0;
|
||||
prev_volu = kp_is_down(&kp_keys, KEY_VOLUMEUP) ? 1 : 0;
|
||||
prev_play = kp_is_down(&kp_keys, KEY_PLAYPAUSE) ? 1 : 0;
|
||||
|
||||
int sel = 1; /* 默认「否」:不误重启 */
|
||||
int act = -1;
|
||||
@@ -450,7 +448,7 @@ int confirm_reboot_player(void)
|
||||
* 走触摸点选(下方 tfd 命中),电源键=取消(下行);播放键删除。 */
|
||||
(void)play;
|
||||
if (pwr && !prev_pwr) act = 3; /* 电源=取消 */
|
||||
prev_vold = vold; prev_volu = volu; prev_play = play; prev_pwr = pwr;
|
||||
prev_vold = vold; prev_volu = volu; prev_pwr = pwr;
|
||||
|
||||
if (tfd >= 0) {
|
||||
struct pollfd pfd = { tfd, POLLIN, 0 };
|
||||
|
||||
Reference in new issue
Block a user