diff --git a/patch_v2/bootmenu/meow_bootmenu b/patch_v2/bootmenu/meow_bootmenu index c4282e9..e0e062e 100755 Binary files a/patch_v2/bootmenu/meow_bootmenu and b/patch_v2/bootmenu/meow_bootmenu differ diff --git a/patch_v2/bootmenu/meow_bootmenu.c b/patch_v2/bootmenu/meow_bootmenu.c index 97d44f7..70ab59c 100644 --- a/patch_v2/bootmenu/meow_bootmenu.c +++ b/patch_v2/bootmenu/meow_bootmenu.c @@ -164,7 +164,25 @@ #define ENTRY0_Y 176 #define ENTRY1_Y 228 #define FOOTER_Y 700 -#define BOOTMENU_OS_VER "0.7.9" /* 与 meow_launcherd MEOWOS_VERSION 对齐;右下角开发版本 */ +#define BOOTMENU_OS_VER_FILE "/etc/meowos_version" /* 版本号单点:与 launcher 同源读 /etc/meowos_version */ +#define BOOTMENU_OS_VER "dev" /* 兜底:文件缺失/读失败时用(与 launcher MEOWOS_VERSION=dev 对齐) */ + +/* 右下角显示的 MeowOS 版本:启动时读 /etc/meowos_version(与 launcher 同一数据源), + * 不再硬编码 0.7.x。读到的值存 g_boot_ver;缺失/读失败保留兜底默认。 */ +static char g_boot_ver[32] = BOOTMENU_OS_VER; +static void load_boot_ver(void) +{ + FILE *f = fopen(BOOTMENU_OS_VER_FILE, "r"); + if (!f) return; /* 缺失:保留兜底 default */ + char buf[32]; + if (fgets(buf, sizeof buf, f)) { + char *e = buf + strlen(buf); + while (e > buf && (e[-1] == '\n' || e[-1] == '\r' || e[-1] == ' ')) e--; + *e = 0; + if (buf[0]) snprintf(g_boot_ver, sizeof g_boot_ver, "%s", buf); + } + fclose(f); +} /* ================================================================== */ /* fb0 状态 */ @@ -783,7 +801,7 @@ static void draw_menu(int cursor, long remaining_ms) /* 右下角开发版本 */ { char ver[40]; - snprintf(ver, sizeof ver, "MeowOS v%s boot", BOOTMENU_OS_VER); + snprintf(ver, sizeof ver, "MeowOS v%s boot", g_boot_ver); draw_text(fb_xres - 8 - (int)strlen(ver) * 6, FOOTER_Y, ver, 1, 0x666688); } } @@ -1576,8 +1594,11 @@ int main(int argc, char **argv) else { usage(); return 1; } } + load_boot_ver(); /* 读 /etc/meowos_version(版本单点);--version 与选单右下角共用 */ + if (do_version) { printf("meow_bootmenu %s (mipsel static musl)\n", MEOW_BOOTMENU_VER); + printf("MeowOS v%s\n", g_boot_ver); return 0; }