手机里熟悉的地图,iPhone 上的 CarPlay,电脑上的演示画面——打开车机浏览器,就有机会把它们带到大屏上。
特投屏是一款安装在 Android 手机上的本地投屏工具。安卓手机负责运行应用、接收画面并提供网页服务,特斯拉或同一局域网内的设备只需打开浏览器,不必在车机上安装客户端。
不是只能“看见手机屏幕”:安卓应用投屏使用独立虚拟屏,支持浏览器触控;CarPlay 提供无线与独立 USB 两种入口;AirPlay 则让 iPhone、iPad 和 Mac 的画面也能来到同一块大屏。
当前版本:5.0.2(versionCode 26102501)· Android 10 及以上 · 默认安装包为 arm64-v8a
本软件永久免费:地图投屏、无线 CarPlay、USB CarPlay 和 AirPlay 全部免费、不限时,无需会员、解锁密码或赞助。 原会员页已改为自愿赞助页,提供 5/15/25/55 元选择,与 CP搭子使用相同微信收款码及支付宝服务地址。如果觉得不错,欢迎支持持续开发;赞助不购买任何权益,不影响任何功能。微信扫码需手动输入所选金额,不会自动回传到账结果;支付宝在线支付须先部署新版后端。 CarPlay 功能免费不代表免认证:使用前仍需配置有效且有权使用的 MFi 身份、认证设备或服务,安装包不提供证书与私钥。
| 你想要的体验 | 选择哪个页面 | 能做什么 |
|---|---|---|
| 在车机大屏用熟悉的安卓地图 | 投屏 | 选择已安装的高德、百度、腾讯等兼容应用,通过浏览器查看、点击和拖动。 |
| 不插 iPhone 数据线,使用 CarPlay | CarPlay | 配置认证、蓝牙与无线网络,将无线 CarPlay 宿主画面送到浏览器,并支持触控。 |
| 用 USB 数据线连接 iPhone,体验浏览器 CarPlay | USB | 安卓手机作为独立有线接收器,提供 8088 网页入口、视频、双指触控和可选浏览器声音。 |
| 分享 iPhone、iPad 或 Mac 的屏幕 | AirPlay | 接收屏幕镜像,等比显示到浏览器,支持浏览器声音;不支持反控发送设备。 |
| 第一次使用,不知道缺哪一步 | 准备 | 检查系统、通知、网络、地图与 Stellar/Shizuku 授权,并提供配置引导。 |
- 车机只需浏览器。 特斯拉使用固定地址,也可以让电脑、平板等同一局域网设备访问手机显示的地址。
- 安卓投屏拥有独立画面。 目标应用运行在虚拟显示屏,不必一直占着手机主屏幕;兼容应用支持浏览器触控回传。
- 无线与有线,入口分明。 CarPlay 页面用于无线连接,USB 页面负责有线接收,不必为无线模式检查 iPhone 数据线。
- USB 优先高清直传。 浏览器支持时直接播放 iPhone 的 H.264/H.265 视频,避免 JPEG 二次压缩;不兼容时自动回退 MJPEG,也可手动选择兼容模式。
- 为不同大屏选择合适比例。 USB 提供 Tesla 5:4、16:9 与 1:1 三种配置,停止接收后即可切换,浏览器保持等比显示。
- 连接过程看得见。 USB 页面显示认证、连接、视频与浏览器状态,支持复制脱敏日志,排查时不用只面对一块黑屏。
高清、音频和触控效果取决于手机、发送设备、网络及浏览器能力,不能保证所有车型或设备完全一致。
你需要一部 Android 10 及以上手机,以及能访问手机网络地址的车机或其他设备浏览器。iPhone 不能单独运行这款 Android App;使用 CarPlay 或 AirPlay 时,它是连接到安卓接收端的发送设备。
| 模式 | 额外准备 | 是否需要 Stellar / Shizuku |
|---|---|---|
| 安卓应用投屏 | 手机已安装并初始化目标应用 | 需要 |
| 无线 CarPlay 浏览器 | 有效认证、iPhone 蓝牙配对、无线网络/热点配置 | 需要,当前浏览器路径使用虚拟屏 |
| 独立 USB CarPlay | 有权使用的本地认证文件、USB OTG 数据线、USB 与 VPN 授权 | 不需要 |
| AirPlay 镜像 | 支持 AirPlay 的 iPhone、iPad 或 Mac,以及可互通网络 | 不需要 |
两种网络方式:
| 方式 | 怎样连接 | 浏览器地址 |
|---|---|---|
| Tesla 固定地址 | 让车机连接安卓手机热点,按 App 提示准备网络并授权 VPN | 普通投屏通常为 http://99.99.99.99:8080;USB 为 http://99.99.99.99:8088 |
| 局域网 | 手机、发送设备和浏览器设备连接可互通的同一网络 | 使用 App 显示的手机 IP 与端口 |
固定地址就绪不代表热点已经打开。 请确认热点实际开启、车机已连接。普通投屏端口被占用时会使用备用端口,始终以 App 显示的完整地址为准;USB 固定使用 8088。
- 在安卓手机安装要投屏的应用,至少打开一次,完成初始化与必要授权。
- 安装 Stellar 或 Shizuku,按工具提示配对、启动服务。在特投屏 准备 页完成特权授权;页面提供 Stellar 首次配置引导。
- 打开 投屏,点击六个自定义位置添加应用,再选择目标以及 Tesla 或局域网模式。六个位置均可更换或清除,原先的固定地图应用也可自行添加;升级保留已有自定义配置。浏览器 Dock 折叠后,展开按钮位于左下角。
- 点击 免费开始投屏,在车机浏览器打开 App 显示的地址。
- 画面出现后,通过浏览器点击、拖动与返回操作目标应用。
Android 11 及以上通常可使用无线调试配对;Android 10 的 Shizuku 通常需要电脑 ADB 启动。手机重启或特权服务被系统停止后,需要重新启动该服务。
不同应用对虚拟屏的支持程度不同;应用已安装,不等于一定可以正常投屏。
- 在手机打开 CarPlay 设置,完成定位、蓝牙、附近设备、麦克风等所需授权。
- 配置有效认证。选择本地认证时,在宿主设置中点击 Import key and certificate,依次导入有权使用的
identity.pk8与匹配的certificate.p7b。 - 在安卓蓝牙设置中与 iPhone 配对;必要时在宿主 Paired iPhone (Bluetooth) 中明确选择该设备。
- Tesla 模式在宿主设置中选择 MANUAL 热点,填写与安卓手机热点一致的 SSID、密码和安全类型,并让车机连接该热点。局域网模式可按宿主设置选择相应无线网络方式。
- 完成准备页的 Stellar/Shizuku 授权,回到 CarPlay 免费启动,在车机浏览器打开 App 显示的地址。
无线 CarPlay 不要求插入 iPhone USB 数据线。 蓝牙配对完成、本地文件校验通过,都不等于 CarPlay 会话已经连接;请以实际会话与画面状态为准。
- 先在手机 CarPlay 设置中导入有权使用的本地 MFi 私钥与匹配证书。
- 打开 USB,选择画面比例:Tesla 5:4(1120×896)、16:9(1280×720) 或 1:1(1024×1024)。
- 使用支持数据传输的 USB OTG 连接方式接入 iPhone,点击 连接 USB iPhone 并启动浏览器,按提示允许 USB 访问与 VPN 授权。
- 浏览器打开
http://手机IP:8088;Tesla 模式打开http://99.99.99.99:8088。直接输入 IP 和端口,无需 token。 Tesla 模式仍需确认手机热点已开启、车机已连接。 - 默认声音由手机播放。想让浏览器播放,点击网页 开启声音;点击 手机播放 或关闭网页可恢复手机输出。
- 若浏览器不支持高清解码,使用自动回退或手动 兼容模式。遇到问题,查看 App 的连接日志或网页 日志。
USB 接收不需要 Stellar/Shizuku,也不会创建安卓虚拟显示屏。它与普通无线 CarPlay 浏览器路径是不同模式。
H.264/H.265 直传通过浏览器 MSE 播放;安全上下文且支持时优先使用 WebCodecs。浏览器不支持对应编码时保留 MJPEG。真实 iPhone、USB 供电/枚举及 Tesla 浏览器兼容性需要对应设备验证。
- Tesla 模式让发送设备和车机连接安卓手机热点;局域网模式让三者连接同一可互通网络。
- 打开 AirPlay,按提示开启接收与浏览器入口,首次使用固定地址时允许 VPN 授权。
- 先在车机浏览器打开 App 显示的地址,网页会等待发送设备连接。
- 在 iPhone、iPad 或 Mac 控制中心打开 屏幕镜像,选择 特投屏 AirPlay。
- 连接后画面自动显示;浏览器提示声音可用时,点击 开启声音。
竖屏内容保持原比例,可能保留黑边;横屏内容能更充分地利用大屏。AirPlay 不支持浏览器反控 iPhone,也不保证能显示受 DRM 保护的流媒体内容。
发送设备断开后接收入口保持运行,再次连接可恢复。接收与浏览器播放均永久免费、不限时,不再记录每日试用额度。
投屏服务设计为在后台运行,不需要一直点亮安卓手机屏幕。地图投屏(含无线 CarPlay 浏览器)、AirPlay 与 USB 接收使用前台服务和 CPU 部分唤醒锁;锁屏不会主动停止服务。
此前 Android 测试手机上,地图投屏在熄屏 35 秒后仍持续输出新帧。这不是所有手机的长期锁屏保证:厂商省电、后台清理、热点自动关闭或特权服务退出仍可能中断连接;无线/USB CarPlay 与 AirPlay 的真实发送设备锁屏回归仍需硬件验证。请允许后台运行,保持网络连接,勿强制停止服务。5.0 不设任何每日投屏时长限制。
先确认浏览器已连到正确的手机热点或局域网,地址和端口与 App 一致,再看 App 是否已收到发送设备的视频。USB 可查看认证与连接日志,并尝试兼容模式。公共 Wi-Fi 的设备隔离、热点自动关闭、USB 线不支持数据,都可能导致连接失败。
不需要。所有功能永久免费、不限时。 升级后不再读取会员权益、本地解锁状态或已用完的每日额度,也不依赖赞助服务器来允许投屏。赞助纯属自愿;CarPlay 认证材料、系统授权和网络配置仍由用户准备。
正式安装包和未启用本机身份注入的普通 debug 包都不包含认证证书或私钥。用户需自行准备有权使用的身份或认证设备/服务。导入只验证文件格式及密钥匹配,不能保证 iPhone 信任该身份。请勿公开或转发私钥。
不同模式会竞争 USB、VPN、端口及媒体资源,App 在切换相关页面时会停止冲突服务。建议一次只使用一种投屏模式。USB 在转到准备或赞助页时可继续运行,停止接收请使用 USB 页的停止按钮。
同包名、同签名且版本号更高的正式 APK 可直接覆盖更新,通常无需卸载。请以实际 Releases 中提供的安装包为准;卸载可能清除设置及已导入的本地身份。
投屏媒体和控制通道由手机本地服务提供,通过局域网传输;自愿赞助与更新功能会访问其配置的服务端。HTTP 投屏未加密,USB 入口无需 token,只在可信网络开放,不要将端口映射到公网。不使用时停止服务。
车辆应在允许使用浏览器的状态下使用本工具;首次配置、排障及非驾驶所需操作请停车完成,驾驶员不得分心。特投屏不替代车辆安全系统,也不保证所有车型、系统版本、应用与编码格式兼容。
Android 最低安装版本为 10;较老版本系统及不同厂商机型仍需实机验证。特斯拉浏览器能力可能随车型与系统版本变化,画面比例、声音和高清解码以实际设备表现为准。
主应用为 Android 工程,carplay-shared / carplay-host 提供内置 CarPlay 能力,web/commerce 为独立赞助与更新服务,并兼容历史会员订单。研究资料不等于生产实现。
在线赞助提供 5、15、25、55 元四档支付宝选项,使用原支付通道,以独立的 sponsor_ 选项创建赞助订单。将新版 web/commerce 服务和 catalog.json 部署到已配置的服务器,并在服务端环境变量中配置 Z-Pay 商户参数后即可收取赞助;支付回调仍校验签名、金额并保持幂等。App 不会内置或请求商户密钥。旧服务未升级或未配置支付时,赞助页明确提示暂不可用,所有投屏功能不受影响。旧会员数据无需删除,新赞助订单不创建或延长会员权益。
在仓库根目录运行:
# Android 与 CarPlay 单元测试
.\gradlew.bat :app:testDebugUnitTest :carplay-shared:testDebugUnitTest :carplay-host:testDebugUnitTest
# 调试与发布构建
.\gradlew.bat :app:assembleDebug
.\gradlew.bat :app:assembleRelease
# Android 真机测试
.\gradlew.bat :app:connectedDebugAndroidTestmacOS / Linux 使用 ./gradlew 替代 .\gradlew.bat。默认 ABI 为 arm64-v8a;需要双 ABI 时可添加 -Pnavipilot.abis="arm64-v8a,armeabi-v7a"。
发布 APK 输出到 app/build/outputs/apk/release/app-release.apk,需本机签名配置。local.properties、签名凭据、支付密钥、会员令牌及 MFi 私钥不得提交或公开。开发时的本地身份注入仅供授权的私有 debug 测试,不得用于公开分发。
特别感谢 程序媛小姐姐及其 xcertplay 项目。特投屏的无线与 USB CarPlay 能力基于 xcertplay 进行集成、适配和完善;也感谢 LoopLink 提供的浏览器接收实现与研究参考。xcertplay 遵循 GPLv3,第三方许可证保留在 carplay-shared/LICENSE 与 APK 的 third_party_licenses 资源中。
当前包含 CarPlay 的集成版本按 GNU GPL v3.0 开源,详见根目录 LICENSE。远端原有 MIT 许可及版权声明保留在 LICENSE-MIT,适用于原先以 MIT 发布的材料,不代表新增第三方 GPL 代码也按 MIT 授权。CarPlay 代码保留上游版权与许可;其他第三方组件仍以各自许可证为准。发布融合 APK 时应一并提供对应源码及许可证。开源不等于免除第三方商标、认证、内容版权或服务条款义务。
公开仓库不包含发布签名文件及其密码、支付商户密钥、MFi 身份私钥/证书、本机 local.properties、生产数据库或发布 APK。 商户参数请仅通过服务端环境变量配置;本地构建签名使用未跟踪的 local.properties。
赞助目录和支付后端位于 web/commerce。保留的旧套餐只为兼容历史订单,赞助订单不会授予或延长 License。若要启用实际收款,部署新版服务并在部署环境中设置 ZPAY_PID、ZPAY_KEY、APP_PUBLIC_URL;不得把真实值写入 .env、代码、APK 或 Git。模板 .env.example 只含空值/示例,可安全公开。收款资格、税务与支付机构条款由运营方自行确认。
本地没有发布签名配置时,可构建未签名/debug 包进行测试;正式签名配置仅保存在本机 local.properties 或 CI secret 中,严禁提交 keystore 或密码。