分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

robertnisipeanu/mgu-store

硬件与物联网

为 BMW iDrive 7/8 车机提供应用商店,从 GitHub、网址或 U 盘安装、更新和卸载应用。

219
27
JavaScript
GPL-3.0
创建于 5 天前

项目介绍

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 生成,更新于 ,以项目官方文档为准。