{
  "added_at": "2026-10-20",
  "additional_evidence_urls": [
    "https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/vens/PROTOCOL",
    "https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/vens/README.md",
    "https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/vens/scansnap.py",
    "https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/scansnapd.py",
    "https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/app/Package.swift",
    "https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/app/build.sh",
    "https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/app/Sources/IX500Scan/ScannerService.swift",
    "https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/social/texte.md",
    "https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/LICENSE",
    "https://github.com/bramheerink/scansnap/blob/5706688db58f45a4d3db239de6e2e93bab36bb0f/LICENSE"
  ],
  "category": "reconstruction-cases",
  "description_en": "Replaces ScanSnap Home for a Fujitsu/PFU ScanSnap iX500 on macOS with a SwiftUI app and Python service that scan over Wi-Fi through the community-reverse-engineered VENS protocol, or over USB through SANE, and produce searchable PDFs. It vendors bramheerink’s GPL-2.0 driver, extends it for macOS, and documents further handshake and hardware-status fields, including the scan-button bit. Results are author-reported; the repository publishes no tests or captures.",
  "description_zh": "在 macOS 上以 SwiftUI 应用和 Python 后台服务替代 ScanSnap Home，为富士通／PFU ScanSnap iX500 提供扫描：Wi-Fi 经由社区逆向的 VENS 协议，USB 经由 SANE，输出可搜索的 PDF。项目内置 bramheerink 的 GPL-2.0 驱动并为 macOS 做了扩展，还记录了更多握手字段和硬件状态字段，包括扫描键状态位。结果均为作者报告，仓库未公开测试或抓包记录。",
  "entry_url": "https://awesomerea.org/resources/ix500-scan-scansnap-wifi-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/ix500-scan-scansnap-wifi-case/",
  "evidence_url": "https://github.com/jonaswagnr/ix500-scan/blob/24a5f7c89fc6d0c35a4d83d0879348ced153844a/README.md",
  "group": "cases",
  "id": "ix500-scan-scansnap-wifi-case",
  "json_url": "https://awesomerea.org/resources/ix500-scan-scansnap-wifi-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/ix500-scan-scansnap-wifi-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/ix500-scan-scansnap-wifi-case/index.md",
  "name": "iX500 Scan: a macOS client for the reverse-engineered ScanSnap Wi-Fi protocol",
  "name_zh": "iX500 Scan：基于逆向 ScanSnap Wi-Fi 协议的 macOS 客户端",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirements": [
    "Reviewed commit 24a5f7c (three commits, all dated 2026-10-15) targets the Fujitsu/PFU ScanSnap iX500. README says ScanSnap Home 3.7 is no longer maintained and hangs on macOS 27; the project offers Wi-Fi scanning started by the device’s scan button, a USB path through SANE, and searchable PDFs with rotation, cropping, blank-page removal and OCR. No release build is published, and other ScanSnap models are not claimed.",
    "The Wi-Fi path needs the user’s own iX500 and two values that README says only ScanSnap Home knows: the scanner’s 12-character pairing key and the paired computer’s 8-byte HostID. They are obtained once from ScanSnap Home’s own connection to that scanner; the repository includes no vendor software, firmware or captures.",
    "Building needs macOS 14+, Xcode 15+ (Swift tools 5.10), the system Python 3 with Pillow, and Homebrew sane-backends, ocrmypdf, img2pdf and tesseract-lang. build.sh bundles the Python service and vendored driver into an ad-hoc-signed app that runs the service with /usr/bin/python3.",
    "The protocol work extends bramheerink/scansnap, whose VENS specification says it was reverse-engineered from captures of ScanSnap Home talking to an iX500. README adds handshake fields for the paired HostID, local time and UTC offset, hardware-status bits for an empty feeder and the scan button, and a session timeout of about 40 s, and notes that Wi-Fi images always arrive as 300 dpi colour, rotated 180° with scanner background. No automated tests, captures or comparisons with ScanSnap Home output are published.",
    "GPL-2.0, matching the vendored driver at commit 5706688, whose file header records the author’s changes. This is an unofficial client, not recovered vendor source or firmware. The repository’s draft social posts credit an evening with Claude Code for closing the remaining protocol gaps."
  ],
  "requirements_zh": [
    "审阅提交 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 用一个晚上补齐了协议中剩余的空白。"
  ],
  "targets": [
    "app",
    "protocol"
  ],
  "url": "https://github.com/jonaswagnr/ix500-scan",
  "verification": "source-reviewed",
  "verified_at": "2026-10-19"
}
