只存构建产物、不存代码的自建 apk 源。由固件的 CI 每周一自动推送。解决的问题很具体:kmod 的 vermagic 绑死内核版本。
要点
- 固件走 SNAPSHOT 内核号天天变,外部源的 kmod 全是按上一版内核编的,装上必挂。
- 实测踩坑:外部源给的是 kmod-nft-tproxy-6.18.52-r1,固件已经是 6.18.54。而 kmod-nft-tproxy 是透明代理的命门,缺了它 PassWall / OpenClash / HomeProxy / Nikki-RS 的透明代理模式全起不来。
- 解决办法:每个 .apk 都和固件在同一次 CI、同一个 build root 里产出,ABI 天然 100% 匹配。
- 按分支分两套索引:/main/(OpenWrt SNAPSHOT 内核 6.18 滚动)与 /immortalwrt-25.12/(内核 6.12 稳定),包同名但基线不同,不能混用。