Skip to content

DSHBox v1.5.1

Latest

Choose a tag to compare

@WSK-build WSK-build released this 01 Nov 11:14
· 3 commits to main since this release
7c9d33c

v1.5.1(versionCode 10)— 系统 WebView / 内置 Gecko 双渲染、开发者模式与插件市场和工具链增强

感谢你使用 DSHBox!如果使用中遇到问题或有改进建议,欢迎通过Issues 反馈!
用户交流QQ群:2163082322
本版提供系统 WebView 与内置 Gecko 两种 APK。两版共用同一套 DSH 页面、宿主功能与用户数据,
只在渲染内核上不同;同时新增独立开发者模式,并集中修复插件市场、DSH 页面兼容和发布链路。

新增

DSH 页面与渲染

  • 系统 WebView / 内置 Gecko 双 APK:同一套 DSH 页面和 App UI 分别提供系统 WebView 版与内置 GeckoView 版,不复制两套页面。两个 APK 使用相同包名 com.dshbox.app 和同一签名,可覆盖切换;filesDir 下的 Debian、sandbox 与 user-data 原地保留。
  • 内置 GeckoView 版本:随包提供 GeckoView 158,不依赖系统 WebView。Gecko 分支使用自己的渲染、导航、文件选择、权限、弹窗和页面状态桥;初始化失败时显示明确错误,不静默回退到系统 WebView。
  • System WebView 低版本兼容层:在 DSH 主脚本执行前补齐 Promise.withResolvers、Promise.try、findLast、toSorted、toReversed、AbortSignal.any、URL.parse/canParse、RegExp.escape 与 Map upsert 等前端依赖,并增加单次 document-start 注入契约,不再以“加载后补丁”掩盖启动期失败。
  • DSH 访问设置:首页 DSH 卡片新增全屏访问设置页,可查看并复制当前带 token 的完整地址、设置外部打开方式、查看服务运行时间及浏览器鉴权说明。原“浏览器”快捷入口保持独立。
  • 内置 DSH 更新:随包 DSH 运行层升级至 0.2.1-rc.5;运行层保持上游纯净,不修改 DSH 源码或业务逻辑。

开发者模式

  • ADB 与 Root 两条开发者通道:在 Pilot 中新增独立的“开发者模式”入口,分别管理 ADB 和 Root 通道。通道关闭时,对应 guest 命令从路径中撤除,并非仅显示“已关闭”。
  • 独立于手机助手的完整权限通道:开发者模式的 ADB 与 Root 通道不关联原 Pilot 手机助手所用的约束通道,不经过手机助手的逐项审批、权限分级或动作拦截。用户开启开关后即自行决定用途,并对自己执行的调试、系统或 Root 操作及其后果负责;原手机助手通道仍保留审批与受控权限机制。
  • 独立于 Shizuku 的 ADB 替代路径:开发者模式 ADB 通道不依赖 Shizuku。设备或系统存在 Shizuku 兼容性限制、尚未解决问题时,可改用本 ADB 通道完成相应的网络调试与命令执行;其开关、密钥、server 配置和生命周期均独立管理。
  • ADB 无线调试与沙箱外接能力:支持自动发现 Android 无线调试的配对与连接服务、六位配对码输入、已配对设备、查看在线设备、断开连接、端口设置和本机密钥管理。开关开启时,完整 ADB 客户端及依赖会挂载到 Debian 沙箱并进入命令路径;关闭后从沙箱撤销。该 ADB 不仅可连接本机 ADB 服务,也可通过网络调试其他设备。面板动作与 DSH/终端使用同一个 ADB wrapper、密钥目录和 server 配置。
  • Root 执行通道:支持常见 su 实现探测、权限预检、访问码、持续失败锁定、Unix/TCP 传输,并在 guest 内提供 android-root CLI。Root 配置与访问码保存在不映射进沙箱的应用私有目录。
  • 六语界面与操作说明:ADB、Root、风险提示、配对向导、设备、端口、密钥和错误反馈均提供中、英、阿、西、法、俄六语文案,并新增功能说明入口。

