Files
MeowOS-For-R3P2/patch_v2/bootmenu/S90meow_bootmenu
T
MeowOS c0f7a95719 feat(font+sys): 字库内存纪律(agent-215)+sysui接管launcher监管(agent-216)
215: meow_font.c 流式分块解码(gbk峰值40→23.5MB, 逐字节校验一致) + 多字体槽5→4+16MB驻留预算; 量化: gbk稳态驻留17.3MB vs common 4.2MB(OOM主因); meow_font.a→67113c03 meow_ui.a→223d5401
216: bootmenu让位(sysui在则start launcher让位, 不在则exec兜底) + S70预置launcher.conf enabled=1(+旧设备升级迁移); launcher崩溃可自动拉起; bootmenu 4441822d / S70 e435affc / S90 e0ace111
216注: S70早启动与选单共存为真机重点观察项
2026-08-31 13:28:07 +08:00

49 lines
1.9 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/sh
#
# S90meow_bootmenu - R3 Pro II boot selector (Boot Selector phase 0 · M2 接管 HibyOS)
#
# Design (BOOT_SELECTOR_DESIGN.md §2.1 timing / §9 M2):
# * Placed AFTER S80_bt_init, BEFORE S92_03_start_music_player (S80 < S90 < S92),
# so the selector runs before the official player is started.
# * M2: meow_bootmenu is launched with --fork, so:
# 选 HibyOS -> bootmenu forks /usr/bin/hiby_player (最小启动契约),
# parent becomes supervisor/热键守护, blocks rcS.
# 选 MeowOS -> launcher 生命周期已交 meow_sysui(S70 起):sysui 在 → bootmenu
# 让 sysui 拉起 launcher 并让位退出(rcS 推进,S92 见 mode=meow 跳过
# 播放器);sysui 不在 → bootmenu 照旧 exec /usr/bin/meow_launcherd(兜底)。
# HibyOS 模式 rcS 被 S90 阻塞;MeowOS(sysui 托管)rcS 推进到 S92(兜底 patch,mode=meow 跳过)。
# SSH was moved to S84 so it is already online.
# * rcS runs S??* (non-.sh) as fork-ed subprocesses, so `exec` here replaces
# ONLY this script's process.
# * 红线: 启动前清 /data/recovery_all、禁经 hiby_player.sh、禁 killall、
# 禁 SIGUSR1。回退 = 重刷不含选单固件 (M1 r3proii_m1.upt)。
#
case "$1" in
start)
echo -n "Starting meow_bootmenu: "
# Boot mode marker (tmpfs is cleared each boot; rm once more to be sure).
rm -f /tmp/meow_boot_mode
# 红线:启动前清除 recovery_all,避免进入恢复流程。
rm -f /data/recovery_all
if [ -x /usr/bin/meow_bootmenu ]; then
echo "OK (selector --fork)"
exec /usr/bin/meow_bootmenu --fork
else
echo "MISSING /usr/bin/meow_bootmenu (fall through to S92)"
fi
;;
stop)
echo -n "Stopping meow_bootmenu: "
killall meow_bootmenu 2>/dev/null
echo "OK"
;;
restart|reload)
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0