{
  "added_at": "2026-11-08",
  "additional_evidence_urls": [
    "https://github.com/TDSOJohn/airport-express-tools/blob/e78750e2a4a88fa8cafd98ee7935ef3b7b4c9f11/docs/README.md",
    "https://github.com/TDSOJohn/airport-express-tools/blob/e78750e2a4a88fa8cafd98ee7935ef3b7b4c9f11/LICENSE"
  ],
  "category": "reconstruction-cases",
  "class": "hardware",
  "description_en": "airport-express-tools reconstructs configuration and Wi-Fi client functions for the second-generation AirPort Express A1392 from firmware and ACP protocol research. Its Python CLI configures Wi-Fi, connection sharing and device settings; a local web UI provides Wi-Fi and device controls. A replacement supplicant joins WPA2 networks. Reference pages map ACP properties, RPCs, firmware contents and client-mode behavior, with Ghidra and unpacking helpers.",
  "description_zh": "airport-express-tools 基于固件和 ACP 管理协议研究，重建第二代 AirPort Express A1392 的配置与 Wi-Fi 客户端功能。Python 命令行工具可配置无线网络、连接共享和设备设置，本地网页界面提供无线网络及设备控制。替代版 wpa_supplicant 可连接 WPA2 网络。文档记录 ACP 属性、RPC、固件内容及客户端模式，并附 Ghidra 脚本和解包工具。",
  "entry_url": "https://awesomerea.org/resources/airport-express-tools-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/airport-express-tools-case/",
  "evidence_class": 2,
  "evidence_status": "observed",
  "evidence_url": "https://github.com/TDSOJohn/airport-express-tools/blob/e78750e2a4a88fa8cafd98ee7935ef3b7b4c9f11/README.md",
  "group": "cases",
  "id": "airport-express-tools-case",
  "json_url": "https://awesomerea.org/resources/airport-express-tools-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/airport-express-tools-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/airport-express-tools-case/index.md",
  "name": "airport-express-tools: rebuilding AirPort Express configuration and Wi-Fi client mode",
  "name_zh": "airport-express-tools：重建 AirPort Express 配置及 Wi-Fi 客户端模式",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "scope",
    "prerequisites",
    "limits",
    "license"
  ],
  "requirements": [
    "A1392 on firmware 7.8.1 is the documented fully tested model; other models have limited or untested write support.",
    "The CLI requires Python 3.8 or newer; installing the replacement Wi-Fi client requires the device's debug SSH login.",
    "The firmware's own wpa_supplicant crashes in client mode on 7.8.1; the replacement supports WPA2-PSK on 2.4 GHz.",
    "MIT License."
  ],
  "requirements_zh": [
    "完整测试范围是运行 7.8.1 固件的 A1392；其他机型的写入支持有限或尚未测试。",
    "命令行工具需要 Python 3.8 或更新版本；安装替代 Wi-Fi 客户端还需要设备的调试 SSH 登录。",
    "7.8.1 固件自带的 wpa_supplicant 在客户端模式启动时崩溃；替代程序支持 2.4 GHz WPA2-PSK。",
    "MIT 许可证。"
  ],
  "scope": "unknown",
  "targets": [
    "firmware",
    "protocol"
  ],
  "url": "https://github.com/TDSOJohn/airport-express-tools",
  "verification": "source-reviewed",
  "verified_at": "2026-11-06"
}
