Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

dji-4g-vohive-mac

在 Mac(Apple Silicon / Intel 通用)上,用 UTM 跑一个 Linux 虚拟机,把**大疆 4G 模块(1 代,本质移远 Quectel EG25-G)**的 USB 身份从大疆私有 2ca3:4006 永久改成移远 Quectel EC25 的 2C7C:0125,并在该 Linux 里一键部署 vohive 短信/网络/eSIM 管理平台的全套步骤。

这个仓库做什么

  • 给 Mac 用户提供一条从零到能访问 vohive 后台的可执行路径,无需另一台 Linux 真机。
  • 解决大疆 4G 模块默认 VID/PID 是大疆私有、通用驱动不认的问题——通过发 AT 指令 AT+QCFG="usbcfg",... 把模块内部 USB 身份永久改写为移远 EC25,改一次终身有效。
  • 同时覆盖 Apple Silicon(arm64)Intel(x86_64) 两种 Mac:两者只有 ISO 和 VM 架构不同,VM 内所有操作完全一致。
  • 包含 USB 直通、改身份后重新枚举断直通的坑及处理、验证清单、维护命令、方案选型对比。

项目依赖

本仓库本身只是一份操作手册(README),实际起作用的是下面这个上游项目,部署步骤会调用它的一键安装脚本:

iniwex5/vohive-release

VoHive 是面向高通 4G/5G 模组场景的一体化管理与代理平台,核心能力:

  • 网页 / Bot 收发短信
  • 多卡统一管理
  • 实体 eSIM / eUICC 管理(加卡、切卡、删卡)
  • 转量代理:支持 SOCKS5/HTTP 实例,按设备网卡强绑定出站
  • TelegramBot / 飞书Bot / QQBot 远程控制
  • 条件满足时启用 VoWiFi,并通过 /vocall 发起 VoWiFi 模拟外呼

适用环境: Linux(Debian/Ubuntu/树莓派/NAS)+ 移远 EC20CE / EM500Q / 高通 410 WIFI 板 / 各类高通 4G USB 模组(需 SIM 卡槽或带 SIM 卡槽的 USB 底板)。本仓库的作用正是让 Mac 用户通过 UTM Linux VM + USB 直通,把大疆 4G 模块变成 VoHive 能认的 Quectel EC25,从而跑起 VoHive。

部署方式: 一键脚本(本仓库采用)或 Docker Compose。

curl -fsSL https://raw.githubusercontent.com/iniwex5/vohive-release/master/install.sh | bash

安装后:二进制 /opt/vohive/bin/vohive,配置 /opt/vohive/config/config.yaml,systemd 服务 vohive,后台 http://<IP>:7575(默认 admin/admin)。

机器人常用命令: /list 列设备、/sms 设备ID 看短信、/send 设备ID 号码 内容 发短信、/rotate 设备ID 换 IP、/esim/switch 切 eSIM、/vocall VoWiFi 呼叫。

⚠️ VoHive 已禁止国内运营商卡发起 VoWiFi;VoWiFi 支持的运营商列表(CTE UK / giffgaff UK / Vodafone UK/DE / Telekom DE / O2 DE / T-Mobile US 等)见上游 README。


完整步骤

来源教程:https://linux.do/t/topic/2486016(标题:《大疆4G模块修改设备ID并一键部署vohive平台教程》)

本机为 M3 Pro,对应方案 A。两种芯片先看第 0.5 节选方案。

0. 为什么这么做(背景与约束)

  • 大疆 4G 模块(1 代,约 30~40 元)本质是移远 Quectel EG25-G,但默认 USB VID/PID 是大疆私有的 2ca3:4006,通用驱动不认。
  • 教程通过发 AT 指令把模块内部 USB 身份永久改写成移远 EC25 的 2C7C:0125,从而接入 vohive 平台。
  • 教程全部命令是 Linux 专用modprobe option/sys/bus/usb-serial/.../new_id/dev/ttyUSB2apt-getlsusb、systemd 服务),macOS 没有等价物,不能直接在 Mac 上照搬。
  • vohive 官方 install.sh 只支持 Linuxos != linux 直接退出),但支持 arm64(会下载 vohive_<ver>_linux_arm64,systemd 起服务)。所以在 M3 上跑 arm64 Linux 虚拟机是原生速度,不用 x86 模拟。
  • 硬约束是 USB passthrough:必须把大疆这个 USB 设备直通进 Linux VM。这排除了 OrbStack、Multipass、Docker Desktop(都不支持任意 USB 设备直通)。免费且支持 USB 直通的最佳选择是 UTM(基于 QEMU)。
  • 改身份这步是一次性的、改的是模块内部 NV,改一次终身有效;改完模块插任何机器都是 Quectel EC25 身份。

0.5. 架构选择(按你的 Mac 芯片二选一)

先在 Mac 终端确认芯片:

