快速开始
使用 OpenXPlay 需要一部 iPhone、一台中继,以及浏览器支持 WebCodecs(或带有 Carlink 应用)的车机。先设置好中继,用蓝牙把 iPhone 和中继配对,再在车机浏览器中打开中继显示的车机访问地址;第一次打开时接受证书警告即可。
准备工作
| 需要准备 | 说明 |
|---|---|
| 支持 CarPlay 的 iPhone | 通过无线(蓝牙和 Wi-Fi)连接中继;使用安卓中继时也可以用 USB 线连接。 |
| 一台中继 | 运行 OpenXPlay Relay 应用的安卓手机(Android 8.0 及以上),或运行 Linux 中继的 UFI003 USB 随身 Wi-Fi。 |
| Apple 配件(MFi)身份 | 各仓库及其构建产物都不包含该身份。要正常使用,需要由你自行提供。 |
| 车机上的入口 | 支持 WebCodecs 视频解码的浏览器(可用检测车机测试),或 Carlink 应用(实验性)。 |
选择路线
| 安卓手机作中继 | UFI003 USB 随身 Wi-Fi | |
|---|---|---|
| 中继软件 | OpenXPlay Relay 应用 | Linux 中继 |
| iPhone 连接方式 | 无线(Wi-Fi 直连、此手机的热点或共用 Wi-Fi)或 USB 线缆 | 无线,经随身 Wi-Fi 自己的热点或共用 Wi-Fi |
| 热点频段 | 自动、2.4 GHz 或 5 GHz | 仅 2.4 GHz |
| Carlink 输出 | 需要 Android 10 及以上 | 支持(实验性) |
| 设置位置 | 应用内,以及 6975 端口的网页管理页面 | 6975 端口的网页管理页面 |
| 获取软件 | 从 OpenXPlay-Relay 构建 | 构建后用 OpenXPlay-Hardware 打包安装 |
路线一:安卓手机作中继
OpenXPlay Relay 应用运行在安卓手机上,使用 OpenXPlay-DiPlay 作为 CarPlay 接收端,并向车机提供网页接收端。
- 安装 OpenXPlay Relay。 按 OpenXPlay-Relay README 的说明构建应用;安卓构建要求 OpenXPlay-DiPlay 和 OpenXPlay-Stream 检出在它旁边。现成的安装包待确认。
- 授予权限。 打开应用,允许它申请的权限:附近的设备(蓝牙)、附近的 Wi-Fi 设备、通知和麦克风。只有允许了麦克风,CarPlay 才会提供 Siri 和通话功能。使用 USB 连接时,还需要同意 Android 的 VPN 请求,用于转发 iPhone 的网络。
- 导入 CarPlay 身份。 在应用中导入你自行提供的配件身份。没有有效身份时,应用不会启动 CarPlay。
- 选择连接方式和输出。 在“iPhone 连接方式”中选择无线(Wi-Fi 直连(推荐)、此手机的热点或共用 Wi-Fi)或 USB 线缆;在“输出”中选择车载浏览器、Carlink 应用或两者同时使用。
- 配对 iPhone。 在中继手机上点“打开蓝牙设置”,然后在 iPhone 上打开“设置 → 蓝牙”,选择这台中继。
- 启动 CarPlay。 点“开始”。应用会显示要在车载浏览器中打开的地址;如果开启了配对码,也会一并显示。接着参照在车机上操作。
路线二:UFI003 USB 随身 Wi-Fi(Linux 中继)
UFI003 是一款 msm8916 4G USB 随身 Wi-Fi。OpenXPlay-Hardware 提供了在它上面运行 Linux 中继所需的支持文件,系统为 OpenStick Debian 11 镜像(内核 5.15.0-handsomekernel+,aarch64)。它的 Wi-Fi 没有 5 GHz 频段,因此热点工作在 2.4 GHz。
准备设备。 在 UFI003 上运行 OpenStick Debian 11 镜像。
构建中继。 构建网页接收端(OpenXPlay-Stream 的
web/)、管理页面(OpenXPlay-Relay 的admin-web/),并在两个仓库中用rust/scripts/build-aarch64.sh构建 aarch64 可执行文件。制作安装包。 在电脑上运行
UFI003/install/make-bundle.sh,传入构建产物、UFI003/install/debs.txt中记录的 Debian 软件包,以及中继的 packaging 目录:shsh UFI003/install/make-bundle.sh /tmp/ufi003-bundle /path/to/openxplay-relay /path/to/oxp-relay /path/to/web/dist /path/to/admin/dist /path/to/debs /path/to/OpenXPlay-Relay/rust/packaging在设备上安装。 把
.tar.gz复制到随身 Wi-Fi 上,解压到一个空目录,然后以 root 身份运行其中的UFI003/install/install-ufi003.sh。在参数前加上--dry-run可以只做校验、不做任何改动。安装程序会安装无线 CarPlay 所需的蓝牙 RFCOMM 模块、修复后的蓝牙驱动和蓝牙守护程序,并部署中继。添加 CarPlay 身份。 安装包中绝不包含 Apple 配件(MFi)身份。请按 UFI003 README 的说明另行放入你自己的身份,然后启动中继。
打开管理页面。 在连入中继网络的手机或电脑上打开
https://openxplay-linux.local:6975。接受证书警告后登录(登录页会显示首次使用的密码),并设置你自己的管理密码。选择网络。 默认的“此设备的热点”会打开中继自己的热点:iPhone 自动加入,车机也连接这个热点。“共用 Wi-Fi”则让中继、iPhone 和车机都连接同一个现有的 2.4 GHz 网络。
配对 iPhone。 点“配对 iPhone”,配对窗口会开放 10 分钟;在 iPhone 上打开“设置 → 蓝牙”,选择这台中继。接着参照在车机上操作。
待确认
第 6 步中,刚安装好的设备如何首次连入其网络,仓库中暂时还没有说明。遇到问题可以到交流群提问。
在车机上
浏览器(网页接收端)
网页接收端是中继提供给车机浏览器的一个网页。浏览器用 WebCodecs 解码 CarPlay 视频,并把你的触控操作传回 iPhone。建议先用检测车机测试一下浏览器。
- 连接中继的网络。 在车机上连接中继的热点,名称和密码显示在中继应用或管理页面中;如果选择了共用 Wi-Fi,就连接那个网络。
- 打开车机访问地址。 在车机浏览器中打开中继“车机访问地址”中列出的地址。网页接收端使用 8443 端口:使用 Linux 中继自己的热点时,地址通常是
https://10.77.0.1:8443/,中继也提供https://openxplay-linux.local:8443/这样的域名地址。 - 接受证书警告。 第一次打开时,浏览器会提示无法验证证书。这是正常现象,详见关于证书警告。
- 按提示输入配对码。 如果中继要求配对码,输入中继上显示的 8 位数字。
- 轻触开启声音。 如果页面提示声音已暂停,轻触一下屏幕即可。之后 CarPlay 就会在车机屏幕上运行。
Carlink 应用(实验性)
Carlink 输出通过 Wi-Fi 连接车机上的 Carlink 应用,始终使用 H.264 视频。
- 开启 Carlink 输出。 在中继中把输出方式设为 Carlink,或“浏览器和 Carlink”。
- 在车机上打开 Carlink。 启动车机上的 Carlink 应用。
- 输入配对码。 把车机屏幕上显示的配对码输入中继,并马上连接;配对码每 2 分钟更换一次。
| 中继 | 注意事项 |
|---|---|
| 安卓手机 | Carlink 需要 Android 10 及以上。单个 Wi-Fi 射频可能无法同时支持无线 CarPlay 和 Carlink,用 USB 连接 CarPlay 更可靠。 |
| UFI003 | 它的 Wi-Fi 仅支持 2.4 GHz,无法连接 Carlink Wi-Fi 工作在 5 GHz 的车机。 |
关于证书警告
浏览器只在安全页面中提供 WebCodecs 视频解码,所以中继通过 HTTPS 提供网页接收端。中继使用自己生成的证书,没有经过公共机构签发,因此浏览器第一次打开时会显示警告。
- 安全吗? 连接仍然是加密的。警告的意思是浏览器无法验证证书由谁签发。确认地址是你的中继后继续访问即可(选项通常在“高级”里)。
- 为什么又出现了? 中继生成了新证书。安卓中继在自身网络地址变化时会这样做;Linux 中继在替换设备时钟不准时生成的证书文件后也会这样做。
- 能避免吗? 安卓中继可以在应用中导入你自己的证书(PKCS #12 格式的
.p12文件)。
