Skip to content

Releases: Maopk/dsh-termux-kit

v1.13 — 控制台「自检」按钮 + CI

Choose a tag to compare

@Maopk Maopk released this 03 Oct 08:53

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 内容不变。

v1.12 — 控制台 1.21 + 桥 2.24 + 页面面板 0.10.0:启动、关闭、更新三件事都说真话

Choose a tag to compare

@Maopk Maopk released this 28 Sep 00:26

v1.12 — 控制台 1.21 · 桥 2.24 · 页面面板 0.10.0

一句话:把「启动 / 关闭 / 更新」这三件最常干的事,从"看起来能用"改成说的话和实际发生的事一致。

下载

产物 文件 SHA256
控制台 App dsh-console-v1.21.apk 428f9ece8f5bacdb263766621e1ead7ba3f64a9b9a1226d1f6090b2ff35e93e1
DSH 桥 App dsh-bridge-v2.24.apk fa522055cbd90cc11a06a5f52ee33688d88d3b20214f0066c376693bbaac90b8
页面面板插件 dsh-mobile-local-v0.10.0.tgz 20959b42cac382445775b5de95c1637d8ce0217d8534fcf7ed8313cc69b7d636
sha256sum -c SHA256SUMS.txt

本版修好的(都是真机实测踩出来的)

  • 「从控制台启动 DSH 比点小组件慢得多」:真因不是慢 —— 页面其实是 dsh web 自己打开的,
    而控制台在日志里说"我没打开"(那句话与事实相反)。现在脚本把 DSH_BOOT_OPEN=server|widget|none
    当证据回传,控制台只念事实;没人开过时才自己开,且只说"已请求系统打开",不说"已经打开"。
    启动类命令不再带 --no-open:页面在就绪那一刻就出现,不必等最长 180 秒的通道恢复。
    顺带更正一条被推翻的结论:"后台 App 一律发不出 am start"太绝对(持唤醒锁时实测能成功)。
  • 关闭 DSH 不再把你拽到 WebAPK 界面:dsh-close-window 以前"为了按 Back 先把窗口切到前台",
    那一下就是跳转本身。现在只在窗口本来就在前台时才按 Back;不在前台就什么都不动并如实说明。
    有 adb 时改用静默 force-stop,完全不切前台。
  • 版本行把「发行版」说成了「仓库」:那一行读的是 GitHub Releases,文案却写"仓库",
    于是出现"仓库只有 v1.14"这种与事实相反的话(用户拿截图抓到)。现在两个事实各说各的:
    版本:v1.21 · 发行版还是 v1.14 · 仓库源码 v1.21(源码已推上去,只差发版)。
  • 更新只升不降:11_update-apps 以前"下载最新发行版就装",真发生过把桥 v2.20 装到 v2.21 的机器上。
    现在先比版本再下载:发行版更新才装 / 一样新跳过 / 本机领先拒绝降级 / 版本读不到跳过(--force 可强制)。
  • 面板「一点开就消失」(T() 读错作用域 → ReferenceError 卸掉整棵子树)、
    控制台「语言」只有标题没有选项(choices 建好却没 addView)、
    桥的分类标题整串查表导致漏成英文(channels×3 / auto / up to date …)、
    绿灯配「桥:未知」的自相矛盾(灯与文字各算一套)、滚到底露出一大块灰、分类 (N) 与实际条目对不上。

已知行为(不是 bug)

  • 桥会被 vivo 回收,周期性掉线是常态;冷启动唤醒可能 20~40 秒。
  • 没有 adb 时关窗口:如果那个窗口不在前台,我们不会去切它,而是跳过并说明(这正是"不要跳转"的要求)。
    想让它静默关掉:把 Wi-Fi 和「无线调试」打开,有 adb 就可以。
  • 后台启动 Activity "通常行、但不保证";要稳,仍然走 adb。
  • 版本行里的"仓库源码"版本来自 master 的 ui/controls.json,可能受 CDN 缓存影响滞后几分钟。

三个产物怎么升

  • 手机上:控制台 / 桥 App 里点「更新两个 App」,或在控制台版本行点一下(只有发行版更新时才可点)。
  • 页面面板:dsh plugin add ./dsh-mobile-local-v0.10.0.tgz(或把 client.js 放进 profile 的 local/ 后 pnpm install + 刷新页面)。

v1.11 — 控制台 1.14 + 桥 2.20 + 页面面板 0.6:三处 UI 统一(同一份 ui/controls.json 生成),五分类,桥四态由一次 ping 判定,开关/按钮分清,每条控件都有说明

Choose a tag to compare

@Maopk Maopk released this 27 Sep 15:00
ui 1/3-3/3: console 1.14 + bridge 2.20 rebuilt on the generated contr…

v1.10 — 控制台 1.13 + 桥 2.19:adb 通道多了「修复 adb 通道」按钮(Wi-Fi 状态 → 无线调试开关 → 端口 → 连接 → 复核,卡在哪一步就说哪一步)

Choose a tag to compare

@Maopk Maopk released this 27 Sep 09:51
adb_ensure button on all three surfaces (tasksd + page panel + consol…

v1.9 — 桥 2.19(start 不再骗人:能拉起就拉起、拉不起就报错)+ adb 自恢复 droid-ensure

Choose a tag to compare

@Maopk Maopk released this 27 Sep 09:36
bridge 2.19: start tells the truth (queries + explicit component + on…

v1.8 — 桥 2.16(屏幕保持常亮不再动你的「自动锁屏」+ 装包脚本自己点到授权)

Choose a tag to compare

@Maopk Maopk released this 27 Sep 08:18
fix(screen): prefer "stay awake while charging", and say where to loo…

v1.7 — 桥 2.15(息屏真正生效)+ 清理修好 + 装包 51 秒

Choose a tag to compare

@Maopk Maopk released this 27 Sep 08:04
fix: the screen "keep" used an impossible value, the image cleanup ne…

v1.6 — 控制台 1.12 + 桥 2.14(不息屏幂等修复 + 按钮不再全大写)

Choose a tag to compare

@Maopk Maopk released this 27 Sep 07:58
fix(screen): keep must be idempotent — stacking it poisoned the saved…

v1.5 — 控制台 1.12 + 桥 2.12(项目网址 + 打开即查更新 + 一键更新)

Choose a tag to compare

@Maopk Maopk released this 27 Sep 07:37
feat: keep the screen awake for bridge work, project URL + update che…

v1.4 — 控制台 1.11 + 桥 2.11(桥的通知栏中文 + 日志持久化)

Choose a tag to compare

@Maopk Maopk released this 27 Sep 07:09
fix(bridge): the persistent notification was raw English; add i18n-ta…