shad0wca7/ford-service-disc
GitHub: shad0wca7/ford-service-disc
该工具通过逆向解析福特私有光盘格式,将无法在现代系统运行的维修手册DVD提取并重建为可本地托管的静态搜索网站。
Stars: 0 | Forks: 0
# ford-service-disc
**无需原始 Windows 软件,即可阅读您的 Ford 维修手册 DVD。**
从 Ford Technical Service Publications 光盘中提取维修手册、电路图和 PCED,并将其重构为一个快速、可搜索的网站,您可以托管在自己的机器或家庭服务器上。
适用于 macOS、Linux 和 Windows。需要 Python 3.9+,无其他依赖。
**本项目不包含任何 Ford 内容 —— 请自备光盘。**
```
git clone https://github.com/shad0wca7/ford-service-disc
cd ford-service-disc
python3 -m fsd all /Volumes/20SLB -o site --serve
```
该命令会读取光盘、解压内容、构建网站,并在 打开。
## 解决的问题
您拥有一张 Ford 维修光盘。这是一个大约 2005 年的 Windows 应用程序,无法在 Windows 10 或 11 上安装——其安装程序是 32 位的,且需要一个无法找到的光盘卷标;即便您勉强运行起来,它也可能会提示:
通常的解决方法是使用 Windows XP 虚拟机。本工具跳过了所有这些麻烦。它直接从光盘读取内容,并为您生成一个静态网站——无需安装程序、无需虚拟机、无需日期校验,一旦您拥有了镜像文件,甚至连 DVD 光驱都不需要。
这些内容存储在两种未公开的 Ford 格式中:一种名为 **"BAY POD"** 的容器,以及一种名为 **IDICOMP** 的 LZ77 变体。在本项目之前,这两者均未在任何地方有过文档记录;现在它们都已在 [docs/FORMAT.md](docs/FORMAT.md) 中得到详细说明。
## 快速开始
您需要 Python 3.9 或更高版本,以及光盘——可以是已挂载的、复制到文件夹的,或者是镜像文件。
**1. 检查光盘是否可读。** 此操作执行很快,且不会更改任何内容:
```
python3 -m fsd probe /Volumes/20SLB
```
```
Disc label : 20SLB
Read as : directory
ELB 24.6 MB v2 1882 entries EVTM 2020 Mustang
xml:1193, svg:686, csv:1, epl:1, wcf:1
decoded 25 sampled
SLB 512.3 MB v2 7843 entries SERVICE 2020 Mustang
jpg:6130, htm:1707, gif:2, pdf:2, epl:1, wcf:1
decoded 25 sampled
VL2 4.6 MB v2 505 entries PCED 2020 Explorer, Escape, Aviator, Mustang +19 more [Gasoline Engines]
gif:252, htm:250, epl:1, wcf:1, css:1
decoded 25 sampled
Result: this disc looks readable.
```
**2. 构建并运行网站:**
```
python3 -m fsd all /Volumes/20SLB -o site --serve
```
为了能在车库中通过手机或平板电脑访问,您可以将其在您的局域网中运行:
```
python3 -m fsd serve site --host 0.0.0.0
```
### 没有 DVD 光驱?
在有光驱的机器上将光盘制作成镜像,然后让 `fsd` 读取该镜像文件。原始转储文件(CloneCD `.img`、Alcohol、2352 字节扇区)支持**原地读取**——无需转换,无需挂载,因此也不需要 root 或管理员权限:
```
python3 -m fsd all IMAGE.img -o site
```
## 命令
| 命令 | 功能 |
|---|---|
| `fsd probe DISC` | 识别光盘并检查其每一部分是否能正确解码。从此处开始。 |
| `fsd extract DISC -o extracted` | 将存档解压为普通文件并停止。 |
| `fsd build extracted -o site` | 从解压后的文件构建网站。 |
| `fsd all DISC -o site` | 一步完成提取和构建。 |
| `fsd serve site` | 通过 HTTP 提供已构建的网站服务。 |
| `fsd iso IMAGE out.iso` | 将原始转储转换为普通 ISO 文件(如果您想挂载它)。 |
`DISC` 可以是挂载点(如 `/Volumes/20SLB`、`D:\`)、包含光盘内容副本的文件夹,或者是镜像文件(如 `.iso`、`.img`、`.bin`)。
运行 `python3 -m fsd COMMAND --help` 查看可用选项。
## 您将获得什么
从本项目用于开发的 2020 款 Mustang 光盘来看,该网站包含:
- **1,542 条维修流程** —— 诊断与测试、拆卸与安装、规格与扭矩参数
- **394 张电路图** —— 原理图和部件位置图,均为可缩放的矢量图形,而非扫描件
- **594 个接口面视图** —— 逐针脚的电路、导线颜色、线规、功能和端子零件号
- **233 页 PCED** —— 精确定位测试、DTC 图表和参考值
所有内容均支持交叉搜索,且页面均为双向链接:每个流程都会列出指向它的链接,每个接口也都会列出它所在的图纸。
查看器是一个静态网站——纯 HTML、CSS 和 JavaScript,无框架、无构建步骤、无外部请求。任何 Web 服务器都可以运行它,并且它在子目录中也能正常工作。它支持在手机上访问,并且特意以浅色背景渲染文档:因为反转电路图颜色会导致导线颜色显示错误。
### 它还能修复光盘
原始 DVD 上的一些链接已经是失效的。这些问题在此都得到了修复:存储时缺少文件名前缀的流程、指向 Ford 从未提供过的服务器端 URL 的“返回索引”链接、对从未压制过的图纸位置的引用,以及呈现为无样式重复导航栏的基于框架的目录。
## 兼容性
**迄今为止仅针对一张光盘进行了测试** —— 2020 款 Mustang (`20SLB`),其中包含 SERVICE、EVTM 和 PCED 手册。
本工具中没有任何内容是针对该特定版本设计的。它会询问每个存档自带的清单,以确认它是哪本书,并据此推导出所有的文件名模式,因此同一产品线中的其他光盘应该也能正常工作。Ford 多年来以通用的“Technical Service Publications”名义销售了许多年、针对许多车型的这类光盘,且仅 PCED 卷就涵盖了 23 种不同的车辆,因此该格式几乎肯定适用于该系列中的很大一部分车型。
但是,“应该能用”并不等于“确实能用”。**如果您手头有光盘,请运行 `fsd probe` 并[提交一个 issue](../../issues/new?template=disc-report.yml) —— 测试成功与发现失败一样对我们很有帮助。** 请查看 [docs/COMPATIBILITY.md](docs/COMPATIBILITY.md) 了解已确认兼容的光盘列表。
除 SERVICE、EVTM 和 PCED 之外的其他类型手册仍会被提取为文件;查看器会跳过它们并告知您跳过了哪些内容。
## 工作原理
```
disc ──► BAY POD archive ──► IDICOMP decompression ──► files ──► static site
(fsd/arc.py) (fsd/idicomp.py) (fsd/build.py)
```
`fsd/iso.py` 直接从镜像中读取 ISO9660 格式,支持处理 2048、2352 和 2448 字节的扇区,因此无需挂载任何内容。
这两种 Ford 格式都是为本项目进行逆向工程的。[docs/FORMAT.md](docs/FORMAT.md) 中的说明文档是目前唯一存在的规范,并且已发布到公共领域,任何人都可以据此编写另一种实现。
测试套件会自行合成存档,不需要任何 Ford 内容,因此它本身也可以作为可执行的规范:
```
python3 -m unittest discover -s tests -v
```
## 法律声明
本仓库**仅包含软件**。它不包含任何 Ford 的服务内容、没有光盘镜像、也没有提取出的文件,并且永远不会有——如果出现任何此类内容,CI 构建将会失败。
光盘上的服务内容受 Ford Motor Company 版权保护,该公司仍在销售对这些内容的访问权。本工具仅用于阅读**您自己拥有**的光盘。请勿分发从中提取出的内容。
本工具未规避任何访问控制机制。这些内容是压缩的,而非加密的,且没有密钥:光盘上的 `VOLUME.ENC` 文件只是一个许可令牌,在读取过程中不起任何作用,本工具也绝不会调用它。这些格式是通过检查我自有的存储介质上的数据推导出来的,目的是为了能在当前的硬件上继续使用它们。
Ford、Lincoln、Mercury 和 Motorcraft 是 Ford Motor Company 的商标,此处使用它们仅是为了说明本工具读取的是哪些光盘。本项目与 Ford Motor Company 没有任何关联、未受其认可或赞助。
软件采用 MIT 许可证 ([LICENSE](LICENSE))。格式文档采用 CC0 / 公共领域许可。
## 另请参阅
- [fetch-ford-service-manuals](https://github.com/iamtheyammer/fetch-ford-service-manuals)
—— 从 Ford 正在运营的 PTS 订阅门户下载手册。来源不同,解决的问题互补:那个项目需要付费订阅和互联网连接,而本项目需要光盘。
关键词:Ford service manual DVD, Ford workshop manual CD, Ford service disc Windows 11, Ford .ARC file, BAY POD, IDICOMP, Technical Service Publications, TSP, EVTM wiring diagram, PCED, volume has expired, extract Ford service CD, offline service manual, right to repair.
标签:Python, 云资产清单, 多模态安全, 数据可视化, 数据提取, 文件解析, 文档转换, 无后门, 逆向工具, 逆向工程, 静态站点生成