隐私

最后更新于 2026-10-05。

Omodachi 没有账号,没有我们自己的服务器,没有统计,也不收集崩溃报告。App 和你的电脑直接对话,什么都不会到我们这里。

它们怎么连接

  • 两边都装了 Tailscale 时,你把电脑的名字粘贴进 App。App 就通过你自己的 Tailscale 网络连到它。
  • 没有 Tailscale 时,App 用 Bonjour 在同一个 Wi-Fi 里找到你的电脑,也只在那个 Wi-Fi 下工作。不管哪种方式,它都通过 TLS 直接连到你的电脑。
  • 你的电脑用的是它自己签发的证书。配对时 App 会记下证书的指纹,以后只要指纹变了,它就拒绝连接。
  • 从 Odomo,也就是电脑自己的网页 App,打开的 omodachi.app/open 链接里,只带着你电脑的 host id。装了 App 时它会打开 App;没装时,它打开这里的一个页面,这个页面不联系别的地方,也不存任何东西。

在你的电脑上

  • 每一台配对过的设备,会记下它的名字、它的凭证什么时候过期,以及这个凭证的哈希。配对请求也和它存在一起,包括请求来自的网络地址。
  • 每台设备的 SSH 公钥,会作为带标记的一行写进你的 authorized_keys 文件。App 能打开终端,靠的就是这一行。
  • Sunshine 分支里为每台设备存一张串流证书,这样 App 才能显示你的屏幕。
  • 只有你打开 Face ID 批准时,才会存下你的设备登记的公钥。私钥那一半从不离开设备。
  • 只有你打开剪贴板同步时,剪贴板里的文字才会在送往设备或从设备送回的路上经过内存。Omodachi 不留任何副本。
  • 不会有任何来自你设备麦克风的东西。这个版本的 App 没有语音输入,也从不打开麦克风。
  • Omodachi 存下的其他东西,都在 ~/.config/omodachi 和 ~/.local/state/omodachi 里。移除一台设备,会收回它的凭证、它的那行公钥和它的证书;用 --purge 卸载,会把这两个文件夹都删掉。

在你的设备上

  • 每台电脑的凭证、证书指纹和 SSH 私钥都放在 iOS 钥匙串里。它们只在设备解锁时可读,也从不离开这台设备。
  • Face ID 批准背后的那把密钥,是在安全隔区里生成的,没法从里面读出来。
  • 你的偏好设置、pin 住的行,以及电脑发来的字体的缓存,都存在 App 自己的存储空间里。
  • 删掉 App 会清掉它自己的存储空间。iOS 可能会在 App 删掉后保留钥匙串里的项目,所以先在 App 里忘记每一台电脑,把它们也清掉。

App 要的权限

  • 本地网络,只在你选择不用 Tailscale 时才要。App 用它在你的 Wi-Fi 里找到电脑并连上去。
  • Face ID 或 Touch ID,用来批准电脑上的密码提示框。App 从不保存、也看不到那个密码。
  • 蓝牙,iOS 可能会问到它,因为 Moonlight 自带的 SDL 库里有游戏手柄支持。Omodachi 从不扫描、也从不连接任何蓝牙设备。
  • 别的都没有。不要麦克风、不要相机、不要照片、不要通讯录,也不要定位。

App 里的软件

  • Moonlight 以 GPL-3.0 授权,负责画串流过来的屏幕;LibVNCClient 以 GPL-2.0 或更新版本授权,负责画 VNC 屏幕;SwiftTerm 和 Citadel 以 MIT 授权,负责运行终端。
  • 它们都只和你的电脑说话,走的是你自己的网络。

联系

关于隐私的问题,请发到 [email protected]。

这一切的源码都在 github.com/omodachi。

这个页面有改动时,顶上的日期也会跟着改。