插件市场与工具链

  • 插件市场契约与兼容判定:新增宿主能力、版本、补丁语法和兼容性检查,安装前识别不兼容载体、宿主拒绝、覆盖冲突与缺失依赖,并区分可启停、受保护、库、宿主拒绝和损坏状态。
  • 内置 pnpm 工具链:随包提供 pnpm 11.1.2 Corepack 缓存,并预置官方与中国大陆镜像探测。pnpm 的 store、registry 和 Corepack 环境在 DSH 与终端中使用同一配置,减少首次联网、命令找不到和镜像不一致问题。
  • 官方“添加插件”完整接通:修复从 DSH 官方入口拉取插件信息、安装和卸载时 pnpm 找不到、registry 参数被拒及 store 路径不一致的问题。
  • 随包插件保护:移动端适配、Pilot、browser-use 三个随包插件写入 profile dependencies;安装或删除第三方插件后,不再被 pnpm 的 node_modules 重算顶出。
  • 已安装插件清单升级:先显示本地已安装清单,再异步加载远程目录;区分“已生效”“重启后生效”“待停用”“宿主拒绝”“不兼容”等状态,修正宿主内置项误显示和不可操作开关。
  • 插件目录与启停稳定性:切换插件源后立即刷新目录;普通启停、卸载和重试使用已有目录副本,显式刷新才强制联网;取消加载不再覆盖新目录或遗留失败横幅。

诊断与发布

  • 统一渲染诊断:两种渲染器共用 DSH 页面诊断卡、日志入口、复制/导出和能力分组,可查看 provider、Gecko 版本、页面状态、主线程 API、Worker 环境及文档渲染事实。
  • System WebView Worker 观察:新增 classic/module Blob Worker、Transferable ReadableStream、Worker 流式请求体和 PDF 相关 API 的运行探针,只用于诊断,不把 Worker 补丁伪装成已支持。
  • 双版本官网下载:官网首屏和下载区分别提供“系统 WebView 版”与“内置 Gecko 版”,自动按 Release 文件名选择对应 APK,并展示各自体积、版本与能力区别。
  • 规范发布物:Release 归档统一命名为 dshbox-v<version>-system-release.apk 与 dshbox-v<version>-gecko-release.apk,交付目录只保留这两个对外 APK,并在归档后自动执行资产、权限、脚本哈希和签名契约检查。

修复

  • DSH 链接打开方式:修复在 DSH 内点击链接时错误地把当前 DSH 页面直接刷新为该链接的问题。DSH 设置中的“应用内侧边栏”和“默认浏览器”现在会作用于对应入口:侧边栏目标继续由 DSH 内部页面处理,外部 HTTP(S) 链接由 App 层交给系统默认浏览器;账号登录、问题反馈、插件网址及其他非同源链接不再覆盖当前 DSH 工作区。
  • System WebView DSH 账号登录:修复 System WebView 下点击 DSH“账号登录”后无法完成登录的问题。登录请求及空白授权弹窗由 App 层识别,需要浏览器授权时直接转交系统默认浏览器继续完成,不再停留在 DSH 页面或持续等待。
  • System WebView 白屏与关键页面异常:补齐 DSH 前端所需的启动期 API,并针对右栏、工作区、模型设置、对话流等真实页面验证;缺少 document-start 能力的内核会显示明确升级提示,不再进入确定无法运行的页面。
  • Gecko DSH 账号登录:为受信 DSH 来源的异步空白 popup 建立短生命周期子会话,再将 HTTP(S) 授权地址交给系统浏览器,修复登录弹窗一直等待的问题。
  • Gecko 外链与右侧栏:只在 DSH 顶层页面分流非同源 HTTP(S) 链接;右侧栏 iframe 和 DSH 同源页面继续保持 App 内行为。
  • Gecko 401 与导航归属:通过导航 nonce、请求头状态和文档状态关联当前加载,区分并发导航、重定向和迟到回调,恢复当前 DSH 文档的登录/token 状态。
  • Gecko 文件与页面桥:接入文件选择、权限、弹窗、状态上报和导航策略;“打开配置文件”改走运行环境原生 xdg-open 链接与 App 内置查看器,System 与 Gecko 行为一致。
  • Gecko 键盘顶栏:键盘弹起时为会话顶栏保留可视区域,并按布局/视觉视口差额补偿,收起后恢复原样式;系统 WebView 不进入该分支。
  • DSH“添加插件”入口:修复输入包名或链接后拉取插件信息、安装或卸载时报错的问题。官方入口与 App 插件市场统一使用随包 pnpm、registry 和 store 配置,插件元数据、依赖解析与随包资源不再因执行环境差异而失败。
  • 三个随包插件被第三方安装顶出:修复安装、更新或删除第三方插件后,移动端适配、Pilot 和 browser-use 三个随包插件从 node_modules 消失的问题;随包插件现已写入 profile dependencies,并由宿主在后续插件操作后保持可用。
  • 插件市场可靠性:修复插件目录被本地刷新取消、切源不刷新、停用方向错误、宿主拒绝状态被覆盖、受保护条目出现无效开关、日志重复读取及随包插件被覆盖等问题。
  • 行尾污染:固定脚本、资产、Markdown 与随包插件为 LF,修复由 CRLF 导致的 shell 语法错误、证书打包和插件安装失败。

