diff --git a/README.md b/README.md index 87ef5cf..e8d5328 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ > 版本:**M2.96(0.7.91)**(M2.69→M2.96 全链路自刷验收:控件库/主界面 MD3 双布局/M3 导航栈/M5 通知跳转/媒体会话/Now Playing/SDK nav+media 封装/字库启动竞态修复**/M2.84-88**:installed 图标修复+残帧pan加固/物理键EVIOCGKEY双源/签名鉴权 2B/meow_route 音频路由/amsd 二期(picker 契约)/流媒体客户端二期(封面·歌词后台·大歌单分页)/MeowPanel 实时画面+遥控+通知实时化/中文拼音 IME**/M2.89**:开机选单抢屏回归修复+watchdog SIGUSR1 不误杀框架 App+amsd 失联修复+顶部下滑手势分流**/M2.90**:**meow_audiod 独占音频守护**(AUDIOD_DESIGN,meow_route 并入退役)+MIUIx 顶级主题+流媒体客户端文案中文化+面板字体库 tar.gz 导入导出**/M2.91-96**:audiod 开机武装 hbc3000 FPGA(根治 PCM 启动内核死锁)+svc_power 充电态权威链(mp2731)+amsd 注册自愈(`am rescan`)/Now Playing 死循环修复+状态栏充电闪电+插孔消抖(三路)/audiod 长流护栏+ALSA 几何收窄 period=1024×4(根治长流停摆)+watchdog 音量存盘毁设置修复/音量反转四路统一(CS43198 寄存器=衰减量,`dac=255-pct*255/100`)+炸耳安全修复(dac_vol_mute 写 255 真静音))。版本号单点 = 板上 `/etc/meowos_version`,见「构建」。本仓库是一个**自带 SDK、包管理、媒体会话、独占音频服务、网页面板、流媒体客户端的完整第三方系统**。 > > 许可证:Apache-2.0(见 [`LICENSE`](LICENSE))。本仓库为非官方第三方项目。 +> +> **公开 SDK 仓(面向第三方开发者)**:`ssh://git@git.yeij.top:2222/AskaEth/MeowOS-SDK.git`(MIT;只含 `sdk/`(meow_ui)+ `examples/hello/` + `docs/`,自包含可构建,不含系统组件/密钥)。由本仓经 `git subtree split` 拆出,增量同步见 `scripts/publish_sdk.sh`。 --- diff --git a/scripts/publish_sdk.sh b/scripts/publish_sdk.sh new file mode 100644 index 0000000..eb4c23c --- /dev/null +++ b/scripts/publish_sdk.sh @@ -0,0 +1,71 @@ +#!/bin/bash +# publish_sdk.sh — 把主仓的公开 SDK 内容增量同步到公开 SDK 仓 MeowOS-SDK。 +# +# ============ 背景 ============ +# 公开仓:ssh://git@git.yeij.top:2222/AskaEth/MeowOS-SDK.git(**MIT**;面向第三方开发者)。 +# 仅含公开内容:sdk/(meow_ui)+ examples/hello/ + docs/ + README + LICENSE + .gitignore; +# 不含主仓系统组件(launcher/amsd/audiod/svc_*)、固件、签名工具、密钥。 +# +# 由本仓经 git subtree split 拆出(顶层布局与主仓 patch_v2 不同): +# sdk/ ← 本仓 patch_v2/sdk/ +# examples/hello/ ← 本仓 patch_v2/hello_app/ +# 顶层 docs/ + README + LICENSE + .gitignore 为手工维护(初始拆仓与后续改动见下)。 +# +# ⚠️ 差异声明:公开仓内的 sdk/build_sdk.sh、examples/hello/build_hello.sh 已改**自包含** +# (meow_ipc.h / meow_font.h / meow_notif.h / meow_font.c 均 vendored 进 sdk/,不依赖 +# 本仓 meow_launcherd/;工具链默认 $HOME/Project/R3ProII/.tools/zig-mipsel-cc,可用 +# MEOW_CC / MEOW_SYSROOT 覆盖)。故**增量同步只推 sdk/ 与 examples/hello/ 的源码子树**, +# build_sdk.sh / build_hello.sh 的本地改动需单独留意(若公开仓改过,pull 会合并冲突)。 + +# ============ 初始拆仓(已执行一次,记录备查) ============ +# # 主仓侧:subtree split 出两个分支 +# git subtree split --prefix=patch_v2/sdk -b pub/sdk +# git subtree split --prefix=patch_v2/hello_app -b pub/hello +# # 公开仓侧(~git init -b main,提交 README/LICENSE/.gitignore/docs 作根,然后): +# git fetch <主仓> +refs/heads/pub/sdk:refs/heads/pub/sdk +refs/heads/pub/hello:refs/heads/pub/hello +# git subtree add --prefix=sdk pub/sdk +# git subtree add --prefix=examples/hello pub/hello +# # 之后在公开仓做适配 commit:剔除构建产物/宿主测试二进制、vendored 依赖、改写脚本。 + +# ============ 增量同步(主仓 sdk/ 更新后再推) ============ +# 用法:先保证主仓 patch_v2/sdk 的改动已 commit,然后: +# bash scripts/publish_sdk.sh [--push] +# 脚本会在主仓重跑 split,再进公开仓 subtree pull 两个子树;加 --push 则把公开仓 push 到 Gitea。 +# 前提:Gitea 已建 public 仓 AskaEth/MeowOS-SDK(未建:push-to-create 默认关闭,需手动建)。 + +set -euo pipefail + +MAIN_REPO="${MAIN_REPO:-$(cd "$(dirname "$0")/.." && pwd)}" # 主仓(本仓) +SDK_REPO="${SDK_REPO:-$HOME/Project/MeowOS-SDK}" # 公开仓本地路径 +UPSTREAM="${UPSTREAM:-upstream}" # 公开仓里指向「主仓」的 remote 名(非 origin) +SDK_URL="ssh://git@git.yeij.top:2222/AskaEth/MeowOS-SDK.git" # 公开仓远端 +DO_PUSH=0; [ "${1:-}" = "--push" ] && DO_PUSH=1 + +[ -d "$SDK_REPO" ] || { echo "❌ 公开仓不存在: $SDK_REPO"; echo " 请先 Gitea 建 $SDK_URL 并 git clone 到 $SDK_REPO"; exit 1; } + +# 0) 公开仓配 upstream(指向主仓,供 subtree pull 取 split 分支) +cd "$SDK_REPO" +if ! git remote get-url "$UPSTREAM" >/dev/null 2>&1; then + git remote add "$UPSTREAM" "$MAIN_REPO" + echo " ↑ 公开仓已加 remote $UPSTREAM = $MAIN_REPO" +fi + +# 1) 主仓侧:重新 subtree split(产出最新 pub/sdk、pub/hello) +echo "== [主仓] subtree split ==" +( cd "$MAIN_REPO" && \ + git subtree split --prefix=patch_v2/sdk -b pub/sdk && \ + git subtree split --prefix=patch_v2/hello_app -b pub/hello ) + +# 2) 公开仓侧:subtree pull 两个子树(把主仓新提交合进 sdk/、examples/hello/) +echo "== [公开仓] subtree pull sdk ==" +git subtree pull --prefix=sdk "$UPSTREAM" pub/sdk +echo "== [公开仓] subtree pull examples/hello ==" +git subtree pull --prefix=examples/hello "$UPSTREAM" pub/hello + +echo "== 完成。git status 如下,请人工检查是否一致到期待内容: ==" +git status --short +if [ "$DO_PUSH" = 1 ]; then + echo "== push 到 $SDK_URL ==" + git push origin main +fi +echo "== 若 docs/README/LICENSE 也要同步:手动拷贝主仓 docs/APP_DEV_GUIDE.md 与 MEOW_APP_SDK.md 的**公开改写版**并 commit(公开仓内这两份已改写为自包含/注明主仓内幕)。=="