Repository navigation
DroidExtend 1.4.1
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,新增自适应图标。