Compare commits

...
1 Commits
Author SHA1 Message Date
dijunkun bd7f9505d9 [docs] document update public key build option 2026-10-24 21:03:55 +08:00
4 changed files with 40 additions and 0 deletions
+2
View File
@@ -154,6 +154,8 @@ PC 端可控制和被控制,复用桌面界面与桌面墙;手机和平板
- [常见问题](docs/FAQ.md):连接失败、黑屏、系统权限、文件位置与构建问题。
- [提交问题或建议](https://github.com/kunkundi/crossdesk/issues):请提供两端系统、客户端版本、连接方式和可复现步骤。
桌面端的 `CROSSDESK_UPDATE_PUBLIC_KEY` 是可选编译参数,用于验证应用内升级清单的 Ed25519 签名。不配置仍可正常编译、运行和检查版本,但更新只能手动下载;需要应用内自动安装更新时,须配置与发布私钥匹配的公钥。配置方式见 [更新公钥](docs/BUILD.md#update-public-key),密钥生成与发布流程见 [桌面端应用内升级](docs/UPDATER.md)。
<a id="sponsor"></a>
## 支持 CrossDesk
+2
View File
@@ -154,6 +154,8 @@ Host your own signaling and TURN services, then enable them under **Settings →
- [FAQ](docs/FAQ.md#english): connections, blank video, permissions, received files, and build issues.
- [Report an issue or suggestion](https://github.com/kunkundi/crossdesk/issues): include both operating systems, client versions, connection mode, and reproduction steps.
The optional desktop build parameter `CROSSDESK_UPDATE_PUBLIC_KEY` verifies Ed25519 signatures on in-app update manifests. Without it, the app still builds, runs, and checks for new versions, but updates require manual download. In-app update installation requires a public key matching the release signing private key. See [Update public key](docs/BUILD_EN.md#update-public-key) for configuration and the [desktop updater guide](docs/UPDATER.md) (Chinese) for key generation and publishing.
<a id="sponsor"></a>
## Support CrossDesk
+18
View File
@@ -138,6 +138,7 @@ PipeWire 不属于强制运行时依赖:程序在运行时检测宿主系统
--USE_DRM=true/false: 在 Linux 上启用 DRM 捕获,默认不启用
--CROSSDESK_PORTABLE=true/false: 构建便携版本,默认不启用
--CROSSDESK_VERSION=xxx: 指定 CrossDesk 的版本
--CROSSDESK_UPDATE_PUBLIC_KEY=xxx: 可选的 Ed25519 更新验签公钥,64 个小写十六进制字符;默认为空,不启用自动安装更新
--MINIRTC_ENABLE_AOM=true/false: 编译可选 libaom 后端,默认不启用;AV1 仍使用 SVT-AV1 / dav1d
# 示例
@@ -150,6 +151,23 @@ xmake f --CROSSDESK_VERSION=1.4.3 --USE_CUDA=true
xmake r crossdesk
```
<a id="update-public-key"></a>
### 更新公钥(可选)
`CROSSDESK_UPDATE_PUBLIC_KEY` 在编译时嵌入桌面客户端,用于验证升级清单的 Ed25519 签名。本地开发可以省略:程序仍可正常编译、运行和检查新版本,但只提供手动下载入口,不执行应用内自动安装。
需要应用内自动安装更新时,在对应平台的 `xmake f` 配置命令中加入此参数,再编译。例如,已完成平台配置后执行(将占位符替换为实际公钥):
```sh
xmake f --CROSSDESK_UPDATE_PUBLIC_KEY="<64位小写十六进制公钥>"
xmake b crossdesk
```
也可以在构建前设置同名环境变量;Xmake 配置值优先于环境变量。公钥必须是 32 字节 Ed25519 公钥的十六进制表示,共 64 个小写字符;非空但格式不正确时,构建配置会报错。发布清单必须由对应私钥签名,并满足安装位置等升级条件;便携版始终使用手动下载。
GitHub Actions 构建从仓库 Actions variable `CROSSDESK_UPDATE_PUBLIC_KEY` 读取公钥。私钥仅供发布端签名使用,无需提供给普通构建。密钥生成、发布端配置及升级条件见 [桌面端应用内升级](UPDATER.md)。
## 无 CUDA 环境下的开发支持
对于**未安装 CUDA 环境的 Linux 开发者,如果希望编译后的成果物拥有硬件编解码能力**,这里提供了预配置的 [Ubuntu 20.04 兼容构建镜像](https://hub.docker.com/r/crossdesk/ubuntu20.04)。该镜像内置必要的构建依赖,可生成兼容 glibc 2.31 的两种 Linux 安装包。
+18
View File
@@ -144,6 +144,7 @@ enabled at build time) when it is unavailable.
--USE_DRM=true/false: Enable DRM capture on Linux, disabled by default
--CROSSDESK_PORTABLE=true/false: Build the portable variant, disabled by default
--CROSSDESK_VERSION=xxx: Set the CrossDesk version
--CROSSDESK_UPDATE_PUBLIC_KEY=xxx: Optional Ed25519 update verification key, 64 lowercase hex characters; empty by default, disabling in-app update installation
# Example
xmake f --CROSSDESK_VERSION=1.4.3 --USE_CUDA=true
@@ -155,6 +156,23 @@ Run:
xmake r crossdesk
```
<a id="update-public-key"></a>
### Update public key (optional)
`CROSSDESK_UPDATE_PUBLIC_KEY` is embedded in the desktop client at build time to verify Ed25519 signatures on update manifests. Local development builds can omit it: the app still builds, runs, and checks for new versions, but only offers manual downloads without in-app update installation.
For in-app update installation, add this option to your platform's `xmake f` configuration command before building. For example, after configuring the platform, run the following with the placeholder replaced by your actual public key:
```sh
xmake f --CROSSDESK_UPDATE_PUBLIC_KEY="<64 lowercase hex characters>"
xmake b crossdesk
```
You can also set the environment variable with the same name before building; the Xmake configuration value takes precedence. The value must encode a 32-byte Ed25519 public key as 64 lowercase hexadecimal characters. A nonempty value with an invalid format fails build configuration. Update manifests must be signed with the matching private key, and the installation must meet the other updater requirements, including a supported installation location. Portable builds always use manual downloads.
GitHub Actions builds read the key from the repository Actions variable `CROSSDESK_UPDATE_PUBLIC_KEY`. The private key is only needed for release signing, not ordinary builds. See the [desktop updater guide](UPDATER.md) (Chinese) for key generation, release configuration, and updater requirements.
## Development Without CUDA Environment
For **Linux developers who do not have a CUDA environment installed and want to enable hardware codec feature**, a preconfigured [Ubuntu 20.04 compatibility build image](https://hub.docker.com/r/crossdesk/ubuntu20.04) is provided.