uname -m
# 输出 arm64  → Apple Silicon,选 A
# 输出 x86_64 → Intel,选 B
方案 A:Apple Silicon方案 B:Intel Mac
VM 架构aarch64(原生 ARM 虚拟化)x86_64(原生虚拟化,Hypervisor.framework)
Ubuntu ISO 文件名ubuntu-24.04-live-server-arm64.isoubuntu-24.04-live-server-amd64.iso
ISO 下载地址https://cdimage.ubuntu.com/releases/24.04/release/ubuntu-24.04-live-server-arm64.isohttps://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso
vohive 二进制脚本自动下 vohive_<ver>_linux_arm64脚本自动下 vohive_<ver>_linux_amd64
UTM 虚拟化方式Virtualize(不要选 Emulate)Virtualize

后面第 2、3 步按你选的方案 A/B 取对应值;第 4 步起(USB 直通、改身份、装 vohive、验证)两种方案完全一致,没有任何差别。

1. 装 UTM(免费)

UTM 是 macOS 上基于 QEMU 的虚拟化前端,原生支持 Apple Silicon 的 ARM 虚拟化与 USB 设备直通。

brew install --cask utm

打开一次 UTM,确认能启动(macOS 可能要求在「系统设置 → 隐私与安全性」里允许运行)。

2. 下载 Ubuntu Server 24.04 ISO(按第 0.5 节选的方案)

方案 A(Apple Silicon / arm64):

curl -L -o ~/Downloads/ubuntu-24.04-live-server-arm64.iso \
  https://cdimage.ubuntu.com/releases/24.04/release/ubuntu-24.04-live-server-arm64.iso

方案 B(Intel / amd64):

curl -L -o ~/Downloads/ubuntu-24.04-live-server-amd64.iso \
  https://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso

下载完成后 ls -lh ~/Downloads/ubuntu-24.04-live-server-*.iso 确认大小约 2GB+。

3. 在 UTM 里创建并安装 Linux 虚拟机

  1. 打开 UTM → 顶部 新建虚拟机。
  2. 选择 Virtualize(不要选 Emulate)——原生虚拟化,性能接近原生。
  3. 架构按第 0.5 节选:方案 A 选 aarch64方案 B 选 x86_64
  4. 系统类型选 Debian/Ubuntu
  5. 内存 2 GB、CPU 2 核、磁盘 20 GB(跑 vohive 足够)。
  6. 「CD/DVD」挂载第 2 步下载的 ISO。
  7. 网络保留默认(NAT,UTM 会给 VM 分一个 192.168.x.x 的 DHCP 地址)。
  8. 启动 VM,按 Ubuntu 安装流程走:
    • 语言/键盘默认即可
    • 安装类型选 Ubuntu Server(最小化,无桌面)
    • 务必勾选安装 OpenSSH server(方便从 Mac 终端 ssh 进去操作)
    • 用户名/密码自行设置,记下来
  9. 装完重启,拔掉 ISO(UTM 里弹出 CD)。

从 Mac ssh 进 VM(推荐,后面命令都在这里跑)

在 VM 控制台里先看 IP:

ip a

拿到 192.168.x.x 后,在 Mac 终端:

ssh <ubuntu用户名>@192.168.x.x

后续所有命令都在这个 ssh 会话里执行。

4. 把大疆 4G 模块直通进 VM

  1. 把大疆 4G 模块 USB 插到 Mac。
  2. UTM → 选中该 VM → 设置 → USB 选项卡 → 勾选大疆设备(显示为 VID:PID 2ca3:4006)做 passthrough。
  3. 回到 VM(或 ssh),确认设备已进来:
lsusb
# 应能看到一行含 2ca3:4006

若 VM 里没装 lsusbsudo apt-get install usbutils -y

5. 改大疆模块设备 ID(改成移远 EC25 身份)

在 VM 里依次执行(教程原样):

# 0. 装 socat(发 AT 指令用)
sudo apt-get update && sudo apt-get install socat -y

# 1. 临时加载 option 驱动模块
sudo modprobe option

# 2. 把大疆当前识别码 2ca3:4006 写入 option 驱动,生成串口文件
echo 2ca3 4006 | sudo tee /sys/bus/usb-serial/drivers/option1/new_id

# 3. 通过 /dev/ttyUSB2 发 AT 指令,永久改 USB 身份为移远 2C7C:0125
echo 'AT+QCFG="usbcfg",0x2C7C,0x0125,1,1,1,1,1,0,0' | socat - /dev/ttyUSB2,crnl

# 4. 软重启模块使配置生效
echo 'AT+CFUN=1,1' | socat - /dev/ttyUSB2,crnl

等几秒,模块重新初始化后查看:

lsusb
# 应显示:2c7c:0125 Quectel Wireless Solutions Co., Ltd. EC25 LTE modem

⚠️ 关键坑:USB 重新枚举会断开直通

AT+CFUN=1,1 让模块软重启,VID/PID 从 2ca3:4006 变成 2c7c:0125。如果 UTM 是按 VID/PID 绑定直通的,这一瞬间直通会断开,lsusb 在 VM 里可能短暂看不到设备。

处理方式:

  • 在 UTM 里把直通规则改成绑定到新的 Quectel 设备 2c7c:0125,或绑定到物理 USB 端口(更稳,重新枚举不会丢)。
  • 重新勾选一次直通,模块就永久留在 VM 里给 vohive 用。
  • 改身份是一次性的;改完后这个模块插任何机器都是 Quectel EC25 身份。

