Commit Graph

11 Commits

Author SHA1 Message Date
Xiaoyi
433774071a core: choose core storage by weighing rom cost vs ram cost
Replaces the binary compressed-rom check with store_raw_worth_it(),
which decides per environment: store the naked binary on $BINDIR (0 RAM)
only when $TMPDIR is tmpfs AND $BINDIR can hold it with margin
(estimated ~2:1 on squashfs/ubifs, full size otherwise). Otherwise keep
a compressed copy and decompress to tmp as before. core_webget skips
the upx core when raw storage is viable, fetching tar.gz instead.

Rationale (rough budgets for a ~40M core): raw on squashfs ~15M rom /
0 RAM; gz 10M rom / ~40M RAM; upx 9M rom / ~40M RAM (memfd). Raw wins
when rom has room; compressed wins when rom is the scarce resource.

Also corrects the upx branch symlink target $TMPDIR -> $BINDIR (#1295).

For #1304
2026-07-11 16:38:49 +08:00
Xiaoyi
55cfa65875 core: prefer raw binary on compressed rom, avoid upx on tmpfs devices
Adds store_on_rom() helper (tmpfs $TMPDIR + squashfs/ubifs/overlay
$BINDIR). On such devices core_webget no longer downloads the upx core
(its stub decompresses into a memfd = RAM at runtime); it fetches the
tar.gz instead and core_check stores the naked binary as
$BINDIR/CrashCore.raw, symlinked from $TMPDIR. The binary is
transparently compressed on rom and file-backed/reclaimable at runtime
(RssShmem 0). Other filesystems and explicit upx keep prior behavior.

Also corrects the upx branch symlink target $TMPDIR -> $BINDIR (same
dangling-symlink issue as #1295).

For #1304
2026-07-11 15:59:42 +08:00
Xiaoyi
edd6936903 core: store naked core on compressed rom instead of unpacking to tmpfs
On OpenWrt $TMPDIR is tmpfs (RAM) and $BINDIR sits on a
transparently-compressed fs (squashfs/ubifs). Unpacking the core to
$TMPDIR pins the whole ~40MB binary in unreclaimable Shmem, and a
compressed copy is still kept on rom - paying twice.

When $TMPDIR is tmpfs and $BINDIR is squashfs/ubifs/overlay, store the
verified naked binary as $BINDIR/CrashCore.raw and symlink
$TMPDIR/CrashCore to it, dropping the downloaded archive. The binary is
transparently compressed on rom (~2.2:1, comparable to keeping .gz) and
its text/rodata become file-backed and reclaimable at runtime
(RssShmem 0). Other filesystems keep the existing behavior.

The upx branch's symlink target is also corrected from $TMPDIR to
$BINDIR (same dangling-symlink issue as #1295).

For #1304
2026-07-11 15:41:46 +08:00
juewuy
837f99727a ~统一缩进 2026-03-25 20:15:42 +08:00
juewuy
f2ce2fb9b4 ~自定义内核链接支持.upx结尾内核文件 2026-02-10 19:18:12 +08:00
juewuy
b17286b73b ~优化定时任务实现,尝试修复意外清空定时任务内容的bug 2026-01-31 17:26:48 +08:00
juewuy
6170a0461d ~1.9.4r2 pkg
~修复小闪存模式启动失败的bug
2026-01-27 20:14:50 +08:00
juewuy
48705a0dd9 ~修复小闪存模式内核位置错乱的bug 2026-01-27 19:54:10 +08:00
juewuy
828d70e4f8 ~bug fix 2026-01-25 20:35:46 +08:00
juewuy
de7b57330e ~修复小闪存模式更新内核失败的bug
~修复部分情况下本机代理导致dns失效的bug
~增加Mihomo内核direct-nameserver默认配置
2026-01-20 21:51:57 +08:00
juewuy
647b52e016 ~脚本进行大量拆分和优化 2025-12-25 15:50:58 +08:00