Repository navigation
v1.13 — 控制台加「自检」按钮,CI 上线
控制台 1.22 · 桥 2.24 · 页面面板 0.10.1。这一版的主角是控制台里的「自检」按钮:一键在 Termux 里跑完整套 70 项自检,════ Result: … ════ 那行直接落进控制台历史,不用再敲命令行。
下载
| 产物 | 文件 | SHA256 |
|---|---|---|
| 控制台 App | dsh-console-v1.22.apk |
89a329b0127d9a733f0f581b4bc05af245af46dd67636cb582797c814be27126 |
| 无障碍桥 | dsh-bridge-v2.24.apk |
fa522055cbd90cc11a06a5f52ee33688d88d3b20214f0066c376693bbaac90b8 |
| 页面面板 | dsh-mobile-local-v0.10.1.tgz |
219634aa50d5db3c55638a18d9260e066574d6f79b7957233d146405f3bc0ff8 |
校验:把三个文件和 SHA256SUMS.txt 放进同一目录,sha256sum -c SHA256SUMS.txt。
新增
- 控制台「自检」按钮(🩺,维护区):跑完整的
tests/selftest.sh—— 70 项(语法、12 个组件的--dry-run、就绪回归、安全可逆的真跑、8099 端口上的一次性冷启动)。它要跑几分钟、会压手机负载,所以放控制台而不是桌面组件(桌面一次误触代价太大);按钮不带红色危险标记 —— 那套确认框是给重启/停机的口径,而套件自己会把会话杀手类检查标成 SKIP。 dsh-kit-update:一条命令把整套更新到最新 —— 快进合并仓库 → 刷新~/.local/bin→ 刷新 12 个桌面组件;--check只报告不动手。
修复(都是真机实测踩出来的)
- 两个 App 的构建脚本不再"悄悄换一把签名钥匙":
ks.jks在.gitignore里、只存在于当初出包的那个目录,换一个构建目录就会生成新钥匙,签出来的包装不上手机(安装器只报一句 "App not installed",不解释原因)。现在按DSH_KS→$SRC/ks.jks→~/dsh-console/ks.jks(桥是~/droid-bridge/ks.jks)的顺序找一把已存在的密钥库,全都没有才新建,并打印用的是哪一个。 - 面板
npm pack不再把上一次的 tgz 打进包里(两个面板插件都加了files白名单):第一次打出来是 39.5 kB / 5 个文件,因为里面裹着上一次的dsh-mobile-local-0.10.0.tgz。 - 三个生成器不再写出 CRLF:在 Windows 上重生成
i18n/zh.json、两份Lang.java、widgets/i18n.sh、面板client.js会把每一行都改掉(整文件 diff);CRLF 的 bash 库还会让每条文案带上一个尾随\r。 - 静态检查抓出来的真问题:
tools/dsh-tasksd的last恒为 null(取的是编译后正则的下标,异常又被外层吞掉);widgets/2_shutdown-dsh.sh、widgets/8_enable-wireless-adb.sh两处双引号套双引号;7 处cd缺失败出口;tools/install-tools --check不再顺手建目录;tests/selftest.sh三处裸$TMPDIR在set -u下会中途断掉;12 个小组件的HOME_DIR不再写死手机路径。 - 读 App 真源码的工具与断言都认环境变量(
DSH_KIT_REPO/DSH_CONSOLE_DIR/DSH_BRIDGE_DIR/DSH_HOME_DIR):仓库不在$HOME/dsh-termux-kit时也能跑。
新增(CI)
.github/workflows/ci.yml 跑这个仓库自己能证的离线部分:bash -n 全量 + shellcheck、ruff + 逐文件 mypy + 编译检查、9 道数据源门禁(任务 id / 密钥 / UI 与数据源 / i18n 表 / Java 转义 / 安装一致性 / 面板渲染 / 文案审计)、widgets/common.sh 的 35 条单元断言,以及在容器里跑 tests/selftest.sh(需真机的检查显式列成清单,只记录、不判红)。钉版本的开发依赖在 requirements-dev.txt。
已知行为(不是 bug)
- 三个产物的版本号各自独立,只 bump 改动过的那一个。
git pull在本仓库不生效:master没有上游,它只更新远端指针、一个文件都不合并(退出状态看着还像成功)。更新用dsh-kit-update,或手工git fetch origin && git merge --ff-only origin/master。ks.jks(签名密钥)不在仓库里 ——.gitignore明确不让它进公开仓库。它丢了就只能卸载重装 App。
三个产物怎么升
- 控制台 / 桥:桌面小组件「11_更新APK」,或
~/.local/bin/dsh-update(下载 → 校验 SHA256 → 安装,只升不降)。 - 页面面板:
cp plugins/dsh-mobile-local/client.js ~/.dsh/profiles/web/local/dsh-mobile-local/,再(cd ~/.dsh/profiles/web && pnpm install --prefer-offline)并刷新页面 —— 不用重启 DSH。
这一版是怎么发出来的(留个记录)
源码 91d2c19d(控制台 1.22 那批,CI 五个 job 全绿)→ 手机上 git fetch origin && git merge --ff-only origin/master(62 个文件)→ bash tools/install-tools → bash tools/install-widgets → bash apps/console/build.sh(先确认 ks.jks 还在)→ 重打面板 tgz(先 rm -f plugins/dsh-mobile-local/*.tgz)→ 三个资产上传。随后 fe6e60fe 只改了文档、工具与构建脚本,APK 内容不变。