6. 一键部署 vohive 平台

模块身份改完且直通稳定后,在 VM 里执行:

curl -fsSL https://raw.githubusercontent.com/iniwex5/vohive-release/master/install.sh | bash

脚本会:

  • 下载 vohive_<版本>_linux_<arch> 二进制到 /opt/vohive/bin/vohive
  • 生成配置 /opt/vohive/config/config.yaml(默认 Web 账号密码 admin / admin
  • 注册 systemd 服务 vohive.service 并启动
  • 数据/日志在 /opt/vohive/data/opt/vohive/logs

访问后台

从 Mac 浏览器打开:

http://<VM的IP>:7575

默认 admin / admin登录后立即改密码

7. 验证清单

  • VM 里 lsusb 能看到 2c7c:0125 Quectel ... EC25 LTE modem
  • VM 里 systemctl status vohive 显示 active (running)
  • Mac 浏览器访问 http://<VM-IP>:7575 能出登录页
  • admin/admin 登录成功并改密
  • vohive 后台能识别到 4G 模块、看到信号/短信等功能

8. 维护与可选操作

更新 vohive

curl -fsSL https://raw.githubusercontent.com/iniwex5/vohive-release/master/install.sh | bash

脚本会自动备份旧二进制到 /opt/vohive/bin/vohive.bak 再覆盖。

卸载 vohive

curl -fsSL https://raw.githubusercontent.com/iniwex5/vohive-release/master/uninstall.sh | bash

不用 systemd 的环境(如容器/WSL,本方案用不到)

curl -fsSL https://raw.githubusercontent.com/iniwex5/vohive-release/master/install.sh | bash -s -- --no-systemd
# 手动启动:/opt/vohive/bin/vohive -c /opt/vohive/config/config.yaml

查看日志

journalctl -u vohive -f
# 或
tail -f /opt/vohive/logs/*.log

让 Mac 开机后自动连 VM

  • UTM 设置里可勾选该 VM「开机自动启动」。
  • Mac 这边可加一条 ssh config,方便 ssh vohive 直连。

如果想把模块改回大疆身份(基本不需要)

把第 5 步的 AT 指令 VID/PID 换回原值即可:

echo 'AT+QCFG="usbcfg",0x2CA3,0x4006,1,1,1,1,1,0,0' | socat - /dev/ttyUSB2,crnl
echo 'AT+CFUN=1,1' | socat - /dev/ttyUSB2,crnl

9. 方案选型对比(为什么选 UTM)

方案能跑对应架构 LinuxUSB 直通备注
UTMarm64 + amd64 均可(原生 Virtualize)支持免费,本方案首选
Parallels / VMware Fusion支持付费(Fusion Pro 个人版免费),更省心但非必要
OrbStack❌ 不支持轻量但无 USB 直通,排除
Multipass❌ 不支持无 USB 直通,排除
Docker Desktop❌ 困难任意 USB 直通很痛,排除

10. 速查:从零到能访问 vohive 的最短路径

# Mac 上:先 uname -m 确认芯片,选方案 A(arm64) 或 B(amd64)
brew install --cask utm

# 方案 A(Apple Silicon):
curl -L -o ~/Downloads/ubuntu-24.04-live-server-arm64.iso \
  https://cdimage.ubuntu.com/releases/24.04/release/ubuntu-24.04-live-server-arm64.iso
# 方案 B(Intel):
curl -L -o ~/Downloads/ubuntu-24.04-live-server-amd64.iso \
  https://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso

# → UTM 图形界面建对应架构的 Ubuntu Server VM(Virtualize),装 OpenSSH
# → UTM USB 选项卡勾选大疆 2ca3:4006 直通
# → ssh 进 VM

# VM 里:
sudo apt-get update && sudo apt-get install -y socat usbutils
sudo modprobe option
echo 2ca3 4006 | sudo tee /sys/bus/usb-serial/drivers/option1/new_id
echo 'AT+QCFG="usbcfg",0x2C7C,0x0125,1,1,1,1,1,0,0' | socat - /dev/ttyUSB2,crnl
echo 'AT+CFUN=1,1' | socat - /dev/ttyUSB2,crnl
lsusb   # → 2c7c:0125 Quectel EC25
# → UTM 把直通重新绑到 2c7c:0125 / 物理端口
curl -fsSL https://raw.githubusercontent.com/iniwex5/vohive-release/master/install.sh | bash
# → Mac 浏览器开 http://<VM-IP>:7575,admin/admin

致谢

License

本仓库仅含文档,按 CC-BY-4.0 分享。VoHive 二进制与脚本的上游许可请见 iniwex5/vohive-release

关于 About

在 Mac(Apple Silicon / Intel)上用 UTM 跑 Linux 虚拟机,把大疆 4G 模块(EG25-G)伪装成移远 Quectel EC25 并部署 vohive 平台的完整步骤

语言 Languages

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
2
Total Commits
峰值: 2次/周
Less
More

核心贡献者 Contributors