Repository navigation
OpenXPlay Relay for Android 0.2.0
·
275 commits
to main
since this release
Android app 0.2.0: a redesigned app that checks the connection step by step, car selection by model and year, frame-rate and Carlink picture-size settings, head-unit page settings from CarPlay's OpenXPlay icon, log export and update checks. · 安卓应用 0.2.0:重新设计的界面,逐步检查连接;按车型和年款选车;帧率和 Carlink 画面尺寸设置;在 CarPlay 里点 OpenXPlay 图标打开车机网页设置;导出日志和检查更新。
New
- A redesigned app that shows the connection as one path, iPhone → this phone → car, and checks each step live. Home shows three tiles whose links fill as the connection comes up, one headline and at most one action: Connect, the fix for the current step, Retry or Start now. The drawer below them (tap a tile or pull it up) lists every step; each step opens its details, why it matters and its action, such as turning on Bluetooth, opening the Wi-Fi or hotspot settings, pairing the iPhone, importing the identity, copying the page address or entering the Carlink code. A failure says what went wrong and what to do (for example, the iPhone did not answer over Bluetooth, or no car running Carlink was found), with its code and time. The running page uses the same view.
- Light and dark appearance, following the system.
- Car selection by brand, model and year in Settings → Car and screen: every XPeng model line sold in China with its model years, and the Tesla models. Built-in screen data is still only for the XPeng G6 2023. The guide now starts with Your car and needs a brand and a model (the year can stay Not sure). Setups without a car keep working; Home shows Choose your car until you pick one. Earlier choices carry over.
- Tesla: with a Tesla chosen, Settings → Car and screen → Tesla browser. The Tesla browser does not open local-network addresses, so this phone adds one through a local VPN (169.254.88.1 by default; nothing leaves the phone). Four ways to reach it: a trusted name or a direct address on that link-local address, or a TeslaMirror- or TeslaAndroid-style address. The trusted-name ways need Trusted HTTPS and open without a certificate warning. Needs wireless CarPlay, the Car browser output, and this phone's hotspot or Wi-Fi Direct; switching ways keeps CarPlay running.
- Settings → CarPlay picture → Frame rate: Auto (30 or 60 fps from the head unit's refresh rate) or 30–60 fps in steps of 5. The head-unit page shows and changes the same setting. A change restarts a running session once. It replaces the developer frame-rate override; an override that was on carries over.
- Settings → CarPlay picture → Carlink picture size: Automatic (the car's Carlink window, as before), six presets (1280×720, 1920×1080, 1280×800, 1920×720, 1024×600, 1024×768) and up to five custom sizes. The starred size is the default for every connection; choosing another one tries it for this connection only, restarting CarPlay if Carlink is running.
- Head-unit page: tapping the OpenXPlay icon in CarPlay opens the page's settings instead of this phone's home screen. They slide in from the right (half of an ultra-wide screen, two thirds of other landscape screens, all of a portrait one), with quick tiles for sound, full screen and fill, and menus for picture, sound and microphone, plugins and about; choice pages and segmented controls replace the drop-down lists. The floating gear is gone; before CarPlay plays, the status card has a settings button.
- Settings → Logs. The app keeps about the last 24 hours of its own logs on this phone; passwords, keys, phone numbers, names, messages and precise location are replaced before anything is stored. Export logs for the past 10 minutes, 30 minutes or 24 hours as a ZIP, then Save to a file on this phone (no network use) or Upload online and show QR code. An upload goes to logs.openxplay.org only after you agree to the privacy notice and gives a log ID and QR code for your bug report; the receipt can be viewed for 48 hours, and the logs are deleted within 72 hours.
- Settings → Configuration files: export and import a User configuration (connection, outputs, picture and the other settings, including developer and experimental options) and a Privacy configuration (the trusted HTTPS name, its certificate and keys, and saved DNS provider setups; keep this file private). Use them to move to another phone or to reinstall; importing a user configuration also completes the setup guide. iPhone pairing, Carlink car trust and the Apple accessory identity are not carried over.
- Settings → About → Check for updates, with a Stable or Beta channel: shows the newest version with its release notes in the app's language and downloads the APK in the browser. The app contacts GitHub only when you tap Check for updates.
- Settings → Experimental, for connection problems. Relay ↔ iPhone: Check and recover the iPhone Wi-Fi connection (when Wi-Fi connects but CarPlay does not start). Relay ↔ Head unit: Isolate the Carlink network, Wait for Carlink before connecting the iPhone, Remember the Bluetooth subscription method (skips a 2-second wait on cars such as the Xpeng G6), Keep scanning for the car, Record all Bluetooth advertisements (only with Carlink debug on) and Send this phone's Bluetooth address. Use experimental options and every option except Send this phone's Bluetooth address are on by default. Changes apply to the next connection.
Changes
- Carlink on Xiaomi phones with MIUI on Android 10 and 11: joining the head unit's Wi-Fi no longer fails after 12 seconds on a system confirmation that cannot be answered. Thanks to @hellowalker.
- While an output is on, the relay runs with a low-priority "OpenXPlay Relay" notification, so Carlink and the head-unit page keep working in the background and with the screen off. Before, HyperOS froze the app seconds after it left the screen, and Carlink could not find the car.
- Starting checks Bluetooth for wireless CarPlay and Carlink, and Wi-Fi for Wi-Fi Direct, Carlink and the car's hotspot. Connect with something still off waits and starts once it is on, instead of showing a dialog; an automatic start now waits the same way instead of failing; a session stopped because Bluetooth, Wi-Fi or the hotspot went off restarts once when it comes back.
- When no car screen is known yet, CarPlay waits up to 20 seconds for the car to report it, so it no longer restarts once the size arrives; Start now skips the wait.
- Home no longer says "Waiting for iPhone" while the iPhone is connecting: Home and the running page show the same stage (connecting over Bluetooth, starting CarPlay over Bluetooth or USB, waiting for the picture, reconnecting).
- The launch page is gone: the app opens on Home. With Connect automatically on, the Connect button counts down five seconds; Not now pauses it.
- A calmer guide: a progress bar, compact choices that expand only when selected, one network diagram for the chosen network, and a preparation page that lists only the steps still open.
- Lighter and smoother: idle pages no longer redraw continuously and the certificate is no longer decoded every 5 seconds, so the app uses far less CPU and battery while idle; opening Settings and going back is smoother.
- Long labels wrap instead of being cut off with "…", also with larger text.
- The Shared Wi-Fi network mode is now Use the car's hotspot (Settings → iPhone connection → Network): the iPhone and this phone both join the car's hotspot. The diagram shows the car as the hotspot, the waiting step names the car hotspot this phone is on, and the band field is now Hotspot band. The admin page still says Shared Wi-Fi.
- Developer options → Combine outputs replaces Both outputs at once: any outputs can run together, and at least one stays on. Existing choices carry over.
Notes
- This is the latest release; the latest-download link now gives 0.2.0.
- Wireless display (DLNA, Miracast) is shown as Coming soon in the guide and in Settings → Output, and cannot be chosen yet.
- The Experimental options start on, also after upgrading. If Carlink or wireless CarPlay connects worse than before, turn off Settings → Experimental → Use experimental options; your choices are kept.
- A configuration file exported by 0.2.0 with a car chosen does not import into older versions; older files import into 0.2.0.
- If CarPlay sound plays from the iPhone instead of the car, turn off Settings → Sound → CarPlay audio over the car's Bluetooth, or keep the iPhone paired with the car and choose Bluetooth as the car's audio source.
- Known issues: the Xpeng G6 does not tell the phone its new size when you switch its Carlink area during a session, and whether reconnecting makes it report the full-screen size is not verified yet; wired CarPlay with a USB-C iPhone on a USB-C to USB-C cable usually does not work (use an OTG adapter or wireless); some phones turn Wi-Fi off when their hotspot is on, and Carlink needs both; navigation prompts and ringtones over Carlink may be silent (not yet verified); on Carlink head units that need H.264, the phone's transcoder can stop after a timestamp jump and then sends the original stream; on the head-unit page, a tap meant to return to full screen may neither restore it nor reach CarPlay; the Tesla browser adaptation has not been tested in a Tesla yet, and on Android 13 and later connections to an address outside 169.254 may be dropped (the app warns); not yet tested in a car: Carlink picture sizes other than Automatic, the head-unit page settings from the OpenXPlay icon, and the Experimental options with wireless CarPlay and Carlink together.
- The Android app and the Linux relay are released separately (tags
android-v…andlinux-v…). The Android package name isorg.openxplay.relay. You supply your own Apple accessory (MFi) identity; no build contains one.
新增
- 重新设计的界面:把连接显示为一条路径(iPhone → 这台手机 → 车机),并实时检查每一步。首页有三个图块,连接逐步建立时它们之间的连线随之填满;只有一句标题和最多一个操作:「连接」、当前步骤的处理方法、「重试」或「现在开始」。下方的抽屉(轻触图块或上拉)列出全部步骤,每一步都能打开详情、说明为什么需要它,并提供对应操作,例如打开蓝牙、打开 Wi-Fi 或热点设置、配对 iPhone、导入身份、复制网页地址或输入 Carlink 配对码。出错时会说明出了什么问题、该怎么做(例如 iPhone 没有通过蓝牙回应,或蓝牙没有找到运行 Carlink 的车机),并附上错误代码和时间。运行页面使用同样的显示方式。
- 浅色和深色外观,跟随系统设置。
- 「设置 → 车型与屏幕」按品牌、车型和年份选车:包含小鹏在国内销售的所有车型及其年款,以及特斯拉车型。内置屏幕数据仍然只有小鹏 G6 2023 款。设置向导现在从「你的车」开始,需要选好品牌和车型(年份可以保持「不确定」)。没有选车的现有设置照常使用,首页会显示「选择你的车型」,直到你选好为止。之前的选择会保留。
- 特斯拉:选择特斯拉车型后,「设置 → 车型与屏幕 → 特斯拉浏览器适配」。特斯拉的浏览器不能打开局域网地址,所以这台手机通过本地 VPN 加上一个地址(默认 169.254.88.1,数据不会离开手机)。有四种访问方式:在这个链路本地地址上使用可信域名或直接地址,或者 TeslaMirror 方式、TeslaAndroid 方式的地址。使用可信域名的方式需要先设置可信 HTTPS,打开时不会出现证书警告。需要无线 CarPlay、「车载浏览器」输出,以及这台手机的热点或 Wi-Fi 直连;切换方式时 CarPlay 不会中断。
- 「设置 → CarPlay 画面 → 帧率」:「自动」(按车机屏幕刷新率选择 30 或 60 fps),或 30–60 fps,每档 5 fps。车机网页显示并修改同一个设置。更改后,运行中的会话会重启一次。它取代了开发者选项里的帧率覆盖;已打开的覆盖值会沿用。
- 「设置 → CarPlay 画面 → Carlink 画面尺寸」:「自动」(与之前一样按车机 Carlink 窗口),六个预设尺寸(1280×720、1920×1080、1280×800、1920×720、1024×600、1024×768),以及最多五个自定义尺寸。带星标的尺寸是每次连接的默认值;选择其他尺寸只在本次连接中试用,Carlink 正在运行时会重启 CarPlay。
- 车机网页:在 CarPlay 里轻触 OpenXPlay 图标会打开网页的设置,不再跳到这台手机的桌面。设置从右侧滑出(超宽屏占一半,其他横屏占三分之二,竖屏占满),有声音、全屏、填满三个快捷按钮,以及画面、声音与麦克风、插件、关于等菜单;下拉列表改为选项页和分段按钮。悬浮的齿轮按钮已去掉;CarPlay 开始播放前,状态卡片上有设置按钮。
- 「设置 → 日志」。App 在这台手机上保存自己最近约 24 小时的日志;密码、密钥、电话号码、姓名、消息和精确位置在存储前就会被替换。「导出日志」可选择过去 10 分钟、30 分钟或 24 小时,压缩为 ZIP,然后选择「保存到本机文件」(不联网)或「联网上传并显示二维码」。只有你同意隐私说明后才会上传到 logs.openxplay.org,上传后会给出日志 ID 和二维码,方便附在问题反馈里;回执在 48 小时内可以查看,日志在 72 小时内删除。
- 「设置 → 配置文件」:导出和导入「用户配置」(连接方式、输出、画面等设置,包括开发者选项和实验功能)和「隐私配置」(可信 HTTPS 域名、证书和密钥,以及已保存的域名服务商设置;请妥善保管此文件)。可用于换手机或重装;导入用户配置后,设置向导也会视为完成。iPhone 配对、Carlink 车机信任和 Apple 配件身份不会随之迁移。
- 「设置 → 关于 → 检查更新」,可选「稳定版」或「测试版」:显示最新版本及界面语言的更新内容,并在浏览器中下载 APK。只有在你轻触「检查更新」时,App 才会连接 GitHub。
- 「设置 → 实验功能」,用于排查连接问题。「中继 ↔ iPhone」:「检查并恢复 iPhone 的 Wi-Fi 连接」(Wi-Fi 已连接却无法进入 CarPlay 时使用)。「中继 ↔ 车机」:「隔离 Carlink 网络」「先连接 Carlink,再连接 iPhone」「记住蓝牙订阅方式」(对小鹏 G6 等车跳过 2 秒等待)「持续扫描车机」「记录所有蓝牙广播」(需打开「Carlink 调试」)和「发送本机蓝牙地址」。「使用实验功能」和除「发送本机蓝牙地址」以外的所有选项默认打开。更改在下一次连接时生效。
变更
- 搭载 MIUI 的小米手机(Android 10 和 11)使用 Carlink 时,加入车机 Wi-Fi 不会再因为一个无法响应的系统确认框而在 12 秒后失败。感谢 @hellowalker。
- 打开任一输出时,中继会带着一个低优先级的「OpenXPlay Relay」通知运行,切到后台或熄屏后 Carlink 和车机网页都能继续工作。之前 HyperOS 会在 App 离开屏幕几秒后将其冻结,Carlink 因此找不到车机。
- 启动时会检查蓝牙(无线 CarPlay 和 Carlink 需要)和 Wi-Fi(Wi-Fi 直连、Carlink 和使用车机热点时需要)。点「连接」时如果还有未打开的,不再弹出对话框,而是等它们打开后自动开始;自动启动现在也同样等待,不再直接失败;因蓝牙、Wi-Fi 或热点关闭而停止的会话,在它们恢复后会重新启动一次。
- 还不知道车机屏幕尺寸时,CarPlay 最多等待 20 秒让车机报告尺寸,收到尺寸后不再重启;「现在开始」可跳过等待。
- iPhone 正在连接时,首页不再显示「等待 iPhone」:首页和运行页面显示同样的阶段(正在通过蓝牙连接、已通过蓝牙或 USB 连接并正在启动 CarPlay、等待画面、正在重新连接)。
- 去掉了启动页:打开 App 直接进入首页。打开「自动连接」时,「连接」按钮会倒数五秒,点「暂不」可暂停。
- 更简洁的设置向导:使用进度条;选项更紧凑,只有选中的一项才展开说明;网络页只为所选网络画一张示意图;准备页只列出尚未完成的步骤。
- 更轻快流畅:页面空闲时不再持续重绘,也不再每 5 秒解析一次证书,空闲时 CPU 和电量消耗大幅降低;打开设置再返回更流畅。
- 较长的文字会换行显示,不再被「…」截断,调大字号时也一样。
- 网络方式「共用 Wi-Fi」改名为「使用车机热点」(「设置 → iPhone 连接方式 → 网络」):iPhone 和这台手机都连接车机热点。示意图把车机画为热点,等待步骤会写出这台手机所连的车机热点名称,频段一项改为「热点频段」。管理页仍显示「共用 Wi-Fi」。
- 「开发者选项 → 同时使用多种输出」取代「同时使用两种输出」:任意输出都可以同时运行,至少保留一个。原有选择会保留。
说明
- 这是最新的正式版本,「下载最新版」链接现在指向 0.2.0。
- 无线投屏(DLNA、Miracast)在设置向导和「设置 → 输出」中显示为「待开放」,暂时不能选择。
- 实验功能默认打开,升级后也一样。如果 Carlink 或无线 CarPlay 比之前更难连上,请关闭「设置 → 实验功能 → 使用实验功能」,你的各项选择会保留。
- 0.2.0 导出的配置文件如果选了车型,无法导入旧版本;旧版本的配置文件可以导入 0.2.0。
- 如果 CarPlay 声音从 iPhone 播放而不是从车里播放,请关闭「设置 → 声音 → 通过车辆蓝牙播放 CarPlay 音频」,或保持 iPhone 与车辆配对并将车辆音源设为蓝牙。
- 已知问题:会话中切换 Carlink 显示区域时,小鹏 G6 不会把新尺寸告诉手机,重新连接后是否会报出全屏尺寸还没有验证;USB-C 接口的 iPhone 用两头都是 USB-C 的线做有线 CarPlay 通常连不上(请改用 OTG 转接头或无线连接);有些手机打开热点后会自动关闭 Wi-Fi,而 Carlink 需要两者都打开;Carlink 上的导航播报和铃声可能没有声音(尚未验证);在需要 H.264 的 Carlink 车机上,手机转码在时间戳跳变后可能停止,随后改为发送原始画面;在车机网页上,为恢复全屏而轻触屏幕时,可能既没有恢复全屏,也没有传到 CarPlay;特斯拉浏览器适配还没有在特斯拉上测试,而且在 Android 13 及更高版本上,发往 169.254 以外地址的连接可能会被丢弃(App 会提示);尚未在车上测试:「自动」以外的 Carlink 画面尺寸、通过 OpenXPlay 图标打开车机网页设置,以及同时使用无线 CarPlay 和 Carlink 时的实验功能。
- 安卓应用和 Linux 中继分开发布(标签分别为
android-v…和linux-v…)。安卓应用的包名是org.openxplay.relay。Apple 配件(MFi)身份需要你自己提供,任何构建都不包含。
Built from OpenXPlay-Relay@ed9dd0908c1f, OpenXPlay-Stream@6d86149bfdd6 and OpenXPlay-DiPlay@46146a6d7f0d.
openxplay-relay-0.2.0.apk: the Android app. Signing certificate SHA-256:fca7b492d0feb3a8401eba8dec5b71766415ea6154aed36c9d1838c4c6a186dbopenxplay-relay.apk: the same app under a fixed name, for the latest-download link.SHA256SUMS: SHA-256 checksums of these files.
Setup: https://openxplay.org/en/quick-start · 设置:https://openxplay.org/quick-start. No build contains an Apple accessory (MFi) identity; supply your own.