robertnisipeanu/mgu-store
硬件与物联网为 BMW iDrive 7/8 车机提供应用商店,从 GitHub、网址或 U 盘安装、更新和卸载应用。
项目介绍
mgu-store 是 BMW iDrive 7 和 iDrive 8 车机(MGU)的应用商店与安装器。它把原本需要手动侧载的流程搬到车机屏幕上:浏览应用目录、安装或卸载应用,之后通过同一个界面接收更新。应用来源支持 GitHub 仓库(发布版、标签或某个分支)、提供 catalog.json 的任意 HTTPS 地址,以及给无网络车辆用的 U 盘。
首次安装会把 Store 本体和依赖组件一起装上车机,包括负责下载安装的 GitHub updater、执行并可回滚安装的 deploy 工具、让已安装应用不出现在车机上报给 BMW 的数据中的 app privacy、绘制界面图形的 renderer、供源码构建应用使用的 Python,以及可选的互联网上行。配套的手机页面可以查看来源、安装记录、错误和日志,并用手机键盘输入来源和 token。
它面向愿意为车机配置 root SSH 权限、想运行社区应用的 iDrive 7/8 车主。完整流程见 README。
准备工作
- 一台 Windows 10/11、macOS 或 Linux 电脑,安装 Node.js 18 或更新版本,并带 OpenSSH 客户端。
- 车机的 root SSH 访问权限和 root 私钥;idrive7-8-ssh-root 可通过 ENET 线完成配置。
- 能连接到车机 SSH 的通道:车内 Wi-Fi 热点(默认地址
172.16.222.97)、ENET 或其他 SSH 路径。 - 车辆停放且供电稳定,直到安装结束。
快速使用
电脑连上车机网络后,用 root 的 SSH 密钥运行安装器。
macOS 或 Linux:
curl -fsSL https://raw.githubusercontent.com/robertnisipeanu/mgu-store/main/deploy/mgu-install.js | node - first-install --identity ~/.ssh/mgu_root_key
Windows PowerShell:
irm https://raw.githubusercontent.com/robertnisipeanu/mgu-store/main/deploy/mgu-install.js -OutFile mgu-install.js; if ($?) { node mgu-install.js first-install --identity $HOME\.ssh\mgu_root_key }
安装器会自动发现车机并说明使用了哪个连接。按提示重启车机,之后 Store 图标会出现在车机应用中,后续更新都通过 Store 完成。
常用选项:--host/--port 指定 SSH 地址,--user 修改 SSH 用户(默认 root),--ssh-opt 追加 ssh -o 参数(例如配合 --host 使用 --ssh-opt ProxyJump=<跳板机>),--token 用于私有仓库,--no-uplink / --no-renderer 跳过对应组件。所有命令见 安装器参考。
使用 Store
侧边菜单有四个页面:Store(来自各来源的应用和工具及其状态)、Installed(已安装内容,含 Update 和 Update all)、USB(插入的 U 盘提供的内容)、Settings(来源、Wi-Fi、账户、手机访问、Check now、重启车机)。打开应用即可安装、更新或卸载。更新不会自动安装,标记为 Restart pending 的内容会在重启车机后生效。
默认来源包括本仓库、idrive7-apps、idrive-apps(仪表盘和 HUD 的 renderer、仪表盘上的 CarPlay 地图)和 car-apps(多为仅支持 iDrive 8 的应用)。在 Settings → Add source 输入 owner/repo、GitHub 链接或 catalog.json 的 HTTPS 地址即可添加;GitHub 仓库可选择 Releases、Tags 或某个分支。
私有仓库需要在 Settings → Accounts 添加账户:Sign in with GitHub(需安装 mgu-store GitHub App),或使用只勾选目标仓库、Contents 只读的 fine-grained token。token 的完整步骤见 README。
离线安装
车内没有网络时,先在电脑上制作 U 盘:
node mgu-install.js usb-repo <U 盘路径> [github:owner/repo | <catalog URL> | <folder> | <package file> ...]
不提供参数时会复制本仓库的最新发布版。将 U 盘插入车内,使用 USB 页面安装。
使用约束
- iDrive 8 只在模拟器中测试过,尚未在真车上验证;在 iDrive 8 上,安装和卸载会在下次车机重启后生效。
- iDrive 8 的 widget 界面(未运行 mgu-render)暂不支持屏幕输入,需从手机页面或电脑添加来源和 token,或使用 Sign in with GitHub。
- 车内联网依赖上行方式:USB 以太网卡、LTE 网卡、USB 共享网络的 Android 或 iPhone,或 Wi-Fi。iDrive 7 使用 Broadcom 无线模块的车型无法连接仅支持 WPA3 的网络;iPhone 通过 USB 共享网络时,USB 音乐播放会中断。
- 应用不能打包 BMW SDK 文件(车机自带 SDK 会链接应用),需要带前缀的唯一 id 和
mguHmi字段(ID7、ID8或两者);联网应用须设置"mguInternet": true。详见 PUBLISHING.md。 - 项目采用 GPL-3.0-or-later,第三方部分沿用各自许可证。
HotRepo 点评
该仓库没有记录到 GitHub 全部语言日榜名次,因此无从比较跨项目排名。从 Star 曲线看,2026-10-31 到 2026-11-01 的约 20 小时内,Star 从 102 涨到 216,其中单个统计窗口内在 GitHub 新项目 JavaScript 榜上新增 114。不到一天有这样的增幅,说明该工具较快聚拢了一批 iDrive 车主;不过数据中没有附带的论坛讨论。由于 iDrive 8 目前仅在模拟器上测试,影响采用的主要因素是缺少真车验证,而非功能覆盖。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。