更新日期:2026-10-27
要点
- 没有账号。不用注册或登录,我们不知道你是谁。
- 不追踪。App 里没有统计分析、广告或其他第三方 SDK,也不做跨 App 追踪。
- 内容端到端加密。Mac 的画面、你的触控和键盘输入、剪贴板,只在你的 iPhone 和你的 Mac 之间加密传输。我们的服务器和 Cloudflare 的中转都看不到,也解不开。
- 服务器只负责牵线。为了让两台设备找到对方,我们的会合服务会经手 IP 地址等连接信息。它长期保存的只有实时活动推送令牌的哈希值和推送频道 ID。
- 付款只经过 Apple。DuoDesk Pro 通过 App Store 购买和扣费。我们看不到你的付款信息,我们的服务器也不检查你的订阅。
1. 留在你设备上的数据
iPhone
- 已配对 Mac 的列表(名称、ID、公钥指纹、会合服务地址)和你的设置,保存在 App 自己的存储里。
- 这部手机的私钥保存在 Secure Enclave(设备不支持时保存在仅限本机的钥匙串),不会离开手机。
- 相机只在扫描配对二维码时使用。识别在手机上完成,画面不保存、不上传。
- Face ID 由 iOS 处理,App 只知道验证是否通过,拿不到你的面部数据。
Mac
- 这台 Mac 的私钥、已配对手机的公钥和名称、手机的实时活动推送令牌、DuoDesk Host 的设置,保存在
~/Library/Application Support/DuoDesk/。 - 连接记录保存在
~/Library/Logs/DuoDesk/:启动、配对、连接和断开的时间与原因,配对手机的名称,以及连接方式等排查用的细节。它用来排查问题,超过 1 MB 自动轮换,只留在你的 Mac 上,不会上传。 - 「屏幕录制」和「辅助功能」权限只在配对过的 iPhone 连着时使用:采集画面发给那部 iPhone,执行它发来的操作。画面不会被录下或保存。
2. iPhone 和 Mac 之间的连接
- 每台设备有自己的密钥对。配对时,iPhone 扫描只显示在 Mac 屏幕上的二维码,从此双方只认对方的公钥(钉住),没配对过的设备连不上。
- 会话使用 QUIC,加密协议是 TLS 1.3。画面、触控和键盘输入、剪贴板同步、显示器选择等会话内容都在这条加密连接里,只有你的 iPhone 和你的 Mac 能解开。
- 连接优先走点对点直连(局域网,或经打洞穿过路由器);直连不通时,加密后的数据包经 Cloudflare 中转(见第 4 节)。如果两台设备都装了 Tailscale,直连也可能经过 Tailscale 网络。
配对和连接的技术细节见工作原理。
3. 会合服务
我们在 Cloudflare Workers 上运行一个会合服务(rv.spailab.com),帮 iPhone 找到 Mac,并交换建立直连要用的信息。它不经手会话内容。
它能看到什么
- Mac 在线时:DuoDesk Host 和服务保持一条连接。服务能看到 Mac 的 IP 地址、Mac 的 ID 和公钥(ID 由公钥算出,用来证明是这台 Mac),以及 Mac 的电脑名称(就是系统设置 › 通用 › 共享里的名称,可能包含你的名字)。名称只在这条连接存在期间保留。
- iPhone 配对或连接时:服务能看到 iPhone 的 IP 地址、要连哪台 Mac、什么时候连。连接请求由服务原样转给 Mac,服务不解读其中内容(推送令牌除外,见第 5 节)。请求里有:两台设备的网络地址(局域网地址和公网地址及端口)、一次性的连接凭据、iPhone 公钥的指纹和签名;配对时是 iPhone 的公钥和设备名称(iOS 只提供「iPhone」这样的通用名称)。这些信息只在转发时经过,不保存。
- 在线状态:知道一台 Mac ID 的人可以向服务查询它是否在线,回答只有「在线」或「离线」。
它保存什么
长期保存的只有实时活动推送要用的两项,每台 Mac 分开存,见第 5 节:
- 推送令牌的 SHA-256 哈希值(不是令牌本身)和登记时间,每台 Mac 最多 32 个,新的会替换最旧的。
- 这台 Mac 创建的实时活动推送频道 ID,每个推送环境最多 2 个。
日志
- 服务自己写的日志只记事件:Mac 上线、转发了连接请求、Mac 接受或拒绝(及原因)、耗时、推送时 Apple 回应的状态。日志里只带 Mac ID 的前 6 个字符,不含 IP 地址、密钥、令牌或推送内容。
- 为了防止滥用,服务按 IP 地址和 Mac ID 统计每分钟的请求次数,超过上限的请求会被拒绝。
- Cloudflare 运营这个服务所在的平台,会按它自己的隐私政策处理请求(包括 IP 地址),并在有限时间内保留平台日志。
4. Cloudflare 中转和地址查询
- 地址查询(STUN):每次连接时,两台设备会向 Cloudflare 的 STUN 服务器(
stun.cloudflare.com)查询自己的公网地址,以便直连。Cloudflare 能看到设备的 IP 地址。 - 中转(TURN):直连不通时,加密后的会话数据经 Cloudflare TURN(
turn.cloudflare.com)转发。Cloudflare 能看到两台设备的 IP 地址和端口、传输的数据量和时间,看不到内容。中转凭据在 Mac 接受连接后才签发,12 小时后失效。
5. 待机副屏(实时活动)
待机副屏让 iPhone 的锁屏和待机模式显示 Mac 上 Claude Code 和 Codex 的任务状态与用量。它默认打开,可以在 iPhone 上 DuoDesk 的设置里关掉(「待机时显示 Claude / Codex 状态」),也可以在 iPhone 的「设置 › DuoDesk」里关掉实时活动。
Mac 读取的信息
- DuoDesk Host 在 Mac 上以只读方式读取 Claude Code 和 Codex 自己的会话文件,得知哪些任务在运行、哪些在等你处理。这些文件不会被修改,也不会整个发出去;离开 Mac 的只有下面「推送的内容」里列出的摘要。
- 用量:DuoDesk Host 用这台 Mac 上 Claude Code 已有的登录凭据,直接向 Anthropic 查询你的订阅用量;Codex 的用量通过这台 Mac 上的 Codex 程序向 OpenAI 查询。这些请求从你的 Mac 直接发给 Anthropic 和 OpenAI,不经过我们的服务器,凭据也不会发给我们。
推送的内容和路径
- 推送内容包括:Mac 的名称;最多 6 个任务,每个任务的标题(会话名称,没有名称时是最近一条提示的开头,最多 28 个字符)、项目文件夹名称、状态和当前步骤(最多 40 个字符);以及用量百分比和重置时间。
- 这些内容由 Mac 经我们的会合服务交给 Apple 推送通知服务(APNs),再由 Apple 送到你的 iPhone。会合服务只在转发时经手,不记录、不保存推送内容。Apple 按其隐私政策处理推送。
- 推送令牌:iPhone 每次连接 Mac 时,会附上 iOS 为 DuoDesk 实时活动分配的推送令牌,经会合服务交给 Mac。Mac 接受连接后,服务只保存令牌的哈希值,用来确保一台 Mac 只能推送给连过它的手机。
6. 购买(DuoDesk Pro)
- iPhone 上的 DuoDesk 免费下载,连接 Mac 需要订阅 DuoDesk Pro,这是在 App Store 销售的自动续期订阅。Mac 上的 DuoDesk Host 免费。
- 购买、扣费、续订、取消和退款都由 Apple 通过你的 Apple 账户处理,适用 Apple 自己的条款和隐私政策。我们收不到你的付款信息。Apple 会给我们销售报告(比如在哪些国家或地区卖出了多少份订阅),里面没有你的姓名、邮箱或付款信息。
- 订阅是否有效,由 App 在 iPhone 上用 Apple 的 StoreKit 判断。和购买、订阅有关的信息都不会发到我们的服务器,会合服务既不接收也不检查。
- DuoDesk 的使用条款就是 Apple 的标准最终用户许可协议(EULA)。
7. 我们不做的事
- 不出售数据,不投放广告,不建用户画像。
- App 里没有统计分析、崩溃收集或广告 SDK。如果你在 iOS「设置 › 隐私与安全性 › 分析与改进」里选择了与 App 开发者共享,Apple 会按其政策向我们提供匿名的崩溃报告和使用统计。
- 不收集姓名、邮箱、电话、位置、通讯录、照片等个人信息。
8. 涉及的第三方
| 服务 | 用途 | 能看到什么 |
|---|---|---|
| Cloudflare(Workers、R2、TURN、STUN) | 运行会合服务;中转;查询公网地址;托管本网站和 Mac 安装包 | IP 地址、连接时间、数据量和上面列出的连接信息;看不到会话内容 |
| Apple(推送通知服务、App Store) | 把实时活动送到 iPhone;分发 App;销售 DuoDesk Pro 并扣费 | 传输中的推送内容;你的购买记录和付款信息。都按 Apple 的政策处理 |
| Anthropic、OpenAI | 只在你使用待机副屏时,查询你自己的订阅用量 | 由你的 Mac 用你自己的登录凭据直接请求,和你平时使用 Claude Code、Codex 一样 |
9. 保存期限和删除
- 设备上的数据:在 iPhone 上删除一台 Mac,或删除 DuoDesk App;在 Mac 上从菜单里移除配对的手机,或卸载 DuoDesk Host 并删除第 1 节提到的两个文件夹。
- 会合服务里的推送令牌哈希和频道 ID:一直保留到被更新的记录替换。想提前删除,可以联系我们。
- 转发经过的连接信息和推送内容:不保存。
10. 其他
- 跨境处理:Cloudflare 和 Apple 在全球运营服务器,连接信息和推送可能在你所在国家或地区以外的机房处理。
- 儿童:DuoDesk 不面向儿童,也不会有意收集任何人的个人信息。
- 本网站:托管在 Cloudflare 上,不使用 Cookie、统计或第三方脚本,我们也没有开启访问日志。Cloudflare 作为托管方,会按它自己的隐私政策处理访问请求(包括 IP 地址)。
- 政策变更:DuoDesk 处理数据的方式变化时,我们会更新本页并修改上面的更新日期。
11. 联系我们
关于隐私的问题或删除请求,请写信到 duodesksupport@signalplus.com。