pedrodinisf/otoscope-viewer

GitHub: pedrodinisf/otoscope-viewer

通过逆向 AiSee WiFi 耳镜的私有 UDP 协议,提供一个无需手机 App 即可在桌面直接查看耳镜实时画面、截图和录影的 Python/Tk 原生查看器。

Stars: 1 | Forks: 0

# aisee — AiSee WiFi 耳镜的 Python 接收器与 Tk 查看器 为搭配 **AiSee Pro** 应用(`com.earmirror.i4season`,Beken BK7231U, 固件命名空间 `XRH`)出售的廉价 AliExpress WiFi 耳镜逆向工程 的原生 macOS 查看器。通过 UDP 传输 480×480 MJPEG 流。无需手机。 设备本身是一个接入点(开放,无密码),地址为 `192.168.1.1`。 接收器通过 `IP_BOUND_IF` 显式绑定到 `en1`,因此耳镜 Wi-Fi 可以与您的正常 Ethernet 共存 —— 观看时网络保持连接。 ## 设置(一次性) 需要在 `PATH` 中包含 **uv** (https://github.com/astral-sh/uv) 和 **ffmpeg**。 ``` uv sync ``` 这会在本地创建 `.venv/` 并安装 Pillow。全局范围内不会安装任何内容。 ## 运行 1. 打开耳镜电源。 2. 在 en1 上加入 `AiSee-xxxxx` Wi-Fi(或使用应用内的 **Join AiSee** 按钮)。 3. `uv run python -m aisee.app` Tk 窗口将会打开,视频会在约 2 秒内出现。 - **快照** → `~/Pictures/otoscope/snap_.jpg` - **录制** → `~/Movies/otoscope/rec_.mp4`(切换至 Stop 以完成录制) ## 测试 ``` uv run python -m unittest discover tests -v ``` 测试固定使用从真实设备捕获的逐字节 fixture (`tests/fixtures/{frame_packets.bin, expected_frame.jpg, discovery_reply.bin}`)。 如果您重新抓包,请使用 `uv run python tools/extract_fixture.py` 重新生成它们。 ## 协议速查表 | 步骤 | 方向 | 端口 | Payload (hex) | |------|-----------|------|---------------| | 发现 (Discovery) | App → Dev | UDP 10005 | `eeffeeff 00000100 01000000` | | 发现回复 (Discovery reply) | Dev → App | UDP 10005 | `eeffeeff 00000100 010080 00 ...` (~140 B incl. `BK7231U` / `AiSee-` / MAC) | | START | App → Dev | UDP 10006 | `eeffeeff 02000400 01000200 0000` | | START ACK | Dev → App | UDP 10006 | `eeffeeff 02000400 01000000` | | 视频 (Video) | Dev → App | UDP `` (src 10006) | 16-byte header ` <00/01_lastfrag> 09 01 <6-byte session-id> 80 02 e0 01` + JPEG bytes | 帧重组:剥离 16-byte header,寻找 `FF D8` (SOI) 作为帧的起始, `FF D9` (EOI) 作为帧的结束;裁剪掉 EOI 之后的尾随零。
标签:Python, 云资产清单, 内核驱动, 医疗硬件, 无后门, 物联网, 网络协议, 视频流, 逆向工具, 逆向工程