Files
MeowOS 3f57d7fd4f feat(sec): 二期签名鉴权 2A 最小闭环 (agent-185) — meow_verify(Ed25519验签CLI,公钥固化,TweetNaCl+SHA256单文件) + meow_sign(宿主keygen/sign,尾部180B footer签名块,私钥仅.keys/不入库) + nyai/meow_pkg_install 验签分级(有签必验/os.meow.*无签拒装/第三方直装告警/三重绑定/原签存.mpk.src导出保留) + svc_power IPC鉴权(SO_PEERCRED→/proc/pid/exe→包名/系统身份allowlist,系统动作仅os.meow.*或系统身份) + cmd_upgrade同步签名分级防绕过
meow_verify 37e50606; nyai f2938d28; svc_power e0494eb7; launcher 24c9ee5d(含热重载)
宿主验证12项全过(正例/篡负载/篡包名/无签系统包拒/第三方直装/降级拒/导出round-trip byte-identical/verify缺失宁缺勿装/footer容忍/E2E PERM/鉴权分类)
出入: TweetNaCl替orlp/ed25519(任务允许同等实现); 读级暂仍uid==0(用户随后定案放宽到任意调用者,待改); 系统身份allowlist为启发式
2026-08-31 04:33:46 +08:00

44 lines
2.2 KiB
Bash
Executable File
Raw Permalink 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/bash
# build_verify.sh — meow_verify 交叉编译(mipsel 静态,固件 /usr/bin/meow_verify)+ 宿主编译可选。
#
# 目标:R3 Pro II / MeowOS(mipsel-linux-muslsf,静态)。纯 POSIX+Linux(无外部依赖,除 vendor
# tweetnacl.c/sha256.c 全内编)。公钥编译期固化:meow_signing_pub.h(由 meow_sign keygen 生成)。
#
# 警告策略(诚实标注):本项目自有代码为 0 warning;
# - meow_verify.c / sha256.c / meow_sig.h → -Wall -Wextra(0 warning)
# - tweetnacl.c(第三方 public-domain vendor 单文件)→ 单独对象 + -Wno-sign-compare
# -Wno-unterminated-string-initialization -Wno-unused-function(作者原写法:u64/u32 与 int 混比、
# "expand 32-byte k" 16B char 数组塞 17 字节。非本项目代码,局部放宽)。
# - 不启用 gc-sections:meow_verify.c 的 randombytes() stub 满足 crypto_sign_keypair 的引用,整链静态。
#
# 用法:
# ./build_verify.sh # 交叉编译 → patch_v2/meow_verify/meow_verify(mipsel 静态)
# ./build_verify.sh host # 宿主编译 → patch_v2/meow_verify/meow_verify_host
set -e
cd "$(dirname "$0")"
ROOT="$HOME/Project/R3ProII"
CC="$ROOT/.tools/zig-mipsel-cc"
TNFLAGS="-Os -Wno-sign-compare -Wno-unterminated-string-initialization -Wno-unused-function -static"
if [ "$1" = "host" ]; then
HOST_CC="${CC_HOST:-cc}"
"$HOST_CC" -Os -Wno-sign-compare -Wno-unterminated-string-initialization -Wno-unused-function -c tweetnacl.c -o tweetnacl_v.o
"$HOST_CC" -Os -Wall -Wextra -c sha256.c -o sha256_v.o
"$HOST_CC" -Os -Wall -Wextra -c meow_verify.c -o meow_verify_v.o
"$HOST_CC" meow_verify_v.o sha256_v.o tweetnacl_v.o -o meow_verify_host
rm -f tweetnacl_v.o sha256_v.o meow_verify_v.o
echo "== meow_verify (host) =="
ls -la meow_verify_host; md5sum meow_verify_host; file meow_verify_host
exit 0
fi
"$CC" $TNFLAGS -c tweetnacl.c -o tweetnacl_v.o
"$CC" -Os -Wall -Wextra -static -c sha256.c -o sha256_v.o
"$CC" -Os -Wall -Wextra -static -c meow_verify.c -o meow_verify_v.o
"$CC" -Os -static meow_verify_v.o sha256_v.o tweetnacl_v.o -o meow_verify
rm -f tweetnacl_v.o sha256_v.o meow_verify_v.o
echo "== meow_verify (mipsel static) =="
ls -la meow_verify
md5sum meow_verify
file meow_verify