# iX500 Scan：基于逆向 ScanSnap Wi-Fi 协议的 macOS 客户端

> 在 macOS 上以 SwiftUI 应用和 Python 后台服务替代 ScanSnap Home，为富士通／PFU ScanSnap iX500 提供扫描：Wi-Fi 经由社区逆向的 VENS 协议，USB 经由 SANE，输出可搜索的 PDF。项目内置 bramheerink 的 GPL-2.0 驱动并为 macOS 做了扩展，还记录了更多握手字段和硬件状态字段，包括扫描键状态位。结果均为作者报告，仓库未公开测试或抓包记录。

- 类型：案例
- 目标：应用 · 协议
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-10-19
- 收录于：2026-10-20
- 原始资源：<https://github.com/jonaswagnr/ix500-scan>
- 一手来源：<https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/ix500-scan-scansnap-wifi-case/>
- 记录 JSON：<https://awesomerea.org/resources/ix500-scan-scansnap-wifi-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/ix500-scan-scansnap-wifi-case/index.md)

## 使用条件与局限

- 审阅提交 24a5f7c（共三次提交，均为 2026-10-15）面向富士通／PFU ScanSnap iX500。README 称 ScanSnap Home 3.7 已不再维护，在 macOS 27 上会卡死；项目提供由设备扫描键触发的 Wi-Fi 扫描、经 SANE 的 USB 扫描，以及带旋转、裁边、去空白页和 OCR 的可搜索 PDF。未发布构建好的版本，也未声称支持其他 ScanSnap 型号。
- Wi-Fi 扫描需要用户自己的 iX500，以及 README 所说只有 ScanSnap Home 才知道的两个值：扫描仪的 12 位配对密钥和已配对电脑的 8 字节 HostID。这两个值需从 ScanSnap Home 与该扫描仪的连接中一次性取得；仓库不包含厂商软件、固件或抓包文件。
- 构建需要 macOS 14+、Xcode 15+（Swift tools 5.10）、带 Pillow 的系统 Python 3，以及通过 Homebrew 安装的 sane-backends、ocrmypdf、img2pdf 和 tesseract-lang。build.sh 把 Python 服务和内置驱动打包进一个临时（ad-hoc）签名的应用，应用通过 /usr/bin/python3 运行该服务。
- 协议部分扩展自 bramheerink/scansnap，其 VENS 规范称是根据 ScanSnap Home 与 iX500 通信的抓包逆向得出。README 补充了握手中已配对 HostID、本地时间与 UTC 偏移的字段，空纸盒与扫描键的硬件状态位，以及约 40 秒的会话超时，并说明 Wi-Fi 图像始终以 300 dpi 彩色、旋转 180° 且带扫描仪背景的形式传回。仓库未公开自动化测试、抓包或与 ScanSnap Home 输出的对比。
- 采用 GPL-2.0，与内置驱动所基于的 5706688 提交一致，驱动文件头记录了作者的修改。这是非官方客户端，并非恢复的厂商源码或固件。仓库中的社交媒体草稿称，作者借助 Claude Code 用一个晚上补齐了协议中剩余的空白。

## 一手来源

1. <https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/README.md>
2. <https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/vens/PROTOCOL>
3. <https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/vens/README.md>
4. <https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/vens/scansnap.py>
5. <https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/scansnapd.py>
6. <https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/app/Package.swift>
7. <https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/app/build.sh>
8. <https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/app/Sources/IX500Scan/ScannerService.swift>
9. <https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/social/texte.md>
10. <https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/LICENSE>
11. <https://github.com/bramheerink/scansnap/blob/5706688db58f45a4d3db239de6e2e93bab36bb0f/LICENSE>

## 同分区更多条目：应用

- [WristBeam：为 Mac 配套应用重建佳明手表协议](https://awesomerea.org/zh/resources/wristbeam-garmin-watch-protocol-case/index.md) · 案例
- [usque：Cloudflare WARP MASQUE 模式的开源再实现](https://awesomerea.org/zh/resources/usque-warp-masque-client-case/index.md) · 案例
- [Webamp：在浏览器中重新实现 Winamp 2](https://awesomerea.org/zh/resources/webamp-winamp-reimplementation-case/index.md) · 案例
- [NOOP：基于蓝牙协议研究构建的离线 WHOOP 手环客户端](https://awesomerea.org/zh/resources/noop-whoop-ble-client-case/index.md) · 案例
- [NiimBlue：NIIMBOT 标签打印机的独立网页客户端](https://awesomerea.org/zh/resources/niimblue-niimbot-printer-client-case/index.md) · 案例
- [open_oura：基于逆向 BLE 协议、无需云端的 Oura Ring 客户端](https://awesomerea.org/zh/resources/open-oura-ring-protocol-case/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
