Skip to content

DroidExtend 1.4.1

Choose a tag to compare

@Blank2007 Blank2007 released this 12 Oct 06:00
· 2 commits to f0e261f2c1ff11b98b17b74aad14d8a5a3529fec since this release

1.4.1 — 修复一个把前四个版本全废掉的 bug

感谢 @Bai-2008:这个 bug 是他找出来的,
issue #1 里那份排查报告写得很细,省了我大量时间。

这个 bug 有多严重

v1.1.0、v1.2.0、v1.3.0、v1.4.0 四个发布版,「安装虚拟显示器驱动(需要管理员)」
按钮对任何人都不起作用。

点下去界面什么都不显示,驱动永远装不上,于是虚拟屏造不出来 —— 也就是说,
用安装包安装的人,从来没真正用起来过这个程序。作者自己在开发机上一直是好的,
因为坏掉的那行代码里写的就是作者那台机器的路径。

出了什么事

tools/vdd_install.ps1 的四个参数默认值是开发机上的绝对路径:

param([string]$Src = 'D:\dsh projects\droid-extend\tools\vdd\...')

安装包把这个脚本装到 {app}\tools\,程序调用它时一个参数都不传,
脚本就去找那个只存在于开发机上的目录,报 source missing 并以退出码 3 结束。
而提权子进程有自己的控制台,stdout 拿不到,日志又写去了别处,
所以界面上表现为「点了没反应」。

修法:默认值全部改成 Join-Path $PSScriptRoot '...',装到哪儿就解析到哪儿。
另外补了三个真实缺陷:拷贝后数一遍目标目录(不再只看它有没有报错)、
日志写入失败不再被空的 catch {} 吞掉、路径改用 -LiteralPath。

顺手做完的事(都来自同一份报告)

  • tools/ 下 24 个探针脚本 + disp_probe.cs + sdk_manifest.json 里写死的开发机路径
    全部改成基于脚本自身位置推导。
  • CI 加了守卫:host/、android/、tools/ 里再出现开发机路径直接红。
    这类 bug 只靠 review 是抓不住的。
  • licenses:LICENSE 拆成纯 MIT(之前那段附加声明让 GitHub 判成 NOASSERTION),
    新增 NOTICE 说明第三方组件与 AI 编写情况。
  • 新增 .github/(issue / PR 模板、CONTRIBUTING.md、SECURITY.md)、.editorconfig。
  • tools/release.py 现在也会递增 AndroidManifest.xml 的 versionCode ——
    Android 拒绝安装 versionCode 没变大的更新,之前这步是漏的。
  • 仓库 homepage 不再指向它自己;Discussions 按 README 的承诺打开了。

升级建议

v1.4.0 及以前的所有版本,如果你需要手动装虚拟显示驱动,请务必升到这版。
如果你已经在用(驱动是更早手动装好的),这次更新本身也不会破坏任何东西。


1.4.0 — 卡死自愈 / 数据目录 / 手机端重画

(本版内容,供对照)

  • 画面卡死会自愈了。 在 Windows「显示设置」里改虚拟屏参数、或某个软件弹 UAC 提权时,
    桌面复制(ddagrab)会以 DXGI_ERROR_ACCESS_LOST 失效。现在有一个 3 秒静默看门狗,
    检测到流断掉就重读屏幕矩形、重启采集,并让手机重连解码器。实测恢复 8.1 秒 → 4.1 秒。
    顺带的好处:改完分辨率不用再点一次「开始投屏」。
  • 设置和日志放在一起,就在你安装时选的目录里。 文件 → 更改数据目录… 可以改;
    写不进去时回落到 %LOCALAPPDATA%\DroidExtend。1.4.0 之前的设置会自动搬过来。
  • 手机端重画:状态浮窗换成浅色小字(不再挡视线),设置按钮可以拖动(位置会记住),
    清空日志有「已清空」提示,图标重画。
  • APK 122 KB → 190 KB,新增自适应图标。