# phone-bridge 一键安装 双击 **`安装.cmd`**,然后跟着窗口走。电脑会自动配好,手机插上 USB 就装完。 --- ## 全过程你要做几件事 只有两次,其余全自动。 | 编号 | 窗口会说什么 | 你要做什么 | | --- | --- | --- | | **1** | 「Tailscale 需要登录」 | 浏览器会自己打开,用**你自己的** Tailscale 账号登录。没有就免费注册一个。 | | **2** | 「把手机用 USB 线插上」 | 插线。手机上开好 USB 调试,弹「允许调试」时点**允许**。 | 完事了。剩下的它自己干。 --- ## 它到底做了什么 ```dsh-ui {"title":"安装器自动完成的 13 步","gap":14,"items":[{"type":"steps","steps":[{"title":"检查 DSH 跑过没","desc":"没跑过就提示你先开一次"},{"title":"装 Tailscale(电脑)","desc":"winget 静默装,已装则跳过"},{"title":"拉起 Tailscale 服务","desc":"设为开机自启,关窗口不断线"},{"title":"等你登录","desc":"← 你动手 ①"},{"title":"读 Tailscale IP","desc":"拿到 100.x.y.z"},{"title":"探测 DSH 端口","desc":"自动识别 19387 或实际端口"},{"title":"改 webServer 监听","desc":"0.0.0.0,带备份"},{"title":"安装插件文件","desc":"拷到 ~/.dsh/phone-bridge + 建立 junction"},{"title":"生成配对密钥","desc":"48 位随机 hex,已存在则复用"},{"title":"重启 DSH","desc":"窗口里问一句,你点 Yes"},{"title":"等你插手机","desc":"← 你动手 ②,最多等 5 分钟"},{"title":"构建 APK","desc":"你的 IP 和密钥直接烘进包里"},{"title":"推到手机 + 验证","desc":"Tailscale、App、相机权限、健康检查"}]}]} ``` ## 为什么它不用你配任何东西 | 通常要手填的 | 这里怎么解决 | | --- | --- | | 电脑 IP 地址 | 脚本自己读 Tailscale IP | | DSH 端口 | 自动探测正在监听的进程 | | 配对 token | 自动生成并写进 APK | | APK 构建参数 | 自动从上面三项拼出来 | | 手机要扫码配对 | 跳过 —— 装好就是已配对状态 | --- ## 前提条件 | 需要 | 说明 | 没有会怎样 | | --- | --- | --- | | Windows 10/11 | 安装器是 PowerShell + WinForms | 用不了 | | DSH 至少启动过一次 | 要读 `~/.dsh/profiles` | 窗口会提示你先开一次 | | 管理员权限 | 装 Tailscale、改配置 | `安装.cmd` 会自己申请 | | Tailscale 账号 | 免费,[注册](https://login.tailscale.com/start) | 第 4 步会卡住 | | Android 数据线 | 有些线只供电 | 手机步骤跳过,用浏览器也行 | ### 可选(只影响能不能自动装 App) | 工具 | 用途 | 不装会怎样 | | --- | --- | --- | | **JDK 17** | 构建 APK | 用包里自带的 APK(可能是旧的) | | **Android SDK** build-tools 34 | 构建 APK | 同上 | | **adb** | 推到手机 | 手机得自己装 App,或改用浏览器 | 这三样会自动在这些位置找: ``` JDK: %PHONE_BRIDGE_JAVA_HOME% → %JAVA_HOME% → Program Files\Zulu\zulu-17 等 SDK: %PHONE_BRIDGE_SDK% → %ANDROID_HOME% → %LOCALAPPDATA%\Android\Sdk adb: %PHONE_BRIDGE_ADB% → %LOCALAPPDATA%\Android\Sdk\platform-tools → PATH ``` 找不到也没关系 —— 前 8 步照常完成,你仍然能**用手机浏览器**直接访问。 --- ## 装完你会看到 窗口打出这样一行: ``` http://100.x.y.z:19387/phone-bridge/?token=48位十六进制 ``` **手机上最后一步**:打开 Tailscale → 登录同一个账号 → 点 Connect。然后打开装好的「DSH 手机同步」App,已经配对好了,直接能聊。 --- ## 常见问题 ### 窗口一闪就没了 右键 `安装.cmd` → 以管理员身份运行。 ### 卡在「等你登录」超过 5 分钟 脚本会超时并告诉你。手动从系统托盘打开 Tailscale 登录,然后重跑一次 —— 已登录的话这一步会直接跳过。 ### 卡在「等手机」 最多等 5 分钟然后跳过。检查: ```powershell adb devices ``` - 列表为空 → 换根线(有的线只充电不传数据) - 显示 `unauthorized` → 解锁手机,点「允许」 ### 提示 webserver 那行不是 0.0.0.0 你的 `cordis.patch.yml` 里已经有 webserver 配置了。打开这个文件,把那行的 `host` 改成 `'0.0.0.0'`,再重跑。 ### 装完手机连不上 ```powershell # 1. 电脑能不能通 curl http://127.0.0.1:19387/phone-bridge/health # {"ok":true,"name":"phone-bridge","version":1} # 2. Tailscale 状态 tailscale status tailscale ip -4 ``` ### 想看看每一步发生了什么 ```powershell .\install-gui.ps1 -Console ``` 不开窗口,所有日志直接打到终端。 --- ## 它改了哪些东西 全部可回滚,备份统一放在 `~/.dsh/_phone-bridge-backup/`。 | 位置 | 改动 | | --- | --- | | `C:\Program Files\Tailscale\` | 安装 Tailscale | | `~/.dsh/profiles/desktop/cordis.patch.yml` | 加插件行 + 监听改 0.0.0.0 | | `~/.dsh/phone-bridge/` | 插件本体 + `state.json` | | `~/.dsh/profiles/desktop/node_modules/dsh-phone-bridge` | Junction 软链 | | 手机 | 装 Tailscale + DSH App | 想彻底卸载:删掉上面四处,手机卸两个 App,Tailscale 可选保留(别的用途也能用)。 --- ## 相关文档 - [README.zh-CN.md](README.zh-CN.md) — 功能说明与实现原理 - [IMPLEMENTATION.md](IMPLEMENTATION.md) — 14 章技术细节 - [SETUP.md](SETUP.md) — 命令行版部署(不用图形界面的话)