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早启动与选单共存为真机重点观察项
49 lines
1.9 KiB
Bash
Executable File
49 lines
1.9 KiB
Bash
Executable File
#!/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
|