优化

  • 两种渲染器共用宿主:DSH 页面、首页状态、外链、文件交付、诊断和日志只维护一套 App 层实现;差异集中在 Renderer Adapter,避免 UI 和业务逻辑分叉。
  • 兼容能力可解释:诊断区分“内核原生支持”“App 层已补齐”“缺失”“未采集”,移除仅凭系统版本或 Chromium 主版本直接宣布可用的判断。
  • 插件管理离线优先:已安装清单不等待远程目录;目录、更新检测和本地操作分别推进,弱网或目录不可达时仍可管理本地插件。
  • 开发与发布工具链:升级到 AGP 9.3.1、Gradle 9.5.0、Kotlin/Compose 编译插件 2.4.20 与 compile SDK 37.2;增加双版本测试入口、CI 产物和发布契约门禁。
  • 官网移动端:双下载入口与规格区使用固定的网格布局,中英文按钮不再按文本长度自由换行,APK 双版本体积在手机视图中清晰分列。

残留问题

  1. System WebView 的实际可用范围取决于 provider 能力:已实测 WebView 101 与 124 可完成本轮主要 DSH 页面工作流;WebView 83/91 缺少 document-start,无法在页面脚本执行前补齐能力,App 会阻止导航并提示升级。系统 WebView 版本不能单独作为所有页面一定正常的保证。
  2. System WebView Worker/PDF 仍只做诊断:页面启动兼容脚本不会自动进入 Worker,因此 PDF、Excel 等依赖高版本 Worker API 的链路仍可能需要更新 WebView,或改用内置 Gecko 版。
  3. Gecko 静态 content script 在个别新系统上存在平台差异:当前需要主页面桥接的配置文件、登录、外链等关键路径均已改由原生事件、扩展状态桥或运行环境原生链路承担;未来若新增必须直接注入页面主世界的功能,仍需重新验证该平台边界。
  4. 开发者模式依赖设备能力:ADB 配对要求设备支持无线调试且能与目标处于同一网络;Root 通道要求设备已有可用的 su 实现。不同 ROM 的隐藏 Root、端口和授权弹窗可能存在差异。
  5. 插件兼容性由宿主与插件双方决定:市场会提前检查已知不兼容项,但不能保证所有第三方插件在任意 DSH 版本上可用。
  6. 两个 APK 不能同时安装:系统 WebView 版与 Gecko 版同包名、同签名,属于可互相覆盖的两个发布变体。切换时需要覆盖安装,应用私有数据会保留。

四个安装包说明

包 作用
dshbox-v1.5.1-system-release.apk 系统 WebView 版,约 124.5 MiB;安装包较小,适合系统 WebView 较新的设备
dshbox-v1.5.1-gecko-release.apk 内置 Gecko 版,约 213.4 MiB;不依赖系统 WebView,适合低版本或特殊 WebView 环境

两个 APK 选择其中一个安装即可,可互相覆盖安装;从另一版本覆盖安装会保留应用私有数据。
如果新用户不知道自己手机情况,可先安装系统 WebView 版(节省空间和内存压力),如果DSH页面发生各种异常(白屏、工作区选择器不加载、模型不回复消息等等),但浏览器中却可正常打开,则覆盖安装内置 Gecko 版。

自 v1.4.0 版本起,以下两部分均可在 App 设置页通过在线导入运行环境获得,不必单独下载。

包 作用
dshapp-runtime-debian-arm64-0.1.0.zip 运行环境整包,在设置页「离线导入运行环境包」
0.2.1-rc.5.tar.zst 官方 DSH 离线更新包,在设置页“更新 DSH(离线)”中导入

如果你觉得 DSHBox 有用,欢迎在仓库首页点亮一个 Star!支持一下!